370 Commits

Author SHA1 Message Date
Alexander Bruy
a6901edb9b [processing] port shortest path (point to point) alg to c++ 2018-07-30 15:15:03 +03:00
Nyall Dawson
f119453f42 Tweak algorithm names, strings 2018-07-30 12:11:17 +10:00
Nyall Dawson
d5ce6dcb1d [FEATURE][processing] native drape features to z/m algorithms
Sets vertex z/m values to values sampled from a raster band.

Values can optionally be scaled using a (data definable) scale value.
2018-07-30 12:11:17 +10:00
Nyall Dawson
d1d6840a5f [processing][feature] Port 'offset lines' to c++, support dynamic offset parameter
Adds data defined support for the offset line distance parameter.
2018-07-27 13:23:50 +10:00
Nyall Dawson
76c84f14d7 [FEATURE][processing] "Create parallel lines" algorithm
This algorithm creates copies of line features in a layer, by
creating multiple parallel versions of each feature. Each copy is offset
by a preset distance.
2018-07-27 13:23:50 +10:00
Nyall Dawson
abe4532a2c [feature][processing] "Array of Offset Features" algorithm
This algorithm creates copies of features in a layer, by
creating multiple offset versions of the feature. Each copy is displaced
by a preset amount in the x/y/z/m axis.
2018-07-27 13:23:50 +10:00
Nyall Dawson
3ec1442045 Points -> vertices 2018-07-24 03:56:10 +10:00
Nyall Dawson
97e0db6245 [FEATURE][processing] Filter Vertices by M and Filter Vertices by Z algorithms
Adds two new algorithms, for filtering line/polygon vertices by their
M or Z values. A minimum and maximum M/Z value can be entered, and
if the vertices fall outside these ranges they will be discarded
from the output geometry.

