From d5d60b7154d149de797737ecd96fde56bfecb7c2 Mon Sep 17 00:00:00 2001 From: "Toby C. Wilkinson" Date: Mon, 20 Dec 2021 19:22:46 +0000 Subject: Fix and additional options for Peirce Quincuncial projections (#2978) This fixes the current forward implementation of Peirce Quincuncial proj to correctly flip/reflect out the southern hemisphere to four triangles, and rotate entire result to a square or diamond. (It there resolves the issues identified with pull request https://github.com/OSGeo/PROJ/pull/2230 , where southern hemisphere was wrongly projected over northern, and reverses the restriction to northern hemisphere introduced there). It also adds additional lateral projection of the hemispheres. - This PR adds an optional parameter `+type` which allows selection of projection. The `+type=square` and `+type=diamond` types match in principle ESRI's twin implementations of square and diamond PQ projs. The **default** if not specified is `+type=diamond`. - The previous behaviour restricted to the northern hemisphere can be reproduced using the `+type=nhemisphere`, though this is an edge case only. - An additional `+type=horizontal` and `+type=vertical` rectangular lateral versions have been added that place each hemisphere side-by-side. This is primarily to allow creation of projections such as Greiger Triptychial, which also require the additional optional params `scrollx` or `scrolly` in order to shift parts of the projection from one side of the map to the other. - Additional documentation has been added to proj description, including quoting the usual meridian used in common usage of projection, and images showing the different types. --- docs/plot/plotdefs.json | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'docs/plot/plotdefs.json') diff --git a/docs/plot/plotdefs.json b/docs/plot/plotdefs.json index 1e9c05ee..a6d70273 100644 --- a/docs/plot/plotdefs.json +++ b/docs/plot/plotdefs.json @@ -1051,13 +1051,46 @@ "type": "poly" }, { - "filename": "peirce_q.png", + "filename": "peirce_q_square.png", "latmax": 90, - "latmin": 0, + "latmin": -90, + "lonmax": 180, + "lonmin": -180, + "name": "peirce_q_square", + "projstring": "+proj=peirce_q +lon_0=25 +type=square", + "res": "low", + "type": "poly" + }, + { + "filename": "peirce_q_diamond.png", + "latmax": 90, + "latmin": -90, "lonmax": 180, "lonmin": -180, "name": "peirce_q", - "projstring": "+proj=peirce_q", + "projstring": "+proj=peirce_q +lon_0=25 +type=diamond", + "res": "low", + "type": "poly" + }, + { + "filename": "peirce_q_horizontal.png", + "latmax": 90, + "latmin": -90, + "lonmax": 180, + "lonmin": -180, + "name": "peirce_q_horizontal", + "projstring": "+proj=peirce_q +lon_0=25 +type=horizontal", + "res": "low", + "type": "line" + }, + { + "filename": "grieger_triptychial.png", + "latmax": 90, + "latmin": -90, + "lonmax": 180, + "lonmin": -180, + "name": "grieger_triptychial", + "projstring": "+proj=pipeline +step +proj=ob_tran +o_proj=peirce_q +o_lat_p=-45 +o_lon_p=45 +type=horizontal +scrollx=-0.25 +step +proj=affine +s11=-1 +s12=0 +s21=0 +s22=-1", "res": "low", "type": "poly" }, -- cgit v1.2.3