MAGNET Field - Koordinatentransformation mit NTv2-Dateien

Einbindung einer NTv2-Datei in MAGNET Field

Dieser folgende Eintrag ist überholt: In MAGNET Field Version 8 können binäre NTv2-Dateien (*.gsb) vom Anwender problemlos als Datum eingebunden werden. (26.08.2023)

Die Einbindung wird individuell realisiert über customdatums.dll. Eine Einbindung einer NTv2-Datei eines bestimmten Bundeslandes ist möglich, bitte kontaktieren Sie uns (nur für Kunden).

 

Allgemeines

Eine Überführung von einem geodätischen Bezugssystem in ein anderes (kurz: Koordinatentransformation) kann mit Hilfe des international anerkannten NTv2-Verfahrens durchgeführt werden (National Transformation Version 2). Grundlage ist eine Tabelle  mit Shiftwerten an den Gitterpunkten, mit deren Hilfe der jeweilige Gitterpunkt (resp. ein beliebiger Punkte durch Interpolation) in das andere KS in einem mehrstufigen Verfahren transformiert werden kann.

Das Gitter ist wie folgt definiert:

  • 4 Eckpunkte des Gesamtgitters in geografischen Koordinaten (Breite/Länge)
  • Abstand zweier Gitterpunkte (Breite/Länge)

Eine NTv2-Datei enthält obige Daten und weiterhin folgende wesentliche Informationen:

  • Maße des Quell(Q) - und des Zielellipsoids (Z) (große/kleine Halbachse, englisch: Q=F=From, Z=T=To)
  • Liste der Gitterpunkte, pro Zeile 1 Punkt, mit jew. mindestens 2 Parametern (Shift Breite/Länge).
Name 
NUM_OREC 11                              //Anzahl der Datensätze im allgemeinen Header
NUM_SREC 11                              //Anzahl der Datensätze im Sub-Grid-Header
NUM_FILE  1                              //Anzahl der Sub-Grids   
GS_TYPE SECONDS 
VERSION NTv2.0  
SYSTEM_FDHDN90                           //Quell-System 
SYSTEM_TETRS89                           //Ziel-System
MAJOR_F  6377397.155                     //Quell-Ellipsoid
MINOR_F  6356078.963                     //Quell-Ellipsoid
MAJOR_T  6378137.000                     //Ziel-Ellipsoid
MINOR_T  6356752.314                     //Ziel-Ellipsoid
SUB_NAMEDHDN90                           //Name des Sub-Grids  v--ab hier Sub-Grid-Header
PARENT  NONE    
CREATED 28-02-12
UPDATED 28-02-12
S_LAT     170010.000000                  //Breite min in sec
N_LAT     182850.000000                  //Breite max in sec
E_LONG    -50355.000000                  //Länge  max in sec  
W_LONG    -31815.000000                  //Länge  min in sec
LAT_INC       30.000000                  //Schrittweite Länge in sec  
LONG_INC      45.000000                  //Schrittweite Breite in sec
GS_COUNT 177177                          //Anzahl der nachfolgenden Datensätze (Zeilen) im Subgrid
  0.000000  0.000000  0.000000  0.000000
  0.000000  0.000000  0.000000  0.000000
...
 -2.953820  5.668092  0.000000  0.000000
 -2.954437  5.661538  0.000000  0.000000
 -2.955428  5.655286  0.000000  0.000000
 -2.956087  5.648769  0.000000  0.000000
 -2.956674  5.642190  0.000000  0.000000
...
  0.000000  0.000000  0.000000  0.000000
  0.000000  0.000000  0.000000  0.000000
END

Daraus ergibt sich die Rechenvorschrift:

Ebene Koordinaten (Q) -1-> Geographische K. (Q) -2-> Geografische K. (Z) -3-> Ebene Koordinaten

Die Rechenschritte:

  1. Anwendung der Projektionsvorschrift. Die hierfür benötigten Parameter (Methode, Zentralmeridian, Offsets, Maßstab) liefert die Software, nicht die NTv2-Datei. Lediglich die Maße des Bezugsellipsoids können aus der Datei entnommen werden.
  2. Durchführung des interpolierten Shifts. Die NTv2-Datei fungiert als "Look-up-Tabelle".
  3. Rückprojektion im neuen System, siehe 1

