Is it possible to create a custom CRS with poles on the equator?

Yes, I know this is a stupid projection. I just want it for personal reasons.

My goal is to print a world map poster with QGIS showing a different perspective on the world. What I need is an ordinary long-lat-projection but I want the upper part (North Pole) to be lola (0,0) end the bottom part (South Pole) to be lola (180,0) (that is poles on the equator). So basically Africa will be the top of the map, North Pole in the center and South Pole on the vertical center of the map's left and right borders.

I know the maths involved to transform the coordinates, but I would like to ask if it is possible to create a CRS (WKT?) from that mathematical coordinate transform. That so I don't try to do something that is not even possible. I find no examples of CRSes with mathematical (trigonometric) transformations online.

• I'm having trouble picturing what you want. If the north pole is now at the center of the map, and the south pole is left/right at 'edge of map', Africa will be orientated on its side, also the Pacific Ocean. Display of lon-lat on a 2D map is usually in pseudo-Plate Carree so I think you might want an oblique Plate Carree. I don't know if PROJ supports it. Oh, look at the General Oblique Transformation. Oct 14 '21 at 16:11
• In a geometrical sense I want to transform each lola-coord to cartesian 3D, rotate -90deg around y-axis (making north pointing to equator), transform back to lola. Yes, Africa will be tilted and it will be very unlike regular maps. Albeit different it is no more distorted than the original. Oct 14 '21 at 17:50
• Maybe my proj-script in the comments of the answer will show it clearer. Oct 14 '21 at 17:51
• I would try using +ob_tran first rather than converting to/from XYZ. Oct 14 '21 at 18:16
• @mkennedy: Thats it! Thank you! It was exactly what I was looking for. North Pole at lola (0,0) and equator on (90,0) and (270,0): +proj=ob_tran +o_proj=moll +o_lat_p=0 +o_lon_p=0 Please, write it as an answer so that I can mark it answered. Oct 14 '21 at 19:07

If I understand your need you don't need to transform coordinate, what you need to do is to change projection parameter to have north pole at center.

Look at this tutorial to see how it's done with an orthographic projection (in this case centered on Philippines not north pole).

To visualize what can be done by changing some projection parameter you can use this Map Projection Playground.

Below picture of the equirectangular (or plate carrée) and equal earth projection with the north pole at the center, reproducing your :

"basically Africa will be the top of the map, North Pole in the center and South Pole on the vertical center of the map's left and right borders"

requirement. Just play with other projection to find one you like the most...  • Thank you for your answer! What I am after is not just an orthogonal projection. I want a flat map (long, lat) but where the "North Pole" is set to lola (0,0) and the "South Pole" is (180,0) (and equator being the 90- and 270-meridian). In my map Africa (lola (0,0)) would be blown up like the North Pole is on real maps. As I understand the tutorial I can not achieve that by orthogonal projection. Oct 13 '21 at 12:26
• Sure but you should be able to use the same principle (changing projection parameter) to any projection to get the result you want
– J.R
Oct 13 '21 at 12:42
• I can only find customized linear transformations (+proj=affine) and that would work in a +proj=pipeline where I can use three of those (WGS84 => Cartesian 3D => WGS84) . Then I could swap two axis in Cartesian coordinates obtaining what I want. But I see no way of transforming into Cartesian 3D. So my follow up question: Can I transform WGS84 to Cartesian 3D? Transforming from WGS84 to WGS84 would require a non-linear transformation with trigonometric functions. Oct 13 '21 at 14:06
• My hope was something like this: +proj=pipeline +step +proj=cart ellps=WGS84 +step +proj=affine +s11=0 +s12=1 +s21=-1 +s22=0 +step +inv +proj=cart +ellps=WGS84 But unsurprisingly it doesn't work and the errors give few clues on how to fix it. What I'm trying to do: Go to cartesian, swap x and y (hoping x is north) and then go back to WGS84 Oct 13 '21 at 14:40
• A refactored, more elegant way to fail: +proj=pipeline +datum=WGS84 +ellps=WGS84 +step +proj=cart +step +proj=affine +s11=0 +s12=1 +s21=-1 +s22=0 +step +proj=cart +inv Oct 13 '21 at 15:11

J.R's answer is another way to accomplish what Martin wanted, but PROJ supports a general oblique transformation parameter: +ob_tran

The +ob_tran parameter has a couple of ways to 'rotate' a map projection including by setting a new north pole at an arbitrary longitude-latitude location.

To rotate the North Pole to longitude-latitude (0,0) and the equator running horizontally through (90,0) and (270,0): +proj=ob_tran +o_proj=moll +o_lat_p=0 +o_lon_p=0