Killet Software Ing.-GbR - kurz: KilletSoft - ist ein Softwareunternehmen, das im Jahr 1991 gegründet worden ist. Die Gesellschaft gliedert sich in die Bereiche "Geodätische Standardsoftware", "Entwicklungswerkzeuge für die Geoinformatik" und "Internationale Geodaten". Die Schwerpunktbranchen der von uns betreuten Unternehmen sind Ingenieurbüros, GIS-Entwickler, Internet-Marketing, Versorgung, Logistik, Telekommunikation, Sicherheitskräfte und der öffentliche Dienst.
Seitenhauptbereich drucken  •    Kontakt  •    Impressum
Deutsch English

Vorschlag zur Verwendung polygonaler Gültigkeitsbereiche in NTv2-Gitterdateien
Ein Versuch zur sinnvollen Ergänzung des NTv2-Standards
Kempen / Rheinland, Dezember 2015; überarbeitet Juli 2016
Killet Software Ing.-GbR
Pressetext und Arbeitspapier als MS WORD-Datei  herunterladen
Veröffentlicht in VDVmagazin, Verband Deutscher Vermessungsingenieure, Heft 2/2016


Vorwort
NTv2-Logo Mit Hilfe von NTv2-Gitterdateien ist es möglich, Punkte von einem Koordinatenbezugssystem in ein anderes mit sehr hoher Genauigkeit zu transformieren. Eine NTv2-Datei enthält ein oder mehrere quasi rechteckige Koordinatengitter, die in den NTv2-Headern definiert sind. Anstelle eines rechteckigen Bereichs soll und darf aber nur ein darin enthaltener polygonaler Bereich abgedeckt sein, z.B. ein Staatsgebiet innerhalb der Landesgrenzen. Wie können außerhalb eines polygonalen administrativen Gebiets liegende Koordinaten von Koordinatentransformationen und Bezugssystemwechseln (Datumsübergängen) ausgeschlossen und damit Lokalisierungsfehler vermieden werden? Der Autor stellt eine einfache, aber effektive Lösung des Problems vor. Der Artikel wendet sich an GIS-Entwickler, die NTv2-Dateien für genaue Bezugssystemwechsel in administrativen Gebieten generieren. Er wendet sich auch an GIS-Anwender, die Koordinatentransformationen und Bezugssystemwechsel mit Hilfe von NTv2-Dateien durchführen.


Preface
By means of NTv2 grid files it is possible to transform points from one coordinate reference system to another with very high accuracy. An NTv2 file contains one or more quasi-rectangular coordinate grids which are defined in the NTv2 headers. Instead of a rectangular area only an embedded polygonal area should and must be covered, for example, a state territory within the country borders. How can outside of a polygonal administrative area located coordinates be excluded from the coordinate transformations and reference system transitions (datum shifts) and thereby localization errors be suppressed? The author presents a simple but effective solution for this problem. The article matches GIS developers who generate NTv2 files for accurate reference system transitions in administrative areas. It also addresses GIS users who perform coordinate transformations and reference system transitions using NTv2 files.


Im Text verwendete neue Begriffe:
Polygonaler Gültigkeitsbereich
Ein Polygon innerhalb eines NTv2-Gitters, in dem Bezugssystemwechsel zugelassen sind.
Exopolygonaler Eintrag
Eintrag des Wertepaars -99 /-99 in die Verschiebungs- oder Genauigkeitswerte einer Gittermasche zum Ausschluss aus dem polygonalen Gültigkeitsbereich.
Das Mitte der 90ger Jahre in Kanada entwickelte NTv2 bedeutet "National Transformation Version 2". Inzwischen wird die recht genaue NTv2-Methode zur Realisierung von Bezugssystemwechseln in vielen Ländern benutzt. NTv2 verwendet in Dateien abgelegte Koordinatengitter, um genaue Transformationen von einem geodätischen Bezugssystem in ein anderes durchzuführen. Die Koordinatengitter der NTv2-Datei enthalten die dafür notwendigen Verschiebungen zwischen den beiden Bezugssystemen. Mittels bilinearer Interpolation werden die exakten Koordinaten für Punkte des Quellbezugssystems im Zielbezugssystem berechnet.

Die NTv2-Datei ist aus einem oder mehreren Parent- und Child-Koordinatengittern in einer hierarchischen Struktur aufgebaut. Die optional enthaltenen Child-Koordinatengitter verfeinern mit verdichteten Gittermaschen Teilbereiche des darunter liegenden Parent-Koordinatengitters. Die Child-Gitter können dabei wiederum hierarchisch als Parent-Gitter weiterer, darüber liegender Child-Gitter auftreten (siehe Abbildung 3). Die meisten Gitterdateien, wie z.B. das Deutsche Beta2007, enthalten aber nur ein einzelnes Parent-Koordinatengitter.


