379 Commits

Author SHA1 Message Date
Nyall Dawson
16c4f830b3 [FEATURE] New algorithm for 'collecting' geometries
This is basically the equivalent of the dissolve algorithm, but
instead of a dissolving overlapping geometries the geometries
are instead just collected together into a multipart geometry.

It's designed to slot between the 'promote to multipart' algorithm
(which performs no collection of geometries - it just converts
singleparts to multiparts with 1 part) and the more complex
all-encompassing 'aggregate' algorithm.
2017-09-05 19:41:27 +10:00
Nyall Dawson
3484eb019c [FEATURE] Native 'Promote to Multipart' algorithm
This algorithm is basically the equivalent of the ST_Multi(...)
command - it forces a feature's geometry to become multipart,
regardless of the input geometry type.

If input geometries are singlepart, they will output as
multipart with just 1 part. If they are already multipart,
they will be output unchanged.
2017-09-05 19:40:35 +10:00
Nyall Dawson
5d504dcafb Unify processing "polygon from layer extent" algorithms
Now that the extra features of the "polygon from vector layer extent"
algorithm are covered by the new "Minimum bounding geometry" algorithm,
we can replace the previous two "polygon from vector extent" and
"polygon from raster extent" algorithms by a single "polygon
from layer extent" algorithm.
2017-09-04 08:42:03 +10:00
Nyall Dawson
95eab5127f Remove redundant algorithms 2017-09-04 08:42:03 +10:00
Nyall Dawson
85cd1c1673 [FEATURE] Split minimum enclosing geometry algs into separate
feature based algorithms

Instead of algorithms which handle both whole layers/groups
of features/individual features, we leave the whole layer
and group of features handling to the "Minimum bounding
geometry" algorithm.

The feature-by-feature algorithms are now native c++
algorithms.

This affects:
- bounding boxes
- convex hulls
- minimum enclosing circle
- minimum oriented rectangles
2017-09-04 08:42:03 +10:00
Nyall Dawson
83affdc7f5 [FEATURE] New processing algorithm "minimum bounding geometry"
This algorithm creates geometries which enclose the features
from an input layer.

Numerous enclosing geometry types are supported, including
bounding boxes (envelopes), oriented rectangles, circles and
convex hulls.

Optionally, the features can be grouped by a field. If set,
this causes the output layer to contain one feature per grouped
value with a minimal geometry covering just the features with
matching values.
2017-09-04 08:42:03 +10:00
lbartoletti
e30f7044c9 [FEATURE][Processing] Minimal enclosing circle 2017-09-03 07:37:53 +10:00
Nyall Dawson
9fa12ac57f Merge pull request #5090 from nyalldawson/raster_layer_extent
[FEATURE] New algorithm for creating vector layer from raster layer's extent
2017-08-31 09:02:32 +10:00
Nyall Dawson
d0fea64b23 Port GDAL info alg to new API 2017-08-30 17:44:52 +10:00
Nyall Dawson
bb5a499c23 Fix generation of processing tests on Windows 2017-08-30 15:25:11 +10:00
Nyall Dawson
8dde180f3f Rename parameter for consistency with other algs 2017-08-30 14:42:19 +10:00
Nyall Dawson
44e7f3371e [FEATURE] New algorithm for creating vector layer from raster layer's extent
Allows creation of a new vector layer with a single feature containing
a raster layer's extent. Previously this was only possible for
vector layers.
2017-08-30 14:40:21 +10:00
Nyall Dawson
641d78bb4c Add new raster hash for hillshade test (verified ok) 2017-08-25 16:21:42 +10:00
Nyall Dawson
bcc662722b Upgrade Convert Geometries algorithm to maintain Z/M, curves were possible 2017-08-20 18:21:03 +10:00
Nyall Dawson
8da29c06b4 Fix test reference file 2017-08-20 18:21:03 +10:00
Nyall Dawson
51f8b1a2bb Port Convert Geometry Type to new API
Includes partial support for Z/M types (values are lost during
conversion, but at least 2d geometries are exported)

