; ; CANTERS LOW ERROR EQUAL-AREA OF EURAFRICA P17 (POSTPROCESS) ; =========================================================== ; ; Name: Canters Low-error equal-area transformation of the oblique ; azimuthal equal-area projection; ; fifth order transformation, ; without symmetry, ; 10 coefficients. ; Source: Canters, Small-scale Map Projection Design, Taylor & Francis, London 2002, ; p. 227., Table 5.23, Fig. 5.37 (b), 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)~P17 ; _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.00048 mov c2 +0.0041 mov c3 -0.0745 mov c4 -0.0739 mov c5 +0.1097 ; mov c'1 +0.9962 mov c'2 -0.0054 mov c'3 +0.0340 mov c'4 -0.0008 mov c'5 +0.0087 ; 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 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 (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 mov a c4 mul a x4 add X a mov a c5 mul a x5 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 a 4 mul a c4 mul a x3 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 also with even coeff ; 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 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 a 4 mul a c'4 mul a Y3 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 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 mov a c'4 mul a Y4 add Y' a mov a c'5 mul a Y5 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