SUB_NAME DHDN90
PARENT   NONE
CREATED  06-11-09
UPDATED  06-11-09
S_LAT    169200.000000
N_LAT    199080.000000
E_LONG   -56400.000000
W_LONG   -19800.000000
LAT_INC  360.000000
LONG_INC 600.000000
GS_COUNT 5208
NUM_OREC 11
NUM_SREC 11
NUM_FILE 1
GS_TYPE  SECONDS
VERSION  NTv2.0
SYSTEM_F DHDN90
SYSTEM_T ETRS89
MAJOR_F  6377397.155
MINOR_F  6356078.963
MAJOR_T  6378137.000
MINOR_T  6356752.314
Die NTv2-Datei beginnt mit einem Main-Header (links), in dem allgemeine Informationen, die Bezeichnungen der verwendeten Bezugssysteme und die jeweiligen Ellipsoidparameter abgelegt sind. Es folgen die Parent- und Child-Koordinatengitter, die ihrerseits mit einem Sub-Header (rechts) beginnen. Darin sind die Gültigkeitsbereiche der Koordinatengitter durch südliche und nördliche Breitengrade und westliche und östliche Längengrade festgelegt.


 -2.749746  7.165792  0.000000  0.000000
 -2.750032  7.067153  0.000000  0.000000
 -2.750411  6.968641  0.000000  0.000000
 -2.750896  6.870278  0.000000  0.000000
 -2.751498  6.772085  0.000000  0.000000
Jeweils hinter einem Sub-Header folgen die Gittermaschen mit zwei Werten für die Längen- und Breitenverschiebung und zwei Werten für die Genauigkeit. Die Verschiebungen zwischen den Bezugssystemen sind meist in Sekunden angegeben, können aber auch als Minuten oder Grad abgelegt sein. Optional kann die Genauigkeit als mittlerer Fehler der Längen- und Breitenverschiebung in Meter angegeben sein.


NTv2-Gitter mit rechteckigem Gültigkeitsbereich
NTv2-Gitter mit rechteckigem Gültigkeitsbereich

Der rechteckige Gültigkeitsbereich einer NTv2-Datei ist also durch ein oder mehrere quasi rechteckige Koordinatengitter festgelegt. Die Beschränkung auf den tatsächlich benötigten polygonalen Bereich, wie er z.B. durch Landesgrenzen vorgegeben ist, ist deshalb nicht möglich. Als Folge sind alle außerhalb des polygonalen Gültigkeitsbereichs durchgeführten Koordinatentransformationen fehlerhaft. Zur Lösung dieses Problems könnte man außerhalb der gewünschten polygonalen Bereiche liegende Gittermaschen mit bestimmten Werten füllen. Diese Werte werden im folgenden Text als "exopolygonale Einträge" bezeichnet.

Abbildung 1: Dieses rechteckige Koordinatengitter einer herkömmlichen NTv2-Datei umfasst das Staatsgebiet der Bundesrepublik Deutschland. Außerhalb des für den Bezugssystemwechsel vorgesehenen Staatsgebiets führen Koordinatentransformationen zwangsläufig zu Fehlern.



Die erste Möglichkeit, polygonale Strukturen zu realisieren, ist die Verwendung exopolygonaler Einträge für die Genauigkeitswerte der Gittermaschen. In den meisten NTv2-Dateien sind die Genauigkeitswerte auf 0 oder -1 gesetzt, um anzuzeigen, dass keine Informationen zur Genauigkeit zur Verfügung stehen. Erfahrungsgemäß gibt es keine NTv2-Dateien, in denen die Genauigkeitswerte mit plausiblen Zahlen belegt sind. Es ist keine GIS-Software bekannt, die Genauigkeitswerte in die Berechnungen mit einbezieht.


Wenn man nun beide Genauigkeitswerte der auszuschließenden Gittermaschen mit dem exopolygonalen Eintrag -99 belegt, können diese damit als ungültig markiert werden. Die so markierten Gittermaschen sind von den Berechnungen der Bezugssystemwechsel ausgeschlossen. Die Zahl -99 ist für die Markierung geeignet, da sie als Wertepaar für plausible Genauigkeitsangaben nicht vorkommen kann.


