; ; FURUTIS FLÄCHENTREUER PSEUDO-ECKERT-ENTWURF ; =========================================== ; ; Name: Eckert-Furuti-Entwurf ; Autor: Carlos A. Furuti, Brasilia ; Quelle: Uma Projeção Cartográfica Equivalente, Projeto A_HAND DCC-IMECC Unicamp outobro de 1992 CRT-001--92-10-09-A ; http://www.progonos.com/furuti/MapProj/Normal/CartIntro/pce-caf.ps.gz (Portuguese) ; Richtung: Inverstransformation ; ; Maßstab und Berührungsparallel werden abgefragt. ; Die Zielbildgeometrie wird dem Sekundäroperanden oder einem Fixbild entnommen. ; Der Berührungspunkt wird bildmittig gesetzt. ; ; (C) Rolf Böhm 2008 ; ; Benutzte Variablen ; ================== ; ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Eckert-Furuti-Entwurf _var phi ; Geographische Breite _var lambda ; Geographische Länge _var delta0 ; Mittelpunktslänge _var t1 ; temporär _var t2 ; temporär ; ; Konstanten der Transformation ; _var -pi ; -pi _var scale ; Kartenmaßstabszahl (also 1000000, nicht 1/1000000) _var s1 ; see the Furuti manuscript _var T _var z _var t _var t1 ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial 077$ ; Dialog input scale Eckert_Furuti_Entwurf\\Maßstabszahl input lambda0 Mittelpunktslänge~in~Grad ; Eingegebene Werte auf Min/Max bringen clip scale 1 1E12 clip lambda0 -180 180 ; Konstanten mov -pi pi neg -pi mov s1 1 sin s1 mov T pi div T s1 div T 2 root T 2 mov z T mul z 2 div z pi ; Programm ist initialisiert mov initial 1 077$: ; ; SIMD-Laufbereich ; ================ ; ; Maßstab, Kartenmittelpunkt etc. einrechnen ; ------------------------------------------ sub x Cx' ; Bildmittelpunkt div x Rx' ; Erdradius mul x scale ; Kartenmaßstab sub y Cy' div y Ry' mul y scale ; ; Eigentlicher Entwurf, dieser invers ; ----------------------------------- ; ; The inverse Eckert-Furuti formulas are: ; ; (1) t = y / T ; (2) phi = arcsin ( sin t / s1 ) ; (3) lambda = x / z * cos t ; ; (s1, T, z are constants, see above) ; mov t y div t T ; (1) mov phi t sin phi div phi s1 cmpgt phi 1 out ; over North pole: out cmplt phi -1 out ; under South pole: out asin phi ; (2) mov lambda x mov r0 t cos r0 mul r0 z div lambda r0 ; (3) ; ; In Gradmaß umrechnen und Ausserhalbtest ; --------------------------------------- ; cmple phi -pi out ; cmpge phi pi out mul phi (° mul lambda (° cmplt lambda -180 out cmpgt lambda 180 out ; ; Schlussarbeiten ; --------------- ; mov x' lambda mov y' phi ; Lambda um lambda0 kreisen lassen add x' lambda0 cmod x' -180 180 exit out: mov x' -9999 mov y' -9999 exit _end