Я новичок в ГИС и поражен. У меня есть сеть рек, которая состоит из небольших полос (полилиний). В другом шейп-файле у меня есть местоположения нескольких станций на реке. Мне нужно найти расстояние вдоль реки от каждой станции до конца реки.
Проблема в том, что у меня нет одной полной линии реки. И нет общего атрибута, который я мог бы использовать для объединения или объединения строк. Также некоторые станции находятся на притоках.
Итак, суть в том, что мне нужно создать большую сеть рек, включая притоки, и выполнить привязку лайнера. Но я не знаю, как это сделать. Любая помощь высоко ценится. Пожалуйста, объясните как можно более четко.
Пожалуйста, прокомментируйте, если вам нужна дополнительная информация.
linear-referencing
Naresh
источник
источник
Ответы:
Я бы согласился с BWill. Ваша главная проблема - определить происхождение каждой полилинии. Что представляет собой «река»? Make сделало бы предположение, что приток является автономным «маршрутом», начинающимся с 0-> длины притока. Тогда я сделал бы то же самое для главных рек, но в этом случае я бы создал объединенную полилинию из всех составляющих полилиний. Я думаю, что как только вы это сделаете, вы «почти» там. Затем: преобразуйте все ваши объединенные полилинии в измеренные полилинии (PolylineM), включая притоки. Затем у вас есть «сеть маршрутов». С этого момента вопрос определения расстояния по маршруту для каждой станции. Я предполагаю, что местоположения станций определены в XY? Также - другое предположение - они не падают точно на реку, они? В любом случае вам понадобится способ найти расстояние от станции до начала каждой реки или трибура. Теоретически, если станция находится на пересечении реки и притока, она может иметь 2 местоположения (по одному для каждого).
Чтобы найти это место, вы можете использовать инструменты ArcMap, но не пользовались ими какое-то время, так что не могу вспомнить верхнюю часть моей головы. С другой стороны, если вы импортируете свои шейп-файлы (?) В PostGIS, вы можете использовать ST_Line_Locate_Point . Эта функция:
Это означает, что вы можете найти местоположение вдоль реки, умножив то, что вы найдете, на (объединенную) длину реки. Последнее замечание: если вы используете PostGIS, вам не нужно проходить этап создания PolylineM - только для ArcGIS это требуется для линейных ссылок.
Надеюсь, что это имеет смысл!
источник
Из моего вопроса того же характера,
Как создать точку вдоль линии на заданном расстоянии
появились следующие полезные ссылки.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs
Я не выполняю свою задачу из-за отсутствия усилий. Я полагаю, что скука, которую вы испытаете, определяет происхождение каждой полилинии.
источник