У меня есть проект ArcMap 10 с несколькими группами слоев. Один слой представляет собой растровую матрицу высот, другая группа слоев представляет собой набор векторных шейп-файлов (включая точки, линии и многоугольники). Клиент хочет, чтобы все векторные данные содержали значения Z.
Заполнить таблицы атрибутов для векторных данных значениями X и Y достаточно просто, но как мне заполнить значения Z?
Есть ли способ, которым я могу использовать Field Calculator, чтобы "захватить" значения высоты из слоя DEM для каждого векторного объекта?
Я должен добавить, что у нас нет лицензии на расширения 3D Analyst или Spatial Analyst.
arcgis-desktop
arcgis-10.0
field-calculator
dem
Брэд Торр
источник
источник
Ответы:
В ArcGIS я когда-либо делал это только с точечными векторами - я не уверен, как бы вы делали это с полигонами или линейными объектами. К сожалению, вам нужен Spatial Analyst, хотя. В Spatial Analyst Tools \ Extraction \ есть инструмент извлечения нескольких значений в точки и извлечения значений в точки . Извлечение нескольких значений в точки лучше, потому что позволяет переименовать имя поля z, в которое вы извлекаете свои значения - Извлечение значений в точки не позволяет вам этого делать. У меня проблемы с этим в ArcMap (инструмент вылетает), но он хорошо работает в ArcCatalog.
(Бесплатное) расширение Hawths Analysis Tools для ArcMap имело инструмент Intersect Point, но разработка расширения была прекращена пару лет назад. Его заменила среда геопространственного моделирования , которой я никогда не пользовался.
SAGA-GIS (бесплатное автономное программное обеспечение) имеет две функции в Shapes - Сетка \ Добавить значения сетки в точки и фигуры - Сетка \ Добавить значения сетки в фигуры, которые, вероятно, могут делать то, что вы хотите. Это описание инструмента Добавить значения сетки в фигуры:
На мой взгляд, САГА - ваша лучшая ставка.
Надеюсь это поможет!
источник
Я не пробовал это для полигонов, но это действительно хорошо работает для очков. В Arcmap 10, если у вас есть доступ к инструменту 3D-аналитики, вы можете искать инструмент Интерполировать фигуру. Затем вы выбираете свой растровый файл, и ваш векторный слой корректирует значения z, если вы хотите высот в футах, а ваша матрица высот в метрах, и пусть это выполняется. , Как только он будет завершен, вы будете искать инструмент ADD XY и выберите вновь созданный слой, а затем он вычислит значения X, Y, Z в таблице атрибутов этих слоев.
источник
возможно, вы могли бы использовать gdallocationinfo, чтобы получить все значения Z, передав им значения X, Y. Когда у вас есть значения Z, используйте калькулятор feild, чтобы добавить значение Z к точкам, составляющим каждый объект. Там будут некоторые сценарии, но в теории это должно работать.
источник
В зависимости от ваших единиц измерения или требуемого разрешения вы всегда можете экспортировать растр матрицы высот в файл формы многоугольника прямо из набора инструментов, а затем выполнить пространственное соединение - это проще всего для точек. Если вам нужны значения Z для линий или полигонов, вам, очевидно, понадобятся определенные сегменты или подразделения полигонов при каждом изменении высоты, как сообщается векторизованной сеткой матрицы высот. Это можно сделать с помощью стандартных инструментов геообработки и пространственных объединений, но вы должны внимательно следить за вашими требованиями к разрешению и объемом обработки, который потребляет большой набор данных.
источник
Я рекомендую получить лицензию 3D Analyst и использовать Добавить информацию о поверхности . Или используйте Interpolate Shape, а затем Add Z Information, что позволяет некоторым функциям возвращать значения NA без сбоя всей программы. В противном случае есть два проверенных бесплатных метода, которые требуют больше работы. Это можно реализовать из QGIS , так что вам не придется покидать удобную среду ГИС.
источник
Инструмент ESRI, который вы хотели бы использовать, это «Добавить информацию Z». Возможно, вы можете получить пробную версию и посмотреть, пригодится ли вам этот инструмент. Если получить расширение 3D Analyst невозможно, единственное, что приходит на ум (кроме решения для программирования), - вытолкнуть ваши данные из ESRI и использовать одну из бесплатных опций, например SAGA-GIS / qGIS, их «Добавить сетку». Значение для фигур »или« Статистика сетки для многоугольников »не так гибко, как в ESRI, но делает то же самое, если вы ищете среднюю высоту вдоль многоугольника / линии.
источник
Я знаю, как сделать это для очков. Линии и полигоны различны, потому что они пересекают несколько ячеек сетки матрицы высот. Вы можете делать точки вдоль линий или что-то в этом роде и извлекать значения для них. В Arc вам понадобится пространственный аналитик для получения значений, но вы можете получить их через Qgis (бесплатно), хотя и не так полезно. Вам нужно уметь работать с файлами Excel и конвертировать их из шейп-файлов туда и обратно. Qgis сгенерирует шейп-файл, который имеет только извлеченные отметки точек, поэтому вам необходимо скопировать и вставить его в исходную таблицу как файл Excel (со значениями X, Y, чтобы вы могли вернуть его обратно в шейп-файл с помощью msgstr "показать данные x, y"). Вам нужно будет отслеживать ваши проекции, чтобы убедиться, что вы выбрали правильный при преобразовании обратно в шейп-файл.
источник