Skip to content

Conformance

terrio's results compared with GDAL's (and laspy's and PDAL's for point clouds) on real-world files: the files of scripts/fetch_test_data.sh (Natural Earth, USGS 3DEP, Sentinel-2, NASA ECOSTRESS and OPERA, OpenStreetMap and more, with copies GDAL derives in other formats), and synthetic rasters for the driver round trips. Each case is identical to the reference, within tolerance (the suite says which), or differs. Regenerate this page with:

cargo build --release
python scripts/conformance.py ../terrio-data --output docs/conformance.md

Generated on 2026-10-14 with terrio 0.1.1 (9e7f7f5), GDAL 3.12.2, PROJ 9.7.1, PDAL 2.9.3, laspy 2.7.0; the coordinate transformation suites on 2026-10-21 with terrio 0.3.2, GDAL 3.12.2 and PROJ 9.8.1, with 50 reference points of each kind per EPSG CRS.

Summary

Suite Reference Cases Identical Within tolerance Differs
Dataset summaries and pixels GDAL (gdalinfo, ogrinfo, Python bindings) 64 64 0 0
Vector conversions GDAL reading terrio's output 23 23 0 0
Raster drivers GDAL writing what terrio reads, and reading what terrio writes 487 487 0 0
Windowed and overview reads GDAL reading the same windows 186 186 0 0
Raster operations gdal_translate, gdalwarp, gdalbuildvrt, gdal_merge.py 49 42 7 0
Terrain analysis and raster algebra gdaldem, gdal_calc.py, gdal_proximity.py, gdal_sieve.py 131 129 2 0
Vector operations ogr2ogr, gdal_rasterize, gdal_polygonize.py 51 51 0 0
Arrow and GeoArrow GDAL's Arrow streams, pyarrow, GeoPandas 180 171 9 0
GeoPackage updates and spatial filters ogr2ogr, GDAL's validate_gpkg.py 12 12 0 0
Point clouds laspy (every value), PDAL (headers, PLY, E57 and EPT, COPC and EPT queries, filters, grids, reprojection) and gdal_grid (TIN and nearest-neighbour grids) 615 609 6 0
Coordinate transformations GDAL 3.12 and PROJ (gdaltransform) 19,017 19,002 13 2
Datum shift grids, geoid models and coordinate epochs GDAL 3.12 and PROJ, with the same grids 19,253 19,223 28 2
All 40,068 39,999 65 4

Dataset summaries and pixels

Every raster and vector file of the test data: size, type, CRS, geotransform, nodata, band statistics, layers, fields, feature counts and extents as GDAL reports them (numbers within 1e-6 relative, statistics within 1e-4), and every raster pixel exactly.

Format or operation Cases Identical Within tolerance Differs
GTiff 15 15 0 0
GeoJSON 7 7 0 0
FlatGeobuf 2 2 0 0
GPKG 4 4 0 0
KML 3 3 0 0
GML 1 1 0 0
MapInfo File 3 3 0 0
Parquet 2 2 0 0
GPX 3 3 0 0
CSV 1 1 0 0
OSM 2 2 0 0
AAIGrid 1 1 0 0
ENVI 1 1 0 0
HFA 1 1 0 0
JP2 2 2 0 0
Zarr 3 3 0 0
zip archives 3 3 0 0
KMZ 1 1 0 0
EHdr 1 1 0 0
ERS 1 1 0 0
GSBG 1 1 0 0
netCDF 2 2 0 0
RST 1 1 0 0
SAGA 1 1 0 0
TopoJSON 2 2 0 0

Vector conversions

A file converted by terrio convert into each format, then read by GDAL: feature counts, fields, CRS, extent and a sample of geometries and attribute values must match what GDAL reads from the original, but for the differences GDAL's reading of ogr2ogr's own conversion into that format has too (KML naming the name field Name, shapefiles truncating field names, MapInfo rounding coordinates to its grid, CSV files without a CRS).

Format or operation Cases Identical Within tolerance Differs
GeoJSON 2 2 0 0
FlatGeobuf 3 3 0 0
GPKG 4 4 0 0
ESRI Shapefile 2 2 0 0
Parquet 2 2 0 0
CSV 2 2 0 0
GML 1 1 0 0
KML 3 3 0 0
MapInfo File 2 2 0 0
TopoJSON 1 1 0 0
GPX 1 1 0 0

