Я рекомендую PDAL точку бібліотеки абстракції даних. Я мав добрий успіх у використанні PDAL для подібної проблеми з фільтрацією. Мені подобається PDAL, оскільки він є відкритим кодом, забезпечує підтримку Python та полегшує мені відтворення обробки та відстеження моїх параметрів фільтрації. Мені це також подобається, оскільки в ньому є "трубопроводи", де ви можете з'єднати кілька кроків (наприклад, обрізати, потім відфільтрувати, а потім експортувати) та виконати їх відразу. Зауважте, що якщо у вас дійсно, дійсно великі хмари точок PDAL можуть бути не настільки швидкими, як деякі інші рішення (LASTools, QTM тощо).
Ви можете вирішити питання про вихідні точки за допомогою трубопроводу PDAL, подібного до наступного:
{
"pipeline": [
"input_utm.las",
{
"type":"filters.crop",
"bounds":"([401900,415650],[7609100,7620200])"
},
{
"type":"filters.outlier",
"method":"statistical",
"mean_k":12,
"multiplier":2.0
},
{
"type":"filters.range",
"limits":"Classification![7:7]"
},
{
"filename":"output.tif",
"resolution":1.0,
"output_type":"mean",
"radius":3.0,
"bounds":"([401900,415650],[7609100,7620200])",
"type": "writers.gdal"
}
]
}
Цей конвеєр зчитується в LAS, обрізає його до визначеної міри UTM, потім виконує фільтр, який позначає всі відмінні точки, потім виконує другий фільтр, який зберігає лише не відмінні точки (тобто прапор Класифікації! = 7), після чого експортує в 1 m роздільною здатністю GeoTIFF. Статистичний фільтр проводить обчислення середньої відстані найближчого сусіда, щоб перевірити, чи "точка" занадто далека від своїх сусідів, а отже, і більше.
З документації :