Раньше для этого полагался на XTools, но в моей нынешней среде у меня нет к нему доступа.
Я пытаюсь сделать это в ArcMap10.
Цель состоит в том, чтобы разбить линейное представление потока на набор точек, расположенных на одинаковом расстоянии, чтобы в конечном итоге определить значения z в этих точках, чтобы я мог определить градиент.
Мой предполагаемый рабочий процесс как таковой.
- разделить поток на точки
- пересекают точки с помощью матрицы высот, используя GME
- Определив расстояние между точками, я должен быть в состоянии определить, что градиент равен.
- Похоже, имело бы смысл интегрировать точечные данные обратно в исходные линии тока. Не уверен насчет этого шага.
Я ценю любую критику моего метода, но в данный момент мой приоритет - преобразование этих потоков в точки.
Спасибо!
arcgis-10.0
algorithm
Жак Тарди
источник
источник
Ответы:
Я еще не использую ArcGIS 10, но в 9.3.1 вы можете начать сеанс редактирования на своем линейном слое, выделите объект, который вы хотите разделить, а затем на панели инструментов редактора выберите опцию Разделить. Здесь вы можете указать расстояние, на которое нужно разделить выбранный объект. Затем вы можете использовать инструмент «Экспорт узлов» в ET GeoWizard (бесплатный инструмент), чтобы получить точечный слой для каждого сегмента разделенной линии.
Вы можете использовать пространственное соединение, чтобы поместить информацию о точечных данных обратно в линейный слой. Щелкните правой кнопкой мыши на линейном слое в ArcMap TOC и выберите Join and Relates> Join. В первом раскрывающемся списке выберите параметр «Объединить данные из другого слоя на основе пространственного местоположения».
источник
Я не знаю инструмента в пользовательском интерфейсе, который делает это, но это можно сделать программно, через интерфейс IMSegmentation3 .
источник
Вы можете создать буфер на одном конце потока и затем определить точку, где ваш буфер пересекает поток. Тогда вы можете просто повторить этот шаг. Это не даст вам точное расстояние потока (так как это прямая линия, а не длина потока), но если бы вы могли затем разделить линию на участки, основанные на этих точках, и с помощью длины этих линий оценить градиент.
Это может быть написано в Python, если это был достойный подход!
источник