diff --git a/.github/workflows/format-tests.yml b/.github/workflows/format-tests.yml index d036b2f7d..f49e3c83e 100644 --- a/.github/workflows/format-tests.yml +++ b/.github/workflows/format-tests.yml @@ -50,6 +50,12 @@ jobs: docker run -v "${{ runner.temp }}:/tmp/" topo-imagery python3 standardise_validate.py --from-file ./tests/data/aerial.json --preset webp --target-epsg 2193 --source-epsg 2193 --target /tmp/cutline/ --collection-id 123 --start-datetime 2023-01-01 --end-datetime 2023-01-01 --cutline ./tests/data/cutline_aerial.fgb --gsd 10m --create-footprints=true cmp --silent "${{ runner.temp }}/cutline/BG35_1000_4829.tiff" ./scripts/tests/data/output/BG35_1000_4829_cut.tiff + - name: End to end test - Footprint + run: | + docker run -v "${{ runner.temp }}:/tmp/" topo-imagery python3 standardise_validate.py --from-file ./tests/data/aerial.json --preset webp --target-epsg 2193 --source-epsg 2193 --target /tmp/ --collection-id 123 --start-datetime 2023-01-01 --end-datetime 2023-01-01 --gsd 10m --create-footprints=true + jq 'select(.xy_coordinate_resolution == 1E-8) // error("Wrong or missing X/Y coordinate resolution")' "${{ runner.temp }}/BG35_1000_4829_footprint.geojson" + cmp --silent <(jq "del(.features[0].properties.location, .xy_coordinate_resolution)" "${{ runner.temp }}/BG35_1000_4829_footprint.geojson") <(jq "del(.features[0].properties.location, .xy_coordinate_resolution)" ./scripts/tests/data/output/BG35_1000_4829_footprint.geojson) + - name: End to end test - Thumbnails (Topo50/Topo250) run: | docker run -v "${{ runner.temp }}:/tmp/" topo-imagery python3 thumbnails.py --from-file ./tests/data/thumbnails.json --target /tmp/ diff --git a/scripts/standardising.py b/scripts/standardising.py index b009f21c9..2087e8b76 100644 --- a/scripts/standardising.py +++ b/scripts/standardising.py @@ -223,6 +223,9 @@ def standardising( f"EPSG:{EpsgNumber.WGS_1984.value}", "-max_points", "unlimited", + # Round to 8 decimal places to reduce unnecessary complexity + "-lco", + "COORDINATE_PRECISION=8", "-simplify", str(get_buffer_distance(gsd_to_float(gsd))), ], diff --git a/scripts/tests/data/output/BG35_1000_4829_footprint.geojson b/scripts/tests/data/output/BG35_1000_4829_footprint.geojson new file mode 100644 index 000000000..58f7ee6f4 --- /dev/null +++ b/scripts/tests/data/output/BG35_1000_4829_footprint.geojson @@ -0,0 +1,31 @@ +{ + "type": "FeatureCollection", + "name": "footprint", + "crs": { + "type": "name", + "properties": { + "name": "urn:ogc:def:crs:OGC:1.3:CRS84" + } + }, + "xy_coordinate_resolution": 1e-8, + "features": [ + { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "MultiPolygon", + "coordinates": [ + [ + [ + [175.78216634, -38.85027165], + [175.78241902, -38.85675232], + [175.78794458, -38.85662046], + [175.7876914, -38.85013982], + [175.78216634, -38.85027165] + ] + ] + ] + } + } + ] +}