Die zweite Möglichkeit ist der exopolygonale Eintrag -99 in die beiden Verschiebungen für die Länge und die Breite der Gittermaschen. Auch hier gilt, dass dieses Wertepaar für plausible Längen- oder Breitenverschiebungen nicht vorkommen kann.

NTv2-Gitter mit polygonalem Gültigkeitsbereich
NTv2-Gitter mit polygonalem Gültigkeitsbereich

Abbildung 2: In diesem Beispiel soll der Bereich der Bundesrepublik Deutschland als polygonaler Gültigkeitsbereich behandelt werden. Die roten Gittermaschen sind mit exopolygonalen Einträgen markiert und dadurch von Bezugssystemwechseln ausgeschlossen. Die weißen Gittermaschen sind Randbereiche, in denen Bezugssystemwechsel stattfinden müssen.



 -2.749746   7.165792   0.000000   0.000000
 -2.750032   7.067153   0.000000   0.000000
-99.000000 -99.000000   0.000000   0.000000
-99.000000 -99.000000   0.000000   0.000000
 -2.751498   6.772085   0.000000   0.000000
 -2.752229   6.674087 -99.000000 -99.000000
 -2.753104   6.576315 -99.000000 -99.000000
 -2.754140   6.478805   0.000000   0.000000
 -2.755358   6.381604   0.000000   0.000000
Im Beispiel links sind beide Methoden zur Realisierung polygonaler Gültigkeitsbereiche dargestellt. Die gelb hinterlegten Verschiebungen zweier Gittermaschen und die blau hinterlegten Genauigkeitswerte zwei weiterer Gittermaschen sind mit exopolygonalen Einträgen gekennzeichnet. Damit liegen diese vier Gittermaschen außerhalb des polygonalen Gültigkeitsbereichs.


Zur Realisierung polygonaler Gültigkeitsbereiche kann eine GIS-Software exopolygonale Einträge in den vier Werten für die Verschiebungen und Genauigkeiten der Gittermaschen abfragen. Während der Berechnung von Bezugssystemwechseln werden die zu transformierenden Koordinaten auf ihre Zugehörigkeit zu solchen Gittermaschen untersucht. Dabei muss unterschieden werden, ob die Gittermasche in einem Parent-Koordinatengitter oder in einem darin enthaltenen Child-Koordinatengitter liegt. Liegt sie in einem Child-Gitter, wird versucht die Berechnung im darunter liegenden Parent-Gitter fortzuführen. Wenn die zu einer Koordinate passenden Gittermaschen in allen hierarchisch übereinander liegenden Child- und Parent-Gittern mit exopolygonalen Einträgen gekennzeichnet sind, liegt die Koordinate außerhalb des Bereichs polygonaler Gültigkeit. Sie wird von der Berechnung des Bezugssystemwechsels ausgeschlossen und es wird ein Hinweis generiert.


Test von Koordinaten auf Polygonale Gültigkeit
Test von Koordinaten auf Polygonale Gültigkeit

Abbildung 3: In diesem Beispiel sind drei Koordinatengitter übereinander angeordnet. Nur wenn eine Koordinate durch alle darin enthaltenen exopolygonalen Gittermaschen fällt, liegt sie außerhalb der polygonalen Gültigkeit und wird vom Bezugssystemwechsel ausgeschlossen.


Durch die Verwendung exopolygonaler Einträge in den Verschiebungswerten oder in den Genauigkeitswerten ergeben sich zwei Methoden zur Realisierung polygonaler Gültigkeitsbereiche. Die beiden Methoden unterscheiden sich in den Auswirkungen erheblich.


Verwendung der Genauigkeitswerte
Verwendung der Genauigkeitswerte

Methode 1: Exopolygonaler Eintrag in die Genauigkeitswerte einer Gittermasche.


Es wird genau eine Gittermasche angesprochen, die sich einen Gitterabstand LAT_INC in nördlicher und einen Gitterabstand LON_INC in westlicher Richtung vom Gitterpunkt erstreckt. Das ist genau die Gittermasche, die durch den Gitterpunkt definiert ist und die bei der Interpolation einer darin befindlichen Koordinate angesprochen wird. Diese Gittermasche wird aus dem polygonalen Gültigkeitsbereich des NTv2-Gitters ausgeschlossen.

Abbildung 4: Verwendung der Genauigkeitswerte zum Ausschluss einer einzelnen Gittermasche.



Verwendung der Verschiebungswerte
Verwendung der Verschiebungswerte

Methode 2: Exopolygonaler Eintrag in die Längen- und Breitenverschiebungen einer Gittermasche.


