Verbesserte towgs84-Parameter für epsg und spatial ref sys

Aus kvwmap
Wechseln zu: Navigation, Suche

--Markus Hentschel 13:11, 12. Dez 2011 (CET)

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.

Wichtig: Wenn die Pseudo-EPSG 35832 und 35833 angelegt wurden, muss diese Verbesserung dort natürlich ebenfalls durchgeführt werden.

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.

NTv2-Transformationen für Trafo MV-Genauigkeit

Trotz der oben genannten verbesserten Transformationsparameter unterscheiden sich die damit erzielten Ergebnisse von denen, die mit dem Programm Trafo MV erreicht werden. Damit die Transformationen eine Genauigkeit erreichen, die annähernd der von Trafo MV entspricht, kann man NTv2-Transformationen mit entsprechenden Gitternetzdateien verwenden. In diesem PDF vom DVZ ist alles dazu nötige beschrieben:

Anlagen

Es muss also auch hier die epsg-Datei und die Einträge in der spatial_ref_sys-Tabelle in der PostGIS-Datenbank angepasst werden. Die beiden erwähnten Gitternetzdateien sind hier zu finden:

Diese legt man einfach mit in den proj-Ordner.