1822 Commits

Author SHA1 Message Date
Nyall Dawson
55ce31b371 When calling procesing.run(), map layer results are automatically
converted to QgsMapLayer objects with the ownership transferred
to the Python caller

This should make it super-easy for PyQGIS scripts to run processing
algorithms and immediately utilise the results, even if they
are memory layers. They call processing.run(), and get a dict of
results back which includes those layers ready for adding to the
current project or doing some other processing or operations
with, and if they don't transfer to ownership off then these
layers will be correctly garbaged collected by Python.
2017-07-07 09:28:20 +10:00
Nyall Dawson
a2af3a9345 Make concave hull alg more efficient
- remove temporary layers from context, delete them as soon as they
are finished with
- directly remove features via data provider, instead of selecting
and using edit buffer
- use native geometry methods for splitting to single features
and removing rings
2017-07-07 09:28:20 +10:00
Nyall Dawson
db816ec3fe Port a multi-step algorithm to new API (concave hull) 2017-07-07 09:28:20 +10:00
Nyall Dawson
a15d283cd6 Port delaunay triangulation alg to new API 2017-07-07 09:28:19 +10:00
Nyall Dawson
75cd91b1a0 Port voronoi polygons algorithm to new API 2017-07-07 09:28:19 +10:00
Nyall Dawson
90f10ae853 Port snap geometries algorithm to new API 2017-07-07 09:28:19 +10:00
Nyall Dawson
8a84e134cc Algorithms don't have to be split to prepare/process/postProcess
Since it's safe to evaluate parameters in background threads
now, it's usually going to be ok to evaluate everything in
the processAlgorithm step.

This keeps the algorithm code as simple as possible, and will
make porting faster.

