[Qgis-psc] QGIS grant report: Porting to C++ and harmonization of Processing algorithms

Martin Dobias wonder.sk at gmail.com
Mon Oct 23 05:15:21 PDT 2023


Hi PSC,

We are pleased to announce that the QGIS Porting to C++ and Harmonisation
of Processing Algorithms grant is now complete. You can read about the
motivation behind this work at
https://github.com/qgis/QGIS-Enhancement-Proposals/issues/271.

The work has been completed with several pull requests:

 * Port various geometry algorithms to C++
https://github.com/qgis/QGIS/pull/53787
 * Port Align Rasters tool to Processing
https://github.com/qgis/QGIS/pull/53874
 * Port Raster Calculator algorithm to C++
https://github.com/qgis/QGIS/pull/54035
 * Port XYZ Tiles algorithms to C++ https://github.com/qgis/QGIS/pull/54321

Existing Processing algorithms Voronoi Polygons and Delaunay Triangulation
have been ported to C++ and now use GEOS instead of the unmaintained Python
module. Both algorithms have been given additional parameters to disable
post-processing step (adding attributes of input points for Voronoi
polygons and adding feature IDs of the 3 points forming a triangle for
Delaunay triangulation) and thus improve algorithm performance. The Concave
Hull algorithm has been ported to C++ and uses GEOS for QGIS builds with
GEOS >= 3.11, while a port of the existing implementation based on Delaunay
triangulation is used for builds with older GEOS versions.

Two algorithms for generating XYZ tiles (directory and MBTiles variants)
have been ported to C++ using a safer and cleaner multi-threading approach.

The Align Rasters tool (available from the Raster → Align Rasters menu),
which was not exposed to Processing, has been removed and a new Processing
algorithm with the same functionality has been added. To make this
possible, we have added a new `QgsProcessingParameterAlignRasterLayers`
parameter type to Processing, which provides an adapter to
`QList<QgsAlignRaster::Item>`.
The "Raster" menu item now opens the Processing algorithm. We have also
added a separate, simplified modeler-only version of the algorithm that
accepts a single raster to align and returns a single raster layer output.

The existing Raster Calculator algorithm has been ported to C++. The
algorithm now has two variants: a toolbox version that works the same way
as before, and a modeler version that uses the same approach to input
naming as the GDAL raster calculator (in the formula, you should use
letters instead of layer names). The old algorithm implementation has been
retained for compatibility with existing models and will be removed in QGIS
4. We have also added a separate raster calculator algorithm for creating
virtual raster layers.

Many thanks to QGIS.org for supporting this work!

Regards
Alex + Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-psc/attachments/20231023/63b4e86f/attachment.htm>


More information about the QGIS-PSC mailing list