; ; CANTERS LOW ERROR EQUAL-AREA C6-9 ; ================================= ; ; Name: Canters Low-error equal-area transformation of sinusoidal projection [Mercator-Sanson] ; with twofold symmetry, equally divided parallels and a correct ratio of the axes ; (included Antarctica in the optimization); ; projection 9 with 6 coefficients. ; Note: C6-1 ... C6-4 are the four Canters Low error Pseudocylindrical I ... IV ; Quelle: Canters, Small-scale Map Projection Design, Taylor & Francis, London 2002, ; p. 218., Table 5.19, Fig. 5.30 and Formula 5.22, 5.23 (p.212) ; Richtung: Direkt-Transformation ; ; Anmerkung: Post-Transformation (s. u.). Aus dem C6-5 entwickelt und nicht optimiert. ; Laufzeit lässt sich durch Weglassen der Formel 5.22 auf etwa 60 % reduzieren. ; ; 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. ; Post-Transformation. Kein selbständiger Kartennetzentwurf, sondern vielmehr ; eine Transformation, die auf das Ergebnis einer Haupttransformation angewendet wird. ; Der Canters C6-9 ist auf einen Mercator-Sanson anzuwenden. ; (C) Rolf Böhm 2006 ; Benutzte Variablen ; ================== ; ; Die Variablennamen entsprechen weitgehend denen von Frank Canters ; ; Laufende Koordinaten ; _name Canters~Low~Error~Equal-area~C6-9 ; _var X _var Y _var X' _var Y' ; _var c1 _var c3 _var c5 ; _var c'1 _var c'3 _var c'5 ; _var x0 ; The x-Powers _var x1 _var x2 _var x3 _var x4 _var x5 ; _var Y0 ; The Y-Powers _var Y1 _var Y2 _var Y3 _var Y4 _var Y5 ; _var a ; Accumulator _var p ; Y Divisor _var q ; X' Divisor _var scale ; ; x, y, x', y', Cx', Cy', °(, (°, 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.\\¶ Das~Quellbild~muss~ein~Mercator-Sanson~sein. input scale Kartenmaßstabszahl~mit~der~der~Hauptentwurf~gerechnet~wurde. clip scale 1 1e9 ; Koeffizienten initialisieren mov c1 1 mov c3 0 mov c5 0 ; mov c'1 +1.1481 mov c'3 -0.0753 mov c'5 -0.0150 ; Programm ist initialisiert mov initial 1 077$: ; ; SIMD-Laufbereich ; ================ ; x, y sind gegeben (als globale vordefinierte Variablen) ; x', y' werden errechnet ; ; Transformation 5.22/5.23 (Canters 2002, p. 212) ; ----------------------------------------------- ; ; Note: Formula 5.22 is a rudiment from C6-5 and here no really in use! See also the coefficients. ; (But it's code that runs -- why change it?) ; reduction to normal sphere sub x Cx sub y Cy div x Rx div y Ry mul x scale mul y scale ; The x powers in formula 5.22 mov x1 x mov x2 x mov x3 x mov x4 x mov x5 x power x2 2 power x3 3 power x4 4 power x5 5 ; formula 5.22 clr X ; Note that x and X are 2 different Variables mov a c1 mul a x1 add X a mov a c3 mul a x3 add X a mov a c5 mul a x5 add X a ; That's X in 5.22 mov p c1 mov a 3 mul a c3 mul a x2 add p a mov a 5 mul a c5 mul a x4 add p a mov Y y div Y p ; That's Y in 5.22 ; The Y powers in formula 5.23 mov Y1 Y mov Y2 Y mov Y3 Y mov Y4 Y mov Y5 Y power Y2 2 power Y3 3 power Y4 4 power Y5 5 ; formula 5.23 mov q c'1 mov a 3 mul a c'3 mul a Y2 add q a mov a 5 mul a c'5 mul a Y4 add q a mov X' X div X' q ; That's X' in 5.23 clr Y' mov a c'1 mul a Y1 add Y' a mov a c'3 mul a Y3 add Y' a mov a c'5 mul a Y5 add Y' a ; That's Y' in 5.23 ; ; Schlussarbeiten ; --------------- ; 111$: mov x' X' mov y' Y' ; normal sphere back to map plane mul x' Rx' mul y' Ry' div x' scale div y' scale add x' Cx' add y' Cy' exit _end