3

I'm trying to make a world map on QGIS using Robinson's Projection, but centering it on a specific latitude/longitude. I created a custom CRS with the following proj parameters:

+proj=robin +lat_0=-15.0  +lon_0=-45.0 +x_0=0.0 +y_0=0.0

The map did centered on the right longitude parameter, but the latitude didn't change on map. No matter which value I put in latitude it doesn't change the map.

UPDATE

I'm trying to follow Gabriel's suggestion, but still didn't got the intended result.

My QGIS version is 3.16 and my Proj version is 8.1.1. Those are the nearest versions available to install through OSGeo4W enter image description here

enter image description here

I copy/pasted the CRS parameters into a new custom CRS

enter image description here

Added a raw world data in WGS-84 enter image description here

And then changed the project CRS to the recent created Custom Robinson

enter image description here

The projection still doesn't look like Robinson, neither have Brazil in its center.

UPDATE-2

enter image description here

I reinstalled OSGeo4W softwares and now I'm running QGIS 3.22.0 compiled against PROJ 8.1.1. And now the world map seems just like what Gabriel suggested, but the vertical center of the map (horizontal red line) still near the Equator line at Brazil, and not the latitude -15. Its expected to be near the red arrow. And apparently the world rotated a little counterclockwise. Another thing, I did put the parameters at Euler Angle Tool but didnt found the parameters you posted. enter image description here

Even tried switching Yaw and Pitch but our matrix didn't match, how did you found that numbers?

4
  • Hi, QGIS is running against PROJ 6.3.2. The WKT definition seems like it is being converted as a oblique stereographic method? Commented Oct 26, 2021 at 18:41
  • Hi, I updated the post, the latitude still not changing.
    – CaD
    Commented Oct 28, 2021 at 15:01
  • Hi, good! Perhaps we need more decimal places in the coefficients to have better accuracy in the rotations. I shared the web tool for its simplicity, but it may be necessary for us to compute them ourselves. Regarding the angles, note that in the geocentric Cartesian system, the Z axis points to the north pole and the X axis points to the meridian origin of longitudes. We are used to seeing the Earth with the Z axis facing upwards, it is just an exercise of imagination to see it upside down. i.sstatic.net/PsnXA.jpg Commented Oct 28, 2021 at 17:13
  • I tried rotation parameters with opposite sign and now it work, no idea why, since both lat and long have same sign. Thank you very much for the help.
    – CaD
    Commented Oct 29, 2021 at 11:40

2 Answers 2

5

What if we rotate the world instead of the projection?

We can, for example, start from a WGS84 geographic system as a base, and then apply a pipeline transformation that includes the conversion to geocentric Cartesian coordinates, a 3D affine transformation that rotates the datum 45 degrees around the Z axis and -15 degrees around the Y axis, convert back to geographic and finally project to the Robinson cylinder:

PROJCRS["Custom Robinson",
    BASEGEOGCRS["WGS 84",
        ENSEMBLE["World Geodetic System 1984 ensemble",
            MEMBER["World Geodetic System 1984 (Transit)"],
            MEMBER["World Geodetic System 1984 (G730)"],
            MEMBER["World Geodetic System 1984 (G873)"],
            MEMBER["World Geodetic System 1984 (G1150)"],
            MEMBER["World Geodetic System 1984 (G1674)"],
            MEMBER["World Geodetic System 1984 (G1762)"],
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]],
            ENSEMBLEACCURACY[2.0]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4326]],
    CONVERSION["PROJ-based coordinate operation",
        METHOD["PROJ-based operation method: +proj=pipeline +step +proj=cart +datum=WGS84 +step +proj=affine 
+s11=0.683 +s12=-0.7072 +s13=-0.1831 
+s21=0.683 +s22=0.7071 +s23=-0.183 
+s31=0.2588 +s32=0 +s33=0.9659
+step +proj=cart +inv +datum=WGS84 +step +proj=robin"]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]]]

Tested at QGIS 3.18.3, compiled against PROJ 8.1.0.

1

Avoid the dateline issues.

Rotation matrix parameters can be computed at https://danceswithcode.net/engineeringnotes/rotations_in_3d/demo3D/rotations_in_3d_tool.html (see the axis, the Earth would be with the South facing up).

About the pipeline operator: https://proj.org/operations/pipeline.html

About the affine transformation: https://proj.org/operations/transformations/affine.html

Don't try to apply the CRS to a layer or source dataset yet. This definition cannot be converted to the WKT1 standard and geospatial formats do not yet accept such definitions.

You can apply it to the map for visualization purposes. Enjoy it.

2
  • I created a custom CRS with your code, but when I change the project CRS the data doesnt appear. Even using the "Zoom to layer" tool it doesn't appear.
    – CaD
    Commented Oct 23, 2021 at 16:41
  • What is the QGIS and PROJ version used? Can you try it in an empty project with the world eastern egg as the attached image in my answer? Commented Oct 23, 2021 at 20:08
5

The proj tool setup for the Robinsons Projection accepts only parameter for:

# Longitude of projection center.
# Defaults to 0.0.
+lon_0=<value>

# Radius of the sphere given in meters. 
# If used in conjunction with +ellps,
# +R takes precedence.
+R=<value>

# False easting.
# Defaults to 0.0.
+x_0=<value>

# False northing.
# Defaults to 0.0.
+y_0=<value>

, which is typical for the group of "World Projections". The Robinson projection is a map projection of a world map which shows the entire world at once. You cannot center the "elevation point of the view" by setting lat_0. If you want to "turn the ball", you could use the Orthographic Projection.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.