99 Commits

Author SHA1 Message Date
Matthias Kuhn
19276e2b03
Add merge vector layer test for gpkg 2018-10-31 10:27:54 +01:00
Nyall Dawson
bef8d6e072 Update expected test results 2018-10-16 16:52:00 +10:00
Nyall Dawson
308d7136b4 [processing] More fixes to convertToCompatibleFormat, lots of unit
tests

Fixes #19938
2018-09-28 14:25:38 +10:00
Nyall Dawson
737ab3069a [processing][gdal] Correctly handle geopackage paths with layername argument
Fixes #19938
2018-09-28 14:25:38 +10:00
Nyall Dawson
517b50c66d Capitalization 2018-09-25 22:01:39 +10:00
Luigi Pirelli
8b07b4ed9e
Merge pull request #7626 from rudivs/kneighbour
[feature] Adapted k-neighbour concave hull plugin as QGIS 3 algorithm
2018-09-14 15:32:46 +02:00
Rudi von Staden
fd728c0854 Improve test coverage for k-nearest neighbor concave hull 2018-09-14 11:44:53 +02:00
Martin Dobias
1af35b294e Moved new snapping alg as another mode of "Snap geometries" processing alg 2018-09-13 16:24:37 +02:00
Martin Dobias
4a0669714b [FEATURE] Snap geometries algorithm
Makes sure that any two vertices of the vector layer are at least at distance given by the threshold value.
The algorithm moves nearby vertices to one location and adds vertices to segments that are passing around other
vertices within the threshold. It does not remove any vertices. Also, it does not modify geometries unless
needed (it does not snap coordinates to a grid).

This algorithm comes handy when doing vector overlay operations such as intersection, union or difference
to prevent possible topological errors caused by numerical errors if coordinates are very close to each other.

After running the algorithm some previously valid geometries may become invalid and therefore it may be useful
to run Fix geometries algorithm afterwards.
2018-09-13 11:46:29 +02:00
Luigi Pirelli
580ecafa32
Merge pull request #7396 from luipir/rastercalculator_model_fix
[processing] Rebirth RasterCalculator in Modeler. Fixes #19302
2018-09-04 18:13:04 +02:00
Andrea Giudiceandrea
e56da0e58a
Add test for Join by location (equals)
Adds a test for "Join attributes by location" processing algorithm 'equals' predicate
2018-08-30 09:59:26 +02:00
Luigi Pirelli
6aa36166e4 adapted tests to new variables added in expressionContext 2018-08-28 17:06:10 +02:00
Nyall Dawson
c6a91dab09 [FEATURE] Use native interpolate point method instead of GEOS method
Because:
- Exactly follows curves and doesn't require segmentizing input geometry
- Also interpolates z/m values if they are present in input geometry
- Is faster
2018-08-15 14:01:59 +10:00
Nyall Dawson
8365335fd3 [FEATURE][processing] Interpolate point on line algorithm
This algorithm creates a point geometry interpolated at a
set distance along line (or polygon boundary) geometries.
2018-08-15 14:01:59 +10:00
Nyall Dawson
7ef5631d6b [FEATURE][processing] Line substring algorithm
This algorithm returns the portion of a line (or curve) which falls
between the specified start and end distances (measured from the
beginning of the line).

Z and M values are linearly interpolated from existing values.
2018-08-15 14:01:59 +10:00
Mathieu Pellerin
51b63e6b46
[vector file writer] use field type to save attribute values
(relying on attribute value type isn't reliable under certain
scenarios, including memory layers created through a processing
python algorithm)
2018-08-06 11:07:56 +07:00
Nyall Dawson
4acef1efbf [processing] Fix crash in extract by attribute when field name does not exist
Fixes #19531
2018-08-04 05:57:46 +10:00
Nyall Dawson
df05369dbf Hack is still required, but maybe using non-deprecated api will help?
Sometimes qt is great, sometimes I want to punch it in it's silly
little cute face
2018-07-31 05:12:59 +10:00
Nyall Dawson
837206892a Optimise drape algorithms, skip vertex iteration for geometries which don't intersect raster 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
28c4a6cf59 [processing][grass] Fix v.net.* output types, add tests
Fixes #19186
2018-07-25 19:50:48 +10:00
Nyall Dawson
0c56d00c01 [processing][grass] Fix v.what.rast data type, add test 2018-07-25 19:50:48 +10:00
matteo
22d7b6c5d0 fixing indentation? 2018-07-11 09:23:09 +02: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
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
77786f38c3 [processing][SAGA] Fix interpolation choices for add grid values algorithms
And add more tests

Fixes #19132
2018-06-08 12:18:35 +10:00
Nyall Dawson
f7a6864b9c [processing] Fix invalid characters in HTML for 'Raster layer unique values' report 2018-06-01 08:53:20 +10:00
nirvn
5ab3fe4ba0 Add subsetStringChanged signal 2018-05-29 17:10:17 +07:00
Nyall Dawson
9d2c4fca19 [FEATURE][layouts] Use text renderer for drawing scalebar text
Allows the full range of formatting options exposed through
text renderer - e.g. scalebar text with buffers, shadows,
background shapes, letter spacing, etc.

Say goodbye to unreadable scale bar text!
2018-05-11 17:48:45 +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
Matthias Kuhn
0a269aa6e6
Merge pull request #6864 from ghtmtt/fix_saga
[processing] fix broken SAGA algorithms
2018-05-02 16:47:03 +02:00
matteo
291c039435
Shapefile instead of GML for travis 2018-04-27 11:49:41 +02:00
matteo
9c0a9ca466
[processing] add test for fixed algorithm 2018-04-27 09:15:37 +02: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
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
0dfb3c2d8c [processing] Use distance parameter for more algorithms 2018-04-20 18:27:00 +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
Nyall Dawson
ee185cce4d [processing] Fix python runAlgorithm when algorithm has missing optional outputs 2018-04-10 09:57:58 +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
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
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
Nyall Dawson
8df954d6b8 [processing] Port Delete Holes algorithm to c++, allow dynamic
min area parameter
2018-03-12 10:41:22 +11:00
Nyall Dawson
4232b93539 [FEATURE][processing] Add "segmentize" algorithms
Adds two new algorithms which expose QgsGeometry's methods
for segmentizing curved geometries.

"Segmentize by maximum distance":
The segmentization is performed by specifying the maximum
allowed offset distance between the original curve and the
segmentized representation.

"Segmentize by maximum angle":
The segmentization is performed by specifying the maximum
allowed radius angle between vertices on the straightened
geometry (e.g the angle of the arc created from the
original arc center to consective output vertices on the
linearized geometry).
2018-03-04 21:28:42 +10:00
Nyall Dawson
e12621ce2a Add API method to remove duplicate nodes from geometries
Removes duplicate nodes from the geometry, wherever removing the
nodes does not result in a degenerate geometry.

By default, z values are not considered when detecting duplicate
nodes. E.g. two nodes with the same x and y coordinate but
different z values will still be considered duplicate and one
will be removed. If useZValues is true, then the z values are
also tested and nodes with the same x and y but different z
will be maintained.

Note that duplicate nodes are not tested between different
parts of a multipart geometry. E.g. a multipoint geometry
with overlapping points will not be changed by this method.

The function will return true if nodes were removed, or false
if no duplicate nodes were found.

Includes unit tests and a processing algorithm which exposes
this functionality.
2017-12-03 14:58:21 +10:00
matteo
c321700ada [processing] test for union algorithm 2017-11-15 11:27:30 +11:00