; ; FLÄCHENTREUER KEGELENTWURF IN NORMALER (POLARER) LAGE MIT NORDPOL ALS PUNKT ; =========================================================================== ; ; Nr. bei Wagner: 3a ; Name: Flächentreuer Kegelentwurf mit Nordpol als Punkt in normaler Lage ; Variante: Polversetzend ; Autor: ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 47ff. ; Richtung: Inverse Transformation ; Hemisphäre: Das Programm bildet immer, auch bei südlichem Berührungspunkt, den Nordpol als Punkt ab. ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; Fiala: Mathematische Kartographie, Berlin: Verlag Technik 1957 ; (C) Rolf Böhm Bad Schandau 2004 ; Polversetzend/Zentrierend: Bei Kegelentwürfen ist das Rechenzentrum (der Pol) meist ; nicht der Kartenmittelpunkt. Dies ist ein polversetzendes Programm, d. h. man kann/muss eine ; Distanz angeben, um die der Pol nach N versetzt wird. Das Gegenstück bilden die zentrierenden ; Kegelentwurfsprogramme, die Pol so versetzen, dass der Mitte der Quellkarte zur Mitte der Zielkarte wird. ; Benutzte Variablen ; ================== ; ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, ; ; Laufende Koordinaten ; _name Flächentreuer~Kegelentwurf~mit~Nordpol~als~Punkt~(polversetzend) _var phi ; Geographische Breite _var lambda ; Geographische Länge _var alpha ; Azimut ebene Polarkoord. _var m ; Radius ebene Polarkoord. _var n ; n _var root-n ; Wurzel(n) _var delta ; Poldistanz/geographisch ; _var phi0 ; Geogr. Breite des Berührungsparallels _var delta0 ; Poldistanz des Berührungsparallels _var pol-y ; Polverschiebung _var 2pi _var scale ; Kartenmaßstabszahl (also 1000000, nicht 1/1000000) ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial 077$ ; Dialog input scale Maßstabszahl input phi0 Berührungspunktbreite~in~Grad input lambda0 Berührungspunktlänge~in~Grad input pol-y Pollage~nördlich~vom~Bildmittelpunkt~in~Geokoordinaten ; Eingegebene Werte auf Min/Max bringen clip scale 1 1E12 clip phi0 -90 90 clip lambda0 -180 180 clip pol-y -1E6 1E6 ; Konstanten berechnen mul phi0 °( mov delta0 pi/2 sub delta0 phi0 ; Delta0 fertig mov n delta0 div n 2 cos n mov root-n n power n 2 ; n fertig (Formel (2) Wagner S. 50) mov 2pi pi add 2pi 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' sub y pol-y div y Ry' mul y scale ; ; Kartesische Koordinaten x/y in Polarkoordinaten m/alpha umwandeln ; ----------------------------------------------------------------- mov alpha x ; kartesische Koord. x y in Polarkoordinaten m alpha div alpha y atan alpha tstgt y 151$ ; Der atan ist doppeldeutig!: Wenn y negativ dann ... add alpha pi ; 180° addieren 151$: neg alpha ; Jetzt ist alpha berechnet, liegt aber noch falsch add alpha pi cmplt alpha pi 153$ sub alpha 2pi 153$: power x 2 power y 2 clr m add m x add m y root m 2 ; ; Eigentlicher flächentreuer Entwurf, dieser invers ; ------------------------------------------------- mov lambda alpha ; Geographische Länge div lambda n mov delta m mul delta root-n div delta 2 asin delta errjump out mul delta 2 ; Delta fertig mov phi pi/2 sub phi delta ; ; Schlussarbeiten ; --------------- ; mul lambda (° mul phi (° mov x' lambda ; ausserhalb cmplt x' -180 out cmpgt x' 180 out ; lambda0 einrechnen und Ergebnis modula 360 Grad add x' lambda0 cmpgt x' -180 3$ add x' 360 3$: cmplt x' 180 4$ sub x' 360 4$: mov y' phi cmplt y' -90 out cmpgt y' 90 out exit ; ; Ausserhalb ; ---------- out: mov x' -9999 mov y' -9999 exit _end