; ; FLÄCHENTREUER KEGELENTWURF IN NORMALER (POLARER) LAGE MIT 2 LÄNGENTREUEN PARALLELKREISEN ; ======================================================================================== ; ; Nr. bei Wagner: 4 ; Name: Flächentreuer Kegelentwurf auf dem Schnittkegel oder ; Flächentreuer Kegelentwurf mit 2 längentreuen Parallelkreisen in normaler Lage ; Variante: Polversetzend ; Autor: ; Quelle: Karlheinz Wagner, Kartographische Netzentwürfe, Leipzig 1949, S. 47ff. ; Richtung: Direkttransformation ; ; Literatur: ; Wagner: Kartographische Netzentwürfe, Leipzig: Bibliographisches Institut 1949 ; Fiala: Mathematische Kartographie, Berlin: Verlag Technik 1957 ; (C) Rolf Böhm Bad Schandau 2006 ; 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~Schnittkegelentwurf~(polversetzend) _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 (Cos(Delta0)) _var rho ; Bei Südkegel 180° ; ; Konstanten der Transformation ; _var scale ; Kartenmaßstabszahl (also 1000000, nicht 1/1000000) _var phi1 ; Geogr. Breite des 1. Schnittparallels _var phi2 ; Geogr. Breite des 2. Schnittparallels _var lambda0 ; Geogr. Breite des Mittelmeridians _var pol-y ; Polversatz nach Nord _var delta1 ; Poldistanz des 1. Schnittparallels _var delta2 ; Poldistanz des 2. Schnittparallels _var C ; _var 4/n ; 4 / n ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. sind vordefinierte globale Konstanten ; ; Initialisierung ; =============== ; tstne initial $077 ; Dialog pause Hinweis:~Dieses~Programm~rechnet~eine~Vorwärtstransformation.\\Es~muss~mit~einer~direkt~arbeitenden~Projection~engine~abgearbeitet~werden. input scale Maßstabszahl input phi1 1.~Schnittparallelbreite~in~Grad input phi2 2.~Schnittparallelbreite~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 phi1 -90 90 clip phi2 -90 90 clip lambda0 -180 180 clip pol-y -1E6 1E6 ; Konstanten berechnen mul phi1 °( mov delta1 pi/2 sub delta1 phi1 ; Poldistanz Delta1 fertig mul phi2 °( mov delta2 pi/2 sub delta2 phi2 ; Poldistanz Delta2 fertig ; rho mov rho phi1 add rho phi2 div rho 2 sgn rho neg rho mul rho pi/2 add rho pi/2 ; Ist jetzt im S 180°, im N 0° ; Jetzt erstmal n berechnen ... mov r1 delta1 cos r1 mov r2 delta2 cos r2 mov n r1 add n r2 div n 2 ; n = ( cos delta1 + cos delta2 ) / 2 mov 4/n 4 ; 4/n div 4/n n mov r1 delta1 ; C. The long constant in Formula Wagner S. 53 (4) div r1 2 sin r1 power r1 2 mov r2 delta2 div r2 2 sin r2 power r2 2 mov r3 n power r3 2 mov C 4 mul C r1 ; sin²delta1/2 mul C r2 ; sin²delta2/2 div C r3 ; n² C is ready now ; Programm ist initialisiert mov initial 1 $077: ; ; SIMD-Laufbereich ; ================ ; ; (Single Instruction Multiple Data -- thats the Parallel Process) ; mov lambda x sub lambda lambda0 cmod lambda -180 180 mov phi y ; ; Umrechnung in Bogenmaß ; ---------------------- ; mul phi °( mul lambda °( ; ; Eigentlicher Entwurf (in Polarkoordinaten) ; ------------------------------------------ ; mov alpha lambda ; Azimut alpha mul alpha n add alpha rho mov delta pi/2 ; delta = pi/2 - phi sub delta phi mov m delta ; Radius m div m 2 sin m power m 2 mul m 4/n add m C ; m is ready now root m 2 ; ; Polarkoordinaten m/alpha in kartesische Koordinaten ; --------------------------------------------------- ; mov x alpha ; kartesische Koord. x y in Polarkoordinaten m alpha sin x mul x m mov y alpha cos y neg y ; ja, minus Cosinus! mul y m ; ; Maßstab, Kartenmittelpunkt etc. einrechnen ; ------------------------------------------ ; mul x Rx' div x scale add x Cx' mul y Ry' div y scale add y Cy' add y pol-y ; ; Schlussarbeiten ; --------------- ; mov x' x mov y' y exit _end