[QGIS-Developer] QGIS does not recognize CRS of specific layers generated by GeoServer

Even Rouault even.rouault at spatialys.com
Sat Nov 27 11:38:17 PST 2021


Petro,

I've queued https://github.com/OSGeo/gdal/pull/4908 which will "fix" 
that particular case (more precisely anything based on ETRS89). I'm not 
super satisfied with this, and I believe there's no miracle solution for 
all potential use cases. What GDAL returns in both 2.4.0 and 3.4.0 is 
actually pretty much the same object, despite the different 
representation (WKT1 vs WKT2). The root cause of the issue is with the 
TOWGS84[] node. Those nodes are not part of CRS definitions. They date 
back to the time where the GDAL & PROJ stack wasn't capable of more 
powerful transformation, and so a particular datum transformation to WGS 
84 was picked up, and encoded in the CRS definition. When reading such 
definitions nowadays, we have a dilemna: did the user really meant to 
use the particular transformation that was in TOWGS84[], or was it just 
there because that was the default one. We ere on the side of caution 
(most of time, there are a few exceptions there and there in GDAL), and 
keep the transformation information, which makes that this CRS is 
formally not the official definition, and thus considered as ""custom""

However, for ETRS89, I believe we can safely remove it, since as far as 
I know, there's no better transformation between ETRS89 (which is known 
modeled as a "datum ensemble" by EPSG, meaning any of the 11 ETRF 
realizations) and WGS 84 (itself a datum ensemble) than the 
TOWGS84[0.0,0.0,0.0,0.0,0.0,0.0,0.0], and it is unlikely there will be 
an alternative one in the future, given the dynamic nature of the WGS 84 
datum (maybe I'm speaking too fast. When ETRS89 and WGS 84 coordinates 
will have drifted too far away in the future, maybe there will some 
non-null transformation added in the database, so that users who want to 
transform to a 'past' or 'future' coordinate epoch of WGS 84 can do that 
in a not too bad way.)