Bei der bilinearen Interpolation werden die vier benachbarten Gitterpunkte einer Koordinate verwendet, in denen jeweils exopolygonale Einträge enthalten sein können. Daher werden insgesamt vier Gittermaschen angesprochen, die sich je einen Gitterabstand LAT_INC in nördlicher und südlicher und je einen Gitterabstand LON_INC in westlicher und östlicher Richtung vom Gitterpunkt erstrecken.

Abbildung 5: Verwendung der Verschiebungswerte zum Ausschluss von vier benachbarten Gittermaschen.



Das sind die vier Gittermaschen, die um den Gitterpunkt herum angeordnet sind. Genau diese vier Gittermaschen werden aus dem polygonalen Gültigkeitsbereich des NTv2-Gitters ausgeschlossen. Dabei dürfen die Gittermaschen auch überlappend von der polygonalen Gültigkeit ausgeschlossen werden.


Die Methode 1 ist zu bevorzugen, da jeder einzelnen Gittermasche in der NTv2-Datei die polygonale Gültigkeit entzogen werden kann. Methode 2 sollte angewendet werden, wenn die zum Erzeugen einer NTv2-Gitterdatei verwendete GIS-Software keinen Zugriff auf die Genauigkeitswerte zulässt. Bei Methode 2 muss wegen der flächenhaft vierfachen Größe des angesprochenen Bereichs eine Überlappungszone zum polygonalen Gültigkeitsbereich berücksichtigt werden. Beide Methoden dürfen ohne besondere Vorkehrungen einzeln oder gemeinsam angewendet werden.


Der polygonale Gültigkeitsbereich wird vom Entwickler während der Erstellung einer NTv2-Datei oder nachträglich festgelegt. Der Entwickler trägt dazu die exopolygonalen Einträge in die Verschiebungs- oder Genauigkeitswerte der außerhalb des benötigten Polygons liegenden Gittermaschen ein. Die auswertende Software muss dann so beschaffen sein, dass sie die exopolygonalen Einträge erkennt und für ungültig erklärt.


Das Geodetic Development Kit GeoDLL ab Version 16.00 und das Koordinaten-Transformationsprogramm TRANSDAT ab der Version 19.00 von KilletSoft unterstützen bereits polygonale Gültigkeitsbereiche. Die beiden Tools erkennen exopolygonale Einträge in den Verschiebungen oder Genauigkeiten einer Gittermasche durch Kontrolle aller hierarchischen Child- und Parent-Koordinatengitter. Bei Treffern generiert die Software eine Nachricht, dass die Koordinate außerhalb des polygonalen Gültigkeitsbereichs der NTv2 Gitterdatei liegt. Herkömmliche NTv2-Dateien ohne polygonale Gültigkeitsbereiche funktionieren weiterhin in der gewohnten Weise.


Es liegt in der Hand der GIS-Entwickler und GIS-Anwender, ob polygonale Gültigkeitsbereiche in NTv2-Dateien zukünftig realisiert werden. Im Quelltext von NTv2 unterstützenden Programmen genügen einige IF-Abfragen und eine zusätzliche Schleifenstruktur, um darin polygonale Gültigkeitsbereiche zu implementieren. Gern würde KilletSoft Entwickler unterstützen, die sich für diese Idee begeistern können.


Zusammenfassung
Der Autor stellt eine einfache Methode zur Realisierung polygonaler Gültigkeitsbereiche in NTv2-Dateien vor. Die Struktur der NTv2-Datei bleibt dabei unverändert. Beim Generieren von NTv2-Dateien können die außerhalb der polygonalen Gültigkeit liegenden Gittermaschen mit exopolygonalen Einträgen markiert werden. Der Vorteil dieser Methode ist die exklusive Adressierung von Gittermaschen innerhalb des vorgesehenen administrativen Bereichs und dadurch der Ausschluss von Lokalisierungsfehlern. Software-Entwickler können die Berücksichtigung polygonaler Gültigkeitsbereiche in GIS-Software durch wenige Veränderungen im Programmcode implementieren. KilletSoft stellt bereits GIS-Software zur Verfügung, die polygonale Gültigkeitsbereiche unterstützt.


Summary
The author presents a simple method for realizing polygonal validity scopes in NTv2 files. Thereby the structure of the NTv2 file remains unchanged. When generating NTv2 files, grid meshes that are located outside of the polygonal validity can be labeled with exopolygonal entries. The benefit of this method is the exclusive addressing of grid meshes inside the intended administrative area and thus the exclusion of localization errors. Software developers can implement the consideration of polygonal validity scopes in GIS software by a few changes in the source code. KilletSoft already provides GIS software which supports polygonal validity scopes.


