Я пытаюсь обрезать или отфильтровать лидарные файлы (.las, .xyz), используя шейп-файл, который содержит несколько полигонов.
Есть ли программное обеспечение с открытым исходным кодом, которое может выполнять эту пространственную операцию?
Мои файлы .las огромны, и я должен сказать, что я очень плохо знаком с данными и анализом ЦМР, поэтому любая помощь будет приветствоваться.
Ответы:
Я второй ответ @Michal Mackiewicz (о Fusion / LTK), так что я надеюсь, что этот пример поможет вам пройти через это.
Это
PolyCLipData
синтаксическая команда (см. Руководство на стр. 110):Используйте текстовый редактор, чтобы написать команду перед ее запуском (например, NotePad ++). Сохраните файл с расширением
.bat
(командный файл). Не забудьте сохранить файл перед запуском.Предположим, у вас есть:
напишите следующее:
используйте переключатель,
multifile
если вы хотите, чтобы файлы las, сгенерированные из полигонов, хранились в отдельных файлах. Например:используйте
shape
переключатель вместе с,multifile
чтобы назвать несколько выходных файлов со значениями, встроенными в один из столбцов dbf PolyFile. Например, если вы хотите присвоить файлам имена с информацией об идентификаторе (предположим, что идентификатор находится в первом столбце шейп-файла). Написать:Для отсечения файлов
PolyClipData
LAS, использующих несколько шейп- файлов, состоящих из одной детали, см. Следующий пост:Обрезка данных LAS несколькими шейп-файлами.
Чтобы обрезать несколько файлов las, в которых они встроены в файл .txt в качестве параметра файла данных
PolyClipData
, см. Следующий пост:Обрезать данные нескольких файлов .las в файл формы многоугольника с помощью FUSION.
Для отсечения нескольких файлов LAS с помощью шейп-файлов с помощью lastools (с помощью
LAStools Production
панели инструментов) см. Следующий пост:Отсечение из мозаичного набора данных LAS с помощью LASTools (для ArcGIS)
источник
FUSION LiDAR Toolkit имеет возможности отсечения (инструмент PolyClipData) и, в отличие от LASTools, его использование не ограничено. Однако, несмотря на то, что существует некоторое хранилище SVN в SourceForge, опубликованный исходный код является неполным и очень старым. Если вы можете продолжить, не зная код и просто использовать скомпилированный двоичный файл, то FUSION вполне подойдет для этой задачи.
источник
WhiteboxTools может обрезать файл LAS на несколько полигонов, содержащихся в шейп-файле, используя
ClipLidarToPolygon
инструмент. Используя сценарии Python, вы можете использовать инструмент следующим образом:Или, если вы предпочитаете графический интерфейс, вы можете использовать плагин на основе QGIS или WhiteboxTools Runner, который распространяется ( wb_runner.py ) с двоичной загрузкой библиотеки:
источник
Различные наборы задач фильтрации обычно применяются к наборам данных LiDAR (фильтрация по точечной плотности, нижнему проходу, фильтрации растительности, задачам сглаживания и т. Д.). Поскольку вы запрашиваете пространственную операцию (включающую шейп-файл), я предполагаю, что вы ищете способ обрезать ваш набор данных , то есть исключить точки, которые находятся за пределами границ полигонов, определенных шейп-файлом .
Как правило, LAStools - это мощный пакет для точечной обработки данных. Это набор инструментов командной строки, но он также имеет простой графический интерфейс и интегрируется с QGIS (и, кстати, с ArcGIS). Вы можете свободно загрузить и оценить набор инструментов - однако только его части имеют открытый исходный код (лицензия LGPL 2.1) - для частей с закрытым исходным кодом требуется лицензирование в зависимости от вашей цели. Вы должны проверить, какие условия применяются для вас.
Используйте Lasclip от LASTools (с закрытым исходным кодом, проверьте лицензирование)
Один из инструментов с закрытым исходным кодом, lasclip , точно выполняет задачу clip-by-shapefile :
Использование просто:
(проверьте LADKLIP README для получения дополнительной информации по использованию, дополнительных примеров и требований к шейп-файлу)
Используйте las2las от LASTools (с открытым исходным кодом; только основные задачи обрезки )
Если программное обеспечение с закрытым исходным кодом не является опцией: инструмент las2las также может выполнять простые задачи отсечения - однако вы не можете обрезать полигон, определенный с помощью файла формы. Например, вы можете обрезать по прямоугольникам, окружностям, высоте, углу сканирования, классификации или качеству данных. (См. Его README для примеров использования и деталей.)
К сожалению, я не знаю ни одного инструмента с открытым исходным кодом, который бы соответствовал функциональности lasclip.
Используйте libLAS для доступа к файлам LAS в самодельном скрипте
LASTools основаны на библиотеке libLAS с открытым исходным кодом, лицензированной BSD . Вы можете использовать libLAS для доступа к вашим файлам LAS и фильтровать их с помощью специального скрипта, например, используя Python .
Конечно, есть и другие возможности, если вы измените ваш процесс обработки (например, преобразование LAS в растр и обрезка позже), но я думаю, что наиболее удобный способ - это работать с LAS как можно дольше и выполнять всю фильтрацию с данными облака точек. сам.
источник
Я написал пошаговое руководство по PDAL, которое демонстрирует, как выполнить эту задачу в этой среде. Пожалуйста, обратитесь к учебнику PDAL для получения дополнительной информации.
источник