Both min and max filter value can also be data defined, so can
vary per feature.
2018-07-24 03:56:10 +10:00
Nyall Dawson
f685d11b29 [processing] Reverse line direction can work with multi(line/curve) geometries 2018-07-24 03:55:49 +10:00
Nyall Dawson
65548436ad [processing] Port reverse line direction alg to c++ 2018-07-24 03:55:49 +10:00
Nyall Dawson
59ec2e0bce [processing][FEATURE] Port extend lines algorithm to c++, allow dynamic start/end distance
Allows the start and end distance to be data defined
2018-07-24 03:54:21 +10:00
Matteo Ghetta
14c74d88c8
Merge branch 'master' into processing_sampling 2018-07-16 08:33:59 +02:00
Nyall Dawson
e46b00d40d Tests for dbscan algorithm 2018-07-16 13:00:27 +10:00
matteo
40d2a97034 update test 2018-07-12 11:34:13 +02:00
matteo
22d7b6c5d0 fixing indentation? 2018-07-11 09:23:09 +02:00
matteo
5507c3439b try geojson for travis 2018-07-10 16:14:59 +02:00
matteo
d1cedbcf92 [processing][needs-doc][FEATURE] Sample raster values to point 2018-07-10 15:19:56 +02:00
Alexander Bruy
29207a1617 [processing] fix Random extract/select within subset when subset is
smaller than number of requested features (fix #19322)
2018-07-04 18:30:30 +03:00
Nyall Dawson
34b9d39b27 [FEATURE][processing] K Means clustering algorithm
Adds a native k-means clustering algorithm.

Based on a port of PostGIS' ST_ClusterKMeans function, this
new algorithm adds a new cluster ID field to a set of input
features identify the feature's cluster based on the k-means
clustering approach. If non-point geometries are used as input,
the clustering is based off the centroid of the input geometries.
2018-06-29 07:12:48 +10:00
Nyall Dawson
85fba799ea [processing] Don't abort when missing field name specified in
delete columns algorithm

Fixes #19256
2018-06-28 17:10:23 +10:00
Nyall Dawson
5b7eefa6ae [FEATURE][processing] New 'Raster pixels to polygons' algorithm
Converts a raster layer into a vector layer, with a polygon feature
corresponding to each pixel from the raster and a single field
containing the band value from the raster.

Sponsored by SMEC/SJ
2018-06-23 04:42:10 +10:00
Nyall Dawson
0da30699a5 [processing] Add unit tests for reclassify using nulls 2018-06-13 14:54:40 +10:00
Nyall Dawson
7a157837cb Add tests for processing reclassification algorithms 2018-06-13 14:54:40 +10:00
Nyall Dawson
22a98fb680 [processing] Allow choice of field prefix for Join algorithms
Avoids clash of field names resulting in potentially misleading results
2018-06-07 14:24:16 +10:00
Nyall Dawson
8c689b2d36 [processing] Fix create constant raster layer modifies pixel size
Fixes #18446
2018-06-05 16:15:58 +10:00
Nyall Dawson
3b2f690d26 [processing] Also add table output for raster unique values report algorithm
Allows values to be used within models
2018-06-04 21:30:12 +10:00
Nyall Dawson
37b06bcf29 [processing] Fix Rectangles/Ovals/...(variable) chokes on angle values of 0
Change the test to a NULL test instead, as angle values of 0 are valid
2018-05-31 08:55:26 +10:00
Martin Dobias
aa2b1e9834 Add test for single layer union 2018-05-10 06:50:57 -04:00
nirvn
fdaa57a273 [FEATURE][processing] Zonal histogram algorithm 2018-05-03 11:36:16 +07:00
Nyall Dawson
9ffae600f4 [FEATURE] Variable width buffers
Adds geometry methods to create variable width buffers, including
tapered buffers (with a specified start and end diameter) and
variable width buffers from line string m values.

Also adds processing algorithms which expose these methods
to processing.
2018-05-01 06:16:01 +10:00
Martin Dobias
16a6a90dd7
Merge pull request #6859 from wonder-sk/overlay-alg-fixes-3
Port Union algorithm to C++ and fix it
2018-04-26 22:56:22 +02:00
Matthias Kuhn
3e2694a068
Merge pull request #6848 from gacarrillor/line_intersection_with_geometry_collections
[processing] Make line intersection alg able to handle collections
2018-04-26 07:20:55 +02:00
Martin Dobias
21a756ff1d Remove older (incorrect!) test cases for union
The newer test data (overlay1_a and overlay1_b) cover more scenarios
and can be more easily investigated if something goes wrong.
2018-04-25 23:29:04 +02:00
Martin Dobias
8a96573880 Port Union algorithm to c++ using existing intersection+difference algs 2018-04-25 17:22:40 +02:00
Martin Dobias
d2513e0538 Port Difference & Sym.Diff. to C++, cleanups and tests 2018-04-24 20:42:13 +02:00
gacarrillor
49ee8bba13 [processing] Make line intersection alg able to handle intersections of type 'geometry collection' 2018-04-23 23:27:23 -05:00
Nyall Dawson
2850b308ba Add unit test for wedge buffers alg 2018-04-24 10:07:51 +12:00
Nyall Dawson
6c892652ac Followup a463858, fix failing tests 2018-04-20 08:38:15 +10:00
Martin Dobias
721c536185
Merge branch 'master' into overlay-alg-fixes-1 2018-04-18 14:16:50 +02:00
Nyall Dawson
0e0e133c7d [FEATURE][processing] Add sort order option to Add Incremental Field alg
This allows users to optionally set a sort order to use when
assigning values in the Add Incremental Field algorithm.

Previously values were always added using the original feature
order. With this change users can control the order in which
features are assigned values.
2018-04-18 20:50:37 +10:00
Martin Dobias
4f829fde62 Port Intersection algorithm to C++, cleanups and tests
Finally starting a suite of unit tests for overlay algorithms:
- overlay1 - layers that cover various basic overlay situations
- overlay2 - layers where one input has self-intersecting polygons
- overlay3 - layers where intersections return different geometry types
2018-04-17 19:12:58 +02:00
Matthias Kuhn
af18f46c85 Add filter feature processing test 2018-04-09 13:10:48 +02:00
Nyall Dawson
7fa9d4120a [processing] Fix Distance Matrix alg considers distances to
same points

Add more unit tests

Fixes #17350
2018-04-09 12:48:50 +10:00
Nyall Dawson
1942854166 [processing] Port Explode Lines to c++
Aside from the performance benefits, the Python version of this
algorithm occasionally fails on Travis with odd errors. Hopefully
by porting to c++ it will fix these, or at least give useful
debug information in the event of a fail.

Also add support for curved input geometries.
2018-04-06 15:34:52 +10:00
Nyall Dawson
ccb72ebce2 [processing] Fixes for Service Area algorithms
- Output interpolated points when travel cost falls mid-way along
an edge
- Output all intermediate reachable points also
- Make outputting upper/lower bound points optional, and non-default.
Now by default we just output all definitely reachable points and
the interpolated points along edges which correspond to the travel cost.
This allows the output to be used to correctly generate service areas
e.g. by concave/convex polygons and all reachable nodes will be
included in the area.
- Allow algorithm to optionally output a line layer (and make the
point layer optional too, and default to just the line layer output)
containing all reachable line segments (including interpolated
segments of lines when the travel cost sits midway along that
edge). This output is more easily understandably for users.
2018-04-06 12:43:52 +10:00
Nyall Dawson
78a6118ba4 [processing] Fix broken Densify by Interval algorithm, add test
Fix #18640
2018-04-06 11:50:23 +10:00
Nyall Dawson
8aa9a82d28 [FEATURE][processing] Add algorithm to swap x/y coordinate values
This algorithm swaps the X and Y coordinate values in input
geometries. It can be used to repair geometries which have
accidentally had their latitude and longitude values reversed.
2018-04-05 06:35:13 +10:00
Nyall Dawson
732c5260cc [processing] Fix Concave Hull algorithm, add tests
Fixes #18475
2018-03-19 12:00:30 +11:00
Nyall Dawson
7a28181e7f Skip some attributes in import photos test
These absolute paths cannot be tested in processing algorithm tests
2018-03-16 15:08:29 +11:00
Nyall Dawson
fa2c5aebb7 [FEATURE][processing] Import geotagged photos algorithm
This implements a new "import geotagged photos" algorithm
for processing. It allows selection of a folder which it
will scan for jpg files which have been geotagged and
creates a PointZ layer with the result, with attributes
for photo path, altitude, direction and timestamp.

Optionally the scan can be recursive and you can create
an optional table of photos which could not be read
or which were missing geotags.

The algorithm automatically sets the output table to
use an external resource widget to display the linked
photos in the attribute form.

[ALGCHANGE]
2018-03-16 15:08:29 +11:00