[QGIS-Developer] QGIS 3 > Processing: some test

Giovanni Manghi giovanni.manghi at gmail.com
Mon Jun 19 02:19:05 PDT 2017


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 --


More information about the QGIS-Developer mailing list