Hinweis
Seit Ende 2014 kursiert im Internet ein Hinweis[1], das geodätisiche Open Source Modul Proj.4 transformiere aufgrund eines Bugs in einem minimalen Bereich um die Ränder der Koordinatengitter fehlerhaft, wenn in der NTv2-Datei Child-Koordinatengitter enthalten seien. Davon seien viele Programme betroffen, die Proj.4 für geodätische Berechnungen eingebunden haben. GeoDLL und TRANSDAT von KilletSoft verwenden eigene Algorithmen für NTv2-Berechnungen und sind deshalb von dem oben beschriebenen Fehler nicht betroffen!


Fußnoten

  1. GeoSN, 2014-11-11
    Verwendung von NTv2-Gitterdateien mit freier Software
    Proj.4-Fehlerticket Nummer 209 [http://trac.osgeo.org/proj/ticket/209]


Abbildungsverzeichnis

  1. NTv2-Gitter mit rechteckigem Gültigkeitsbereich
    Urheber: Fred Killet
  2. NTv2-Gitter mit polygonalem Gültigkeitsbereich
    Urheber: Fred Killet
  3. Test von Koordinaten auf polygonale Gültigkeit
    Urheber: Fred Killet
  4. Verwendung der Genauigkeitswerte zum Ausschluss einer einzelnen Gittermasche
    Urheber: Fred Killet
  5. Verwendung der Verschiebungswerte zum Ausschluss von vier benachbarten Gittermaschen
    Urheber: Fred Killet

Die Abbildungen 1 bis 5 wurden mit Hilfe des als Freeware mit einer "GNU General Public License" ausgestatteten Programms IncScape 0.91 generiert.


Logo QR-URL Autor / Verfasser
Dipl.-Ing. Fred Killet
Escheln 28a
47906 Kempen (Germany)
http://www.killetsoft.de
killet(at)killetsoft.de

KilletSoft Neuigkeiten Damit Sie immer gut informiert sind, haben wir in dieser Spalte aktuelle Hinweise, Informationen und besondere Angebote für Sie zusammengestellt.

KilletSoft Logo Jubiläum
 
Guter Service zahlt sich aus - 25 Jahre Geosoftware von KilletSoft!
 Lesen Sie mehr...

KilletSoft Logo Updates
 
Der Zeitraum, in dem Sie kostenlose Updates unserer Programme nutzen können, ist verlängert worden!
 Lesen Sie mehr...

KilletSoft Logo Innovationspreis 2016
 
Award 2016 Zum zweiten mal in Folge haben geodätische Programme von KilletSoft den Innovationspreis der Initiative Mittelstand gewonnen.
 Zertifikat TRANSDAT...
 Zertifikat ORTWIN...
 Lesen Sie die Pressemeldung...

KilletSoft Logo GeoDLL / TRANSDAT
 
Vorschlag zur Verwendung polygonaler Gültigkeitsbereiche in NTv2-Gitterdateien.
 Lesen Sie das Arbeitspapier...

KilletSoft Logo WINDOWS© 10 compatible
 
Win10 kompatibel Unsere Software hat das Zertifikat "WINDOWS© 10 compatible" erhalten. Damit erfüllt sie den Kompatibilitätsstandard von Microsoft WINDOWS© 10.

KilletSoft Logo NTv2 Hamburg
 
Hochgenaue NTv2-Datei des Bundeslandes Hamburg kostenlos für TRANSDAT- und GeoDLL-Nutzer.
 Laden Sie die NTv2-Datei ...
 Lesen Sie die Pressemeldung...

KilletSoft Logo GeoDLL
 
GeoDLL unterstützt Zeitzonenberechnungen unter Einbezug der Küstenzonen.
 Lesen Sie die Pressemeldung...

KilletSoft Logo TRANSDAT / GeoDLL
 
Das Programm und die DLL unterstützen nur alle HARN / HPGN -Bezugssysteme der USA.
 Lesen Sie mehr...

KilletSoft Logo Übersetzer gesucht!
 
Die neuen Versionen der Programme TRANSDAT und SEVENPAR unterstützen Sprachdateien für die Benutzeroberfläche. Da die sprachabhängigen Texte in externen Dateien verwaltet werden, können jederzeit  neue Sprachen hinzugefügt werden. Jeder Nutzer kann nun Sprachdateien für sich und unsere Kunden zusammenstellen.