; ; WAGNER II = UNECHTZYLINDRISCHER ENTWURF MIT SINUSLINIGEN MERIDIANEN MIT POLLINIE UND VORGESCHRIEBENER FLÄCHENVERZERRUNG ; ======================================================================================================================= ; ; Nr. bei Wagner: 18b ; Kurzname: Wagners Entwurf II ; Name: Wagners Entwurf II (sinuslinig, flächenreguliert) ; Originalname: Unechtzylindrischer Entwurf mit sinuslinigen Meridianen mit Pollinie und vorgeschriebener Flächenverzerrung ; Autor: Karlheinz Wagner, Archiv der deutschen Seewarte, Hamburg 1932 ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 184ff. ; Richtung: Invers ; ; Das Programm übernimmt die Koordinaten eines Punktes (x/y) und transformiert ; diese in einen Punkt (x'/y'). ; ; x/y sind ebene Zielpunktkoordinaten, x'/y' geben die geogr. Breite und Länge ; der Position auf der Quell-Erdkugel, auf der der Zielpunkt gelesen werden ; kann. ; ; Maßstab und Mittelmeridian werden abgefragt. ; ; Das Programm rechnet EXAKT, d. h. die Wagnerschen Konstanten werden nicht zitiert, sondern ; ausgerechnet ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; (C) Rolf Böhm 2004 ; Benutzte Variablen ; ================== ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Wagners~Entwurf~II _var phi ; Geographische Breite _var lambda ; Geographische Länge _var psi ; Parametrisierte Länge _var phi-lim ; Breite bis zu der die Flächenverzerrung kontrolliert wird _var t1 ; temporär _var t2 ; temporär _var m1 ; Wagners Variablen, S. 184, 185, 186 _var m2 _var n _var C1.387 ; Die berechneten Konstanten _var C0.924 _var C0.885 _var C0.880 _var lambda0 ; Null-Länge ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial 077$ ; Dialog input scale Flächentreuer~Entwurf~mit~sinuslinigen~Meridianen~mit~Pollinie~und~vorgeschriebener~Flächenverzerrung~(Wagner~II)\\Maßstabszahl clip scale 1 1E12 input lambda0 Mittelpunktslänge~in~Grad clip lambda0 -180 180 ; Konstanten (Konfigurationsvariablen) berechnen mov t1 20 ; 20 % Flächenverzerrung zulässig mov phi-lim 60 mul phi-lim °( ; m2 add t1 100 ; + 100 % div t1 100 ; Prozent div t1 2 ; Jetzt Wagners 0.6 acos t1 ; Das ist jetzt der Winkel von 53.1301° div t1 phi-lim mov m2 t1 mov C0.885 m2 cls prints Wagner~II~Constants\\m2=~~~ printn C0.885 2 20 ; m1 mov t1 3 root t1 2 mov t2 m2 mul t2 pi/2 sin t2 mul t2 2 div t1 t2 mov m1 t1 mov C0.880 m1 prints \m1=~~~ printn C0.880 2 20 ; n mov n 2 div n 3 ; C1.387 mov t1 1 mov t2 n mul t2 m1 mul t2 m2 root t2 2 div t1 t2 mov C1.387 t1 prints \1/...= printn C1.387 2 20 ; C0.924 mov t1 n div t1 t2 ; auf t2 steht noch Wurzel(n m1 m2) mov C0.924 t1 prints \n/...= printn C0.924 2 20 ; 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 ; ----------------------------------- ; psi berechnen mov psi y div psi C1.387 mov t1 psi ; Test, damit keine gespiegelten Weltbilder auftreten abs t1 ; Absolutbetrag cmpgt t1 pi/2 out ; Wenn psi > pi/2 ausserhalb ; phi berechnen mov t1 psi sin t1 div t1 C0.880 asin t1 errjump out div t1 C0.885 mov phi t1 ; lambda berechnen mov t1 x mov t2 y div t2 C1.387 cos t2 mul t2 C0.924 div t1 t2 mov lambda t1 ; ; In Gradmaß umrechnen und Ausserhalbtest ; --------------------------------------- mul phi (° mul lambda (° cmplt phi -90 out cmpgt phi 90 out 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