(I should not that this .prj file isn't really compliant with the Esri 
dialect of WKT, which is supposed to be used for shapefiles, since 
normally it shouldn't contain TOWGS84 or AUHTORITY code)

Even


Le 27/11/2021 à 19:13, Pedro Venâncio a écrit :
> Hi all,
>
> I'm seeing that QGIS 3.16 / 3.22 does not recognize the CRS of 
> specific layers generated by GeoServer, but the old QGIS 2.18.28 
> recognize.
>
> For instance, this shapefile: https://si.icnf.pt/shp/rnap 
> <https://si.icnf.pt/shp/rnap>
>
> Checking ogrinfo in different versions:
>
> ogrinfo --version
> GDAL 2.4.0, released 2018/12/14 (Used by QGIS 2.18.28)
>
> ogrinfo -al rnap.shp
> INFO: Open of `rnap.shp'
>       using driver `ESRI Shapefile' successful.
>
> Layer name: rnap
> Metadata:
>   DBF_DATE_LAST_UPDATE=1921-11-27
> Geometry: Polygon
> Feature Count: 48
> Extent: (-123561.201500, -300415.400000) - (162054.118700, 268136.980100)
> Layer SRS WKT:
> PROJCS["ETRS89 / Portugal TM06",
>     GEOGCS["ETRS89",
>         DATUM["European Terrestrial Reference System 1989",
>             SPHEROID["GRS 1980",6378137.0,298.257222101,
>                 AUTHORITY["EPSG","7019"]],
>             TOWGS84[0.0,0.0,0.0,0.0,0.0,0.0,0.0],
>             AUTHORITY["EPSG","6258"]],
>         PRIMEM["Greenwich",0.0,
>             AUTHORITY["EPSG","8901"]],
>         UNIT["degree",0.017453292519943295],
>         AXIS["Geodetic longitude",EAST],
>         AXIS["Geodetic latitude",NORTH],
>         AUTHORITY["EPSG","4258"]],
>     PROJECTION["Transverse_Mercator",
>         AUTHORITY["EPSG","9807"]],
>     PARAMETER["central_meridian",-8.133108333333334],
>     PARAMETER["latitude_of_origin",39.66825833333334],
>     PARAMETER["scale_factor",1.0],
>     PARAMETER["false_easting",0.0],
>     PARAMETER["false_northing",0.0],
>     UNIT["m",1.0],
>     AXIS["Easting",EAST],
>     AXIS["Northing",NORTH],
>     AUTHORITY["EPSG","3763"]]
> nome_ap: String (254.0)
> classifica: String (254.0)
> publica1: String (254.0)
> publica2: String (254.0)
> jurisdicao: String (254.0)
> area_ha: Real (33.15)
> sigla: String (254.0)
>
>
>
> ogrinfo --version
> GDAL 3.4.0, released 2021/11/04 (Used by QGIS 3.22)
>
> ogrinfo -al rnap.shp
> INFO: Open of `rnap.shp'
>       using driver `ESRI Shapefile' successful.
>
> Layer name: rnap
> Metadata:
>   DBF_DATE_LAST_UPDATE=1920-08-17
> Geometry: Polygon
> Feature Count: 48
> Extent: (-123561.201500, -300415.400000) - (162054.118700, 268136.980100)
> Layer SRS WKT:
> BOUNDCRS[
>     SOURCECRS[
>         PROJCRS["ETRS89 / Portugal TM06",
>             BASEGEOGCRS["ETRS89",
>                 ENSEMBLE["European Terrestrial Reference System 1989 
> ensemble",
>                     MEMBER["European Terrestrial Reference Frame 1989"],
>                     MEMBER["European Terrestrial Reference Frame 1990"],
>                     MEMBER["European Terrestrial Reference Frame 1991"],
>                     MEMBER["European Terrestrial Reference Frame 1992"],
>                     MEMBER["European Terrestrial Reference Frame 1993"],
>                     MEMBER["European Terrestrial Reference Frame 1994"],
>                     MEMBER["European Terrestrial Reference Frame 1996"],
>                     MEMBER["European Terrestrial Reference Frame 1997"],
>                     MEMBER["European Terrestrial Reference Frame 2000"],
>                     MEMBER["European Terrestrial Reference Frame 2005"],
>                     MEMBER["European Terrestrial Reference Frame 2014"],
>                     ELLIPSOID["GRS 1980",6378137,298.257222101,
>                         LENGTHUNIT["metre",1]],
>                     ENSEMBLEACCURACY[0.1]],
>                 PRIMEM["Greenwich",0,
>                     ANGLEUNIT["degree",0.0174532925199433]],
>                 ID["EPSG",4258]],
>             CONVERSION["Portugual TM06",
>                 METHOD["Transverse Mercator",
>                     ID["EPSG",9807]],
>                 PARAMETER["Latitude of natural origin",39.6682583333333,
>                     ANGLEUNIT["degree",0.0174532925199433],
>                     ID["EPSG",8801]],
>                 PARAMETER["Longitude of natural origin",-8.13310833333333,
>                     ANGLEUNIT["degree",0.0174532925199433],
>                     ID["EPSG",8802]],
>                 PARAMETER["Scale factor at natural origin",1,
>                     SCALEUNIT["unity",1],
>                     ID["EPSG",8805]],
>                 PARAMETER["False easting",0,
>                     LENGTHUNIT["metre",1],
>                     ID["EPSG",8806]],
>                 PARAMETER["False northing",0,
>                     LENGTHUNIT["metre",1],
>                     ID["EPSG",8807]]],
>             CS[Cartesian,2],
>                 AXIS["easting (X)",east,
>                     ORDER[1],
>                     LENGTHUNIT["metre",1]],
>                 AXIS["northing (Y)",north,
>                     ORDER[2],
>                     LENGTHUNIT["metre",1]],
>             USAGE[
>                 SCOPE["Topographic mapping (medium scale)."],
>                 AREA["Portugal - mainland - onshore."],
>                 BBOX[36.95,-9.56,42.16,-6.19]],
>             ID["EPSG",3763]]],
>     TARGETCRS[
>         GEOGCRS["WGS 84",
>             DATUM["World Geodetic System 1984",
>                 ELLIPSOID["WGS 84",6378137,298.257223563,
>                     LENGTHUNIT["metre",1]]],
>             PRIMEM["Greenwich",0,
>                 ANGLEUNIT["degree",0.0174532925199433]],
>             CS[ellipsoidal,2],
>                 AXIS["latitude",north,
>                     ORDER[1],
>                     ANGLEUNIT["degree",0.0174532925199433]],
>                 AXIS["longitude",east,
>                     ORDER[2],
>                     ANGLEUNIT["degree",0.0174532925199433]],
>             ID["EPSG",4326]]],
>     ABRIDGEDTRANSFORMATION["ETRS89 to WGS 84 (1)",
>         VERSION["EPSG-eur"],
>         METHOD["Geocentric translations (geog2D domain)",
>             ID["EPSG",9603]],
>         PARAMETER["X-axis translation",0,
>             ID["EPSG",8605]],
>         PARAMETER["Y-axis translation",0,
>             ID["EPSG",8606]],
>         PARAMETER["Z-axis translation",0,
>             ID["EPSG",8607]],
>         USAGE[
>             SCOPE["(null/copy) Approximation for medium and low 
> accuracy applications assuming equality between plate-fixed static and 
> earth-fixed dynamic CRSs, ignoring static/dynamic CRS differences."],
>             AREA["Europe - onshore and offshore: Albania; Andorra; 
> Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; 
> Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; 
> Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; 
> Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; 
> Montenegro; Netherlands; North Macedonia; Norway including Svalbard 
> and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; 
> Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) 
> including Channel Islands and Isle of Man; Vatican City State."],
>             BBOX[32.88,-16.1,84.73,40.18]],
>         ID["EPSG",1149],
>         REMARK["ETRS89 and WGS 84 are realizations of ITRS coincident 
> to within 1 metre. This transformation has an accuracy equal to the 
> coincidence figure."]]]
> Data axis to CRS axis mapping: 1,2
> nome_ap: String (254.0)
> classifica: String (254.0)
> publica1: String (254.0)
> publica2: String (254.0)
> jurisdicao: String (254.0)
> area_ha: Real (33.15)
> sigla: String (254.0)
>
> The differences between rnap.prj (left) and https://epsg.io/3763 
> <https://epsg.io/3763> (right) are few:
>
> https://cld.pt/dl/download/5d9b5324-b28a-4654-a8f7-365c7cc39c10/rnap_prj.png 
> <https://cld.pt/dl/download/5d9b5324-b28a-4654-a8f7-365c7cc39c10/rnap_prj.png>
>
> The GeoServer version that is generating this layer is old.
>
> So, could this be a bug?
>
> Thanks!
>
> Best regards,
> Pedro
>
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

-- 
http://www.spatialys.com
My software is free, but my time generally not.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20211127/c22bf94e/attachment.html>


More information about the QGIS-Developer mailing list