När man botaniserar bland de projektioner som stöds av PROJ4, så inser man ganska snart att alla dessa inte finns enkelt tillgängliga i QGIS. Men då QGIS förlitar sig på PROJ4 och kan hantera anpassade definitioner, så kan man lägga till de projektioner som man saknar.
Jag har exempelvis saknat en ”orthografisk” projektion i QGIS. Det jag är ute efter är en projektion som ger intryck av att observera jorden från en punkt långt ut i rymden. Detta skulle göra det möjligt att skapa renderingar av jorden på ett relativt korrekt sätt.
På http://proj4.org/operations/projections så kan man bläddra bland de projektioner som ingår i PROJ och även se en förhandsgranskning av hur de representeras.
Kikar man över bilden av jorden, så ser man i det här exemplet texten -proj=ortho, vilket är definitionen för just denna projektion. Utan ytterligare tillägg så får man det resultat som visas i bilden ovan, även i QGIS om man skapar en anpassad projektion.
Ovanstående är vanlig WGS-84 eller EPSG:4326. Om man går in i menyn och väljer ”Inställningar” och ”Anpassade projektioner” så kan man skapa en egen. Här väljer jag att döpa min projektion till ”Ortografisk” och jag skriver in definitionen ”+proj=ortho” i fältet ”Parametrar”. Jag kan sedan välja denna projektion i projektet och då framträder följande bild.
QGIS verkar ha lite problem att hantera objekt med koordinater som inte ryms inom projektionen. För att slippa dessa problem så behöver man ”klippa” ut de data som kan visas och bara använda dessa. Det hade varit trevligt om QGIS löst detta dynamiskt på samma sätt som ArcMap. Det finns ett pythonskript som gör detta på https://gis.stackexchange.com/questions/78346/ortho-projection-produces-artifacts, men det är skrivet för QGIS 2.x…
Nåja, det får bli ett senare problem. Om man inte vill centrera projektionen på ekvatorn och nollmeridianen så kan man ange ytterligare parametrar i projektionsdefinitionen. Med ”+lat_0=Y” (ersätt Y med önskad latitud i grader) kan man ange önskad latitud att centrera på, och med ”+lon_o=X” (ersätt X med önskad longitud) anger man den meridian man vill använda som centrum. I bilden nedan har jag använt definitionen ”+proj=ortho +lat_0=57 +lon_0=15”.
Kan jag nu bara lyckas klippa mina data efter det som visas så är jag hemma. Så länge så duger det i alla fall för att experimentera lite…
På sikt kanske jag inte behöver klippa med Python… Det är nämligen en eventuell lösning på gång. Vi får se om den kommer med en ”mindre” uppdatering, eller vi får vänta till 3.2 till sommaren.
Jag har tappat räkningen för hur många gånger jag lyckats låsa eller krascha QGIS 3 medan jag försökt. Det är inget jag kan härleda till en specifik bugg, utan hänger nog mest ihop med att jag ännu inte fullt ut förstått alla förändringar i python API:et. För att lyckas skapa bilden ovan utan att behöva ”klippa” data så har jag bara lyckats exportera den i 96dpi, och då syns ändå artefakterna om man tittar noga.