; ; WINKELTREUER SCHNITTKEGELENTWURF IN NORMALER (POLARER) LAGE NACH LAMBERT UND WAGNER ; =================================================================================== ; ; Nr. bei Wagner: 5 ; Name: Winkeltreuer Schnittkegelentwurf nach Lambert, Wagners Version, ; Winkeltreuer Schnittkegelentwurf mit gleichstarker Verzerrung, ; auf Grenz- und Mittelparallel oder ; Winkeltreuer Schnittkegelentwurf III ; Variante: Zentrierend ; Autor: Lambert 1772 ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949. ; Es ist dies der Entwurf, der auf den Seiten 66 bis 68 gerechnet wird. ; Richtung: Inverse Transformation ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; Fiala: Mathematische Kartographie, Berlin: Verlag Technik 1957 ; (C) Rolf Böhm Bad Schandau 2004 ; Winkeltreuer Schnittkegelentwurf III: ; Schnittkegelentwurf, aber nicht mit längentreu abgebildeten Schnittparallelen. ; Vielmehr wird das Netz so leicht vergrößert, dass der Vergrößerungsfaktor auf den ; Schnittparallelen gleich dem Verkleinerungsfaktor auf dem Mittelparallel (delta0) ist. ; Bei dem Entwurf handelt es sich vermutlich um eine Entwicklung von Karlheinz Wagner. ; Polversetzend/(Selbst-)Zentrierend: Bei Kegelentwürfen ist das Rechenzentrum (der Pol) meist ; nicht der Kartenmittelpunkt. Dies ist ein (selbst)zentrierendes Programm, welches den Pol ; so versetzt, dass der Mitte der Quellkarte zur Mitte der Zielkarte wird. Das Gegenstück bilden ; polversetzende Polgramme, bei denen der Polversatz "zu Fuss" abgefragt wird. ; ; Anmerkung 1: Die Berührungsparallel oder die Schnittparallele haben k e i n e n ; Einfluss auf die Zentrierung. Entscheidend ist der Quellbildmittelparallel ; ; Anmerkung 2: Auf die X-Lagerung hat die Selbstzentrierung ebenfalls keinen Einfluss, ; dies ist, wie bei allen anderen Programmen, mit lambda0 einzustellen. ; ; Anmerkung 3: Die Selbstzentrierung ist ganz schön aufwändig. Immerhin muss ; dafür zusätzlich zu der Inversformel eine Vorwärtsformel implementiert ; werden (wenngleich diese auch nur ein einziges Mal gerechnet wird) ; ; Benutzte Variablen ; ================== ; Die Variablennamen entsprechen weitgehend denen von Karlheinz Wagner, _name Winkeltreuer~Schnittkegelentwurf/Wagner~(zentrierend) _var phi ; Geographische Breite _var lambda ; Geographische Länge _var alpha ; Azimut ebene Polarkoord., auch Schiefazimut _var delta ; Poldistanz/geographisch, auch Schiefdistanz _var m ; Radius ebene Polarkoordinaten _var n ; Winkelreduktionsfaktor _var phi1 ; 1. Schnittparallel _var phi2 ; 2. Schnittparallel _var c ; Maßstabskonstante _var phi0 ; Mittlerer Parallel mit dem gerechnet wird _var delta0 ; Poldistanz des Berührungsparallels _var delta1 ; Poldistanz 1. Parallel _var delta2 ; Poldistanz 2. Parallel _var cosd0 ; Cosinus von Delta0 _var sigma _var T1 ; Die dicke Konstante vor der Formel auf S. 63 oben _var t1 ; temporäre Variablen _var t2 _var t3 _var t4 _var lambda0 ; Geogr. Breite des Mittelmeridians _var scale ; Kartenmaßstabszahl (also 1000000, nicht 1/1000000) _var 2pi ; 360 Grad _var Pol-y ; Pol-y _var -- ; Variable für Testausgaben ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Variablen ; ; Initialisierung ; =============== ; tstne initial $077 ; Dialog input scale Maßstabszahl input phi1 1.~Schnittparallelbreite~in~Grad input phi2 2.~Schnittparallelbreite~in~Grad input lambda0 Mittelpunktlänge~in~Grad ; Eingegebene Werte auf Min/Max bringen clip scale 1 1E12 clip phi1 -90 90 clip phi2 -90 90 clip lambda0 -180 180 ; Sigma mov sigma phi1 add sigma phi2 sgn sigma mul phi1 sigma mul phi2 sigma ; Konstanten berechnen mul phi1 °( mul phi2 °( mov delta1 pi/2 sub delta1 phi1 ; delta1 fertig mov delta2 pi/2 sub delta2 phi2 ; delta2 fertig ; n = Cos(Delta0) und n berechnen (Formel (5), Wagner, S. 64) mov t1 delta2 sin t1 log t1 mov t2 delta1 sin t2 log t2 mov t3 delta2 div t3 2 tan t3 log t3 mov t4 delta1 div t4 2 tan t4 log t4 sub t1 t2 sub t3 t4 div t1 t3 mov n t1 ; n = svw. Cos(Delta0) acos t1 ; Und so mov delta0 t1 ; wirds Delta0 ... das wird also rückwärts aus delta1 und delta2 berechnet. ; Konstante c berechnen (Formel 3. Wagner S. 66 Tabelle links unten [Formel rechts oben hat einen Druckfehler!!], auch Formel c S. 68 Mitte) mov t1 delta1 sin t1 mov t2 delta0 sin t2 mov t3 delta1 div t3 2 tan t3 power t3 n mov t4 delta0 div t4 2 tan t4 power t4 n mul t1 t2 mul t3 t4 div t1 t3 root t1 2 mov t2 n ; da Inverstransformation reziproker Wert der Formel div t2 t1 mov c t2 ; mov -- c ; log10 -- ; output -- Logarithmus von c ; Bis hierhin nach Wagner getestet; Bei 58/44 Grad wird 0.77910, log c wird 0.25691 wie in der Musterrechnung Wagner S. 66 mov 2pi pi mul 2pi 2 ; 2*Pi ; Pol-y berechnen (Für das Zentrieren) mov r1 Cy ; "Phi" von Cy abholen. "Lambda" alias Cx sei immer 0 ... mul r1 sigma ; ;;;;; mul r1 °( ; "Phi" in Bogenmaß umrechnen ; mov delta pi/2 ; Eigentlicher Entwurf: Phi (in r1) im m (alias Pol-y) umrechnen sub delta r1 ; pi/2 - phi mov m delta div m 2 tan m power m n ; svw. cos(delta0) div m c mov Pol-y m ; ; m in y umrechnen. Aus x=0 folgt, da m=sqrt(x²+y²) m=y! div Pol-y scale ; Maßstab einrechnen mul Pol-y Ry' ; Erdradius einrechnen mul Pol-y sigma ; heimsphärenabhängig proof Pol-y ; 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' ; Bildmittelpunkt sub y Pol-y ; Polverschiebung div y Ry' ; Erdradius mul y scale ; Kartenmaßstab mul x sigma mul y sigma ; ; 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 Entwurf, dieser invers ; ----------------------------------- ; mov lambda alpha ; Geographische Länge div lambda n ; Geographische Breite mov delta m ; mov delta 49.198 ; Verprobung: mit diesen 49.198 cm kommen (bei 58/44 Grad) genau die 46 Grad Tab. S. 67 letzte Spalte raus ; div delta 637030000 ; der Wagnersche Erdradius ; mul delta 12000000 ; der Wagnersche Maßstab mul delta c root delta n errjump out atan delta mul delta 2 mov phi pi/2 sub phi delta ; ; Kontern, in Gradmaß umrechnen und Ausserhalbtest ; ------------------------------------------------ ; mul lambda sigma ; Südhemisphäre: mul phi sigma ; ggf. kontern mul lambda (° mul phi (° cmplt lambda -180 out cmpgt lambda 180 out cmplt phi -90 out cmpgt phi 90 out ; ; Schlussarbeiten ; --------------- ; mov x' lambda mov y' phi ; Lambda kreisen lassen add x' lambda0 cmod x' -180 180 exit out: mov x' -9999 mov y' -9999 exit _end