qgis / QGIS-Enhancement-Proposals

QEP's (QGIS Enhancement Proposals) are used in the process of creating and discussing new enhancements for QGIS
118 stars 37 forks source link

Add native point cloud Processing provider #263

Open alexbruy opened 1 year ago

alexbruy commented 1 year ago

QGIS Enhancement: Add native point cloud Processing provider

Date 2023/02/20

Author Alexander Bruy (@alexbruy)

Contact alexander dot bruy at gmail dot com

Maintainer @alexbruy

Version QGIS 3.32

Summary

With acceptance of QEP #194 Point Clouds in QGIS point clouds became a first class citizen in QGIS with own layer type, data provider and renderer. However, native data management and analysis possibilities for point clouds remain quite limited, especially when compared to raster, vector and mesh layer types.

There are some 3rd party plugins offering tools for point cloud processing, however all of them require installation of additional packages, which sometimes can be platform-dependent. All this puts point cloud layers in unequal position and makes the user's life harder.

Proposed Solution

It is proposed that a new native Processing provider with the set of point cloud algorithms will be implemented.

Under the hood these algorithms will use pdal_wrench command line tool, which is build on top of PDAL pipelines and provides basic data processing and export functionality (merge, translate, thin, etc). The pdal_wrench code will be integrated in the QGIS source code, like already done with the untwine tool.

The new Processing provider will be build only when QGIS is build with the PDAL support. If present, provider will be enabled by default and available for use both via QGIS GUI and qgis_process command line tool.

As a first step the following tools will be implemented:

Why pdal_wrench?

There are several reasons to use pdal_wrench instead of using PDAL API and building pipelines:

Affected Files

Most of the development will be done in new files, e.g. src/analysis/processing/pdal/*.h|cpp

Further Considerations/Improvements

When more tools will be added to pdal_wrench, they can be exposed via Processing provider as well.

Once QGIS gets Virtual Point Clouds (VPC) support, provider can be updated to read/write VPC files.

nyalldawson commented 1 year ago

Looks good to me!

roya0045 commented 1 year ago

Does the proposal integrates/considers the changes that will be needed to have everything in the modeler or will this be a distinct proposal?

Out of curiosity, once it comes to the modeler, would it be a good idea to convert the alg into a PDAL pipelien or would it be better to use wrench and generate outputs sequentially?