Note that the prepare/postProcess virtual methods still exist
and can be used when an algorithm MUST do setup/cleanup work
in the main thread.
2017-07-07 09:28:19 +10:00
Nyall Dawson
3108d68f87 Indentation 2017-07-07 09:28:19 +10:00
Nyall Dawson
4fa2bc025c Keep correct order for zonal stats options, set some stats by default 2017-07-07 09:28:19 +10:00
Nyall Dawson
4eca20f28d Fix zonal stats algorithm execution 2017-07-07 09:28:19 +10:00
Nyall Dawson
8cfcf57541 Fix tests 2017-07-07 09:27:35 +10:00
Nyall Dawson
e0c7daa2d8 Rename QgsProcessingAlgorithm::clone to ::create
Since it better describes what the function does. It returns a new
pristine copy of the algorithm, not a clone of its current state
2017-07-07 09:27:35 +10:00
Nyall Dawson
cd7776ca1c Upgrade ported python algs to be thread ready 2017-07-07 09:27:35 +10:00
Nyall Dawson
1b2afea23e Add some more clone methods to algorithm subclasses 2017-07-07 09:26:17 +10:00
Harrissou Sant-anna
450eb7c24a Spelling check: Replace analyse by analyze 2017-07-02 22:28:50 +02:00
nirvn
26d9c74bc4 [processing] keep only one zonal statistics algorithm 2017-06-29 11:53:04 +07:00
Nyall Dawson
144d733b12 Use a QgsFeedback instead of QProgressBar for QgsNineCellFilter
Gives progress reports and allows cancelation of processing
aspect algorithm
2017-06-29 08:03:57 +10:00
Nyall Dawson
d1a93e0e13 Restore points layer from table algorithm 2017-06-28 17:38:17 +10:00
Mathieu Pellerin
a6b14a0b40 [processing] restore zonal statistics (qgis) alg (#4784) 2017-06-27 18:09:44 +07:00
Nyall Dawson
ae829857ca Restore select by expression algorithm 2017-06-27 13:18:22 +10:00
Nyall Dawson
3a9a0efc33 Resurrect select by attribute algorithm 2017-06-27 11:42:58 +10:00
Nyall Dawson
96c5453ae2 Restore save selected features algorithm 2017-06-27 11:11:54 +10:00
Nyall Dawson
86d33c1875 Restore frequency analysis script
This script has been changed to use a sink output, not the previous
TableWriter csv output.

All algorithms which output flat tables should now still output
feature sinks, to allow correct use in later model steps.
2017-06-27 08:33:13 +10:00
Nyall Dawson
a72eea2256 Fix auto creation of variables when running script algorithms 2017-06-27 08:33:13 +10:00
Nyall Dawson
53e9538ad3 Restore keep n biggest parts script 2017-06-27 08:33:13 +10:00
Nyall Dawson
f13920bb19 First steps in resurrecting script algorithms 2017-06-27 08:33:13 +10:00
Nyall Dawson
d16f117b6c Port conversion to/from script code to c++ 2017-06-27 08:33:13 +10:00
nirvn
1730bc95d1 [processing] include invalid geometries in check validity alg 2017-06-26 10:53:12 +07:00
Mathieu Pellerin
fa8b216eb6 [processing] restore import into spatialite & spatialite execute sql 2017-06-26 10:22:51 +07:00
Nyall Dawson
b88ad8e1ce Port Fix Geometry algorithm to new API 2017-06-26 12:44:26 +10:00
Nyall Dawson
cc3de626c9 Followup 7ae1ee9, update name 2017-06-26 12:19:43 +10:00
Nyall Dawson
7ae1ee975d Add sourceName() method to QgsFeatureSource
Sometimes it's necessary to retrieve the name of a source...
2017-06-26 12:15:01 +10:00
Nyall Dawson
471776614c Remove misleading icon from vector split algorithm
The algorithm doesn't split geometries - it seperates features
into different layers without altering the geometry
2017-06-24 14:00:49 +10:00
Nyall Dawson
fbcb97c25a Rename 'delete column' alg to 'Drop field(s)' (for consistency) 2017-06-24 14:00:42 +10:00
Nyall Dawson
b1cadb1822 Use generic algorithm icon for qgis algorithms which do not
have specific icons, instead of generic qgis icon

We consider these 'top level' algorithms, and using the
standard algorithm icon should help reflect this and
differentiate them from 3rd party algorithms.
2017-06-24 12:01:20 +10:00
Nyall Dawson
3249015fe1 Fix copy/paste error 2017-06-24 07:36:36 +10:00
Mathieu Pellerin
b7e66b4f72 [processing] restore simplify geometries & smooth algorithms (#4766) 2017-06-23 14:46:40 +07:00
Nyall Dawson
81855a715b Use FastInsert when adding features from processing 2017-06-23 14:34:38 +10:00
Nyall Dawson
99cfb8faf3 Fix processing algs crash when no source features exist
Instead we output an empty layer - this may be critical for
multi-step models where there is validly no features present
in a source layer
2017-06-23 13:49:32 +10:00
Nyall Dawson
3232ef9678 Restore random extract + Random Extract within subsets algs 2017-06-22 18:23:38 +10:00
Nyall Dawson
45eac05a25 Restore vector split algorithm 2017-06-22 18:23:07 +10:00
Nyall Dawson
6be4875a82 Restore symmetrical difference alg 2017-06-22 18:21:16 +10:00
Nyall Dawson
66d1a588ae Restore regular points alg 2017-06-22 18:20:56 +10:00
Nyall Dawson
c33f94002d Restore Postgis Execute SQL alg 2017-06-22 18:20:36 +10:00
Nyall Dawson
38f1d9c7e6 Restore import into postgis algorithm 2017-06-22 18:20:14 +10:00
Nyall Dawson
33aa798c2a Make 'merge' algorithm store the original layer name and source 2017-06-22 18:18:22 +10:00
Nyall Dawson
00ead638ee Cleanup alg imports 2017-06-22 18:17:56 +10:00
Nyall Dawson
432dd9dd90 Remove deprecated algorithms
Removed:
- Basic Stats for Numbers/String algs (replaced by generic
Basic Stats alg)
- Split Lines with Lines (replaced by generic Split with lines)
- Vector Grid Lines/Polygons (replaced by other create grid
algs)
2017-06-22 18:16:52 +10:00
Nyall Dawson
2d3d9b4ce7 Remove python algs where a native alg exists
Removed python algs are:
- Centroids
- Clip
- Dissolve
- Extract by attribute
- Extract by expression
- Multipart to singlepart
- Polygon centroids
- Reproject layer
2017-06-22 18:16:02 +10:00
Nyall Dawson
a87ca09e34 Move some temp file/folder utils to c++ 2017-06-22 06:48:25 +10:00