mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
2331 lines
53 KiB
YAML
Executable File
2331 lines
53 KiB
YAML
Executable File
# See ../README.md for a description of the file format
|
|
|
|
tests:
|
|
|
|
- algorithm: native:projectpointcartesian
|
|
name: Project points Cartesian
|
|
params:
|
|
BEARING: 90.0
|
|
DISTANCE: 1.0
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/projected_points.gml
|
|
type: vector
|
|
|
|
- algorithm: native:projectpointcartesian
|
|
name: Project multipoints Cartesian
|
|
params:
|
|
BEARING: -90.0
|
|
DISTANCE: 0.5
|
|
INPUT:
|
|
name: multipoints.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/projected_multipoints.gml
|
|
type: vector
|
|
|
|
- algorithm: native:removeduplicatevertices
|
|
name: Remove duplicate vertices from lines
|
|
params:
|
|
INPUT:
|
|
name: custom/line_duplicate_nodes.gml
|
|
type: vector
|
|
TOLERANCE: 1.0e-06
|
|
USE_Z_VALUE: false
|
|
results:
|
|
OUTPUT:
|
|
name: expected/removed_duplicated_nodes_line.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:keepnbiggestparts
|
|
name: Keep N biggest parts
|
|
params:
|
|
PARTS: 1
|
|
POLYGONS:
|
|
name: multipolys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/biggest_parts.gml
|
|
type: vector
|
|
|
|
- algorithm: native:multiringconstantbuffer
|
|
name: Multi-ring buffer with points
|
|
params:
|
|
DISTANCE: 0.05
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
RINGS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/multiring_buffer.gml
|
|
type: vector
|
|
|
|
- algorithm: native:multiringconstantbuffer
|
|
name: Multi-ring negative buffer with polygons
|
|
params:
|
|
DISTANCE: -0.05
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
RINGS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/multiring_negative_buffer.gml
|
|
type: vector
|
|
|
|
- algorithm: native:segmentizebymaxangle
|
|
name: Segmentize by angle
|
|
params:
|
|
ANGLE: 20.0
|
|
INPUT:
|
|
name: custom/circular_strings.gpkg|layername=circular_strings
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/segmentize_by_angle.gml
|
|
type: vector
|
|
|
|
- algorithm: native:segmentizebymaxdistance
|
|
name: Segmentize by distance
|
|
params:
|
|
DISTANCE: 0.2
|
|
INPUT:
|
|
name: custom/circular_strings.gpkg|layername=circular_strings
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/segmentize_by_distance.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rotatefeatures
|
|
name: Rotate around centroid
|
|
params:
|
|
ANGLE: 25.0
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/rotate_around_centroid.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rotatefeatures
|
|
name: Rotate around point
|
|
params:
|
|
ANCHOR: 2.3,3 [EPSG:4326]
|
|
ANGLE: 25.0
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/rotate_around_point.gml
|
|
type: vector
|
|
|
|
- algorithm: native:importphotos
|
|
name: Import photos
|
|
params:
|
|
FOLDER:
|
|
name: custom/photos
|
|
type: file
|
|
RECURSIVE: false
|
|
results:
|
|
INVALID:
|
|
name: expected/import_photos_invalid.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
photo: skip
|
|
directory: skip
|
|
|
|
OUTPUT:
|
|
name: expected/import_photos.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
photo: skip
|
|
directory: skip
|
|
|
|
- algorithm: qgis:concavehull
|
|
name: Concave Hull - Points (0.3)
|
|
params:
|
|
ALPHA: 0.3
|
|
HOLES: true
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
NO_MULTIGEOMETRY: false
|
|
results:
|
|
OUTPUT:
|
|
name: expected/concave_hull_points_03.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:concavehull
|
|
name: Concave Hull - Points (0.7)
|
|
params:
|
|
ALPHA: 0.7
|
|
HOLES: true
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
NO_MULTIGEOMETRY: false
|
|
results:
|
|
OUTPUT:
|
|
name: expected/concave_hull_points_07.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - Points (k=7)
|
|
params:
|
|
KNEIGHBORS: 7
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/knearest_concave_hull_points_7.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - Group by field
|
|
params:
|
|
FIELD: id2
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
KNEIGHBORS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/knearest_concave_hull_points_id2.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - Lines (k=3)
|
|
params:
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
KNEIGHBORS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/knearest_concave_hull_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - Polys (k=3)
|
|
params:
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
KNEIGHBORS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/knearest_concave_hull_polys.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - MultiPoints (k=3)
|
|
params:
|
|
INPUT:
|
|
name: multipoints.gml
|
|
type: vector
|
|
KNEIGHBORS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/knearest_concave_hull_multipoints.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:knearestconcavehull
|
|
name: K-nearest Neighbor Concave Hull - Duplicate Points
|
|
params:
|
|
INPUT:
|
|
name: custom/points_duplicate.gml
|
|
type: vector
|
|
KNEIGHBORS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/failure.gml
|
|
type: vector
|
|
expectedException: true
|
|
|
|
- algorithm: native:swapxy
|
|
name: Swap XY coordinates
|
|
params:
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/swap_xy.gml
|
|
type: vector
|
|
|
|
- algorithm: model:filtertest
|
|
name: Test (model:filtertest)
|
|
params:
|
|
layer:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
native:filter_1:OUTPUT_small:
|
|
name: expected/filter_points_small.gml
|
|
type: vector
|
|
native:filter_1:OUTPUT_big:
|
|
name: expected/filter_points_big.gml
|
|
type: vector
|
|
|
|
- algorithm: native:intersection
|
|
name: Test Intersection (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/intersection1.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:intersection
|
|
name: Test Intersection (geom types)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay3_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay3_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/intersection3.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:intersection
|
|
name: Test Intersection (custom prefix)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
OVERLAY_FIELDS_PREFIX: pre_
|
|
results:
|
|
OUTPUT:
|
|
name: expected/intersection_prefix.gml
|
|
type: vector
|
|
pk: [id_a, pre_id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:wedgebuffers
|
|
name: Wedge buffers
|
|
params:
|
|
AZIMUTH: 90.0
|
|
INNER_RADIUS: 0.5
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
OUTER_RADIUS: 1.0
|
|
WIDTH: 45.0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/wedge_buffers.gml
|
|
type: vector
|
|
|
|
- algorithm: native:difference
|
|
name: Test Difference A - B (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/difference1_a_b.gml
|
|
type: vector
|
|
pk: id_a
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:difference
|
|
name: Test Difference B - A (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/difference1_b_a.gml
|
|
type: vector
|
|
pk: id_b
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:symmetricaldifference
|
|
name: Test Symmetrical Difference A - B (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/symmetrical_difference1_a_b.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:symmetricaldifference
|
|
name: Test Symmetrical Difference B - A (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/symmetrical_difference1_b_a.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:symmetricaldifference
|
|
name: Test Symmetrical Difference B - A (custom prefix)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY_FIELDS_PREFIX: pre_
|
|
results:
|
|
OUTPUT:
|
|
name: expected/symmetrical_difference_prefix.gml
|
|
type: vector
|
|
pk: [pre_id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:union
|
|
name: Test Union of single layer
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay0.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/union0.gml
|
|
type: vector
|
|
compare:
|
|
unordered: true
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:union
|
|
name: Test Union (basic)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/union1.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:union
|
|
name: Test Union (custom prefix)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay1_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay1_b.geojson
|
|
type: vector
|
|
OVERLAY_FIELDS_PREFIX: pre_
|
|
results:
|
|
OUTPUT:
|
|
name: expected/union_prefix.gml
|
|
type: vector
|
|
pk: [id_a, pre_id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:union
|
|
name: Test Union (geom types)
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay3_a.geojson
|
|
type: vector
|
|
OVERLAY:
|
|
name: custom/overlay3_b.geojson
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/union3.gml
|
|
type: vector
|
|
pk: [id_a, id_b]
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:taperedbuffer
|
|
name: Tapered buffers (lines)
|
|
params:
|
|
END_WIDTH: 0.8
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
SEGMENTS: 3
|
|
START_WIDTH: 0.4
|
|
results:
|
|
OUTPUT:
|
|
name: expected/tapered_buffer_line.gml
|
|
type: vector
|
|
|
|
- algorithm: native:taperedbuffer
|
|
name: Tapered buffers (multiline)
|
|
params:
|
|
END_WIDTH: 0.8
|
|
INPUT:
|
|
name: multilines.gml
|
|
type: vector
|
|
SEGMENTS: 3
|
|
START_WIDTH: 0.4
|
|
results:
|
|
OUTPUT:
|
|
name: expected/tapered_buffer_multiline.gml
|
|
type: vector
|
|
|
|
- algorithm: native:bufferbym
|
|
name: Variable width buffer by m
|
|
params:
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
SEGMENTS: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/variable_width_buffer_by_m.gml
|
|
type: vector
|
|
|
|
- algorithm: native:reclassifybytable
|
|
name: Reclassify by table
|
|
params:
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
TABLE:
|
|
- 1
|
|
- 850
|
|
- 3
|
|
- 850
|
|
- 1000
|
|
- 4
|
|
results:
|
|
OUTPUT:
|
|
hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybytable
|
|
name: Reclassify by table min <=
|
|
params:
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 1
|
|
RASTER_BAND: 1
|
|
TABLE:
|
|
- 1
|
|
- 843
|
|
- 3
|
|
- 843
|
|
- 1000
|
|
- 4
|
|
results:
|
|
OUTPUT:
|
|
hash: f055b582e4e5abcfa9cce6a69ceb7fac54791ad0d980003f1a23f4b1
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybytable
|
|
name: Reclassify by table use original
|
|
params:
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
TABLE:
|
|
- 1
|
|
- 843
|
|
- 3
|
|
results:
|
|
OUTPUT:
|
|
hash: 4398ddc5d24b3bf968d9a6e0fbd800344b20880a57915bd50a90e1ba
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybytable
|
|
name: Reclassify by table use nodata
|
|
params:
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
NODATA_FOR_MISSING: true
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
TABLE:
|
|
- 1
|
|
- 843
|
|
- 3
|
|
results:
|
|
OUTPUT:
|
|
hash: cea558f7e99a0564fef92a96cd8d6b59707d019f1751cb600ab00850
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybytable
|
|
name: Reclassify by table infinite ranges
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
TABLE:
|
|
- ''
|
|
- 850
|
|
- 3
|
|
- 850
|
|
- ''
|
|
- 4
|
|
results:
|
|
OUTPUT:
|
|
hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybylayer
|
|
name: Reclassify by layer
|
|
params:
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
INPUT_TABLE:
|
|
name: custom/reclassify_layer.gml
|
|
type: vector
|
|
MAX_FIELD: max
|
|
MIN_FIELD: min
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
VALUE_FIELD: value
|
|
results:
|
|
OUTPUT:
|
|
hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
|
|
type: rasterhash
|
|
|
|
- algorithm: native:reclassifybylayer
|
|
name: Reclassify by layer with nulls
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
INPUT_TABLE:
|
|
name: custom/reclassify_layer_nulls.gml
|
|
type: vector
|
|
MAX_FIELD: max
|
|
MIN_FIELD: min
|
|
NODATA_FOR_MISSING: false
|
|
NO_DATA: -9999.0
|
|
RANGE_BOUNDARIES: 0
|
|
RASTER_BAND: 1
|
|
VALUE_FIELD: value
|
|
results:
|
|
OUTPUT:
|
|
hash: c29d14f71e8686f7445d53be646fce84702644f159fd0164ac38e861
|
|
type: rasterhash
|
|
|
|
- algorithm: native:pixelstopolygons
|
|
name: Pixels to polygons
|
|
params:
|
|
FIELD_NAME: pix_val
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
RASTER_BAND: 1
|
|
results:
|
|
OUTPUT:
|
|
name: expected/vectorize.gml
|
|
type: vector
|
|
|
|
- algorithm: native:pixelstopoints
|
|
name: Pixels to points
|
|
params:
|
|
FIELD_NAME: VALUE
|
|
INPUT_RASTER:
|
|
name: raster.tif
|
|
type: raster
|
|
RASTER_BAND: 1
|
|
results:
|
|
OUTPUT:
|
|
name: expected/pixels_to_points.gml
|
|
type: vector
|
|
|
|
- algorithm: native:kmeansclustering
|
|
name: K means, points, 3 clusters
|
|
params:
|
|
CLUSTERS: 3
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/kmeans_points_3.gml
|
|
type: vector
|
|
|
|
- algorithm: native:kmeansclustering
|
|
name: K means, points, 5 clusters
|
|
params:
|
|
CLUSTERS: 5
|
|
FIELD_NAME: CLUSTER_ID5
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/kmeans_points_5.gml
|
|
type: vector
|
|
|
|
- algorithm: native:kmeansclustering
|
|
name: K means, lines
|
|
params:
|
|
CLUSTERS: 2
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/kmeans_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: native:kmeansclustering
|
|
name: K means, polys
|
|
params:
|
|
CLUSTERS: 2
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/kmeans_polys.gml
|
|
type: vector
|
|
|
|
|
|
- algorithm: native:dbscanclustering
|
|
name: DBScan 5/3
|
|
params:
|
|
DBSCAN*: false
|
|
EPS: 3.0
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: custom/points_weighted.gml
|
|
type: vector
|
|
MIN_SIZE: 5
|
|
results:
|
|
OUTPUT:
|
|
name: expected/dbscan_5_2.gml
|
|
type: vector
|
|
|
|
- algorithm: native:dbscanclustering
|
|
name: DBScan* 5/3
|
|
params:
|
|
DBSCAN*: true
|
|
EPS: 3.0
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: custom/points_weighted.gml
|
|
type: vector
|
|
MIN_SIZE: 5
|
|
results:
|
|
OUTPUT:
|
|
name: expected/dbscan_star_5_2.gml
|
|
type: vector
|
|
|
|
- algorithm: native:dbscanclustering
|
|
name: DBScan no clusters
|
|
params:
|
|
DBSCAN*: false
|
|
EPS: 1.0
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: custom/points_weighted.gml
|
|
type: vector
|
|
MIN_SIZE: 5
|
|
results:
|
|
OUTPUT:
|
|
name: expected/dbscan_no_clusters.gml
|
|
type: vector
|
|
|
|
- algorithm: native:dbscanclustering
|
|
name: DBScan multiple clusters
|
|
params:
|
|
DBSCAN*: false
|
|
EPS: 2.0
|
|
FIELD_NAME: CLUSTER_ID
|
|
INPUT:
|
|
name: custom/points_weighted.gml
|
|
type: vector
|
|
MIN_SIZE: 3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/dbscan_multiple_clusters.gml
|
|
type: vector
|
|
|
|
- algorithm: qgis:rastersampling
|
|
name: Single band raster
|
|
params:
|
|
COLUMN_PREFIX: rvalue
|
|
INPUT:
|
|
name: custom/sampling_points.gml
|
|
type: vector
|
|
RASTERCOPY:
|
|
name: dem.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
name: expected/sampling_raster.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
fid: skip
|
|
|
|
- algorithm: native:filterverticesbym
|
|
name: Filter by m no max
|
|
params:
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
MIN: 0.6
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_m_no_max.shp
|
|
type: vector
|
|
|
|
- algorithm: native:filterverticesbym
|
|
name: Filter by m no min
|
|
params:
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
MAX: 0.6
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_m_no_min.shp
|
|
type: vector
|
|
|
|
- algorithm: native:filterverticesbym
|
|
name: Filter by m
|
|
params:
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
MAX: 0.7
|
|
MIN: 0.4
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_m.shp
|
|
type: vector
|
|
|
|
- algorithm: native:filterverticesbyz
|
|
name: Filter by z no max
|
|
params:
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
MIN: 0.6
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_z_no_max.shp
|
|
type: vector
|
|
|
|
- algorithm: native:filterverticesbyz
|
|
name: Filter by z no min
|
|
params:
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
MAX: 0.6
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_z_no_min.shp
|
|
type: vector
|
|
|
|
- algorithm: native:filterverticesbyz
|
|
name: Filter by z
|
|
params:
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
MAX: 0.7
|
|
MIN: 0.4
|
|
results:
|
|
OUTPUT:
|
|
name: expected/filter_by_z.shp
|
|
type: vector
|
|
|
|
- algorithm: native:arraytranslatedfeatures
|
|
name: Array of point features
|
|
params:
|
|
COUNT: 3
|
|
DELTA_M: -0.4
|
|
DELTA_X: 0.1
|
|
DELTA_Y: -0.2
|
|
DELTA_Z: 0.3
|
|
INPUT:
|
|
name: points.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/feature_array.shp
|
|
type: vector
|
|
|
|
- algorithm: native:arrayoffsetlines
|
|
name: Array of offset (parallel) lines
|
|
params:
|
|
COUNT: 3
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
JOIN_STYLE: 1
|
|
MITER_LIMIT: 2.0
|
|
OFFSET: -0.2
|
|
SEGMENTS: 8
|
|
results:
|
|
OUTPUT:
|
|
name: expected/create_parallel_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: native:setzfromraster
|
|
name: Drape points to z
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/sampling_points.gml
|
|
type: vector
|
|
NODATA: 0.0
|
|
RASTER:
|
|
name: dem.tif
|
|
type: raster
|
|
SCALE: 1.2
|
|
results:
|
|
OUTPUT:
|
|
name: expected/drape_points.shp
|
|
type: vector
|
|
|
|
- algorithm: native:setmfromraster
|
|
name: Drape points to m
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/sampling_points.gml
|
|
type: vector
|
|
NODATA: 0.0
|
|
RASTER:
|
|
name: dem.tif
|
|
type: raster
|
|
SCALE: 1.2
|
|
results:
|
|
OUTPUT:
|
|
name: expected/drape_points_m.shp
|
|
type: vector
|
|
|
|
- algorithm: native:setzfromraster
|
|
name: Drape lines to z
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_lines.shp
|
|
type: vector
|
|
NODATA: -9999.0
|
|
RASTER:
|
|
name: dem.tif
|
|
type: raster
|
|
SCALE: 1.0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/drape_lines.shp
|
|
type: vector
|
|
|
|
- algorithm: native:setmfromraster
|
|
name: Drape lines to m
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_lines.shp
|
|
type: vector
|
|
NODATA: -9999.0
|
|
RASTER:
|
|
name: dem.tif
|
|
type: raster
|
|
SCALE: 1.0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/drape_lines_m.shp
|
|
type: vector
|
|
|
|
- algorithm: native:linesubstring
|
|
name: Line substrings
|
|
params:
|
|
END_DISTANCE: 0.8
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
START_DISTANCE: 0.2
|
|
results:
|
|
OUTPUT:
|
|
name: expected/line_substring.gml
|
|
type: vector
|
|
|
|
- algorithm: native:interpolatepoint
|
|
name: Interpolate points (line)
|
|
params:
|
|
DISTANCE: 1.0
|
|
INPUT:
|
|
name: lines.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/interpolate_point_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: native:interpolatepoint
|
|
name: Interpolate points (polygons)
|
|
params:
|
|
DISTANCE: 2.0
|
|
INPUT:
|
|
name: polys.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/interpolate_point_polys.gml
|
|
type: vector
|
|
|
|
- algorithm: native:mergevectorlayers
|
|
name: Merge vector layers with conflicting feature ids
|
|
params:
|
|
LAYERS:
|
|
params:
|
|
- name: custom/pol.gpkg|layername=pol1
|
|
type: vector
|
|
- name: custom/pol.gpkg|layername=pol2
|
|
type: vector
|
|
- name: custom/pol.gpkg|layername=pol3
|
|
type: vector
|
|
type: multi
|
|
results:
|
|
OUTPUT:
|
|
# If you ever run into this test producing Polygons instead of MultiPolygons as output
|
|
# that is totally expected and you are invited to replace the file merged_pol.gpkg with
|
|
# a single polygon version.
|
|
name: ogr:dbname='expected/merged_pol.gpkg' table="output" (geom) sql=
|
|
uri: expected/merged_pol.gpkg|layername=merged_pol
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
path: skip
|
|
|
|
- algorithm: native:removeduplicatesbyattribute
|
|
name: Remove dupes by attribute 1
|
|
params:
|
|
FIELDS:
|
|
- num_field1
|
|
INPUT:
|
|
name: custom/duplicate_attributes.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/remove_duplicates1.gml
|
|
type: vector
|
|
|
|
- algorithm: native:removeduplicatesbyattribute
|
|
name: Remove dupes by attribute 2
|
|
params:
|
|
FIELDS:
|
|
- num_field2
|
|
INPUT:
|
|
name: custom/duplicate_attributes.gml
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/remove_duplicates2.gml
|
|
type: vector
|
|
|
|
- algorithm: native:removeduplicatesbyattribute
|
|
name: Remove dupes by attribute 3
|
|
params:
|
|
FIELDS:
|
|
- num_field2
|
|
- text_field
|
|
INPUT:
|
|
name: custom/duplicate_attributes.gml
|
|
type: vector
|
|
results:
|
|
DUPLICATES:
|
|
name: expected/remove_duplicates_dupes.gml
|
|
type: vector
|
|
OUTPUT:
|
|
name: expected/remove_duplicates3.gml
|
|
type: vector
|
|
|
|
- algorithm: native:forcerhr
|
|
name: Force right-hand-rule polys
|
|
params:
|
|
INPUT:
|
|
name: polys.gml|layername=polys2
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/force_rhr_polys.gml
|
|
type: vector
|
|
|
|
- algorithm: native:forcerhr
|
|
name: Force right-hand-rule multipolys
|
|
params:
|
|
INPUT:
|
|
name: multipolys.gml|layername=multipolys
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/force_rhr_multipolys.gml
|
|
type: vector
|
|
|
|
- algorithm: native:extractzvalues
|
|
name: Extract z, first value only
|
|
params:
|
|
COLUMN_PREFIX: z_
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_z_first.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractzvalues
|
|
name: Extract z, all stats
|
|
params:
|
|
COLUMN_PREFIX: zs_
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 10
|
|
- 11
|
|
- 12
|
|
- 13
|
|
- 14
|
|
- 15
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_z_all.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractzvalues
|
|
name: Extract z, points
|
|
params:
|
|
COLUMN_PREFIX: z_
|
|
INPUT:
|
|
name: custom/pointszm.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 10
|
|
- 11
|
|
- 12
|
|
- 13
|
|
- 14
|
|
- 15
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_z_points.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractzvalues
|
|
name: Extract z, no z values
|
|
params:
|
|
COLUMN_PREFIX: z_
|
|
INPUT:
|
|
name: lines.gml|layername=lines
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_z_none.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractmvalues
|
|
name: Extract m first only
|
|
params:
|
|
COLUMN_PREFIX: m_
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_m_first.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractmvalues
|
|
name: Extract m, all stats
|
|
params:
|
|
COLUMN_PREFIX: ms_
|
|
INPUT:
|
|
name: lines_m.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 10
|
|
- 11
|
|
- 12
|
|
- 13
|
|
- 14
|
|
- 15
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_m_all.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractmvalues
|
|
name: Extract m, points
|
|
params:
|
|
COLUMN_PREFIX: mp_
|
|
INPUT:
|
|
name: custom/pointszm.shp
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
- 6
|
|
- 7
|
|
- 8
|
|
- 9
|
|
- 10
|
|
- 11
|
|
- 12
|
|
- 13
|
|
- 14
|
|
- 15
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_m_points.shp
|
|
type: vector
|
|
|
|
- algorithm: native:extractmvalues
|
|
name: Extract m, no m values present
|
|
params:
|
|
COLUMN_PREFIX: m_
|
|
INPUT:
|
|
name: points.gml|layername=points
|
|
type: vector
|
|
SUMMARIES:
|
|
- 0
|
|
results:
|
|
OUTPUT:
|
|
name: expected/extract_m_none.shp
|
|
type: vector
|
|
|
|
- algorithm: native:splitlinesbylength
|
|
name: Split multilines by length
|
|
params:
|
|
INPUT:
|
|
name: multilines.gml|layername=multilines
|
|
type: vector
|
|
LENGTH: 1.1
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_multiline_by_length.gml
|
|
type: vector
|
|
|
|
- algorithm: native:splitlinesbylength
|
|
name: Split lines by length
|
|
params:
|
|
INPUT:
|
|
name: lines.gml|layername=lines
|
|
type: vector
|
|
LENGTH: 2.2
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_lines_by_length.gml
|
|
type: vector
|
|
|
|
- algorithm: native:splitlinesbylength
|
|
name: Split linesz by length
|
|
params:
|
|
INPUT:
|
|
name: lines_z.shp
|
|
type: vector
|
|
LENGTH: 3.1
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_linez_by_length.shp
|
|
type: vector
|
|
|
|
- algorithm: native:deleteduplicategeometries
|
|
name: Delete Duplicates with null geometries
|
|
params:
|
|
INPUT:
|
|
name: lines.gml|layername=lines
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/delete_duplicates_with_nulls.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rasterlayerzonalstats
|
|
name: Raster layer zonal stats, same CRS
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
ZONES:
|
|
name: custom/dem_zones.tif
|
|
type: raster
|
|
ZONES_BAND: 1
|
|
results:
|
|
OUTPUT_TABLE:
|
|
name: expected/raster_zonal_stats.csv
|
|
type: vector
|
|
pk:
|
|
- zone
|
|
|
|
- algorithm: native:rasterlayerzonalstats
|
|
name: Raster layer zonal stats, reprojected
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
ZONES:
|
|
name: custom/dem_zones_crs.tif
|
|
type: raster
|
|
ZONES_BAND: 1
|
|
results:
|
|
OUTPUT_TABLE:
|
|
name: expected/raster_zonal_stats_reproj.csv
|
|
type: vector
|
|
pk:
|
|
- zone
|
|
compare:
|
|
fields:
|
|
sum:
|
|
precision: 0
|
|
|
|
- algorithm: native:rasterlayerzonalstats
|
|
name: Raster layer zonal stats, zones ref
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
REF_LAYER: 1
|
|
ZONES:
|
|
name: custom/dem_zones.tif
|
|
type: raster
|
|
ZONES_BAND: 1
|
|
results:
|
|
OUTPUT_TABLE:
|
|
name: expected/raster_zonal_stats_zone_ref.csv
|
|
type: vector
|
|
pk:
|
|
- zone
|
|
|
|
- algorithm: native:rasterlayerzonalstats
|
|
name: Raster layer zonal stats reprojected, zones ref
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
REF_LAYER: 1
|
|
ZONES:
|
|
name: custom/dem_zones_crs.tif
|
|
type: raster
|
|
ZONES_BAND: 1
|
|
results:
|
|
OUTPUT_TABLE:
|
|
name: expected/raster_zonal_stats_zone_crs_ref.csv
|
|
type: vector
|
|
pk:
|
|
- zone
|
|
|
|
- algorithm: native:antimeridiansplit
|
|
name: Antimeridian split, lines
|
|
ellipsoid: GRS80
|
|
project_crs: EPSG:4326
|
|
params:
|
|
INPUT:
|
|
name: custom/antimeridian_lines.gml|layername=antimeridian_lines
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/antimeridian_lines_split.gml
|
|
type: vector
|
|
compare:
|
|
geometry:
|
|
precision: 4
|
|
pk:
|
|
- pk
|
|
|
|
- algorithm: native:antimeridiansplit
|
|
name: Antimeridian split, multilines
|
|
ellipsoid: GRS80
|
|
project_crs: EPSG:4326
|
|
params:
|
|
INPUT:
|
|
name: custom/antimeridian_multilines.gml|layername=antimeridian_multilines
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/antimeridian_multilines_split.gml
|
|
type: vector
|
|
compare:
|
|
geometry:
|
|
precision: 4
|
|
pk:
|
|
- pk
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume above
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
LEVEL: 100.0
|
|
METHOD: 0
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_above.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: 0.064805'
|
|
- 'Pixel count: 95901'
|
|
- 'Area: 0.000959'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_above.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume Below
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
LEVEL: 100.0
|
|
METHOD: 1
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_below.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: -0.00322225'
|
|
- 'Pixel count: 34600'
|
|
- 'Area: 0.00034599'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_below.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume subtract below
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
LEVEL: 100.0
|
|
METHOD: 2
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_subtract.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: 0.0615830'
|
|
- 'Pixel count: 130550'
|
|
- 'Area: 0.00130549'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_subtract.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume add below
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: dem.tif
|
|
type: raster
|
|
LEVEL: 100.0
|
|
METHOD: 3
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_add.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: 0.06802752'
|
|
- 'Pixel count: 130550'
|
|
- 'Area: 0.00130549'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_add.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume above (meters)
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_crs.tif
|
|
type: raster
|
|
LEVEL: 150.0
|
|
METHOD: 0
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_above_crs.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: 413784918\.'
|
|
- 'Pixel count: 64692'
|
|
- 'Area: 11497732\.'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_above_crs.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume below (meters)
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_crs.tif
|
|
type: raster
|
|
LEVEL: 150.0
|
|
METHOD: 1
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_below_crs.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: -479651884\.'
|
|
- 'Pixel count: 65660'
|
|
- 'Area: 11669775\.'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_below_crs.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume subtract below (meters)
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_crs.tif
|
|
type: raster
|
|
LEVEL: 150.0
|
|
METHOD: 2
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_subtract_crs.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: -65866966\.'
|
|
- 'Pixel count: 130550'
|
|
- 'Area: 23202698\.'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_subtract_crs.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume add below (meters)
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_crs.tif
|
|
type: raster
|
|
LEVEL: 150.0
|
|
METHOD: 3
|
|
results:
|
|
OUTPUT_HTML_FILE:
|
|
name: expected/surface_vol_add_crs.html
|
|
type: regex
|
|
rules:
|
|
- 'Volume: 893436802\.'
|
|
- 'Pixel count: 130550'
|
|
- 'Area: 23202698\.'
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_add_crs.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rastersurfacevolume
|
|
name: Surface volume with gaps
|
|
params:
|
|
BAND: 1
|
|
INPUT:
|
|
name: custom/dem_gaps.tif
|
|
type: raster
|
|
LEVEL: 101.0
|
|
METHOD: 0
|
|
results:
|
|
OUTPUT_TABLE:
|
|
name: expected/surface_vol_gaps.gml
|
|
type: vector
|
|
|
|
- algorithm: native:dissolve
|
|
name: Test dissolve with consecutive lines
|
|
params:
|
|
INPUT:
|
|
name: custom/consecutivelines.gml|layername=consecutivelines
|
|
type: vector
|
|
results:
|
|
OUTPUT:
|
|
name: expected/dissolved_consecutive_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: native:rasterbooleanand
|
|
name: Boolean AND, nodata
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean1.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: 96799caed50406d3e31e05a182a6872231f800f01dea126aa9fbafdd
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterbooleanand
|
|
name: Boolean AND, nodata as false
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: true
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean1.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: bf225380193226957a2210dc45a9c10dffac5dadcee932459e243456
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterbooleanand
|
|
name: Boolean AND, resampling
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: cdf6edb6afcefc5e80d60fa213df17aae59423019240807f5a49b72d
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterbooleanand
|
|
name: Boolean AND resample, nodata as false
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: true
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: 1de336faba85a6b51684bda85b4f3b954b7e54486632352e05c9fab3
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterbooleanand
|
|
name: Boolean AND, reference layer
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: dfe0bfc934a9d2a8ab865ad77db4278067830ac8e6f0470a730ad434
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterlogicalor
|
|
name: Boolean OR
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean1.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: d9fe5b26cf76ff58674fd6adeb1933f4b5c9b39ca6f57b876455f167
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterlogicalor
|
|
name: Boolean OR, nodata as false
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: true
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean1.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: de7a8dabce3872e6ef1acd4821f7f550ac41a43d5b5914ab4474cec1
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterlogicalor
|
|
name: Boolean OR resample
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: 56c4396468098a6f421e14682e22bb9cbb14027ed97f99cb8f85f953
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterlogicalor
|
|
name: Boolean OR resample, nodata as false
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: true
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: f8f7a412274c3133aee7fc24e3e6df2ddb52c6bc82663dd25154d3be
|
|
type: rasterhash
|
|
|
|
- algorithm: native:rasterlogicalor
|
|
name: Boolean OR, reference layer
|
|
params:
|
|
DATA_TYPE: 5
|
|
INPUT:
|
|
params:
|
|
- name: custom/raster_boolean1.tif
|
|
type: raster
|
|
- name: custom/raster_boolean2.tif
|
|
type: raster
|
|
- name: custom/raster_boolean3.tif
|
|
type: raster
|
|
type: multi
|
|
NODATA_AS_FALSE: false
|
|
NO_DATA: -9999.0
|
|
REF_LAYER:
|
|
name: custom/raster_boolean3_resample.tif
|
|
type: raster
|
|
results:
|
|
OUTPUT:
|
|
hash: 6c09e13126e16a267e36c79b0eeba7761422da7bd0387125f4c823e6
|
|
type: rasterhash
|
|
|
|
- algorithm: native:addxyfields
|
|
name: Add XY 4326
|
|
params:
|
|
CRS: EPSG:4326
|
|
INPUT:
|
|
name: points.gml|layername=points
|
|
type: vector
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/add_xy_4326.gml
|
|
type: vector
|
|
|
|
- algorithm: native:addxyfields
|
|
name: Add XY 3785
|
|
params:
|
|
CRS: EPSG:3785
|
|
INPUT:
|
|
name: points.gml|layername=points
|
|
type: vector
|
|
PREFIX: p_
|
|
results:
|
|
OUTPUT:
|
|
name: expected/add_xy_3857.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
p_x:
|
|
precision: 6
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Join by nearest polys to points
|
|
params:
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_polys.gml|layername=snap_polys
|
|
type: vector
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_polys_to_points.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Nearest polys to points, with options
|
|
params:
|
|
FIELDS_TO_COPY:
|
|
- fid
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_polys.gml|layername=snap_polys
|
|
type: vector
|
|
MAX_DISTANCE: 3.5
|
|
NEIGHBORS: 2
|
|
PREFIX: j_
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_polys_to_points_options.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Nearest lines to polys
|
|
params:
|
|
INPUT:
|
|
name: snap_polys.gml|layername=snap_polys
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_lines.gml|layername=snap_lines
|
|
type: vector
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_lines_to_polys.gml
|
|
type: vector
|
|
pk: [fid,fid_2]
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Nearest points to lines, with max distance
|
|
params:
|
|
INPUT:
|
|
name: snap_lines.gml|layername=snap_lines
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
MAX_DISTANCE: 1.5
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_points_to_lines.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Nearest points to lines, reprojected
|
|
params:
|
|
INPUT:
|
|
name: custom/snap_lines_3857.gml|layername=snap_lines_3857
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_points_to_reproj_lines.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
distance:
|
|
precision: 5
|
|
feature_x:
|
|
precision: 5
|
|
nearest_x:
|
|
precision: 5
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Nearest lines to points, reprojected
|
|
params:
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: custom/snap_lines_3857.gml|layername=snap_lines_3857
|
|
type: vector
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/nearest_lines_to_points_reprojected.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
distance:
|
|
precision: 5
|
|
nearest_y:
|
|
precision: 5
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Join to nearest, self join
|
|
params:
|
|
DISCARD_NONMATCHING: false
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/join_to_nearest_self.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Join to nearest 2, self join
|
|
params:
|
|
DISCARD_NONMATCHING: false
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
NEIGHBORS: 2
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/join_to_nearest_self_2.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Join to nearest, discard no matching
|
|
params:
|
|
DISCARD_NONMATCHING: true
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_lines.gml|layername=snap_lines
|
|
type: vector
|
|
MAX_DISTANCE: 1.0
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
OUTPUT:
|
|
name: expected/join_points_to_layers_discard.gml
|
|
type: vector
|
|
|
|
- algorithm: native:joinbynearest
|
|
name: Join by nearest, no matching sink
|
|
params:
|
|
DISCARD_NONMATCHING: true
|
|
INPUT:
|
|
name: snap_points.gml|layername=snap_points
|
|
type: vector
|
|
INPUT_2:
|
|
name: snap_lines.gml|layername=snap_lines
|
|
type: vector
|
|
MAX_DISTANCE: 1.0
|
|
NEIGHBORS: 1
|
|
PREFIX: ''
|
|
results:
|
|
NON_MATCHING:
|
|
name: expected/join_to_nearest_no_matches.gml
|
|
type: vector
|
|
|
|
- name: Generate XYZ tiles (Directory)
|
|
algorithm: qgis:tilesxyzdirectory
|
|
project: ../../../../../tests/testdata/xyztiles.qgs
|
|
project_crs: EPSG:3857
|
|
params:
|
|
EXTENT: -12535000,-9883000,3360000,5349000 [EPSG:3857]
|
|
ZOOM_MIN: 1
|
|
ZOOM_MAX: 3
|
|
TILE_FORMAT: 0 # png
|
|
TMS_CONVENTION: false
|
|
TILE_WIDTH: 256
|
|
TILE_HEIGHT: 256
|
|
|
|
results:
|
|
OUTPUT_DIRECTORY:
|
|
type: directory
|
|
name: expected/xyztiles
|
|
|
|
- algorithm: native:calculatevectoroverlaps
|
|
name: Overlap analysis 1
|
|
ellipsoid: GRS80
|
|
project_crs: EPSG:4326
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay0.geojson
|
|
type: vector
|
|
LAYERS:
|
|
params:
|
|
- name: custom/overlay1_a.geojson
|
|
type: vector
|
|
- name: custom/overlay1_b.geojson
|
|
type: vector
|
|
- name: custom/overlay2_a.geojson
|
|
type: vector
|
|
- name: custom/overlay2_b.geojson
|
|
type: vector
|
|
- name: custom/overlay3_a.geojson
|
|
type: vector
|
|
- name: custom/overlay3_b.geojson
|
|
type: vector
|
|
type: multi
|
|
results:
|
|
OUTPUT:
|
|
name: expected/overlap_analysis_1.gml
|
|
type: vector
|
|
|
|
- algorithm: native:calculatevectoroverlaps
|
|
name: Overlap analysis reprojected
|
|
ellipsoid: GRS80
|
|
project_crs: EPSG:4326
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay0_4326.gml|layername=overlay0_4326
|
|
type: vector
|
|
LAYERS:
|
|
params:
|
|
- name: custom/overlay1_a.geojson
|
|
type: vector
|
|
- name: custom/overlay1_b.geojson
|
|
type: vector
|
|
- name: custom/overlay2_a.geojson
|
|
type: vector
|
|
- name: custom/overlay2_b.geojson
|
|
type: vector
|
|
- name: custom/overlay3_a.geojson
|
|
type: vector
|
|
- name: custom/overlay3_b.geojson
|
|
type: vector
|
|
type: multi
|
|
results:
|
|
OUTPUT:
|
|
name: expected/overlap_analysis_4326.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
custom_overlay2_a.geojson_area:
|
|
precision: 13
|
|
custom_overlay2_a.geojson_pc:
|
|
precision: 13
|
|
custom_overlay2_b.geojson_area:
|
|
precision: 8
|
|
custom_overlay2_b.geojson_pc:
|
|
precision: 7
|
|
|
|
- algorithm: native:calculatevectoroverlaps
|
|
name: Overlap analysis 3, reordered inputs
|
|
ellipsoid: GRS80
|
|
project_crs: EPSG:4326
|
|
params:
|
|
INPUT:
|
|
name: custom/overlay0.geojson
|
|
type: vector
|
|
LAYERS:
|
|
params:
|
|
- name: custom/overlay3_b.geojson
|
|
type: vector
|
|
- name: custom/overlay1_b.geojson
|
|
type: vector
|
|
- name: custom/overlay2_a.geojson
|
|
type: vector
|
|
- name: custom/overlay2_b.geojson
|
|
type: vector
|
|
- name: custom/overlay1_a.geojson
|
|
type: vector
|
|
- name: custom/overlay3_a.geojson
|
|
type: vector
|
|
type: multi
|
|
results:
|
|
OUTPUT:
|
|
name: expected/overlap_analysis_3.gml
|
|
type: vector
|
|
compare:
|
|
fields:
|
|
custom_overlay1_a.geojson_area:
|
|
precision: 8
|
|
custom_overlay1_a.geojson_pc:
|
|
precision: 3
|
|
custom_overlay1_b.geojson_area:
|
|
precision: 8
|
|
custom_overlay1_b.geojson_pc:
|
|
precision: 3
|
|
custom_overlay2_a.geojson_area:
|
|
precision: 8
|
|
custom_overlay2_a.geojson_pc:
|
|
precision: 3
|
|
custom_overlay2_b.geojson_area:
|
|
precision: 8
|
|
custom_overlay2_b.geojson_pc:
|
|
precision: 3
|
|
custom_overlay3_a.geojson_area:
|
|
precision: 8
|
|
custom_overlay3_a.geojson_pc:
|
|
precision: 3
|
|
custom_overlay3_b.geojson_area:
|
|
precision: 8
|
|
custom_overlay3_b.geojson_pc:
|
|
precision: 3
|
|
|
|
- algorithm: native:splitfeaturesbycharacter
|
|
name: Split features by character
|
|
params:
|
|
CHAR: B
|
|
FIELD: val
|
|
INPUT:
|
|
name: custom/split_points.shp|layername=split_points
|
|
type: vector
|
|
REGEX: false
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_by_char_a.gml
|
|
type: vector
|
|
|
|
- algorithm: native:splitfeaturesbycharacter
|
|
name: Split features by character 2
|
|
params:
|
|
CHAR: aB
|
|
FIELD: val
|
|
INPUT:
|
|
name: custom/split_points.shp|layername=split_points
|
|
type: vector
|
|
REGEX: false
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_by_char_b.gml
|
|
type: vector
|
|
|
|
- algorithm: native:splitfeaturesbycharacter
|
|
name: Split features by character regex
|
|
params:
|
|
CHAR: \d
|
|
FIELD: val2
|
|
INPUT:
|
|
name: custom/split_points.shp|layername=split_points
|
|
type: vector
|
|
REGEX: true
|
|
results:
|
|
OUTPUT:
|
|
name: expected/split_by_char_regex.gml
|
|
type: vector
|
|
|
|
- algorithm: native:affinetransform
|
|
name: Affine transform
|
|
params:
|
|
DELTA_M: 4.0
|
|
DELTA_X: 1.0
|
|
DELTA_Y: 2.0
|
|
DELTA_Z: 3.0
|
|
INPUT:
|
|
name: custom/pointszm.shp
|
|
type: vector
|
|
ROTATION_Z: 45.0
|
|
SCALE_M: 1.4
|
|
SCALE_X: 1.1
|
|
SCALE_Y: 1.2
|
|
SCALE_Z: 1.3
|
|
results:
|
|
OUTPUT:
|
|
name: expected/affine_transform.gml
|
|
type: vector
|
|
|
|
|
|
# See ../README.md for a description of the file format
|