Der Einsatz von Geoidinformationen durch die Software in Schritt 1 und 3 muss überprüft werden, z.B. für den Fall, dass die NTv2-Datei auch Höhenshifts enthält oder GPS-Messungen durchgeführt werden sollen.

Die NTv2-Dateien tragen die Endung *.gsb (binär) resp. *.gsa (ASCII).

Für Hin- und Rücktransformation mit höchster Genauigkeit ist jeweils eine separate NTv2-Datei erforderlich. Beim Einsatz in die jew. "andere" Richtung muss mit Abstrichen in der Genauigkeit gerechnet und das Ergebnis stichprobenartig kontrolliert werden.

NTv2 binäres Format *.gsb

Am Beispiel von beta2007;
Jeder Datensatz (ebenfalls die Datensätze im Header) besteht aus 2x8=16 Byte.
In den Header-Datensätzen (Allgemeiner Header und Sub-Grid-Header) stehen in den ersten 8 Byte der Parametername, in den zweiten 8 Byte der Wert.
Es folgen die Shift-Parameter mit 4x4 Float-Werten pro Datensatz, wobei der 3. und 4. Parameter (die Genauigkeit) meistens "0" ist.
Die Datei wird mit einem Datensatz mit dem Parameter "END" und Wert "0" abgeschlossen.
Gesamtgröße der Datei mit einem einzigen Subgrid: (NUM_OREC + NUM_SREC + GS_COUNT + END)*16 Byte, also üblicherweise (11+11+GS_COUNT+1)*16 Byte.

Datensatznr.  die ersten 8 Byte        Format  (Dekodiert)   die zweiten 8 Byte       Format  (Dekodiert)    Kommentar
01            4E 55 4D 5F 4F 52 45 43  String  (NUM_OREC)    0B 00 00 00 00 00 00 00  Longint (11)           # header records in overview 
02            4E 55 4D 5F 53 52 45 43  String  (NUM_SREC)    0B 00 00 00 00 00 00 00  Longint (11)           # header records in sub grid
03            4E 55 4D 5F 46 49 4C 45  String  (NUM_FILE)    01 00 00 00 00 00 00 00  Longint (1)            # of sub grids
04            47 53 5F 54 59 50 45 20  String  (GS_TYPE )    53 45 43 4F 4E 44 53 20  String  (SECONDS )
05            56 45 52 53 49 4F 4E 20  String  (VERSION )    4E 54 76 32 2E 30 20 20  String  (NTv2.0  )
06            53 59 53 54 45 4D 5F 46  String  (SYSTEM_F)    44 48 44 4E 39 30 20 20  String  (DHDN90  )
07            53 59 53 54 45 4D 5F 54  String  (SYSTEM_T)    45 54 52 53 38 39 20 20  String  (ETRS89  )
08            4D 41 4A 4F 52 5F 46 20  String  (MAJOR_F )    1F 85 EB 49 ED 53 58 41  Double  (6377397.155)
09            4D 49 4E 4F 52 5F 46 20  String  (MINOR_F )    C1 CA A1 BD 1B 3F 58 41  Double  (6356078.963)
10            4D 41 4A 4F 52 5F 54 20  String  (MAJOR_T )    00 00 00 40 A6 54 58 41  Double  (6378137.000)
11            4D 49 4E 4F 52 5F 54 20  String  (MINOR_T )    75 93 18 14 C4 3F 58 41  Double  (6356752.314)  ^ bis hierher: Allgemeiner Header ( 11 Datensätze!)
12            53 55 42 5F 4E 41 4D 45  String  (SUB_NAME)    44 48 44 4E 39 30 20 20  String  (DHDN90  )     v hier beginnt das Subgrid
13            50 41 52 45 4E 54 20 20  String  (PARENT  )    4E 4F 4E 45 20 20 20 20  String  (NONE    )
14            43 52 45 41 54 45 44 20  String  (CREATED )    30 36 2D 31 31 2D 30 39  String  (06-11-09)
15            55 50 44 41 54 45 44 20  String  (UPDATED )    30 36 2D 31 31 2D 30 39  String  (06-11-09)
16            53 5F 4C 41 54 20 20 20  String  (S_LAT   )    00 00 00 00 80 A7 04 41  Double  (169200.000)
17            4E 5F 4C 41 54 20 20 20  String  (N_LAT   )    00 00 00 00 40 4D 08 41  Double  (199080.000)
18            45 5F 4C 4F 4E 47 20 20  String  (E_LONG  )    00 00 00 00 00 8A EB C0  Double  (-56400.000)
19            57 5F 4C 4F 4E 47 20 20  String  (W_LONG  )    00 00 00 00 00 56 D3 C0  Double  (-19800.000)
20            4C 41 54 5F 49 4E 43 20  String  (LAT_INC )    00 00 00 00 00 80 76 40  Double  (360.000)
21            4C 4F 4E 47 5F 49 4E 43  String  (LONG_INC)    00 00 00 00 00 C0 82 40  Double  (600.000)
22            47 53 5F 43 4F 55 4E 54  String  (GS_COUNT)    58 14 00 00 00 00 00 00  Longint (5208)      ^ bis hier Sub-Grid-Header, nach 2x11x16=352 Byte beginnen die Daten
23            D7 FB 2F C0 2B 4E E5 40                        00 00 00 00 00 00 00 00  4xSingle (-2.749746,7.165792,0,0) Shiftparameter 
24            86 00 30 C0 1E 26 E2 40                        00 00 00 00 00 00 00 00  4xSingle (-2.750032,7.067153,0,0)
25            BC 06 30 C0 1B FF DE 40                        00 00 00 00 00 00 00 00  4xSingle (-2.750411,6.968641,0,0) 
...
...           45 4E 44 20 20 20 20 20  String  (END     )    00 00 00 00 00 00 00 00  String   (        )