Raster drivers

Synthetic rasters of every data type a format holds (several bands, NaN and finite nodata, geographic, projected and user-defined CRSs). Read: GDAL writes, terrio reads; write: terrio writes, GDAL reads. Pixels, type, CRS and nodata must match exactly, geotransforms within 1e-9.

Format or operation Cases Identical Within tolerance Differs
GTiff (read) 14 14 0 0
GTiff (write) 70 70 0 0
COG (read) 14 14 0 0
COG (write) 56 56 0 0
AAIGrid (read) 5 5 0 0
AAIGrid (write) 5 5 0 0
EHdr (read) 10 10 0 0
EHdr (write) 10 10 0 0
ENVI (read) 12 12 0 0
ENVI (write) 12 12 0 0
GSBG (read) 1 1 0 0
GSBG (write) 1 1 0 0
SAGA (read) 7 7 0 0
SAGA (write) 7 7 0 0
RST (read) 4 4 0 0
RST (write) 4 4 0 0
ERS (read) 11 11 0 0
ERS (write) 11 11 0 0
HFA (read) 11 11 0 0
PNG (read) 3 3 0 0
PNG (write) 3 3 0 0
JPEG (read) 2 2 0 0
JPEG (write) 2 2 0 0
JP2OpenJPEG (read) 5 5 0 0
JP2OpenJPEG (write) 5 5 0 0
XYZ (read) 5 5 0 0
XYZ (write) 5 5 0 0
Zarr (read) 65 65 0 0
Zarr (write) 65 65 0 0
netCDF (read) 26 26 0 0
netCDF (write) 26 26 0 0
GPKG (read) 5 5 0 0
GPKG (write) 5 5 0 0

Windowed and overview reads

Windows of every GeoTIFF of the test data, at full resolution and from each overview, read in place by terrio convert --srcwin --overview: pixels identical, geotransforms within 1e-9. Remote: the same on public Cloud Optimized GeoTIFFs over HTTP.

Format or operation Cases Identical Within tolerance Differs
GTiff local, full resolution 60 60 0 0
GTiff local, overviews 104 104 0 0
GTiff remote, headers 4 4 0 0
GTiff remote, full resolution 4 4 0 0
GTiff remote, overviews 14 14 0 0

Raster operations

The outputs of the same command lines on real files: size, type, CRS and geotransform must match, then pixels are compared. Identical: every pixel equal. Within tolerance: every pixel within the case's tolerance (1e-2 for interpolating resamplings).

Format or operation Cases Identical Within tolerance Differs
translate 14 14 0 0
warp 28 21 7 0
mosaic 5 5 0 0
read 2 2 0 0

Cases that are not identical:

Format or operation Case Result Details
warp warp DEM NAD83->UTM bilinear within tolerance 5 pixels differ (3.957e-05 %), max difference 0.000244
warp warp DEM NAD83->UTM cubic within tolerance 4 pixels differ (3.166e-05 %), max difference 0.000244
warp warp DEM NAD83->UTM cubicspline within tolerance 4 pixels differ (3.166e-05 %), max difference 0.000244
warp warp DEM NAD83->UTM lanczos within tolerance 5 pixels differ (3.957e-05 %), max difference 0.000244
warp warp DEM NAD83->UTM average within tolerance 2 pixels differ (1.582e-05 %), max difference 0.000244
warp warp DEM NAD83->UTM rms within tolerance 7 pixels differ (5.538e-05 %), max difference 0.000244
warp warp DEM ->3857 tr 100 bilinear (-ovr NONE) within tolerance 1 pixels differ (6.187e-05 %), max difference 0.000122

Terrain analysis and raster algebra

The outputs of the same command lines on real DEMs and land cover: size, type, nodata and geotransform must match, then pixels are compared. Within tolerance: every pixel within the case's tolerance (float32 rounding of NumPy's SIMD functions, for example).

