1286 Commits

Author SHA1 Message Date
Nyall Dawson
43cd62b62f [processing] Tweak api for QgsProcessingFeatureBasedAlgorithm
Instead of returning a single QgsFeature from processFeature, we now
return a list of features.

This allows feature based algorithms which return multiple features
per input feature, e.g. "explode" type algorithms which split a
single input feature into multiple output features.
2018-02-21 09:16:43 +11:00
Nyall Dawson
c07f37a5cb [processing] Select by expression/attribute can run on geometryless layers 2018-02-20 10:03:27 +11:00
Juergen E. Fischer
2c53630747 add missing copyright headers 2018-02-18 20:53:40 +01:00
nirvn
3836cd32f0 followup 6dfedc3, fix processing tests 2018-02-16 10:33:53 +07:00
Juergen E. Fischer
b6111d296e fix 6dfedc38 2018-02-16 01:34:58 +01:00
Juergen E. Fischer
6dfedc38e9 translation string fixes and cleanups 2018-02-15 22:31:15 +01:00
Nyall Dawson
12fcfac0d5 [processing] Ensure algorithms which add attributes to features
always add a consistent amount of attributes regardless of the
code paths taken

Some algorithms were adding features to data providers with
different number of attributes vs the layer's fields - this is
not supported and depending on the data provider will have
different (bad) results.
2018-02-15 17:45:00 +11:00
Nyall Dawson
a8110369a8 [processing] Don't throw an exception if an expression cannot
be prepared

There's cases where this happens without reflecting an invalid
expression. So we can try to prepare, but not abort if the
preparation fails.

Fixes #18103
2018-02-15 15:43:26 +11:00
Nyall Dawson
2defaff796 [processing] Much faster random points in polygon by using
prepared geometries
2018-02-15 09:14:01 +11:00
Nyall Dawson
81aa2f956e [processing] Misc fixes and improvements to Random Points in Polygons
- Fix missing format call for string when calculated number
of points is 0
- Fix incorrect progress reports which were spamming the dialog
and causing UI hangs, and slow algorithm execution
2018-02-15 09:14:01 +11:00
Nyall Dawson
e0cf578096 [processing] Add some missing sources to expression contexts 2018-02-15 09:14:01 +11:00
Nyall Dawson
8154a85f29 Fix Python exception in Random Points in Polygon alg
Fixes #18103
2018-02-15 09:14:01 +11:00
Nyall Dawson
54a99c27a3 [processing] Add multi layer outputs to Package Layers and Vector Split algorithms 2018-02-11 11:00:33 +10:00
nirvn
9562b9dad2 [processing] only pass needed raster entries in QgsRasterCalculator constructor 2018-02-09 14:05:26 +07:00
nirvn
e27847d383 [processing] make output crs optional in the raster calculator 2018-02-09 14:05:26 +07:00
nirvn
c4874b3161 [processing] use feedback object in raster calculator 2018-02-09 14:05:26 +07:00
nirvn
2ed225d5f4 [processing] ressurect raster calculator and add CRS parameter 2018-02-09 14:05:26 +07:00
Alexander Bruy
fcb50a6857 Revert "[processing] throw error if no layers selected in raster calculator"
This reverts commit c09c3018035eb7a4f47acbde7f3dae405ba444db.
2018-02-08 13:25:20 +02:00
Alexander Bruy
23a5dd3197 [processing] fix file permissions 2018-02-06 19:25:48 +02:00
Denis Rouzaud
3dc3d9d1b2 unite QgsMessageLog::Level and QgsMessageBar::MessageLevel in Qgis::MessageLevel
make enum items lower case
remove unused QgsMessageLog::None and All
2018-02-06 08:56:40 -04:00
Alexander Bruy
15a185dab0 [processing] turn keep n biggest parts script into normal algorithm 2018-02-05 08:50:44 +02:00
Alexander Bruy
422d804db1 [processing] update script provider to use QgsProcessingAlgorithm
subclasses instead of custom script code
2018-02-05 08:49:59 +02:00
Nyall Dawson
5ba69ea945 [processing] Fix invalid parameter definitions for spatialite algs 2018-02-05 10:11:03 +10:00
Alexander Bruy
55759a4cee [processing] remove unused icons and use SVG icon for Heatmap algorithm 2018-02-01 07:22:12 +02:00
Nyall Dawson
216821c0b1 [processing] Warn on duplicate output and provider registration
And fix associated memory leaks
2018-02-01 13:02:59 +11:00
Mathieu Pellerin
e0c12d519f
[processing] nodes -> vertices algorithm renaming
- "Extract nodes" renamed to "Extract vertices"
- "Extract specific nodes" renamed to "Extract specific vertices"
2018-01-29 19:16:43 +07:00
Nyall Dawson
a05d941e4e [processing] Default to allowing background execution of algorithms
Since the underlying issues with the Python bindings are now fixed,
in most cases we can safely default to allowing an algorithm to
run in a background thread!!

So now we make this the default, and require individual algorithms
which are NOT thread safe to declare this. This includes algorithms
which directly manipulate the current project or layers (such as
setting layer styles), alter the selections in layers, or which
rely on 3rd party libraries (for now, SAGA and GRASS algorithms
are marked as not thread safe... TODO - someone more familiar with
these libraries can investigate and remove the flag if appropriate).