Hierbei bedeuten:
Double Float: 8 byte; Single Float: 4 byte; LongInt ohne Vorzeichen: 4 Byte + 4x[00], String: 8 byte (ASCII), rechts aufgefüllt mit Leerzeichen [20]

Deutschland

In Deutschland wird dieses Verfahren ab 2007 für ATKIS eingesetzt (Umwandlung geotopografischer Daten DHDN/Gauß-Krüger > ETRS89 im Submeterbereich). Die Bezeichnung hierfür lautet BeTA2007 (Bundeseinheitliche Transformation für ATKIS 2007, http://crs.bkg.bund.de/crseu/crs/descrtrans/BeTA/de_dhdn2etrs_beta.php).

Die das gesamte Gebiet von Deutschland umfassende BeTA2007-Datei liefert Ergebnisse im Submeterbereich, sollte also größenordnungsmäßig den Ergebnissen aus der offiziellen 7-Parameter-Transformation für Nord-, Mittel- und Süddeutschland (AdV) entsprechen. Die Abmessungen des Gitters sind:

  • Breite 47 bis 55,3°, Schrittweite 0,1° (360", ca. 10km)
  • Länge 5,5 bis 15,67°, Schrittweite 1/6° (600", ca. 1.2km)

Daraus ergibt sich eine Tabelle mit 5208 Zeilen mit jew. 2 Werten (Shift Breite/Länge)

Bundesländer und regional

Regional können mit engerer Maschenweite genauere Ergebnisse erzielt werden, z.B. für ALKIS-Einsatz (Liegenschaftskataster). Diese Tabellen stellen auch die Datenbasis der SAPOS-RTCM-Online-Transformation dar. Teilweise sind diese NTv2-Dateien bei den Landesvermessungsämtern kostenfrei erhältlich, z.B. Bayern (NTv2 BY-SAPOS), Baden-Württemberg (BWTA2017), Hessen (HeTa2010), NRW. Die Maschenweite beträgt für die bayerische Datei grob 1 km:

  • Breite 30"
  • Länge 45"

 

(c)support.drbertges.com/?p=4820 (printed 14 Apr 2024)