-
Notifications
You must be signed in to change notification settings - Fork 785
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ETRS89-based CRSs missing datum definition? #11
Comments
Comment by warmerdam on 14 Aug 2008 14:03 UTC |
Modified by neteler on 15 Aug 2008 13:39 UTC |
Comment by martinoty on 15 Aug 2008 17:26 UTC I think it would not be a good idea making "exceptions" in proj.4 code in order to cope with problems in CRS definitions. |
Comment by warmerdam on 22 Aug 2008 15:06 UTC So we already do have a "practice" for overriding EPSG - often used to select one preferred datum shift from several options. But I hate to extend this without some clear indication it is a good idea. I haven't actually reviewed the EPSG database - does it not have any transformations from ETRS89 to WGS84? |
Comment by warmerdam on 22 Aug 2008 15:32 UTC |
Comment by msieczka on 22 Aug 2008 18:26 UTC
I have an indirect clue. At CRS-EU website one can find transfomartion paramaters for local datum to ETRS89. Now, EPSG dataset uses exactly the same parameters for local datum to WGS84 transformation. In my naiveness, it indicates that WGS84<->ETRS89 = 0,0,0,0,0,0,0. |
Comment by msieczka on 1 Sep 2008 11:31 UTC Doc 2 is a longer discussion about "Global and European Reference Systems: Theory and Practice". Doc [has a nice chapter "The relationship between ETRS89 and WGS84". They say there is a shift of about 1-2.5 cm between WGS84 and ETRS89 a year. For now, the overall drift between WGS84 and ETRS89 is about 50 cm - and this is the transformation error if we assume them equivalents. On the other hand, if we don't assume them as such, the error is dozens of meters. Technically neither is good. But 0,5 m is less bad than an error hundreds times bigger. Moreover, let's not forget that any 7 parameter datum transformation that GDAL and dependent software widely use, involves an error of circa 1m (e.g. a transformation from Potsdam or Pulkovo to WGS84). Last but no least, let's keep in my mind that until PROJ.4 4.6.0 (see 4 for an extract of related cahnges in that release) the transformation between WGS84 and ETRS89 technically was 0,0,0,0,0,0,0 and nobody complained (AFAIK). Sumarizing, I think we can assume towgs84=0,0,0,0,0,0,0 for ETRS89, because:
[1]http://www.ordnancesurvey.co.uk/oswebsite/gps/osnetfreeservices/about/faqs_osnet.html#1 [2]http://www.gps.oma.be/gb/refsys_gb_ok_css.htm [3]http://www.ogp.org.uk/pubs/373-10.pdf [4]related PROJ.4 4.6.0 changes:
|
Comment by ajolma on 30 Dec 2008 10:23 UTC I suggest adding two lines to gcs_override.csv, which is a part of libgeotiff: http://trac.osgeo.org/geotiff/browser/trunk/libgeotiff/csv
|
Comment by borysiasty on 16 Dec 2009 16:39 UTC However it's not a real solution as the layer projection definition still has to contain the towgs84 patameter. I.e. layers produced by ogr2ogr or shapefiles from ArcGis are invalid until you add that parameter manually. |
Comment by warmerdam on 27 Feb 2010 21:42 UTC |
Comment by warmerdam on 1 Mar 2010 01:38 UTC |
Reported by msieczka on 14 Aug 2008 11:46 UTC
PROJ 4.6.0 does not apply a datum shift reprojecting between a CRS which has an implicit datum definition (e.g. Pulkovo 1942/58-based EPSG 4179, for which GDAL uses towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84) and an ETRS89-based CRS, e.g. EPSG 2180, that has no implicit towgs84 or datum.
The above results in reprojection errors of dozens of meters and makes using EPSG codes for ETRS89-based CRS unreliable. Should PROJ.4 and GDAL enforce towgs84=0,0,0 for all ETRS89 CRSs that have no implicit datum definition otherwise?
There are 58 CRSs in PROJ.4 4.6 epsg file that are based on ETRS89 datum (including e.g. pan-European LCC EPSG 3034 or LAEA EPSG 3035). Using any of their EPSG codes leads to huge reprojection errors.
Example:
The source EPSG 4179 is Pulkovo 1942(58) based, target EPSG 2180 is ETRS89 based. Since no explicit towgs84 is specified for EPSG 2180 but there is for EPSG 4179, GDAL fails to perform the datum shift and returns a wrong result:
$ echo "16E 52N 64" | gdaltransform -s_srs EPSG:4179 -t_srs EPSG:2180
294132.884446735 463557.976146893 64
The correct reprojection is possible if the EPSG 2180 definition is given in proj4 format plus +towgs84=0,0,0:
$ echo "16E 52N 64" | gdaltransform -s_srs EPSG:4179 -t_srs "+proj=tmerc +lat_0=0 +lon_0=19 +k=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +towgs84=0,0,0"
294006.094422874 463523.916413687 103.090447655879
For instance, GRASS always forces towgs84=0,0,0 for EPSG 2180 and does the reprojection right. I'm not 100% sure if towgs84=0,0,0 is the correct, ultimate solution, but there is something to it.
Migrated-From: https://trac.osgeo.org/proj/ticket/11
The text was updated successfully, but these errors were encountered: