Trovare la distanza tra i punti lungo un fiume (riferimento lineare)


10

Sono nuovo di GIS e sono colpito. Ho una rete di fiumi costituita da piccoli linestrings (polilinee). In un diverso file di forma, ho posizioni di diverse stazioni su un fiume. Devo trovare la distanza lungo il fiume da ogni stazione fino alla fine del fiume.

Il problema è che non ho una stringa completa di river. E non esiste un attributo comune che posso usare per unire o unire i linestring. Inoltre, alcune stazioni sono su affluenti.

inserisci qui la descrizione dell'immagine

Quindi la linea di fondo è che ho bisogno di fare una grande rete di fiumi compresi affluenti ed eseguire riferimenti di linea. Ma non so come farlo. Qualsiasi aiuto è molto apprezzato. Si prega di spiegare il più chiaramente possibile.

Si prega di commentare se sono necessarie ulteriori informazioni.


3
Quale piattaforma software stai usando?
TheSteve0

ho provato arcmap arcinfo. Ma erano informazioni schiaccianti sul riferimento lineare. Quindi sono passato a pgRouting e QGIS. Ancora lottando.
Naresh,

Hai accesso all'estensione Analista di rete ArcGIS? Penso che sarebbe possibile costruire un set di dati di rete usando i tuoi fiumi, e quindi trovare le distanze più brevi dovrebbe essere realisticamente facile.
Radek,

Risposte:


2

Sono d'accordo con BWill. Il tuo problema principale è definire l'origine di ciascuna polilinea. Cosa costituisce un "fiume"? Ι darebbe per scontato che un affluente sia una "rotta" autonoma a partire da 0-> lunghezza del tributario. Quindi farei lo stesso per i fiumi principali, ma in questo caso creerei una polilinea unita da tutte le polilinee costituenti. Penso che una volta che hai "quasi" lì. Quindi: converti tutte le polilinee unite in Polilinee misurate (PolylineM), inclusi gli affluenti. Quindi hai la tua "rete di rotte". Da quel momento in poi si tratta di trovare la distanza lungo il percorso per ciascuna stazione. Suppongo che le posizioni delle stazioni siano definite in XY? Inoltre, un'altra ipotesi, non cadono esattamente in cima al fiume, fanno? In ogni caso avrai bisogno di un modo per trovare la distanza della stazione dall'inizio di ogni fiume o tribunale. In teoria, se una stazione si trova sull'intersezione del fiume e del tributario, può avere 2 posizioni (una per ciascuna).

Per trovare questa posizione puoi usare gli strumenti ArcMap ma non li uso da un po ', quindi non riesco a ricordare la parte superiore della mia testa. D'altra parte, se importi i tuoi file di forma (?) In PostGIS, puoi utilizzare ST_Line_Locate_Point . Questa funzione:

Restituisce un galleggiante compreso tra 0 e 1 che rappresenta la posizione del punto più vicino su LineString al punto dato, come una frazione della lunghezza totale della linea 2d.

Ciò significa che puoi quindi trovare la posizione lungo il fiume moltiplicando ciò che trovi con la lunghezza del fiume (unita). Un'ultima nota: se si utilizza PostGIS, non è necessario eseguire la fase di creazione di PolylineM; solo ArcGIS lo richiede per i riferimenti lineari.

Spero che abbia senso!


le mie stazioni sono esattamente sugli affluenti o sul fiume. La cosa stupida è che non esiste un grande fiume, solo piccoli segmenti di linee. Riesco a vedere un grande fiume ma i dati in sé non hanno alcun attributo comune per creare un fiume completo. Inoltre, ho le coordinate in gradi, quindi quando creo percorsi in arcmap, ottengo la lunghezza in gradi? Penso che non abbia senso. Devo convertire le coordinate da wgs84 in qualche altra proiezione. E sì, ho importato gli shapefile in PostGIS.
Naresh,

1

Dalla mia domanda della stessa natura,

Come creare un punto lungo una linea data la distanza

sono emersi i seguenti link utili.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs

Non completo il mio compito per mancanza di sforzo. Credo che il tedio che sperimenterai sta nominando l'origine di ogni polilinea.


2
ho fatto dei progressi. Posso trovare il percorso più breve usando pGrouting ma ho bisogno di aggiornare "nodi". In questo momento creo una tabella di nodi in postgresql e lo uso per creare una rete che alimento per pgrouting. Ma ho bisogno di aggiungere nella tabella nodi personalizzati che non sono ai nodi finali. Il modo migliore è quello di dividere le mie polilinee nelle stazioni in modo che diventino automaticamente nodi. Ancora lavorando. Aggiorna presto.
Naresh,
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.