Vairāk

Brauna/Galla projekcija un pikseļu pārveidošana

Brauna/Galla projekcija un pikseļu pārveidošana


Es esmu diezgan jauns projekcijas matemātikā, un man parasti izdodas panākt, lai lietas darbotos ar kopēšanu un ielīmēšanu un izmēģinājumiem un kļūdām, taču šoreiz esmu pazudis ...

Es mēģinu kartēt platuma (-90 līdz 90) un garuma (-180 līdz 180) koordinātas pikseļu satelītattēlos no Mappy, kurā tiek izmantota flīzēšanas sistēma, kas ir gandrīz tāda pati kā Google vai Bing (vairāk informācijas). Atšķirībā no Google, šķiet, ka Mappy neizmanto Mercator projekciju, bet gan Gall vai Braun (es to uzzināju, augšpusē ielīmējot Gall karti un redzēju, ka tā atbilst). Precīzāk sakot, viņi faktiski uzliek zemes taisnstūrveida Gall/Braun projekciju un uz augšu pievieno baltu sloksni, lai iegūtu kvadrātu (nepieciešams flīzēšanai).

Tātad man ir Braunas zemes karte (aizmirsīsim par balto joslu), un es vēlos uzzināt, kuri pikseļi ir, piemēram, koordinātas 0,0, 0,0 (Gvinejas līcis). Kur man sākt?

Līdz šim es rīkojos šādi:

No Vikipēdijas es uzzināju, ka Brauna projekcija darbojas šādi ar R rādiusu, λ garumu, φ platumu

  • x = R.λ
  • y = 2. R.tan (φ/2)

Iepriekš es strādāju pie Mercator kartes (tieši ar galīgajiem vienādojumiem lat-lon uz pikseli, kā atrodams šeit), un pārsteidzoši, ka horizontālā transformācija no garuma uz x-pixel lieliski darbojās arī ar Braun. Šķiet, ka tas ir apgrieztais vienādojums (plus Griničas nobīde) tam, kāds tika parādīts Vikipēdijāx = (λ+nobīde) / Rtā vietāx = R * λ(it kā meklētu λ, nevis x).

Un tāpēc es mēģināju apgriezt arī vertikālo vienādojumu un beidzot saņēmu (ar parametru rādiusu, nobīdi un attēla izmēru):

  • x = (λ+180 /360) * attēla platums
  • y = 2*atāns (φ+90 /2*180)*attēla augstums

Piezīme. Es izmantoju horizontālu rādiusu no -180 līdz 180 = 360. Vertikāli no -90 līdz 90 = 180

Tas viss izklausās ļoti neloģiski, bet dīvainākais ir tas, ka eksperimentāli man ir ļoti jauki rezultāti x un nav traki y. Patiesībā dažreiz diezgan tuvu. Es domāju, ka tas ir tikai nejauši…