Jestem nowy w GIS i jestem zaskoczony. Mam sieć rzek, która składa się z małych linii brzegowych (polilinii). W innym pliku kształtu mam lokalizacje kilku stacji nad rzeką. Muszę znaleźć odległość wzdłuż rzeki od każdej stacji do końca rzeki.
Problem polega na tym, że nie mam jednego kompletnego koryta rzeki. I nie ma wspólnego atrybutu, którego mógłbym użyć do zjednoczenia lub połączenia linii. Ponadto niektóre stacje znajdują się na dopływach.
Więc najważniejsze jest to, że muszę stworzyć dużą sieć rzek, w tym dopływów i wykonać odniesienia liniowe. Ale nie wiem jak to zrobić. Każda pomoc jest bardzo ceniona. Proszę wyjaśnić tak jasno, jak to możliwe.
Proszę o komentarz, jeśli potrzebujesz więcej informacji.
linear-referencing
Naresh
źródło
źródło
Odpowiedzi:
Zgodziłbym się z BWill. Twoim głównym problemem jest określenie pochodzenia każdej polilinii. Co stanowi „rzekę”? Ι przyjąłby założenie, że dopływ jest samodzielną „trasą” rozpoczynającą się od 0-> długości dopływu. Następnie zrobiłbym to samo dla głównych rzek, ale w tym przypadku stworzyłbym scaloną polilinię ze wszystkich składowych polilinii. Myślę, że kiedy już to zrobisz, jesteś „prawie” tam. Następnie: przekonwertuj wszystkie połączone polilinie na zmierzone polilinie (PolylineM) - w tym dopływy. Następnie masz swoją „sieć tras”. Odtąd kwestią jest znalezienie odległości wzdłuż trasy dla każdej stacji. Myślę, że lokalizacje stacji są zdefiniowane w XY? Ponadto - kolejne przypuszczenie - nie spadają dokładnie na szczyt rzeki, czy oni? W każdym razie potrzebujesz sposobu na znalezienie odległości od stacji od początku każdej rzeki lub plemienia. Teoretycznie, jeśli stacja znajduje się na przecięciu rzeki i dopływu, może mieć 2 lokalizacje (po jednej dla każdej).
Aby znaleźć tę lokalizację, możesz użyć narzędzi ArcMap, ale nie korzystałeś z nich przez jakiś czas, więc nie mogę pamiętać o czubku głowy. Z drugiej strony, jeśli importujesz pliki shapefile (?) Do PostGIS, możesz użyć ST_Line_Locate_Point . Ta funkcja:
Co oznacza, że możesz następnie znaleźć lokalizację wzdłuż rzeki, mnożąc to, co znajdujesz, przez (połączoną) długość rzeki. Ostatnia uwaga - jeśli korzystasz z PostGIS, nie musisz przechodzić przez etap tworzenia PolylineM - tylko ArcGIS wymaga tego do odniesienia liniowego.
Mam nadzieję, że to ma sens!
źródło
Z mojego pytania o tej samej naturze
Jak utworzyć punkt wzdłuż linii podanej odległości
pojawiły się następujące przydatne linki.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs
Nie kończę zadania z braku wysiłku. Wierzę, że nudy, których doświadczysz, wyznaczają pochodzenie każdej polilinii.
źródło