; ; BARANYI-MARTON ; ============== ; ; ; Name: BARANYIS PROJEKTION IV NACH MÁRTON ; Quelle: Márton, Mátyás: Die kartographische Darstellung der Ozeane in der geänderten ; Projektion IV von Baranyi. Kartographische Nachrichten 3/2006, Bonn Bad Godesberg 2006. ; Richtung: Direkte Transformation ; ; 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. ; ; Maßstab und Berührungspunkt werden abgefragt. ; Die Zielbildgeometrie wird dem Sekundäroperanden oder einem Fixbild entnommen. ; Der Berührungspunkt wird bildmittig gesetzt. ; ; Literatur: s. o. ; (C) Rolf Böhm 2006 ; Declarations ; ============ ; ; Variables names by Márton and Böhm ; ; ; Current coords ; _name Baranyi-Márton _var phi ; Latitude _var lambda ; Longitude _var slambda ; Sign(Lambda) _var lambda' ; actual lambda, in the left/right section lambda else lambdac _var r9 ; Register 9 _var d ; shift between the map sections _var p ; pi/2 or pi/3 _var f1 ; middle section coeff 1 _var f2 ; middle section coeff 2 _var flag ; 0: lambda<100 (=left section), 1: lambda 100 ... 140 (middle), 2: lambda >140 (right section) _var lambda0 ; Central longitude _var scale ; Scale ; ; x, y, x', y', Cx', Cy', °(, (°, pi, pi/2 etc. are pre-defined by RTA ; ; Init ; ==== ; tstne initial 077$ ; Dialog pause Hinweis:~Dieses~Programm~rechnet~eine~Vorwärtstransformation.~¶ Es~muss~mit~einer~direkt~arbeitenden~Projection~engine~abgearbeitet~werden.\\¶ Das~Quellbild~für~den~Baranyi-Márton~muss~in~der~Länge~von~-100°~bis~+300°~reichen. input scale Maßstabszahl ; input lambda0 Mittelpunktslänge~in~Grad~(Original-Baranyi:~10) ; Clip the input values clip scale 1 1E12 ; Is init mov initial 1 077$: ; ; SIMD-Area ; ========= ; ; Given values ; ------------ ; mov lambda x ; Geographische Länge mov phi y ; Geographische Breite ; Note: x, y are ; 1st) the RTA pre-defined input coords -- Phi and Lambda, ; 2nd) the plane result coords x and y, before exit written to RTA pre-defined x' and y' ; ; Set the flag ; ------------ ; clr flag cmplt lambda 100 509$ mov flag 1 cmplt lambda 140 509$ mov flag 2 509$: ; ; Into arc ; -------- ; mul phi °( mul lambda °( ; ; Segment decisions and pre-selections ; ------------------------------------ ; ; ; North/south hemisphere ; tstlt phi 807$ 805$: ; North hemisphere mov p pi div p 3 mul p -1 mov f1 0.332948 mov f2 0.0123215 jump 809$ 807$: ; South hemisphere mov p pi div p 2 mov f1 0.315744 mov f2 0.0123215 809$: ; ; Left/middle/right map part ; cmpeq flag 0 900$ cmpeq flag 1 901$ cmpeq flag 2 902$ info !!!~FATAL~EERROR~IN~THE~BARANYI-IV-MARTON~OMPLEMENTATION~!!! exit 900$: mov lambda0 10 clr d jump 909$ 901$: mov lambda0 10 clr d tstlt phi 909$ mov lambda0 200 mov d 3.036131 jump 909$ 902$: mov lambda0 200 mov d 3.036131 909$: sub d 1.437 ; Böhm empiric centration (not in the Marton text) mul lambda0 °( sub lambda lambda0 ; ; Compute the projection ; ---------------------- ; ; ; y ; mov r1 phi mov r3 phi power r3 3 mov r5 phi power r5 5 mov r7 phi power r7 7 mov r9 phi power r9 9 ; mul r1 1 mul r3 0.073880 mul r5 -0.0538964 mul r7 0.01560242 mul r9 -0.001639406 mov y r1 add y r3 add y r5 add y r7 add y r9 ; ; x (lambda selection) ; mov lambda' lambda cmpne flag 1 699$ mov lambda' p 699$: ; ; x (1st) ; mov slambda lambda' sgn slambda mov r0 phi abs r0 cmpgt r0 1.3625785 707$ 705$: mov r2 y power r2 2 mov x 2.115393 sub x r2 root x 2 add x 1.22172 jump 709$ 707$: mov r3 y abs r3 add r3 4.58448 power r3 2 mov x 38.4308 sub x r3 root x 2 709$: ; ; x (2nd) ; mov r4 lambda' abs r4 mul r4 0.11679 add r4 1 log r4 div r4 0.31255 mul r4 slambda mul x r4 add x d clr r0 cmpeq flag 1 AUSDRUCK ; AUSDRUCK gieve the p. 148 formula result in r0 return: add x r0 ; ; Scale, Earth radius and map centre ; ---------------------------------- ; mul x Rx' ; Erdradius div x scale ; Kartenmaßstab add x Cx' mul y Ry' div y scale add y Cy' ; ; The end ; ------- ; 111$: mov x' x mov y' y exit nop nop nop ; ; Subroutine AUSDRUCK ; =================== ; ; AUSDRUCK computes the "Ausdruck" called 4 formulas on p. 148. The formula selection ; is given by pre-selected varables (f1, f2 ...) ; ; Returm jump to label return, result value in r0. AUSDRUCK: mov r0 phi abs r0 cmpgt r0 1.3625785 .707$ .705$: mov r2 y power r2 2 mov r0 2.115393 sub r0 r2 root r0 2 add r0 1.22172 jump .709$ .707$: mov r3 y abs r3 add r3 4.58448 power r3 2 mov r0 38.4308 sub r0 r3 root r0 2 .709$: mov r5 lambda sub r5 p ; pi/2 or -pi/3 mov r6 r5 power r6 1 power r6 2 mul r5 f1 ; 0.3328... or 0.3157... mul r6 f2 ; 0.0123... ; clr r7 add r7 r5 add r7 r6 mul r0 r7 jump return _end