Format or operation Cases Identical Within tolerance Differs
dem hillshade 25 25 0 0
dem slope 14 14 0 0
dem aspect 10 10 0 0
dem TRI 7 7 0 0
dem TPI 6 6 0 0
dem roughness 6 6 0 0
dem color-relief 13 13 0 0
calc landsat 13 13 0 0
calc usgs 10 8 2 0
calc srtm90 4 4 0 0
calc dem 2 2 0 0
calc las_vegas 1 1 0 0
calc nlcd 2 2 0 0
calc mixed 2 2 0 0
calc extent 2 2 0 0
calc projwin 1 1 0 0
proximity nlcd 2 2 0 0
proximity usgs 4 4 0 0
proximity landsat 1 1 0 0
sieve nlcd 3 3 0 0
sieve usgs 2 2 0 0
sieve landsat 1 1 0 0

Cases that are not identical:

Format or operation Case Result Details
calc usgs calc usgs functions (NumPy SIMD float32) within tolerance 2797827 pixels differ (21.44 %), max difference 3.81e-06
calc usgs calc usgs arctan2 hypot (NumPy SIMD float32) within tolerance 2333 pixels differ (0.01788 %), max difference 0.000488

Vector operations

Conversions with ogr2ogr's options (where, spat, select, sql, nlt...) compared feature by feature; SQL expressions, DISTINCT, summaries and attribute joins against OGRSQL compare values, nulls, logical field types, geometry WKB and CRS, including duplicate and null join keys. Integer widths normalize to Terrio's Integer model. Rasterized pixels compare exactly; polygons compare by count, holes and validity, and by rasterizing them back.

Format or operation Cases Identical Within tolerance Differs
convert (ogr2ogr options) 28 28 0 0
convert --append/--overwrite 1 1 0 0
sql 16 16 0 0
rasterize 18 18 0 0
polygonize 4 4 0 0

Arrow and GeoArrow

Every layer of the test data exported with Layer.to_arrow() (WKB and native GeoArrow) against GDAL's Arrow stream of the same layer, through pyarrow and GeoPandas, and imported back with terrio.from_arrow() (and by GDAL's WriteArrow): rows, geometries, attribute values and CRS. Within tolerance: geometries equal up to vertex order.

Format or operation Cases Identical Within tolerance Differs
export WKB vs GDAL 16 15 1 0
export CRS vs GDAL 16 16 0 0
export geoarrow.multipolygon (separated) vs GDAL 6 5 1 0
import geoarrow.multipolygon (separated) 6 6 0 0
export geoarrow.multipolygon (interleaved) vs GDAL 6 5 1 0
import geoarrow.multipolygon (interleaved) 6 6 0 0
GeoDataFrame.from_arrow vs GDAL 12 11 1 0
import GDAL stream (WKB) 16 15 1 0
import ogr.Layer 16 15 1 0
import GeoDataFrame.to_arrow(WKB) 12 11 1 0
import GeoDataFrame.to_arrow(geoarrow) 12 11 1 0
GDAL WriteArrow of terrio's table 16 15 1 0
export geoarrow.point (separated) vs GDAL 5 5 0 0
import geoarrow.point (separated) 5 5 0 0
export geoarrow.point (interleaved) vs GDAL 5 5 0 0
import geoarrow.point (interleaved) 5 5 0 0
export geoarrow.linestring (separated) vs GDAL 3 3 0 0
import geoarrow.linestring (separated) 3 3 0 0
export geoarrow.linestring (interleaved) vs GDAL 3 3 0 0
import geoarrow.linestring (interleaved) 3 3 0 0
export geoarrow.multilinestring (separated) vs GDAL 2 2 0 0
import geoarrow.multilinestring (separated) 2 2 0 0
export geoarrow.multilinestring (interleaved) vs GDAL 2 2 0 0
import geoarrow.multilinestring (interleaved) 2 2 0 0

Cases that are not identical:

Format or operation Case Result Details
export WKB vs GDAL liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850
export geoarrow.multipolygon (separated) vs GDAL liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850
export geoarrow.multipolygon (interleaved) vs GDAL liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850
GeoDataFrame.from_arrow vs GDAL liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850, crs same
import GDAL stream (WKB) liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850, crs same
import ogr.Layer liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850
import GeoDataFrame.to_arrow(WKB) liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850, crs same
import GeoDataFrame.to_arrow(geoarrow) liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850, crs same
GDAL WriteArrow of terrio's table liechtenstein.osm.pbf:multipolygons within tolerance rows 24314, geometries 24274/24314 (24314 equal up to vertex order), values 607850/607850

