Prototyp und Beschreibung der Funktion convntvbin2area()

(Funktion der freischaltpflichtigen Gruppe "NTv2-Werkzeuge")

 

convntvbin2area()
Bereich einer NTv2-Gitterdatei in eine neue Binärdatei übertragen.

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall convntvbin2area(
     char *pszFileBinary,
     char *pszFileArea,
     double fLonWest,
     double fLonEast,
     double fLatSouth,
     double fLatNorth);

Prototyp der DLL-Funktion in Visual Objects Syntax:
_DLL function convntvbin2area(;
     pszFileBinary AS PSZ,;                   // 4 Byte, char*
     pszFileArea AS PSZ,;                     // 4 Byte, char*
     fLonWest AS REAL8,;                      // 8 Byte
     fLonEast AS REAL8,;                      // 8 Byte
     fLatSouth AS REAL8,;                     // 8 Byte
     fLatNorth AS REAL8);                     // 8 Byte
as logic pascal:geodll32.convntvbin2area      // 4 Byte


Die Funktion kopiert die Gitterdaten eines mit Koordinaten begrenzten
Ausschnitts aus einer NTv2-Binärdatei in eine neue NTv2-Binärdatei.

Es gibt einige sehr große NTv2-Binärdateien, die größer sind als der
mit dem C-Variablentyp "long int" adressierbare Bereich von ca 2,15
Gigabyte. So hat zum Beispiel die bayerische NTv2-Binärdatei
BY_KanU_Bayern-gesamt.gsb eine Größe von rund 3,5 Gigabyte. Im Gegensatz
zu der Software GeoDLL und TRANSDAT von KilletSoft können viele geodätische
Programme und GIS so große NTv2-Dateien nicht verarbeiten. Mit der Funktion
convntvbin2area() besteht die Möglichkeit einen durch ein Koordinatenfenster
festgelegten Ausschnitt aus einer NTv2-Binärdatei in eine neue Binärdatei zu
kopieren. Dabei werden alle Subgitter berücksichtigt, deren Fläche von dem
vorgegebenen Bereich geschnitten wird. Die so erzeugte neue Binärdatei ist
dann kleiner und kann mit jeder geodetischen Software und GIS verwendet
werden.

Der durch das Koordinatenfenster definierte neue Bereich darf den in der
NTv2-Datei festgelegten Bereich in alle Richtungen überschneiden oder er kann
vollständig darin enthalten sein. Wenn keine Übereinstimmung der Bereiche
festgestellt wird, quittiert GeoDLL das mit einer Fehlermeldung.

Zur Unterscheidung von der Original-Gitterdatei sind in der selektiv
erstellten NTv2-Gitterdatei die Einträge UPDATED in allen berücksichtigten
Gitterheadern mit dem Datum des Erstellungstages überschrieben. NTv2-
Binärdateien mit Syntaxfehlern werden von GeoDLL mit einer Fehlermeldung
abgelehnt.

Eine möglicherweise vorhandene KilletSoft-Verschlüsselung der NTv2-Datei und
darin eingetragene Polygonale Gültigkeitsbereiche bleiben bei der Übertragung
in die neue NTv2-Datei erhalten.

Sie können die von GeoDLL unterstützten NTv2-Dateien direkt von der
KilletSoft Internetseite "http://www.killetsoft.de/p_gdln_d.htm#download"
herunterladen oder dort die Verweise zu den Originalquellen verwenden. Auf
der Internetseite finden Sie auch eine ausführliche Beschreibung des
NTv2-Standards.

Da die Funktion wegen der umfangreichen Berechnungen zeitintensiv ist, kann
mit der Funktion seteventloop() die Event-Bearbeitung während der Berechnung
durch Unterbrechung der Bearbeitungsschleife zugelassen werden.

Die Dateinamen der NTv2-Binärdatei und der neu zu erzeugenden NTv2-Binär-
Datei dürfen jeweils einen Laufwerksbuchstaben und eine Verzeichniskette
enthalten. Sie sollten jeweils die Dateinamenserweiterung ".gsb" haben.
Beispiel:
Binärdatei  "c:\programm_ntv2\BeTA2007.gsb"
Neue Datei  "c:\programm_ntv2\BeTA2007_area.gsb"
Achtung, in C-Syntax müssen doppelte Backslashes verwendet werden!


Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben:
pszFileBinary  Dateiname der als Quelle verwendeten NTv2-Binärdatei. Der
            Dateiname darf einen Laufwerksbuchstaben und eine Verzeichnis-
            kette enthalten. Der Dateiname sollte die Dateinamens-
            erweiterung ".gsb" haben.

pszFileArea Dateiname der zu erzeugenden NTv2-Binärdatei mit dem
            Datenausschnitt. Der Dateiname darf einen Laufwerksbuchstaben
            und eine Verzeichniskette enthalten. Der Dateiname sollte die
            Dateinamenserweiterung ".gsb" haben.

fLonWest    Westliche Länge des Koordinatenfensters in [Grad]-Notation
            vggg.ggg

fLonEast    Östliche Länge des Koordinatenfensters in [Grad]-Notation
            vggg.ggg

fLatSouth   Südliche Breite des Koordinatenfensters in [Grad]-Notation
            vggg.ggg

fLatNorth   Nördliche Breite des Koordinatenfensters in [Grad]-Notation
            vggg.ggg

returnWert  Im Fehlerfall gibt die Funktion FALSE zurück, sonst TRUE.


Für geographische Koordinaten in [Grad]-Notation gilt:
v           Optionales Vorzeichen für Längen westlich von Greenwich und
            Breiten südlich des Äquators.
g           Grad und dezimaler Bruchteil eines Grades.

Abweichungen vom NTv2-Standard innerhalb der NTv2-Dateien:
GeoDLL unterstützt Polygonale Gültigkeitsbereiche. Dazu können Gitter-
maschen die exopolygonalen Einträge -99/-99 in ihren Shift- oder
Genauigkeitswerten enthalten. Detaillierte Informationen finden Sie im
Hilfe-Kapitel "Polygonale Gültigkeitsbereiche".


Freischaltung:
Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe
"NTv2-Werkzeuge". Sie wird zusammen mit den anderen Funktionen der Gruppe
durch die Eingabe der bei der Vertriebsfirma erworbenen Freischaltparameter
per Aufruf der Funktion setunlockcode() zur uneingeschränkten Nutzung frei
geschaltet. Ohne die Freischaltung sind mit dieser Funktion keine Funktions-
aufrufe zu Testzwecken (Sharewareprinzip) möglich.