Also models are marked as non-thread safe. TODO: only flag an
individual model as thread-unsafe if any of its child algorithms
report this flag.
2018-01-29 17:37:05 +11:00
Alexander Bruy
c09c301803 [processing] throw error if no layers selected in raster calculator
algorithm (refs #17920)
2018-01-23 10:38:59 +02:00
Mathieu Pellerin
aaf97933c2
[needs-docs][processing] merge grid algorithms and add point grid type 2018-01-23 13:54:53 +07:00
Nyall Dawson
c87f5aad1b [processing] Fix misleading errors in grid algorithms 2018-01-23 12:35:29 +11:00
Nyall Dawson
b8e1f7707c [processing] Port 'Add unique value index field' to c++
And implement some fixes/improvements (refs discussion on the dev mailing list):
- allow user to specify created field name
- allow optional creation of a summary table showing new class value vs original
value
2018-01-23 12:18:55 +11:00
Nyall Dawson
17478ea51a [processing][needs-docs] Hide variable distance buffer from toolbox
This algorithm has become a model-only algorithm, since it's
functionality is now present in the native c++ buffer algorithm
(which can now buffer by field or expression).

Ideally we'd remove this algorithm entirely, but data defined
parameters are not yet supported by the modeler gui, so we need
to keep it around for use in models for now.
2018-01-16 21:21:38 +10:00
Nyall Dawson
95db682acf [processing][needs-docs] Drop Fixed Distance Buffer algorithm
Since it's functionality is a subset of the native c++ "buffer"
algorithm, it's no longer required.
2018-01-16 21:21:38 +10:00
Alexander Bruy
eb7a187a88 [processing] add missed imports (fix #17843) 2018-01-15 20:13:38 +02:00
Alexander Bruy
7cad24d82f [processing] improve layout of the raster calculator dialog 2018-01-15 19:25:08 +02:00
Alexander Bruy
490aad112f [processing] quote layer names in raster calculator (fix #17847) 2018-01-15 19:25:08 +02:00
volaya
418d58752f [processing] added missing method to custom field calculator dialog
A much better way of doing this would be to have the dialog extend qgsprocessingalgorithmdialogbase, or to take an approach like the one used in the raster calculator, with wrapper widgets.
This is just a patch, since that option might require a larger amount of work.
2018-01-15 14:56:36 +01:00
Alexander Bruy
e67aaf9a26 [processing] rename QGISAlgorithmProvider to QgisAlgorithmProvider to be
consistent with our guidelines
2018-01-15 11:59:01 +02:00
Nyall Dawson
57c2f1d3da Refine algorithm name and tags 2018-01-09 14:35:48 +10:00
Nyall Dawson
f6d561655b Fix some numeric parameters which should be doubles 2018-01-09 14:34:57 +10:00
Trashmonk
d908518c49 Update Rasterize.py 2017-12-21 17:55:02 +01:00
Trashmonk
82df4de88a Update Rasterize.py 2017-12-21 17:55:02 +01:00
Trashmonk
4fbea38439 Added transparency to areas with no vector data.
Originally the background colour defaulted to white with no transparency for areas without vector data. I have added an alpha channel to the geotiff and set it zero (full transparency) for areas with no vector data. This could be optional, in case the user wants a solid background.
2017-12-21 17:55:02 +01:00
Nyall Dawson
4643712a1e Fix missing transform contexts for QgsDistanceArea
QgsDistanceArea.setSourceCrs() now requires a QgsTransformContext
argument.
2017-12-20 17:37:46 +10:00
Nyall Dawson
6528f1c307 Require a transform context when setting the destination crs for
a feature request

Forces correct datum handling for these requests, and removes
a few more uses of the deprecated/datum unaware transforms.
2017-12-20 12:32:20 +10:00
Nyall Dawson
0c7cf21fe2
Merge pull request #5535 from nyalldawson/datum
Datum transform handling rework, pt 1
2017-12-15 22:53:02 +11:00
Nyall Dawson
5b1da988ba [processing] List unique values improvements
- allow running on non-spatial tables
- allow choice of more than one field
2017-12-15 15:46:50 +11:00
Nyall Dawson
86d9492372 Remove context-unaware QgsCoordinateTransform constructors from Python bindings
This forces Python code and plugins to become datum transform
aware, and given that upgrading python code is easy (just
add QgsProject.instance() as a new argument to the constructor)
it's relatively painless to force this on PyQGIS users.

Also fix upgrade the easy QgsCoordinateTransform c++ constructors
where the project is available, or where using QgsProject::instance()
is safe to do.

For others, just avoid the deprecated warnings until we can
get access to the correct project instance where the transform
is being constructed.
2017-12-15 14:13:22 +10:00
Alexander Bruy
dca37abd0e [processing] add group id to QGIS algorithms 2017-12-14 18:04:12 +02:00
Matthias Kuhn
b619dcb00a Refactor fields configuration in the modeler does not insist on layer
Inside the modeler, there is not enough knowledge about the layer on
which the refactor fields algorithm will run.
Let's be graceful with error messages here therefore.
2017-12-14 09:04:07 +01:00