Обрезать данные LAS с помощью шейп-файлов и программного обеспечения с открытым исходным кодом?

10

Я пытаюсь обрезать или отфильтровать лидарные файлы (.las, .xyz), используя шейп-файл, который содержит несколько полигонов.

Есть ли программное обеспечение с открытым исходным кодом, которое может выполнять эту пространственную операцию?

Мои файлы .las огромны, и я должен сказать, что я очень плохо знаком с данными и анализом ЦМР, поэтому любая помощь будет приветствоваться.

Аллен Бустенай
источник
1
SAGA GIS также предлагает некоторые инструменты для обработки наборов данных LiDAR, но у меня нет прямого опыта работы с ними. SAGA полностью бесплатна и имеет
открытый исходный код,
1
+1 за САГА. Я полностью пропустил это. В SAGA есть модуль, называемый резаком облака точек , который также может обрезать по степени формы: «Этот модуль позволяет извлекать подмножества из облака точек. Область интереса определяется либо координатами ограничивающего прямоугольника, либо экстентом сетка или слой фигур или полигоны слоя фигур ". Также есть модули для других задач фильтрации.
lavarider
1
На ваше время и, наконец, моя конечная цель - отредактировать эти вырезанные точки и построить новый лас.
Аллен Бустенай
Что касается ваших ответов, вы все мне очень помогли, и, как сказали Михал и Андре , FUSION сделали свое дело.
Аллен Бустенай

Ответы:

7

Я второй ответ @Michal Mackiewicz (о Fusion / LTK), так что я надеюсь, что этот пример поможет вам пройти через это.

Это PolyCLipDataсинтаксическая команда (см. Руководство на стр. 110):

PolyClipData [switches] PolyFile OutputFile DataFile

Используйте текстовый редактор, чтобы написать команду перед ее запуском (например, NotePad ++). Сохраните файл с расширением .bat(командный файл). Не забудьте сохранить файл перед запуском.

Предположим, у вас есть:

  1. Fusion / LTK под C: диск.
  2. файл шейп-файла (shapefile.shp) в папке C: \ shapefile
  3. набор данных las (lasdata.las) в C: \ las

напишите следующее:

c:\fusion\polyclipdata c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las

используйте переключатель, multifileесли вы хотите, чтобы файлы las, сгенерированные из полигонов, хранились в отдельных файлах. Например:

c:\fusion\polyclipdata /multifile c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las 

используйте shapeпереключатель вместе с, multifileчтобы назвать несколько выходных файлов со значениями, встроенными в один из столбцов dbf PolyFile. Например, если вы хотите присвоить файлам имена с информацией об идентификаторе (предположим, что идентификатор находится в первом столбце шейп-файла). Написать:

c:\fusion\polyclipdata /multifile /shape:1,* c:\shapefile\shapefile.shp c:\las\clipped_data.las c:\las\lasdata.las 

Для отсечения файлов PolyClipDataLAS, использующих несколько шейп- файлов, состоящих из одной детали, см. Следующий пост:
Обрезка данных LAS несколькими шейп-файлами.

Чтобы обрезать несколько файлов las, в которых они встроены в файл .txt в качестве параметра файла данных PolyClipData, см. Следующий пост:
Обрезать данные нескольких файлов .las в файл формы многоугольника с помощью FUSION.

Для отсечения нескольких файлов с помощью шейп-файлов с помощью (с помощью LAStools Productionпанели инструментов) см. Следующий пост:
Отсечение из мозаичного набора данных LAS с помощью LASTools (для ArcGIS)

Андре Силва
источник
9

FUSION LiDAR Toolkit имеет возможности отсечения (инструмент PolyClipData) и, в отличие от LASTools, его использование не ограничено. Однако, несмотря на то, что существует некоторое хранилище SVN в SourceForge, опубликованный исходный код является неполным и очень старым. Если вы можете продолжить, не зная код и просто использовать скомпилированный двоичный файл, то FUSION вполне подойдет для этой задачи.

Михал Мацкевич
источник
Это очень интересная часть программного обеспечения, однако, можете ли вы предоставить ссылку на SVN или исходный код, который вы упомянули? Я не смог найти уведомление ни об источниках, ни о лицензионной информации . Ни на странице разработчика, ни в его руководстве, ни на каком-либо другом сайте, рекламирующем FUSION (например, лесная служба США, центр приложений дистанционного зондирования ).
lavarider
1
Вот вы: sourceforge.net/projects/fusion-lidar
Михал Мацкевич
Ты Михал, я попробую и опубликую результаты.
Аллен Бустенай
3

