[PROJ] Correcting metadata in GeoTIFF files

Even Rouault even.rouault at spatialys.com
Tue Jan 25 06:58:05 PST 2022


Le 25/01/2022 à 15:43, Lesparre, Jochem a écrit :
>
> Thanks.
>
> I encountered a new problem:
>
> We use a horizontal grid as well as a vertical grid for the 
> transformation from ETRS89 (EPSG:4937) to our national CRS: RD 
> (EPSG:28992) with NAP height (EPSG:5709). With PROJ4-style strings 
> [1],an interpolation CRS (EPSG:4289) is needed for the Geodetic TIFF 
> grid of the geoid, next to the source (EPSG:4937) and target 
> (EPSG:5709) CRS. To specify this, I have to use --type 
> VERTICAL_TO_VERTICALin the Python script for the conversion from the 
> VDatum grid. This results in the description “vertical offset” instead 
> of “geoid undulation”. This is a bit strange, as the grid is in fact a 
> geoid. Problematic is that (according to the documentation [2]) the 
> source and target CRS both must be a vertical CRS, while one is our 
> national levelling height system NAP, but the other is ellipsoidal 
> ETRS89 height.
>
You should use --type GEOGRAPHIC_TO_VERTICAL if it is a geoid file (the 
name is perhaps a bit misleading as the values are to go from vertical 
CRS to geographic CRS but this is the EPSG naming convention for the 
transformation)
>
> The latter doesn’t have a vertical EPSG code. What is the WKT string 
> of ETRS89 ellipsoidal height?
>
You should use EPSG:4937 for ETRS89 geographic 3D
>
> Next to this, I have some new questions on the use of WKT strings 
> instead of EPSG codes for thespecification of a CRS in a Geodetic TIFF 
> grid file:
>
>   * Are the simpler EPSG codes preferred over WKT strings?
>
Yes
>
>   * Is it OK to use a WKT string for the source and a EPSG code for
>     the target,
>
Yes
>
>   * Can I use the WKT string given by EPSG.org for a CRS with an EPSG
>     code and edit the CRS name in this WKT string to use an alias
>     instead of the official EPSG name (see example [3])?
>
You likely need to remove the ID["EPSG",4289] node. And it is a bit 
weird to still use Amesfoort as the datum, since, as far as I 
understand, if 2 geographic 2D CRS that have same axis, units, datum and 
prime meridian, they should be the same... That said that will have 
little consequences since PROJ ignores that anyway.
>
>  *
>
> Regards, Jochem
>
> [1] PROJ4-style transformation from ETRS89 (EPSG:4937) to national 
> horizontal and vertical CRS of the Netherlands:
>
> cs2cs +init=epsg:4937 +to +proj=sterea +lat_0=52.156160556 
> +lon_0=5.387638889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel 
> +nadgrids=rdtrans2018.gsb +units=m +geoidgrids=naptrans2018.gtx 
> +vunits=m+no_defs
>
> [2] 
> https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/README.md 
> <https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/README.md>
>
> [3] WKT string of EPSG:4289 where I replaced the official EPSG name 
> “Amersfoort” to the official Dutch name “RD Bessel”:
>
> GEOGCRS["_RD Bessel_",
>
> DATUM["Amersfoort",
>
> ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
>
> LENGTHUNIT["metre",1,
>
> ID["EPSG",9001]
>
> ],
>
> ID["EPSG",7004]
>
> ],
>
> ID["EPSG",6289]],
>
> CS[ellipsoidal,2,
>
> ID["EPSG",6422]
>
> ],
>
> AXIS["latitude (Lat)",north],
>
> AXIS["longitude (Lon)",east],
>
> ANGLEUNIT["degree",0.0174532925199433,
>
> ID["EPSG",9102]
>
> ],
>
> ID["EPSG",4289]
>
> ]
>
> *From:*Even Rouault <even.rouault at spatialys.com>
> *Sent:* maandag 24 januari 2022 21:17
> *To:* Lesparre, Jochem <Jochem.Lesparre at kadaster.nl>; PROJ at lists.osgeo.org
> *Subject:* Re: [PROJ] Correcting metadata in GeoTIFF files
>
> Jochem,
>
> Le 24/01/2022 à 20:09, Lesparre, Jochem via PROJ a écrit :
>
>     Dear list,
>
>     I'm from Netherlands Partnership Geodetic Infrastructure (NSGI).
>     We published NTv2 (.gsb) and VDatum (.gtx) grid files for the
>     national CRS of the Netherlands (RD coordinates with NAP height)
>     in 2019. PROJ converted these to GeoTIFF (.tif) in 2020 [1].
>     Unfortunately, some wrong information was stored in the metadata
>     of the GeoTIFF files in the conversion. We are now creating new
>     GeoTIFF files with corrected metadata, using the Python scrips
>     ntv2_to_gtiff.py [2] and vertoffset_grid_to_gtiff.py [3].
>
>     For most changes in the metadata this is straightforward, but
>     there is one more difficult issue:
>
>     We have two variants of the horizontal transformation:
>
>     1.Conventional 1-step transformation (variant 2): geographic
>     coordinates of national CRS ---[nl_nsgi_rdtrans2018.tif]---> ETRS89
>
>     2.Better 2-step transformation (variant 1): geographic coordinates
>     of national CRS ---[nl_nsgi_rdcorr2018.tif]---> corrected
>     geographic coordinates of national CRS
>     ---[7_parameter_transformation]---> ETRS89
>
>     Since there is no separate EPSG code for the corrected geographic
>     coordinates of the national CRS, we want to use the same EPSG code
>     for both corrected and uncorrected coordinates. Or will it give
>     problems when the source and target CRS of a GeoTIFF file are the
>     same?
>
> Instead of the target_crs_code metadata item, you could include a 
> target_crw_wkt with a WKT2 string. That can be done through the 
> ntv2_to_gtiff.py script as it can accept a WKT2 CRS string as the 
> value for --target-crs.
>
>     Next to this, I have some other questions:
>
>      1. Shouldn't a GeoTIFF grid file for a vertical transformation
>         have an accuracy band like a grid for a horizontal
>         transformation? Is it possible with the Python script to
>         create an accuracy band in the GeoTIFF from a VDatum grid file?
>
> You could possibly add with GDAL standard tools (gdal_translate, etc) 
> a band with the accuracy and a description of 
> "geoid_undulation_accuracy" (you may need to go through a VRT to 
> manually add the Units to the band). The 
> validate_vertical_offset_geographic_to_vertical() method of the 
> check_gtiff_grid.py script would likely have to be updated so that it 
> doesn't emit an information message about the new band not being 
> recognized. And the spec at 
> https://proj.org/specifications/geodetictiffgrids.html 
> <https://secure-web.cisco.com/1IPsQrcS7XiA25_SIbwFzb-QZAKsmLdiZCviwwLfntX_LP5RL4MhT86HqkIDLHoWnxjGPsOj9qatKSQRQ6s-3OgTu2NWmUxO08eXFQDCyBNoiM6PgcO9f94P0uPY5Tod4uKHZ2DYmeBgeH9t6R_uf9AxSLI6uZ7h4ReNQ8fupVoj7z9uP0to6Nlr1Kti7lJycLJvZgYL1hGJywSBwFWky-TKX6tQWP90b26Q0Iub853RFhi4Meej8qTYaHcMfPtczIIxD62IAkCtQyIv3XMdTneUYyFMRszve23cNIudpKQzeuZzt3yS_yl6bQIPnPMO6/https%3A%2F%2Fproj.org%2Fspecifications%2Fgeodetictiffgrids.html>as 
> well
>
>      2. Can I add a recommended_interpolation_method with the Python
>         scripts?
>
> Not currently.  Either enhance them or add the metadata item manually 
> through GDAL tools (gdal_translate -mo 
> recommended_interpolation_method=foo in.tif out.tif -co 
> COMPRESS=DEFLATE -co INTERLEAVE=BAND -co PREDICTOR=3). Note that PROJ 
> itself will ignore that item and always apply bilinear interpolation.
>
>      3. How should I supply the corrected GeoTIFF files to PROJ?
>
> Pull request against https://github.com/OSGeo/PROJ-data 
> <https://github.com/OSGeo/PROJ-data/tree/master/nl_nsgi>
>
>      4. Is it necessary for PROJ to use new files names to distinguish
>         them from the old version with incorrect metadata?
>
> No
>
>     5.
>
>     Regards, Jochem
>
>     [1] https://github.com/OSGeo/PROJ-data/tree/master/nl_nsgi
>     <https://github.com/OSGeo/PROJ-data/tree/master/nl_nsgi>
>
>     [2]
>     https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/ntv2_to_gtiff.py
>     <https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/ntv2_to_gtiff.py>
>
>     [3]
>     https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/vertoffset_grid_to_gtiff.py
>     <https://github.com/OSGeo/PROJ-data/blob/master/grid_tools/vertoffset_grid_to_gtiff.py>
>
>     **
>
>     J. Lesparre
>
>     Netherlands Partnership Geodetic Infrastructure (NSGI.nl)
>
>
>
>     Disclaimer:
>     De inhoud van deze e-mail is vertrouwelijk en uitsluitend bestemd
>     voor de geadresseerde(n).
>     Gebruik, openbaarmaking, vermenigvuldiging, verspreiding en/of
>     verstrekking van deze informatie aan derden is niet toegestaan.
>     Op al onze producten en diensten zijn onze algemene
>     leveringsvoorwaarden van toepassing
>     [https://www.kadaster.nl/algemene-leveringsvoorwaarden
>     <https://www.kadaster.nl/algemene-leveringsvoorwaarden>].
>
>     Disclaimer:
>     This email and any files transmitted with it are confidential and
>     intended solely for the use of the individual or entity to whom
>     they are addressed.
>     If you are not the intended recipient, you are notified that
>     disclosing, copying, distributing or taking any action in reliance
>     on the contents of this information is strictly prohibited.
>     Our general terms and conditions of delivery apply to all our
>     products and services
>     [https://www.kadaster.com/general-terms-and-conditions
>     <https://secure-web.cisco.com/1fU8sg4FrMFO4TyIW9ZofFSwdqxB0Kag8iZvKOseM_86a_Jx5Z2YV1Hrtt_e8mtlHLMQ0H8zu1i3lanHmsFjggZd1QXIC7i_zohRumwvppYst-xwoiyIzVpRIaUe7MImO2MSCS5aoznYYHb6E-LdzL2tarUM3ByI1fBzPf6EX-yQBpfd_vLLLUaYH2he7-jy3HzpLC2iu2ee6zOAfHGtKhEMeppr62m_f186VKNfXWlLwAxhGXGppzPfI_g4RpQ9OMJiT8koLCKdzzpwTMdFYDY2DaE08KWCvO9WNaB0ciQrOfxgdxfjiQ802OXi4mhKe/https%3A%2F%2Fwww.kadaster.com%2Fgeneral-terms-and-conditions>].
>
>
>
>     _______________________________________________
>
>     PROJ mailing list
>
>     PROJ at lists.osgeo.org  <mailto:PROJ at lists.osgeo.org>
>
>     https://lists.osgeo.org/mailman/listinfo/proj  <https://lists.osgeo.org/mailman/listinfo/proj>
>
> -- 
> http://www.spatialys.com  <http://secure-web.cisco.com/1fXZS9zkl1X2JBd5DEK4YAq1gPWoDfSCpDSaFlOf5HpAUYrV7SIEw12ok2xJ1dLlvazjXyElbKEjEJLnTBo5NsMUQgMzUh1-_47mgVQpSA2Wih89heEKMsI5iXG5QbxXLAERdl1W-2up80jCvknOD8vY83_Wh-5g43WZIwWQNwaJ38eTscgBCOajh8Bgq8Xmw06STQekuuToXJWmYwQ6woQiNYlE3tHnjcvuhJOGF6aedm4xTRlC4hjYeQ9b8T3HPmwawXXFsXFnlPiuOSR06jIeZ0FCvBXtbexj0ZloQCmzM8W3sBGc11dNGXri3ia7w/http%3A%2F%2Fwww.spatialys.com>
> My software is free, but my time generally not.
>
>
> Disclaimer:
> De inhoud van deze e-mail is vertrouwelijk en uitsluitend bestemd voor 
> de geadresseerde(n).
> Gebruik, openbaarmaking, vermenigvuldiging, verspreiding en/of 
> verstrekking van deze informatie aan derden is niet toegestaan.
> Op al onze producten en diensten zijn onze algemene 
> leveringsvoorwaarden van toepassing
> [https://www.kadaster.nl/algemene-leveringsvoorwaarden].
>
> Disclaimer:
> This email and any files transmitted with it are confidential and 
> intended solely for the use of the individual or entity to whom they 
> are addressed.
> If you are not the intended recipient, you are notified that 
> disclosing, copying, distributing or taking any action in reliance on 
> the contents of this information is strictly prohibited.
> Our general terms and conditions of delivery apply to all our products 
> and services
> [https://www.kadaster.com/general-terms-and-conditions].

-- 
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/proj/attachments/20220125/610182ed/attachment-0001.html>


More information about the PROJ mailing list