GeoPackage updates and spatial filters

--append, --overwrite and added layers compared with ogr2ogr (features, extents, counts, sequences, R-trees, integrity_check, the GeoPackage validator, rasters kept), and --spat through the R-tree compared with ogr2ogr -spat.

Format or operation Cases Identical Within tolerance Differs
append 4 4 0 0
add 2 2 0 0
--spat 6 6 0 0

Point clouds

Every dimension of every point equal to laspy's; headers equal to laspy's and PDAL's; written files read back identically by laspy and PDAL; PLY, E57 and EPT points equal to PDAL's; COPC and EPT queries returning the same points as PDAL's; waveform samples equal to the file's packets; filters giving the same classes or points as PDAL's; grids equal to PDAL's writers.gdal. Reprojections are within 2e-7 degrees or 2 mm of PDAL's; TIN grids differ from gdal_grid's where points share an x and y.

Format or operation Cases Identical Within tolerance Differs
read vs laspy 56 56 0 0
header vs laspy 56 56 0 0
header vs PDAL 56 56 0 0
write and read back (laspy) 159 159 0 0
write and read back (PDAL) 141 141 0 0
COPC queries vs PDAL 9 9 0 0
grid vs PDAL writers.gdal 8 8 0 0
reproject vs PDAL 3 0 3 0
PLY, E57 and EPT vs PDAL 24 24 0 0
EPT queries vs PDAL 4 4 0 0
PLY, E57 and EPT written, read back 8 8 0 0
waveforms 3 3 0 0
filters vs PDAL 84 84 0 0
TIN and nearest grids vs gdal_grid 4 1 3 0

Cases that are not identical:

Format or operation Case Result Details
reproject vs PDAL reproject test_utm16.las to EPSG:4269 within tolerance max |dx| 9.41e-08, |dy| 6.91e-08
reproject vs PDAL reproject las_with_several_extra_byte_bloc.laz to EPSG:4326 within tolerance max |dx| 9.67e-08, |dy| 8.86e-08
reproject vs PDAL reproject format6.laz to EPSG:5070 within tolerance max |dx| 0.000784, |dy| 0.000838
TIN and nearest grids vs gdal_grid interp linear autzen_trim.las res 6.0 vs gdal_grid -a linear:radius=0 (197x94) within tolerance 16 of 18518 cells differ (99.914% identical)
TIN and nearest grids vs gdal_grid interp linear autzen_trim.las res 6.0 vs gdal_grid -a linear (197x94) within tolerance 16 of 18518 cells differ (99.914% identical)
TIN and nearest grids vs gdal_grid interp nearest autzen_trim.las res 6.0 vs gdal_grid -a nearest:radius1=8:radius2=8 (197x94) within tolerance 1 of 18518 cells differ (99.995% identical)

Coordinate transformations

50 reference points per EPSG geographic and projected CRS (the centre of its area of use and random points of it), transformed from WGS 84 (forward), 50 more back (inverse), and 50 between the CRS and another whose area holds them, compared with GDAL's results, neither using datum shift grids, a case per CRS (per pair of CRSs from CRS to CRS) judged by its worst point; then projections EPSG has no code for, against PROJ (crates/terrio/tests/geostationary.rs: points from nadir to near the limb, forward within 1 mm and inverse within 1e-8°, and points the satellite cannot see refused; crates/terrio-crs/tests/ellipsoidal_projections.rs: points over the globe on WGS 84 and on a sphere, forward within 1 mm and inverse within 1e-8°, and for the gnomonic points beyond the horizon refused; crates/terrio-crs/tests/proj_strings.rs: every PROJ projection with typical parameters, on WGS 84 and on a sphere, as a PROJ string and as pyproj's WKT1_GDAL and WKT2_2019, 20 points each, matching PROJ or refused). Identical: within 1 mm. Within tolerance: within 1 cm (forward, inverse) or 1 m (CRS to CRS, where the datum transformations GDAL picks can differ by area of use). Known differences: deprecated CRSs whose own datum PROJ uses, where terrio uses their replacement's (#153).

