458 Commits

Author SHA1 Message Date
Nyall Dawson
b30a1ff65d [FEATURE][processing] New universal 'basic stats for field' algorithm
Replaces the existing 'Basic Stats for Numeric Fields' and
'Basic Stats for String Fields' algorithms and adds support
for date/time/datetime fields.

Having a single unified algorithm allows more flexible models
where a field type may not be known in advance.

Deprecate existing basic stats algorithms
2016-12-01 16:27:20 +10:00
Nyall Dawson
b0662f908a [processing] Basic stats algs should allow non-spatial tables 2016-11-30 15:03:20 +10:00
Nyall Dawson
ab29f2de28 [processing] Use QgsStringStatisticalSummary in basic stats for strings
And also further optimise the algorithm
2016-11-30 12:47:39 +10:00
Nyall Dawson
e272bb3e9c [processing] Optimise basic stats numbers algorithm 2016-11-30 12:35:20 +10:00
Nyall Dawson
6bb4934907 [FEATURE][processing] Remove duplicate create points along lines script
This functionality is duplicated by the PointsAlongGeometry algorithm

Keep the algorithm version, since it has unit tests and supports things
like progress reports.

(marked as feature for inclusion in release notes)
2016-11-30 09:35:06 +10:00
Nyall Dawson
d4c38f9277 [FEATURE][processing] Remove duplicate fill holes algorithm
The Fill_holes script is duplicated by the DeleteHoles algorithm,
and the DeleteHoles algorithm has many advantages:
- it's a full algorithm rather than a script
- uses qgis geometry classes and maintains curves/z/m
- has unit tests
- doesn't rely on non-standard external library (shapely)

(marked as feature for inclusion in release notes)
2016-11-30 09:32:57 +10:00
Nyall Dawson
fef15e0165 [processing] Consolidate 'delete holes' algorithms
Copy min area parameter from 'Fill holes' algorithm to 'delete
holes' algorithm.

Also:

