From e4bf822158aa5193022e8392f0eddd6510653bfa Mon Sep 17 00:00:00 2001 From: Kristian Evers Date: Mon, 13 Apr 2020 22:45:14 +0200 Subject: Add square conformal projections from libproject This commit adds five new projections to PROJ: adams_hemi: Adams Hemisphere in a Square adams_wsI: Adams World in a Square I adams_wsII: Adams World in a Square II guyou: Guyou peirce_q: Pierce Quincuncial The code originates from Gerry Evendens libproject and has been adapted to work with modern PROJ. To ensure that the modified code works as intended extensive test data has been created using libproject and sproj so that no errors occured when porting from libproject to PROJ. The test data is wrapped in a gie files. All test cases reproduce results from libproject at the mm level. --- docs/source/operations/projections/adams_hemi.rst | 42 +++++++++++++++++++++ docs/source/operations/projections/adams_ws1.rst | 42 +++++++++++++++++++++ docs/source/operations/projections/adams_ws2.rst | 42 +++++++++++++++++++++ docs/source/operations/projections/guyou.rst | 42 +++++++++++++++++++++ .../operations/projections/images/adams_hemi.png | Bin 0 -> 326319 bytes .../operations/projections/images/adams_ws1.png | Bin 0 -> 546212 bytes .../operations/projections/images/adams_ws2.png | Bin 0 -> 457151 bytes .../source/operations/projections/images/guyou.png | Bin 0 -> 391949 bytes .../operations/projections/images/peirce_q.png | Bin 0 -> 385052 bytes docs/source/operations/projections/index.rst | 5 +++ docs/source/operations/projections/peirce_q.rst | 42 +++++++++++++++++++++ 11 files changed, 215 insertions(+) create mode 100644 docs/source/operations/projections/adams_hemi.rst create mode 100644 docs/source/operations/projections/adams_ws1.rst create mode 100644 docs/source/operations/projections/adams_ws2.rst create mode 100644 docs/source/operations/projections/guyou.rst create mode 100644 docs/source/operations/projections/images/adams_hemi.png create mode 100644 docs/source/operations/projections/images/adams_ws1.png create mode 100644 docs/source/operations/projections/images/adams_ws2.png create mode 100644 docs/source/operations/projections/images/guyou.png create mode 100644 docs/source/operations/projections/images/peirce_q.png create mode 100644 docs/source/operations/projections/peirce_q.rst (limited to 'docs/source') diff --git a/docs/source/operations/projections/adams_hemi.rst b/docs/source/operations/projections/adams_hemi.rst new file mode 100644 index 00000000..96fe78f1 --- /dev/null +++ b/docs/source/operations/projections/adams_hemi.rst @@ -0,0 +1,42 @@ +.. _adams_hemi: + +******************************************************************************** +Adams Hemisphere in a Square +******************************************************************************** + ++---------------------+----------------------------------------------------------+ +| **Classification** | Miscellaneous | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward spherical projection | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | adams_hemi | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/adams_hemi.png + :width: 500 px + :align: center + :alt: Adams Hemisphere in a Square + + proj-string: ``+proj=adams_hemi`` + +Parameters +################################################################################ + +.. note:: All parameters are optional. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/docs/source/operations/projections/adams_ws1.rst b/docs/source/operations/projections/adams_ws1.rst new file mode 100644 index 00000000..3283ff57 --- /dev/null +++ b/docs/source/operations/projections/adams_ws1.rst @@ -0,0 +1,42 @@ +.. _adams_ws1: + +******************************************************************************** +Adams World in a Square I +******************************************************************************** + ++---------------------+----------------------------------------------------------+ +| **Classification** | Miscellaneous | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward spherical projection | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | adams_ws1 | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/adams_ws1.png + :width: 500 px + :align: center + :alt: Adams World in a Square I + + proj-string: ``+proj=adams_ws1`` + +Parameters +################################################################################ + +.. note:: All parameters are optional. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/docs/source/operations/projections/adams_ws2.rst b/docs/source/operations/projections/adams_ws2.rst new file mode 100644 index 00000000..2ba6ee88 --- /dev/null +++ b/docs/source/operations/projections/adams_ws2.rst @@ -0,0 +1,42 @@ +.. _adams_ws2: + +******************************************************************************** +Adams World in a Square II +******************************************************************************** + ++---------------------+----------------------------------------------------------+ +| **Classification** | Miscellaneous | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward spherical projection | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | adams_ws2 | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/adams_ws2.png + :width: 500 px + :align: center + :alt: Adams World in a Square II + + proj-string: ``+proj=adams_ws2`` + +Parameters +################################################################################ + +.. note:: All parameters are optional. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/docs/source/operations/projections/guyou.rst b/docs/source/operations/projections/guyou.rst new file mode 100644 index 00000000..89d455be --- /dev/null +++ b/docs/source/operations/projections/guyou.rst @@ -0,0 +1,42 @@ +.. _guyou: + +******************************************************************************** +Guyou +******************************************************************************** + ++---------------------+----------------------------------------------------------+ +| **Classification** | Miscellaneous | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward spherical projection | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | guyou | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/guyou.png + :width: 500 px + :align: center + :alt: Guyou + + proj-string: ``+proj=guyou`` + +Parameters +################################################################################ + +.. note:: All parameters are optional. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/docs/source/operations/projections/images/adams_hemi.png b/docs/source/operations/projections/images/adams_hemi.png new file mode 100644 index 00000000..7bfce0e5 Binary files /dev/null and b/docs/source/operations/projections/images/adams_hemi.png differ diff --git a/docs/source/operations/projections/images/adams_ws1.png b/docs/source/operations/projections/images/adams_ws1.png new file mode 100644 index 00000000..5ec2917b Binary files /dev/null and b/docs/source/operations/projections/images/adams_ws1.png differ diff --git a/docs/source/operations/projections/images/adams_ws2.png b/docs/source/operations/projections/images/adams_ws2.png new file mode 100644 index 00000000..b133c084 Binary files /dev/null and b/docs/source/operations/projections/images/adams_ws2.png differ diff --git a/docs/source/operations/projections/images/guyou.png b/docs/source/operations/projections/images/guyou.png new file mode 100644 index 00000000..08cb3df4 Binary files /dev/null and b/docs/source/operations/projections/images/guyou.png differ diff --git a/docs/source/operations/projections/images/peirce_q.png b/docs/source/operations/projections/images/peirce_q.png new file mode 100644 index 00000000..9e5fe446 Binary files /dev/null and b/docs/source/operations/projections/images/peirce_q.png differ diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst index c5b249c9..fc2ef9fd 100644 --- a/docs/source/operations/projections/index.rst +++ b/docs/source/operations/projections/index.rst @@ -12,6 +12,9 @@ Projections map the spherical 3D space to a flat 2D space. .. toctree:: :maxdepth: 1 + adams_hemi + adams_ws1 + adams_ws2 aea aeqd airy @@ -55,6 +58,7 @@ Projections map the spherical 3D space to a flat 2D space. goode gs48 gs50 + guyou hammer hatano healpix @@ -104,6 +108,7 @@ Projections map the spherical 3D space to a flat 2D space. ortho patterson pconic + peirce_q poly putp1 putp2 diff --git a/docs/source/operations/projections/peirce_q.rst b/docs/source/operations/projections/peirce_q.rst new file mode 100644 index 00000000..86445ea1 --- /dev/null +++ b/docs/source/operations/projections/peirce_q.rst @@ -0,0 +1,42 @@ +.. _peirce_q: + +******************************************************************************** +Peirce Quincuncial +******************************************************************************** + ++---------------------+----------------------------------------------------------+ +| **Classification** | Miscellaneous | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward spherical projection | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | peirce_q | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/peirce_q.png + :width: 500 px + :align: center + :alt: Peirce Quincuncial + + proj-string: ``+proj=peirce_q`` + +Parameters +################################################################################ + +.. note:: All parameters are optional. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst -- cgit v1.2.3