TODO: full support for Z/M/curves
2017-08-20 18:21:03 +10:00
Nyall Dawson
4d242c5673 Partial port of raster calculator to new API
TODO: modeler handling
2017-08-20 18:21:03 +10:00
Nyall Dawson
338ee36b1d Port Execute SQL to new API, add test 2017-08-20 18:21:03 +10:00
Nyall Dawson
cfb926a70d Port Find Projection alg to new API
Also modify alg to export a vector table of candidates instead of
a HTML list, since a vector table is more useful inside of
models and can be used for further analysis steps.
2017-08-20 18:21:03 +10:00
Nyall Dawson
a56725f76e Resurrect Python Field Calculator algorithm, add test 2017-08-20 18:21:02 +10:00
Nyall Dawson
6144b1c5d9 Resurrect Field Calculator algorithm, add test 2017-08-20 18:21:02 +10:00
Nyall Dawson
000c86e7de Restore TIN interpolation algorithm 2017-08-19 04:56:48 +10:00
Nyall Dawson
a07ea33340 Port IDW Interpolation alg to new API 2017-08-19 04:03:50 +10:00
Nyall Dawson
076fdc9449 Port rectangles, ovals, diamonds to new API 2017-08-19 02:37:39 +10:00
Nyall Dawson
f6600f23aa Port raster relief alg to new API 2017-08-19 00:01:58 +10:00
Nyall Dawson
c4011ad337 Port oriented minimum bounds to new API 2017-08-18 15:22:13 +10:00
Nyall Dawson
7dbfc5202f Merge pull request #4210 from arnaud-morvan/processing_aggregate
[processing] [needs-docs] Add aggregate algorithm
2017-08-18 00:28:35 +10:00
Nyall Dawson
7b2250bb35 Convert processing tests to use native algs where they exist 2017-08-17 20:20:58 +10:00
arnaud.morvan@camptocamp.com
4b5d81b370 [processing] Add Aggregate algorithm 2017-08-16 10:46:15 +02:00
Mathieu Pellerin
a9d8d395d2 [processing] restore near black and hillshade gdal algs (#5028) 2017-08-16 11:26:10 +07:00
Denis Rouzaud
19efee8a61 alog:along typo (#5025) 2017-08-15 18:21:35 +02:00
Nyall Dawson
aece517c50 Avoid duplicate geometry columns, invalid geometry column name in gdal points along lines alg 2017-08-15 20:58:08 +10:00
arnaud.morvan@camptocamp.com
b3a9e46cfe [processing] Port refactor fields to new API 2017-08-14 13:48:50 +02:00
Nyall Dawson
f9750dde52 Port gdal color relief to new API 2017-08-14 05:55:50 +10:00
Nyall Dawson
1cbbbc4b83 Port gdal tri alg to new API 2017-08-14 05:49:18 +10:00
Nyall Dawson
1cbbb8a0fb Port gdal aspect alg to new API 2017-08-14 05:05:39 +10:00
Nyall Dawson
b87b2fe827 Allow skipping crs check in processing test results
The GML format often requires extra 'hand holding' in order to
get QGIS to detect it's CRS (e.g. GML files created directly
in GDAL will not have an autodetected CRS when pulled into
QGIS). This needs fixing, but as a workaround to allow
processing algorithm porting to continue we can now skip
the crs check for these layers.
2017-08-14 04:56:24 +10:00
Nyall Dawson
97a8d1a7a2 Fix failing test 2017-08-14 04:56:24 +10:00
Nyall Dawson
6301ff6606 Resurrect OGR points along lines algorithm 2017-08-14 04:56:24 +10:00
Nyall Dawson
47fe2a182d Port Points From Lines to new API 2017-08-14 01:42:16 +10:00
Nyall Dawson
c6b3855b41 Port Points From Polygons to new API 2017-08-14 01:42:15 +10:00
Nyall Dawson
c8ac7841f0 Port Points Displacement algorithm to new API
Rework algorithm to use same approach as points displacement
renderer. Also maintain Z/M values, and add tests and docs.
2017-08-14 01:42:15 +10:00
Nyall Dawson
4ab4a1fcad Spell check 'mitre' -> 'miter' (i.e. use en-us variation) 2017-08-07 18:08:57 +10:00
Nyall Dawson
d4ad063f45 Allow specifying a 'primary key' field when comparing layers for
processing tests

Some algorithms will return results in different orders, e.g.
due to the use of dicts or other methods which do not guarantee
a fixed return order.

Using a primary key to do the feature match allows us to flexibly
handle these situations and provide tests for these algorithms.
2017-08-05 22:10:18 +10:00
Nyall Dawson
b93be39c24 Port Stats by Category to new API
Improvements:
- keep original field type and name for category field
- add unit test
2017-08-05 17:51:38 +10:00
Nyall Dawson
adda744576 Port Join Attributes alg to new API
Improvements:
- don't fetch unused geometry for joined table
2017-08-05 17:51:38 +10:00
Nyall Dawson
a1f487d679 Add alternate reference layer for points to path algorithm 2017-08-05 17:51:38 +10:00
Nyall Dawson
c2559d8273 Add second reference layer for topocolor algorithm 2017-08-05 17:51:38 +10:00
Nyall Dawson
5d635d190d Allow list of acceptable raster hashes for processing algorithm tests
Differences in gdal libraries mean the hash value may differ between
platforms. Allow multiple acceptable hashes to be listed for
expected test results
2017-08-05 17:51:38 +10:00
Nyall Dawson
7132faa974 Port Topocolor algorithm to new API 2017-08-05 17:51:38 +10:00