; ; GYÖRFFY P2 ; ========== ; ; Name: Orthogaonal Pseudopolyconic Projection with a linear ; parallel funktion and a pole line. ; Europa (B) optimization ; Kurzbezeichnung: Györffy P2 ; Quelle: 1) Györffy, Janos: Rectangular Pseudopolyconic Projections for ; Geographical Maps ; http://lazarus.elte.hu/hun/digkonyv/sc/sc12/01gyj.pdf. ; 2) Message from J. Györffy ; Richtung: Direkt-Transformation ; ; Optimized Area (European Union): 35 N...70 N, 10 W ... 30 E. ; ; Györffys orthogonal pseudopolyconic Projections in the article: ; ; only a optimized de l'Isle (Canada, Eak=0.00737) Not implemented ; only a optimized de'l Isle (European U., Eak=0.01003) Not implemented ; orthogonal polyconic (Canada, Eak=0.01818) Not implemented ; orthogonal polyconic (European U., Eak=0.00625) Not implemented ; orthogonal pseudopolyc., lin. p. f., pole as point (Canada, Eak=0.00643) Not published ; orthogonal pseudopolyc., lin. p. f., pole as point (European U., Eak=0.00714) Not published ; "P1": orthogonal pseudopolyc., lin. p. f., pole line (Canada, Eak=0.00637) ALSO IMPLEMENTED ; orthogonal pseudopolyc., lin. p. f., pole line (European U., Eak=0.00449) Not Published ; orthogonal pseudopolyc., quad. p. f., pole as point (Canada, Eak=0.00635) Not published ; "P2": orthogonal pseudopolyc., quad. p. f., pole as point (European U., Eak=0.00442) THIS PROGRAM ; ; lin. p. f. ... linear parallel function ; quad. p. f. ... quadratic parallel function ; ; 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. ; Ein Maßstab und ein Mittelmeridian wird abgefragt. Der Mittelmeridian ist bei Györffy 25° östlicher Länge. ; Entwurf (C) János Gyöffry 2005 (?), Implementation: (C) Rolf Böhm 2007 ; ; Declarations ; ============ ; _name Györffys~orthogonale~pseudopolykonische~Abbildung~P2~(Europäische~Union) _var phi ; Latitude _var lambda ; Longitude _var lambda0 ; Mean meridian _var scale ; Scale (1000000, not 1/1000000) _var rho ; Radius _var c ; y Distance of Circle center from (horizontal - Györffy: x) Axis _var gamma ; Angle _var beta ; Pole distance _var t1 ; Constants _var rho0 _var rho1 _var rho2 _var f1 _var f2 ; ; x, y, x', y', Cx', Cy', Rx', Ry', °(, (°, pi, pi/2 etc. are pre-defined ... ; ; Init ; ==== ; 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 lambda0 Mittelmeridian~in~Grad~(Györffy:~10) ; Clip the values on Min/Max clip scale 1 1E12 clip lambda0 -180 180 ; Compute the constants mov t1 -0.994114 mov rho0 0.000000 ; not used mov rho1 0.880601 mov rho2 0.459705 mov f1 0.591129 mov f2 0.029848 ; Code is initialized mov initial 1 $077: ; ; SIMD-Code ; ========= ; mov lambda x sub lambda lambda0 cmod lambda -180 180 mov phi y ; ; Degree into Arc and pole distance beta ; -------------------------------------- ; mul phi °( mul lambda °( mov beta pi/2 sub beta phi ; ; rho formula ; ----------- ; mov r1 beta mul r1 rho1 mov r2 beta mul r2 beta mul r2 rho2 mov rho r1 add rho r2 ; ; c formula ; --------- ; mov c t1 mul c beta add c rho ; ; gamma formula ; ------------- ; ; r1: first factor in the bracket ; mov r1 beta mov r2 beta mul r2 rho2 add r2 rho1 div r1 r2 mov r7 t1 div r7 rho1 neg r7 power r1 r7 ; ; r2: second factor in the bracket. Don't destroy r1! ; mov r2 lambda mul r2 f1 mov r3 lambda power r3 3 mul r3 f2 add r2 r3 mov r4 beta mul r4 rho1 mov r5 beta power r5 2 mul r5 rho2 add r4 r5 div r2 r4 ; ; gamma ; mov gamma r1 mul gamma r2 atan gamma mul gamma 2 ; ; Old equi dist cone test code ; ---------------------------- ; ; mov c Pol-y ; ; mov gamma lambda ; Azimut ; mul gamma 0.8 ; ; mov rho pi/2 ; Radius ; sub rho phi ; ; Polar into Cartesian co-ords ; ---------------------------- ; mov x gamma sin x mul x rho mov y gamma cos y neg y ; Minus Cosinus! mul y rho ; ; Scale, Map centre, Earth radius ; ------------------------------- ; add y c mul x Rx' div x scale add x Cx' mul y Ry' div y scale add y Cy' ; ; The end ; ------- ; mov x' x mov y' y ; mov x' rho ; mov y' c exit _end