Verbesserte towgs84-Parameter für epsg und spatial ref sys
--Markus Hentschel 13:11, 12. Dez 2011 (CET)br>
Für die Transforamtion von Koordinatenwerten sind die Datei epsg (standardmäßig in /usr/local/share/proj/, bei FGS in $FGS_HOME/share/proj) bzw. die Tabelle spatial_ref_sys (im Schema public) verantwortlich. Bei einigen Transformationen geht leider in unterschiedlichen Versionen was schief.
ETRS89 (EPSG 25832/25833)
TEST: Folgender Aufruf
select astext(transform(geomfromtext('POINT(3398206.866 5581314.975)',31463),25832))
muss folgende Koordinate liefern:
POINT(398175,557 5979519.471)
Wenn die Abfrage eine andere Koordinate liefert (z.B. POINT(398235.173 5579654.391)), dann müssen die entsprechenden Einträge in epsg und spatial_ref_sys geändert werden.
In der Datei epsg muss
# ETRS89 / UTM zone 33N <25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs <>
durch
# ETRS89 / UTM zone 33N <25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs towgs84=0,0,0 <>
geändert werden.
In der Tabelle spatial_ref_sys muss für srid=25833 das Attribut proj4text von
+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs
auf
+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs towgs84=0,0,0
geändert werden.
Für EPSG:25832 gilt dasselbe.
S42/83 3°-Streifen (EPSG 2397/2398/2399)
TEST: Folgender Aufruf
select astext(transform(geomfromtext('POINT(4557434 5984777)',2398),25833))
muss folgende Koordinate liefern:
POINT(360576.363 5983974.639)
Wenn die Abfrage eine andere Koordinate liefert (z.B. POINT(360704.261 5984012.628)), dann müssen die entsprechenden Einträge in epsg und spatial_ref_sys geändert werden.
In der Datei epsg muss stehen
# Pulkovo 1942(83) / Gauss-Kruger zone 4 <2398> +proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <>
In der Tabelle spatial_ref_sys muss für srid=2398 das Attribut proj4text lauten
+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs
Für EPSG:2397 und EPSG:2398 gilt dasselbe.
S42/83 6°-Streifen (EPSG 28402/28403)
Der EPSG:28403 (Krassowski(S42/83),G-K(6-Grad-Streifensystem), 3. Streifen) passt für unsere Region nur unzureichend, es ergeben sich falsche Punktlagen von über 140 Meter. Mit Hilfe von http://svn.osgeo.org/grass/grass/trunk/lib/gis/datumtransform.table kann man den Parametersatz anpassen. Der entsprechende Parametersatz steht in der Zeile
S-42 "towgs84=24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01" "Germany (Mecklenburg-Vorpommern & Sachsen-Anhalt)" "Accuracy <1m"
In der Datei epsg muss
# Pulkovo 1942 / Gauss-Kruger zone 3 <28403> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs <>
durch
# Pulkovo 1942 / Gauss-Kruger zone 3 <28403> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24.9,-126.4,-93.2,-0.063,-0.247,-0.041,-1.01 +units=m +no_defs <>
geändert werden.
In der Tabelle spatial_ref_sys muss für srid=28403 das Attribut proj4text von
+proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs
auf
+proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01 +units=m +no_defs
geändert werden. Für EPSG:28402 oder EPSG:28404 gilt dasselbe.