WhiteboxTools может обрезать файл LAS на несколько полигонов, содержащихся в шейп-файле, используя ClipLidarToPolygonинструмент. Используя сценарии Python, вы можете использовать инструмент следующим образом:

from WBT.whitebox_tools import WhiteboxTools

wbt = WhiteboxTools()

wbt.work_dir = "/path/to/data/"
wbt.clip_lidar_to_polygon(i="input.las", polygons="polygons.shp", ouput="ouput.las")

Или, если вы предпочитаете графический интерфейс, вы можете использовать плагин на основе QGIS или WhiteboxTools Runner, который распространяется ( wb_runner.py ) с двоичной загрузкой библиотеки:

Инструмент WhiteboxTools Runner ClipLidarToPolygon

WhiteboxDev
источник
2

Различные наборы задач фильтрации обычно применяются к наборам данных LiDAR (фильтрация по точечной плотности, нижнему проходу, фильтрации растительности, задачам сглаживания и т. Д.). Поскольку вы запрашиваете пространственную операцию (включающую шейп-файл), я предполагаю, что вы ищете способ обрезать ваш набор данных , то есть исключить точки, которые находятся за пределами границ полигонов, определенных шейп-файлом .

Как правило, LAStools - это мощный пакет для точечной обработки данных. Это набор инструментов командной строки, но он также имеет простой графический интерфейс и интегрируется с QGIS (и, кстати, с ArcGIS). Вы можете свободно загрузить и оценить набор инструментов - однако только его части имеют открытый исходный код (лицензия LGPL 2.1) - для частей с закрытым исходным кодом требуется лицензирование в зависимости от вашей цели. Вы должны проверить, какие условия применяются для вас.

Используйте Lasclip от LASTools (с закрытым исходным кодом, проверьте лицензирование)

Один из инструментов с закрытым исходным кодом, lasclip , точно выполняет задачу clip-by-shapefile :

lasclip: принимает в качестве входных данных файл LAS / LAZ / TXT и файл SHP / TXT с одним или несколькими полигонами (например, построение посадочных мест), отсекает все точки, которые выходят за пределы всех полигонов (или внутри некоторых полигонов), и сохраняет оставшиеся в живых указывает на выходной файл LAS / LAZ / TXT.

Использование просто:

lasclip -i input_file.las -poly polygons.shp -o output_file.las -verbose

(проверьте LADKLIP README для получения дополнительной информации по использованию, дополнительных примеров и требований к шейп-файлу)

Используйте las2las от LASTools (с открытым исходным кодом; только основные задачи обрезки )

Если программное обеспечение с закрытым исходным кодом не является опцией: инструмент las2las также может выполнять простые задачи отсечения - однако вы не можете обрезать полигон, определенный с помощью файла формы. Например, вы можете обрезать по прямоугольникам, окружностям, высоте, углу сканирования, классификации или качеству данных. (См. Его README для примеров использования и деталей.)
К сожалению, я не знаю ни одного инструмента с открытым исходным кодом, который бы соответствовал функциональности lasclip.

Используйте libLAS для доступа к файлам LAS в самодельном скрипте

LASTools основаны на библиотеке libLAS с открытым исходным кодом, лицензированной BSD . Вы можете использовать libLAS для доступа к вашим файлам LAS и фильтровать их с помощью специального скрипта, например, используя Python .

Конечно, есть и другие возможности, если вы измените ваш процесс обработки (например, преобразование LAS в растр и обрезка позже), но я думаю, что наиболее удобный способ - это работать с LAS как можно дольше и выполнять всю фильтрацию с данными облака точек. сам.

lavarider
источник
Ты отвечаешь за lavarider, я видел lasclip, это то, что я ищу, но закрытый источник не вариант, las2las заставляет меня просматривать фигуры в моем шейп-файле, он оставляет меня с liblas, и с другими решениями здесь я проверю это и
отправьте
2

Я написал пошаговое руководство по PDAL, которое демонстрирует, как выполнить эту задачу в этой среде. Пожалуйста, обратитесь к учебнику PDAL для получения дополнительной информации.

Говард Батлер
источник
Я не мог получить доступ к гиперссылке сейчас (ранее уже имел доступ), но даже если это из-за моего устройства; отредактируйте хотя бы соответствующую часть кода, которая выполняет отсечение. Конечно, хорошо иметь полное руководство на веб-сайте PDAL, но ответы не должны основываться только на внешних источниках.
Андре Сильва