Format or operation Cases Identical Within tolerance Differs
forward (WGS 84 to CRS) 6,354 6,354 0 0
inverse (CRS to WGS 84) 6,354 6,354 0 0
CRS to CRS 6,295 6,280 13 2
PROJ definitions without an EPSG code 14 14 0 0

Cases that are not identical:

Format or operation Case Result Details
CRS to CRS EPSG:6054 to EPSG:4287 differs 267.0470 m at (31784658.69, 3344856.669), the largest of 50 points
CRS to CRS EPSG:29183 to EPSG:20823 differs 208.2056 m at (701491.5661, 7674422.233), the largest of 50 points
CRS to CRS EPSG:3312 to EPSG:31171 within tolerance 0.0021 m at (823128.8384, 542294.9992), the largest of 50 points
CRS to CRS EPSG:3768 to EPSG:3908 within tolerance 0.7959 m at (278809.5528, 4726919.154), the largest of 50 points
CRS to CRS EPSG:4149 to EPSG:4230 within tolerance 0.0011 m at (6.283819626, 45.83474531), the largest of 50 points
CRS to CRS EPSG:4179 to EPSG:4230 within tolerance 0.0020 m at (19.38060709, 42.48389042), the largest of 50 points
CRS to CRS EPSG:4745 to EPSG:5663 within tolerance 0.0011 m at (14.31513274, 50.44966061), the largest of 50 points
CRS to CRS EPSG:5681 to EPSG:5664 within tolerance 0.0011 m at (10.31746658, 50.21108448), the largest of 50 points
CRS to CRS EPSG:9149 to EPSG:20048 within tolerance 0.0029 m at (676328.809, 5369453.639), the largest of 50 points
CRS to CRS EPSG:9404 to EPSG:4728 within tolerance 0.0022 m at (778106.4743, 3084377.471), the largest of 50 points
CRS to CRS EPSG:11117 to EPSG:3117 within tolerance 0.3107 m at (1112787.716, 1625740.3), the largest of 50 points
CRS to CRS EPSG:25394 to EPSG:3124 within tolerance 0.0020 m at (641386.12, 908387.1589), the largest of 50 points
CRS to CRS EPSG:29901 to EPSG:23029 within tolerance 0.0067 m at (208913.9987, 333999.2567), the largest of 50 points
CRS to CRS EPSG:31277 to EPSG:4284 within tolerance 0.0011 m at (7403421.197, 4703646.433), the largest of 50 points
CRS to CRS EPSG:31463 to EPSG:4668 within tolerance 0.0011 m at (3391059.234, 5261195.817), the largest of 50 points

Datum shift grids, geoid models and coordinate epochs

The EPSG reference points again, GDAL and terrio both using the grids of scripts/proj_grids.txt (crates/terrio-crs/tests/epsg_accuracy_grids.rs); then random points through every horizontal shift grid (NTv2 and GeoTIFF, forward and inverse), geoid models (GeoTIFF and GTX), NADCON5 and geocentric translation grids, compound CRSs and time-dependent transformations with coordinate epochs (scripts/compare_crs_grids_with_gdal.py), with the largest difference of each case. Identical: within 1 mm. Within tolerance: within 1 cm, or 1 m from CRS to CRS. Known differences: deprecated CRSs whose own datum PROJ uses, where terrio uses their replacement's (#153).

Format or operation Cases Identical Within tolerance Differs
forward (WGS 84 to CRS) with grids 6,354 6,352 2 0
inverse (CRS to WGS 84) with grids 6,354 6,351 3 0
CRS to CRS with grids 6,295 6,270 23 2
grids, geoids and epochs 250 250 0 0

Cases that are not identical:

