Come convertire uno shapefile di linea in un CSV con nodi e collegamenti?


12

Esiste un modo per convertire un file di forma lineare in un file CSV del seguente formato:

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

Ho esaminato GDAL / OGR2OGR e PostGIS e non credo nemmeno che converta i dati nel formato desiderato.

Non mi dispiace scrivere una sceneggiatura per farlo, se sono guidato nella giusta direzione.


Nel tuo esempio, Nodo_1, Nodo_2 sono le coordinate effettive della tua funzione, giusto? Voglio dire, dal tuo esempio, suppongo che tu voglia esportare la topologia dal file di forma; come in Node_1 è il tuo FNODE, Node_2 è il tuo TNODE e la geometria viene memorizzata una sola volta. In tal caso, la risposta è molto diversa e per costruire la topologia avrai bisogno di qualcosa di diverso da OGR.
Ragi Yaser Burhum,

@rburhum voglio implementare la mia tabella in un classico algoritmo di rete. Il formato è di solito, dal nodo 1 al nodo 2 con un costo di X
dassouki,

Risposte:


8

I programmi di utilità inclusi in OGR (OGR2OGR) non lo faranno direttamente, ma sarà molto facile usare OGR per farlo.

Dovresti scrivere uno script / un programma in una qualsiasi delle lingue supportate da OGR. Potresti semplicemente aprire lo shapefile, leggere ogni funzione e scrivere punti + dati in formato CSV.

Il codice C ++ di esempio sul Wiki in realtà mostra quasi tutte le chiamate API OGR richieste per questo.


Grazie per la rapida risposta. Sto guardando il primo esempio di python su gdal.org/ogr/ogr%5Fapitut.html , che genera un file da SHP a CSV. L'esempio è fatto per un livello punto, c'è qualche differenza significativa per convertirlo per un livello linea? Quale sarebbe il formato del nome del nodo? Sarà un numero? Posso collegarlo a un altro layer di punti che contiene tutti i nomi dei nodi?
Dassouki,

In una riga, le funzionalità saranno ogr.wkbLine anziché ogr.wkbPoint. È possibile restituire il nome come stringa utilizzando feature.GetFieldAsString (col). Non c'è modo di gestire il "collegamento" direttamente in OGR, quindi dovresti aprire l'altra tabella di dati e cercarla tu stesso o copiare prima i nomi in GIS.
Reed Copsey,

Questo ha senso; bene lo proverò e ti terrò aggiornato su come faccio a capire. Sto facendo tutto questo in modo da poter fare alcune analisi di rete su un livello di linea.
Dassouki,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.