- make algorithm maintain z/m values
- make algorithm work with curved geometries
- add unit tests
2016-11-28 13:12:50 +10:00
Nyall Dawson
772b769403 [processing] Hide redundant grid creation algorithms
Condenses the duplicate grid algorithms into single algorithms
(one for line, one for polygon), taking the best bits from both
and adding tests
2016-11-24 13:18:47 +10:00
Germán Carrillo
193d400d29 Make QGIS Line Intersections algorithm able to keep all attributes. 2016-11-24 10:41:11 +10:00
Nyall Dawson
1e661e37b9 [FEATURE][processing] New 'drop geometries' algorithm
Simply removes any geometries from an input layer and returns
the features with attributes only
2016-11-24 09:41:11 +10:00
Nyall Dawson
38a0ea0844 Small tweaks to processing split algorithm, add tests 2016-11-24 08:48:37 +10:00
Bernhard Ströbl
0e2ef065d7 [processing] [FEATURE] SplitWithLines
Rename algorithm SplitLinesWithLines to SplitWithLines
Accept polygon as input, too
Use only selected lines to split with (if processing is set to use selection only)
Issue log message if trying to split multi geometries
Update help
2016-11-24 08:05:16 +10:00
Nyall Dawson
489e00df8d [processing] Enhance create points layer alg
Clean up code, allow setting z/m columns
2016-11-23 16:43:25 +10:00
Nyall Dawson
3c51a93f6a [processing] Fix very broken delete columns algorithm 2016-11-23 15:21:17 +10:00
Nyall Dawson
271e67e37b [processing] Fix import to postgis alg when table name not set (fix #15869, 15097) 2016-11-22 09:59:43 +10:00
Alexander Bruy
f70a3b9e1d [processing] move custom parameter definition inside corresponding
algorithm
2016-11-18 10:22:26 +02:00
Nyall Dawson
5e1a69fc88 [FEATURE][processing] Create attribute index algorithm
Allows creation of an index on an attribute in a layer for faster
attribute based filtering

Support depends on the underlying data provider for the layer
2016-11-18 10:56:02 +10:00
Nyall Dawson
24ffa15ecf [FEATURE][processing] Extract by attribute can extract for null/notnull values
Adds support for filtering where an attribute value is null or not null
2016-11-17 13:09:23 +10:00
Nyall Dawson
29d33b47fe [processing] Polygons to line fixes
- Maintain Z/M values
- Handle curved geometries without segmentizing
- Retain null geometries
2016-11-15 09:43:45 +10:00
Nyall Dawson
880647e50e Add some tags to algorithm 2016-11-14 15:52:41 +10:00
Nyall Dawson
b44093914b Fix test failure, report distance from pole 2016-11-14 15:52:41 +10:00
Nyall Dawson
d6f09c012e [FEATURE] Add method to calculate pole of inaccessibility for polygons
Implements a method in QgsGeometry and a processing algorithm to
calculate the pole of inaccessibility for a surface, which is the
most distant internal point from the boundary of the surface. This function
uses the 'polylabel' algorithm (Vladimir Agafonkin, 2016), which is an iterative
approach guaranteed to find the true pole of inaccessibility within a specified
tolerance. More precise tolerances require more iterations and will take longer
to calculate.
2016-11-14 15:52:41 +10:00
Martin Dobias
d729951dcd Remove caching of WKB from QgsGeometry (was kept just for compatibility)
Also improves the API to export/import WKB as QByteArray
2016-11-14 13:36:12 +08:00
Nyall Dawson
3ef7b3b7eb [processing] Use standard QGIS projection selection widget for CRS params 2016-11-13 20:34:35 +10:00
Nyall Dawson
132e76a596 [FEATURE][processing] New input type for expressions
This adds a new input type for expression inputs. Expression
inputs can be linked to a parent layer so that the builder
shows the correct fields and layer variables.

It's designed for two use cases:

1. to be used when an algorithm specifically requires an expression,
eg Select by Expression and Extract by Expression.

2. to be potentially used as a replacement input instead of string
or number literals in algorithms. Eg - if the simplify algorithm
tolerance parameter was replaced with an expression paremeter, then
this expression would be evaluated for every feature before
simplifying that feature. It would allow parameters to be calculated
per feature, as opposed to the current approach of calculating
a parameter once before running the algorithm. It would also
mean algorithms like "variable distance buffer" would no longer
be needed, as a single "buffer" algorithm could then be used
for either a fixed distance, field based, or expression based
distance.
2016-11-11 13:26:31 +10:00
Alvaro Huarte
dc800dbab7 Fix iteration of features 2016-11-11 00:28:27 +01:00
volaya
72fddb8b5e Merge pull request #3470 from arnaud-morvan/refactor_fields_context_generator
[Processing] Fix processing refactor fields algorithm using expression context generators
2016-11-08 10:45:32 +01:00
volaya
7c4e66b360 Merge pull request #3726 from arnaud-morvan/processing_various_fixes
[processing] small fixes
2016-11-08 10:30:06 +01:00
Nyall Dawson
3550cc99a6 [processing] Allow algorithms to specify tags
Tags are used while searching in the toolbox. This should help with
finding algorithms when the exact name is not known, eg
you could search for "envelope" or "bounds" and find the
'Polygon from Layer Extent' algorithm.

At the moment it's quite hard to discover algorithms which exist
when you don't know what their called and have to instead search
for every possible naming variant which could exist...
2016-11-08 10:15:31 +10:00
Nyall Dawson
4e4bb2bf6b Merge pull request #3728 from nyalldawson/open
Cleanup processing file handling
2016-11-07 13:20:13 +10:00
Nyall Dawson
8acc286b0f [FEATURE] Snap to layer algorithm accepts a mode parameter
With a new option to prefer to snap to closest point on geometry.
The old behaviour was to prefer to snap to nodes, even if a node
was further from the input geometry than a segment. The new option
allows you to snap geometries to the closest point, regardless
of whether it's a node or segment.
2016-11-07 12:20:59 +10:00
Nyall Dawson
dae0a01761 [FEATURE][processing] Snap geometries algorithm allows snapping
to other layer types, supports point/line layers

Fix #14791, #15313
2016-11-07 12:20:59 +10:00
Nyall Dawson
c3a978b9da [FEATURE][processing] Snap geometries to layer algorithm
Port the Geometry Snapper plugin across to the analysis lib, and
expose to python bindings

Add a new algorithm which performs the snapping to layers
2016-11-07 12:20:59 +10:00
Nyall Dawson
6a99017bf0 [processing] Use with ... when opening files 2016-11-07 11:36:38 +10:00
Nyall Dawson
eefa7115bf [processing] Fix invalid geometries made by densify when input geom is null 2016-11-07 09:22:50 +10:00
arnaud.morvan@camptocamp.com
78236c0be1 Use contextGenerator in refactor fields algorithm 2016-11-06 18:11:15 +01:00
arnaud.morvan@camptocamp.com
93be141af5 [processing] Fix import error in FieldsMappingPanel 2016-11-06 13:03:06 +01:00
nirvn
03e29d4f01 [processing] optimise singlepart to multipart algorithm
- keep z/m/curved geometries intact
- rewrite loop to avoid the cost of nb. feature x unique values
2016-11-03 09:05:31 +07:00
Nyall Dawson
a44ea22880 Small refinement to multipart to singlepart alg 2016-11-03 05:40:11 +10:00
Alexander Bruy
5d877fd888 Merge pull request #3707 from nyalldawson/multipart_to_single
[processing] optimise multipart to singlepart algorithm
2016-11-02 10:06:25 +02:00
Nyall Dawson
18fc0c6fad [processing] optimise multipart to singlepart algorithm
- simplify code
- keep z/m/curved geometries intact
- might be a bit faster
2016-11-02 16:06:00 +10:00
Nyall Dawson
f65e770242 [FEATURE[processing] New algorithm to compute geometry by expression
This algorithm updates existing geometries (or creates new
geometries) for input features by use of a QGIS expression. This
allows complex geometry modifications which can utilise all the
flexibility of the QGIS expression engine to manipulate and create
geometries for output features.
2016-11-02 16:05:46 +10:00
Nyall Dawson
a117df2205 Merge pull request #3656 from nirvn/processing_import_to_spatialite
[processing] add "Import into Spatialite" algorithm
2016-10-31 09:14:19 +10:00
Nyall Dawson
82312e10e4 [FEATURE][processing] New algorithm to extract specific nodes
This algorithm allows you to extract specific nodes from geometries.
Eg you can extract the first or last node in the geometry.

The algorithm accepts a comma separated list of node indices to
extract, eg 0 = first node, 1 = second node, etc. Negative indices
can be used to extract nodes from the end of the geometry. Eg
-1 = last node, -2 = second last node.
2016-10-31 07:56:24 +10:00
Nyall Dawson
8dab2cd4d7 [FEATURE][processing] New algorithm to extend lines
Allows extending linestrings by a set distance at the start
and end of the line
2016-10-31 07:56:24 +10:00
Nyall Dawson
c494c472ac Merge pull request #3690 from nyalldawson/extract_by_exp
[FEATURE][processing] New extract by expression algorithm
2016-10-30 08:23:40 +10:00
nirvn
121f48d654 [processing] add import into spatialite algorithm 2016-10-29 09:33:47 +07:00
Nyall Dawson
74e64645e4 [FEATURE][processing] New extract by expression algorithm
Filters an input layer by expression
2016-10-29 08:05:26 +10:00
Paolo Cavallini
79e5911e07 Update RegularPoints.py
Fixes #15773
2016-10-28 09:11:28 +02:00
volaya
b58229009b indentation fix 2016-10-27 14:36:31 +02:00