Format or operation Case Result Details
CRS to CRS with grids EPSG:6054 to EPSG:4287 differs 267.0470 m at (31784658.69, 3344856.669), the largest of 50 points
CRS to CRS with grids EPSG:29183 to EPSG:20823 differs 210.4146 m at (701491.9215, 7674419.3), the largest of 50 points
CRS to CRS with grids EPSG:3006 to EPSG:9062 within tolerance 0.0082 m at (552348.3716, 6103006.669), the largest of 50 points
CRS to CRS with grids EPSG:3034 to EPSG:8993 within tolerance 0.0066 m at (3835189.368, 4208497.145), the largest of 50 points
CRS to CRS with grids EPSG:3174 to EPSG:3162 within tolerance 0.0259 m at (617151.5571, 667112.2006), the largest of 50 points
CRS to CRS with grids EPSG:3300 to EPSG:9065 within tolerance 0.0024 m at (388814.7714, 6583119.914), the largest of 50 points
CRS to CRS with grids EPSG:3312 to EPSG:31171 within tolerance 0.0021 m at (823128.8384, 542294.9992), the largest of 50 points
CRS to CRS with grids EPSG:3734 to EPSG:3979 within tolerance 0.2233 m at (2174994.33, 230482.2301), the largest of 50 points
CRS to CRS with grids EPSG:3768 to EPSG:3908 within tolerance 0.7959 m at (278809.5528, 4726919.154), the largest of 50 points
CRS to CRS with grids EPSG:4179 to EPSG:4230 within tolerance 0.0020 m at (19.38060709, 42.48389042), the largest of 50 points
CRS to CRS with grids EPSG:5513 to EPSG:5224 within tolerance 0.4927 m at (1055258.72, 504135.466), the largest of 50 points
CRS to CRS with grids EPSG:5651 to EPSG:9000 within tolerance 0.6140 m at (31577406.5, 5679755.699), the largest of 50 points
CRS to CRS with grids EPSG:5681 to EPSG:5664 within tolerance 0.0011 m at (10.31746658, 50.21108448), the largest of 50 points
forward (WGS 84 to CRS) with grids EPSG:8997 within tolerance 0.0028 m at (166.0884248, -34.67636972), the largest of 50 points
inverse (CRS to WGS 84) with grids EPSG:9000 within tolerance 0.0075 m at (168.8993947, -41.01545018), the largest of 50 points
CRS to CRS with grids EPSG:9060 to EPSG:9065 within tolerance 0.0020 m at (20.50319716, 66.70419935), the largest of 50 points
inverse (CRS to WGS 84) with grids EPSG:9062 within tolerance 0.0080 m at (14.12453145, 54.63356386), the largest of 50 points
forward (WGS 84 to CRS) with grids EPSG:9067 within tolerance 0.0020 m at (23.28842349, 54.00210046), the largest of 50 points
inverse (CRS to WGS 84) with grids EPSG:9067 within tolerance 0.0023 m at (20.22860091, 56.03457355), the largest of 50 points
CRS to CRS with grids EPSG:9149 to EPSG:20048 within tolerance 0.0029 m at (676328.809, 5369453.639), the largest of 50 points
CRS to CRS with grids EPSG:9404 to EPSG:4728 within tolerance 0.0022 m at (778106.4743, 3084377.471), the largest of 50 points
CRS to CRS with grids EPSG:10454 to EPSG:9054 within tolerance 0.4007 m at (65866.80438, 150719.7607), the largest of 50 points
CRS to CRS with grids EPSG:10459 to EPSG:10606 within tolerance 0.0977 m at (23088.82127, 586827.965), the largest of 50 points
CRS to CRS with grids EPSG:11117 to EPSG:3117 within tolerance 0.3107 m at (1112787.716, 1625740.3), the largest of 50 points
CRS to CRS with grids EPSG:20355 to EPSG:9309 within tolerance 0.0443 m at (756710.0855, 6824843.929), the largest of 50 points
CRS to CRS with grids EPSG:25394 to EPSG:3124 within tolerance 0.0020 m at (641386.12, 908387.1589), the largest of 50 points
CRS to CRS with grids EPSG:27593 to EPSG:7084 within tolerance 0.0013 m at (715820.8766, 299455.2569), the largest of 50 points
CRS to CRS with grids EPSG:29901 to EPSG:23029 within tolerance 0.0067 m at (208913.9987, 333999.2567), the largest of 50 points
CRS to CRS with grids EPSG:31277 to EPSG:4284 within tolerance 0.0011 m at (7403421.197, 4703646.433), the largest of 50 points
CRS to CRS with grids EPSG:32055 to EPSG:3348 within tolerance 0.3687 m at (404966.2857, 134550.9639), the largest of 50 points