Hi Nyall, >> Our (hopefully friendly!) rivalry on this point continues :) I think I >> can win you over for 3.0 when we widely rollout the massive benefits >> which are possible only in native algs, such as the support for >> dynamic parameters. But we'll see.... >> > > By the way - I'd love to see you re-run your earlier benchtests after > of native vs non-native algs after > https://github.com/qgis/QGIS/pull/4707 is merged! For me that PR makes > a ridiculously huge improvement in using processing with memory > layers.
I waited a Windows osgeor4w master build that included your new native c++ dissolve tool. I tested it (on the same platform and conditions) against qgis 2.18.9 nightly, that also write debug output. Using https://www.dropbox.com/s/ncj4ysh15xrnm45/caop.zip?dl=0 and dissolving by "distrito" the ogr2ogr based tool is 2/3 seconds faster than the new native one. Using: https://www.dropbox.com/s/qr8md49cy5u8vrf/clip.zip?dl=0 which is a clip of a much larger and complex layer, and dissolving by "aaaaa" (sorry for the column name), the ogr 2ogr based tool does the job in about 20 seconds. The new native dissolve tool runs for a split second and outputs a few polygons in vastly incomplete result. Trying to dissolve all polygons (and operation that the ogr2ogr based tool does with no issues) with the native tool it results in a python error and and infinite running hourglass. ``` An error has occurred while executing Python code: SystemError: returned a result with an error set Traceback (most recent call last): File "C:/OSGEO4~1/apps/qgis-dev/./python/plugins\processing\tools\dataobjects.py", line 84, in raise_error 'Features with invalid geometries found. Please fix these geometries or specify the "Ignore invalid input features" flag')) processing.core.GeoAlgorithmExecutionException.GeoAlgorithmExecutionException: Message: | Features with invalid geometries found. Please fix these geometries or specify the "Ignore invalid input features" flag Stack: None The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:/OSGEO4~1/apps/qgis-dev/./python/plugins\processing\gui\AlgorithmDialog.py", line 246, in accept result = executeAlgorithm(self.alg, parameters, context, feedback) File "C:/OSGEO4~1/apps/qgis-dev/./python/plugins\processing\core\GeoAlgorithm.py", line 338, in executeAlgorithm result = alg.run(parameters, context, feedback) SystemError: returned a result with an error set ``` Interesting the massage "Features with invalid geometries found. Please fix these geometries or specify the "Ignore invalid input features" flag" because the option is not available in the tool. I still strongly argue that anyway -if it is really a problem of bad geometries- we miss a clear suggestion and workflow to allow the user solve this situation. In my point of view the option in such tools should not be "skip the invalid geometries" but to *fix* them. cheers! -- G -- _______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
