; ; CANTERS LOW ERROR EQUAL-AREA OF EURAFRICA P12 (POSTPROCESS) ; =========================================================== ; ; Name: Canters Low-error equal-area transformation of the oblique ; azimuthal equal-area projection; ; third order transformation, ; with twofold symmetry, ; 4 coefficients. ; Source: Canters, Small-scale Map Projection Design, Taylor & Francis, London 2002, ; p. 227., Table 5.23, Fig. 5.35 (a), Formula 4.84, 4.85, 4.88 (p. 145), see also 5.22, 5.23 (p. 212) ; Direction: Direkt-Transformation ; ; Remark: Post-Transformation. Transformation of an oblique azimuthal equal-area ; projection, meta-pole 20° N, 20° E. ; ; Given co-ordinate: x, y ; Result co-ordinate: x', y' ; (C) Rolf Böhm 2006 ; Declarations ; ============ ; ; The variable names by Frank Canters ; ; Current coords ; _name Canters~Low-error~Equal-area~(Eurafrica)~P12 ; _var X _var Y _var X' _var Y' ; ; The Coefficients ; _var c1 _var c2 _var c3 _var c4 _var c5 ; _var c'1 _var c'2 _var c'3 _var c'4 _var c'5 ; ; Powers ; _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 ; ; Misc ; _var a ; Accumulator _var p ; Y Divisor _var q ; X' Divisor _var scale ; ; x, y, x', y', Cx', Cy', °(, (°, pi, pi/2 etc. are pre-defined ; ; Initialisation ; ============== ; 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~schiefachsiger~flächentreuer~Azimutalentwurf~(20°N,20°E)~sein. input scale Kartenmaßstabszahl~mit~der~der~Hauptentwurf~gerechnet~wurde. clip scale 1 1e9 ; Set the coeff mov c1 +1.0061 mov c2 0 mov c3 -0.0583 ; mov c'1 +0.9966 mov c'2 0 mov c'3 +0.0435 ; Programm is initialised mov initial 1 077$: ; ; SIMD-Code ; ========= ; x, y are given ; x', y' were computed ; ; Transformation 5.22/5.23 (Canters 2002, p. 212, see also chapter 4.2.2, p. 145, formula 4.84, 4.85, 4.88) ; --------------------------------------------------------------------------------------------------------- ; ; 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 power x2 2 power x3 3 ; formula 5.22 clr X ; Note that x and X are 2 different Variables (in RTA Language and also in Canters book) mov a c1 mul a x1 add X a mov a c2 mul a x2 add X a mov a c3 mul a x3 add X a ; That's X in 5.22 also with even coeff mov p c1 mov a 2 mul a c2 mul a x1 add p a mov a 3 mul a c3 mul a x2 add p a mov Y y div Y p ; That's Y in 5.22 also with even coeff ; The Y powers in formula 5.23 mov Y1 Y mov Y2 Y mov Y3 Y power Y2 2 power Y3 3 ; formula 5.23 mov q c'1 mov a 2 mul a c'2 mul a Y1 add q a mov a 3 mul a c'3 mul a Y2 add q a mov X' X div X' q ; That's X' in 5.23 also with even coefficients clr Y' mov a c'1 mul a Y1 add Y' a mov a c'2 mul a Y2 add Y' a mov a c'3 mul a Y3 add Y' a ; That's Y' in 5.23 also with even coefficients ; ; Finale ; ------ ; 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 exit _end