Prototyp und Beschreibung der Funktion getelevation03() (Funktion der freischaltpflichtigen Gruppe "Höhenberechnungen") |
getelevation03() Geländehöhe aus dem 3 Sek. CGIAR Höhenmodell an einem Punkt. Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!): extern "C" __declspec(dllimport) unsigned long __stdcall getelevation03( double nGeoLon, double nGeoLat, unsigned long lInterpol, short *nElevation); Prototyp der DLL-Funktion in Visual Objects Syntax: _DLL function getelevation03(; nGeoLon as real8,; // 8 Byte nGeoLat as real8,; // 8 Byte lInterpol as logic,; // 4 Byte nElevation ref short); // 4 Byte as logic pascal:geodll32.getelevation03 // 4 Byte Die Funktion ermittelt die Geländehöhe aus dem 3 Sekunden Höhenmodell (90 m Raster) CGIAR an einem durch geographische Koordinaten definierten Punkt. Das 3 Sekunden Höhenmodell der NASA Shuttle Radar Topographic Mission "SRTM 90m Digital Elevation Data" ist für nicht kommerzielle Zwecke frei verfügbar und für die kommerzielle Nutzung für wenig Geld vom CGIAR zu erwerben. Mit einer Lizenz für die GeoDLL-Funktionsgruppe "Höhenberechnungen" haben Sie nur das Recht erworben, die Funktionen zur Berechnung der Höhendaten zu verwenden. Die Höhendaten selbst unterliegen dem Urheberrecht des "CGIAR Consortium for Spatial Information". Diese Organisation hat die Originaldaten der NASA überarbeitet und ergänzt. Bitte beachten Sie die Nutzungsbedingungen und das Urheberrecht CGIAR. Das 3 Sekunden Höhenmodell besteht aus insgesamt 1728 Dateien mit Höhenangaben zwischen dem 60. nördlichen Breitengrad und dem 60. südlichen Breitengrad. Jede Datei umfasst einen Bereich von 5 Längen- und 5 Breitengraden. Die Geländehöhen sind in einem 3 Sekunden Gitter abgelegt. Das entspricht einer Auflösung von maximal 90 x 90 Metern in Äquatornähe. Zu den Polen hin verdichtet sich das Netz mit zunehmender Auflösung über der geographischen Breite. Die Höhendaten sind horizontal mit Geographischen Koordinaten im Bezugssystem WGS84 georeferenziert. Vertikal wird die Geländehöhe über der Mittleren Meereshöhe (Mean Sea Level) in ganzen Metern abgebildet. Weitere Informationen finden Sie auf der Internetseite des CGIAR. Sie können die Daten des 3 Sekunden Höhenmodells von der Internetseite des "CGIAR Consortium for Spatial Information" herunterladen. Die aktuelle Internetadresse lautet "http://srtm.csi.cgiar.org/". Klicken Sie in der Navigationsspalte auf den Link "SRTM Data Search and Download". Aktivieren Sie dort die RadioButtons "Multiple Selection" und "ArcInfo ASCII". Klicken Sie im Weltkartenraster in die Segmente, aus denen Sie Höhendaten benötigen. Bestätigen Sie Ihre Auswahl mit dem Button "Search". In einem neuen Fenster sind die von Ihnen gewählten Segmente zum herunterladen zusammengestellt. Klicken Sie auf die Links "Data Download (FTP)" oder "Data Download (HTTP)" um die Daten auf Ihren Rechner zu kopieren. Nach dem Entpacken der ZIP-komprimierten Daten liegen diese im ASCII-Format vor. Um die Daten mit GeoDLL-Funktionen nutzen zu können, muss mit der Funktion setelev03datapath() zunächst der Datenpfad zu den Höhendaten bekannt gemacht werden. Beim ersten Zugriff einer GeoDLL-Funktion auf eine Datei im ASCII-Format wird diese in das wesentlich effizientere und kompaktere Binärformat umgerechnet. Die Umrechnung kann bis zu einer halben Minute dauern. Um während der Umrechnung weiter arbeiten zu können, kann die Event-Bearbeitung eingeschaltet werden (siehe unten). Zukünftige Zugriffe erfolgen direkt auf die neu erzeugte Datei im Binär-Format. Die ASCII-Datei kann gelöscht werden. Die Umrechnung in das Binärformat kann alternativ auch mit der Funktion convelev03ascii2bin()durchgeführt werden. 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. Es werden Dateien der CGIAR Versionen 2 bis 4 unterstützt. Diese Dateiformate sind möglich: Beispiel für einen Dateinamen in CGIAR V2 Syntax: Z_38_2.ASC. Beispiel für einen Dateinamen in CGIAR V3/V4 Syntax: SRTM_38_02.ASC. Die Groß- oder Kleinschreibung hat keinen Einfluss. Unterschiede zwischen den Höhenmodellen GLOBE und CGIAR: Höhenmodell: GLOBE CGIAR GeoDLL-Funktion getelevation30() getelevation03() Bereich Länge [Grad] -180 bis 180 -180 bis 180 Bereich Breite [Grad] -90 bis 90 -60 bis 60 Auflösung [sec] 30 x 30 3 x 3 Auflösung [m] 925 x ‹= 925 90 x ‹= 90 Horizontale Referenz WGS84 WGS84 Vertikale Referenz Mean Sea Level Mean Sea Level Horizontale Abweichung [m] ‹ 6 ‹ 6 Vertikale Abweichung [m] ‹ 10 ‹ 7 Anzahl Dateien 16 1728 Dateigröße [MB] 101 bis 126 70 Dateibereich [Grad] 90 x 40/50 5 x 5 Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben: nGeoLon Geographische Länge des zu höhenreferenzierenden Punktes in [Grad]-Notation vggg.ggg und im Bezugssystem WGS84. nGeoLat Geographische Breite des zu höhenreferenzierenden Punktes in [Grad]-Notation vgg.ggg und im Bezugssystem WGS84. lInterPol TRUE: Die Höhe wird aus den 4 Eckpunkten des die Koordinate enthaltenden 3 x 3 Sekunden Rasterfeldes interpoliert. Die Berechnung ist genau, aber relativ langsam. FALSE: Die Höhe entspricht dem Wert des die Koordinate enthaltenden 3 x 3 Sekunden Rasterfeldes. Die Berechnung ist weniger genau, aber schnell. nElevation Geländehöhe über dem Meeresspiegel in Meter als Ergebnis der (ref) Berechnung. Bei Wasserbedeckung wird der Wert 0 zurückgegeben. Im Fehlerfall liefert die Funktion den Wert 9999. 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. Freischaltung: Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe "Höhenberechnungen". 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 nur wenige Funktionsaufrufe zu Testzwecken (Sharewareprinzip) möglich. |