Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Airocean projection (formerly Dymaxion) #4303

Merged
merged 42 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
e6787b0
- Add dymaxion projection
plouvart Sep 8, 2024
bd72f6b
- Fix inadequate normals on split polygons.
plouvart Sep 12, 2024
ef2f17d
- Fix numerical issue due to improper center position
plouvart Sep 22, 2024
dc922de
- Remove dead code and comments
plouvart Oct 30, 2024
44ef3a9
- Add dymaxion projection entry to he documentation
plouvart Oct 30, 2024
2c3beb8
- Add test to the dymaxion projection
plouvart Oct 30, 2024
f0d194a
Merge branch 'OSGeo:master' into dymaxion
plouvart Nov 1, 2024
f7ab809
- Improve wording on dymaxion doc page. Add a note on dymaxion extent…
plouvart Nov 1, 2024
61a5cdf
- Drop the name dymaxion in favor of airocean. Adjust the doc accordi…
plouvart Nov 1, 2024
b757564
- Document constants. Rename variables to remove references to dymaxi…
plouvart Nov 1, 2024
2839e88
- Remove reference to Dymaxion Fuller. Fix typo.
plouvart Nov 1, 2024
7ade90e
Merge branch 'OSGeo:master' into airocean
plouvart Nov 1, 2024
b0b4e2f
Update src/projections/airocean.cpp
rouault Nov 1, 2024
cfc8cde
- Fix spelling errors. Add legitimate words to spelling wordlist.
plouvart Nov 1, 2024
d52587c
Merge branch 'airocean' of https://github.com/plouvart/PROJ into airo…
plouvart Nov 1, 2024
03220f5
Update src/projections/airocean.cpp
rouault Nov 1, 2024
93d8ccc
Update docs/source/operations/projections/airocean.rst
rouault Nov 2, 2024
dea2417
- Add a test point that triggers an out of bounds error
plouvart Nov 5, 2024
6f5866c
Merge branch 'airocean' of https://github.com/plouvart/PROJ into airo…
plouvart Nov 5, 2024
55aa072
- Add support for chosing between vertical and horizontal orientation.
plouvart Nov 10, 2024
8d00367
- Set matrix multiplication function to be static
plouvart Nov 10, 2024
4b5e714
- Add missing airocean space face transform when selection +orient=ho…
plouvart Nov 10, 2024
3f2f7c1
- Add tests for +orient=horizontal
plouvart Nov 10, 2024
9516118
Update docs/source/operations/projections/airocean.rst
plouvart Nov 10, 2024
d76c738
Update docs/source/references.bib
plouvart Nov 10, 2024
75885d6
- Correct typo in Builtins test. except becomes expect
plouvart Nov 10, 2024
f39ee02
Merge branch 'airocean' of https://github.com/plouvart/PROJ into airo…
plouvart Nov 10, 2024
18f9d9e
- Document +orient option
plouvart Nov 10, 2024
195da34
- Remove manual computation with semi-major-axis. Sanitize all matric…
plouvart Jan 5, 2025
8988e5b
- remove overriding lat variable
plouvart Jan 5, 2025
9f739cf
- Fix test values following previous lat change
plouvart Jan 5, 2025
4b0e7e3
- Add notebook script used to compute airocean parameters
plouvart Jan 5, 2025
5842f83
- Add mention of the airocean builder script in airocean projection s…
plouvart Jan 5, 2025
79a4082
- Remove notebook. Add python script for printing airocean parameters…
plouvart Jan 6, 2025
d5e106a
- Add credit and link to the original source for the values of the ic…
plouvart Jan 6, 2025
fa468c9
- Remove dead code. Add original source double precision. Add 0s and …
plouvart Jan 7, 2025
ed7c20d
- Reflect the new parameter builder output
plouvart Jan 7, 2025
c3ff24a
- Adjust test to new parameter builder output
plouvart Jan 7, 2025
96006e6
- Adjust airocean plot for doc
plouvart Jan 7, 2025
77f2c2e
- Change float32 to float64 in build parameter script to retain full …
plouvart Jan 7, 2025
ac09b44
- Remove default parameter for plot generation
plouvart Jan 7, 2025
2a116e9
- Remove plot parameter for 20 faces plot
plouvart Jan 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions docs/plot/plotdefs.json
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,18 @@
"res": "low",
"type": "poly"
},
{
"filename": "airocean.png",
"latmax": 90,
"latmin": -90,
"lonmax": 180,
"lonmin": -180,
"name": "airocean",
"projstring": "+proj=airocean",
"res": "low",
"type": "line",
"delta_cut": 1e6
},
{
"filename": "eck1.png",
"latmax": 90,
Expand Down
65 changes: 65 additions & 0 deletions docs/source/operations/projections/airocean.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
.. _airocean:

********************************************************************************
Airocean
********************************************************************************

.. versionadded:: 9.6.0

The Airocean map projection is a icosahedron polyhedral projection that intends
rouault marked this conversation as resolved.
Show resolved Hide resolved
to lay down continental landmasses into a contiguous map with minimal scale and angular
distortion while preserving land surfaces from (most) interruptions.
In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way
to orient and cut the icosahedron so that most interruptions lie within the ocean. The projection
was first invented by Buckminster Fuller in 1943 using a cuboctahedron as basis.
The idea to use an icosahedron came later in 1954, and it wasn't until 1978 that the projection
was formally mathematically defined :cite:`Gray1995`.

+---------------------+----------------------------------------------------------+
| **Classification** | Polyhedral, equal area |
+---------------------+----------------------------------------------------------+
| **Available forms** | Forward and inverse, spherical and ellipsoidal |
+---------------------+----------------------------------------------------------+
| **Defined area** | Global |
+---------------------+----------------------------------------------------------+
| **Alias** | airocean |
+---------------------+----------------------------------------------------------+
| **Domain** | 2D |
+---------------------+----------------------------------------------------------+
| **Input type** | Geodetic coordinates |
+---------------------+----------------------------------------------------------+
| **Output type** | Projected coordinates |
+---------------------+----------------------------------------------------------+


.. figure:: ./images/airocean.png
:width: 500 px
:align: center
:alt: Airocean

proj-string: ``+proj=airocean``

.. note::
The airocean map of the whole globe has an extent of approximately
:math:`[0, 0, 17404000, 36844000]` in meters. Although the airocean map has no
true up or down, the choice was made to lay it out vertically, from Antarctica to Australia.
plouvart marked this conversation as resolved.
Show resolved Hide resolved


Parameters
################################################################################

.. note:: All parameters are optional for the projection.

.. option:: +orient=<string>

Can be set to either ``vertical`` or ``horizontal``.

*Defaults to vertical*

.. include:: ../options/lon_0.rst

.. include:: ../options/R.rst

.. include:: ../options/x_0.rst

.. include:: ../options/y_0.rst
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/source/operations/projections/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Projections map the spherical 3D space to a flat 2D space.
adams_ws2
aea
aeqd
airocean
airy
aitoff
alsk
Expand Down
12 changes: 12 additions & 0 deletions docs/source/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,18 @@ @TechReport{Deakin2004
Url = {http://www.mygeodesy.id.au/documents/Molodensky%20V2.pdf}
}

@Article{Gray1995,
Title = {Exact Transformation Equations for {Fuller's World Map}},
Author = {Robert W. Gray},
Journal = {Cartographica},
Year = {1995},
Number = {3},
Pages = {17--25},
Volume = {32},

Doi = {10.3138/1677-3273-Q862-1885}
}

@Article{EberHewitt1979,
Title = {Conversion algorithms for the {CalCOFI} station grid},
Author = {L. E. Eber and Roger P. Hewitt},
Expand Down
4 changes: 4 additions & 0 deletions docs/source/spelling_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ adams
advertized
aea
aeqd
airocean
Airocean
affine
Affine
Agri
Expand Down Expand Up @@ -105,6 +107,7 @@ Boucher
boundcrs
boundCRS
Bregler
Buckminster
brussels
cadastral
cadastre
Expand Down Expand Up @@ -210,6 +213,7 @@ ctable
CTable
CTest
ctx
cuboctahedron
cURL
customizability
customizations
Expand Down
Loading
Loading