Verbesserte towgs84-Parameter für epsg und spatial ref sys: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
 
(11 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
--[[Benutzer:Markus Hentschel|Markus Hentschel]] 09:07, 27. Nov 2008 (CET)<br><br>
+
--[[Benutzer:Markus Hentschel|Markus Hentschel]] 13:11, 12. Dez 2011 (CET)<br><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.
 +
<br>
 +
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.
 +
<br>
 +
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 http://svn.osgeo.org/grass/grass/trunk/lib/gis/datumtransform.table] kann man den Parametersatz anpassen. Der entsprechende Parametersatz steht in der Zeile
 
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 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"
 
  S-42    "towgs84=24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01" "Germany (Mecklenburg-Vorpommern & Sachsen-Anhalt)" "Accuracy <1m"
Diese Anpassung muss in der Datei '''epsg''' (standardmäßig in ''/usr/local/share/proj/'') und in der Tabelle '''spatial_ref_sys''' erfolgen.
 
 
<br>
 
<br>
 
In der Datei epsg muss
 
In der Datei epsg muss
Zeile 22: Zeile 74:
 
geändert werden.  
 
geändert werden.  
 
Für EPSG:28402 oder EPSG:28404 gilt dasselbe.
 
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:
 +
 +
*[http://www.kvwmap.de/wiki/NTv2/201009_GDIMV_Ntv2_Bericht_1-1.pdf 201009_GDIMV_Ntv2_Bericht_1-1.pdf]
 +
'''Anlagen'''
 +
*[http://www.kvwmap.de/wiki/NTv2/A1_DHDN_ETRS_BKG.pdf A1_DHDN_ETRS_BKG.pdf]
 +
*[http://www.kvwmap.de/wiki/NTv2/A2_DHDN_ETRS_BETA2007.pdf A2_DHDN_ETRS_BETA2007.pdf]
 +
*[http://www.kvwmap.de/wiki/NTv2/A3_S4283_ETRS_BKG.pdf A3_S4283_ETRS_BKG.pdf]
 +
*[http://www.kvwmap.de/wiki/NTv2/A4_DHDN_ETRS_MVTR2010.pdf A4_DHDN_ETRS_MVTR2010.pdf]
 +
*[http://www.kvwmap.de/wiki/NTv2/A5_DHDN_ETRS_MVTRS4283.pdf A5_DHDN_ETRS_MVTRS4283.pdf]
 +
 +
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:
 +
 +
*[http://www.kvwmap.de/wiki/NTv2/MVTR2010.gsb MVTR2010.gsb]
 +
*[http://www.kvwmap.de/wiki/NTv2/MVTRS4283.gsb MVTRS4283.gsb]
 +
 +
Diese legt man einfach mit in den proj-Ordner.

Aktuelle Version vom 7. Juli 2023, 08:18 Uhr

--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.