sahrk / DGGRID

A command-line application that generates and manipulates icosahedral discrete global grids.
GNU Affero General Public License v3.0
78 stars 26 forks source link

Class II hexagon orientations #70

Closed ldesousa closed 1 year ago

ldesousa commented 1 year ago

Dear Kevin,

I would like to generate a few aperture 4 and 7 ISEAGs with Class II orientations, i.e., in which resolution 0 corresponds to 32 cels: 12 pentagons centred on the icasohedron vertices and 20 hexagons centred on the icosahedron faces. DGGRID uses Class I by default (i.e. 12 pentagons in resolution 0) and apparently there is no parameter to modify it.

I know it is possible to use resolution 1 in aperture 3 to achieve the same effect. But is Class II orientation outside the concept of ISEAG itself, or is its absence an implementation choice?

Thank you.

sahrk commented 1 year ago

Hello @ldesousa,

I would like to generate a few aperture 4 and 7 ISEAGs with Class II orientations, i.e., in which resolution 0 corresponds to 32 cels: 12 pentagons centred on the icasohedron vertices and 20 hexagons centred on the icosahedron faces. DGGRID uses Class I by default (i.e. 12 pentagons in resolution 0) and apparently there is no parameter to modify it.

All hex DGGS in DGGRID start with a resolution 0 dodecahedron.

I've been thinking of adding H3 support to DGGRID and that has a similar issue (H3 resolution 0 is actually resolution 2 after initial unindexed aperture 3 and 4 resolutions), so you may see a parameter that does what you want at some point.

I know it is possible to use resolution 1 in aperture 3 to achieve the same effect. But is Class II orientation outside the concept of ISEAG itself, or is its absence an implementation choice?

I would say the primacy of res 0 Class I is determined by the geometry of the icosahedron. We could have chosen res 0 to be the soccer ball/truncated icosahedron, which is the Class II grid you get from a single aperture 3 resolution. But since a single coarser grid is geometrically possible (the Class I dodecahedron) it didn't make sense to us to preclude the possibility of using that grid.

For now I think your best bet is to do an initial aperture 3 (as you suggest) and then +/-1 the resolution outside of DGGRID to get the resolution scheme you want.

danlooo commented 1 year ago

Adding H3 support to DGGRID would be a really nice feature! This would allow us to get the efficient parent and neighbor retrieval of the hierarchical H3 index while still having the lower area distortion in ISEA compared to the gnomonic projection used in H3.

ldesousa commented 1 year ago

Thank you @sahrk for the details. Thinking it over again, my intuition would be for resolution 0 of an ISEAG to be the 20 triangles obtained directly from the faces of the Icosahedron (although this configuration does not feature in the literature). Not sure though to what extent this is just "splitting hairs", but might be relevant for higher resolutions with aperture 7.

I will close the issue, as the question is answered.