Skip to content

Data Format

DGGS.jl stores data of individual DGGS cells in rasters, in which the cell ids can be calculated by row and column numbers.

Projection

Geographical coordinates are first projected into a plane using Snyder equal-area projection, followed by a linear transformation, yielding a tesselation of the earth surface into 5 matrices. The transformed coordinates are then adjusted downward to get the final discrete cell ids as (i,j,n) tuples at row 0<=i<=2*2^r, column 0<=i<=2^r, and matrix 0<=n<=4>. Moreover, the cell id can be re-interpreted as a single integer, by concatenating the bits of the individual axial coordinates. The refinement level r determines the spatial resolution, halving the width and length of the 5 matrices in each subsequent coarser levels. The final DGGS in an image pyramid of datasets at a given refinement level and all coarser levels.

Data Format

The data is stored according to the Unidata's Common Data Model (CDM) using CF Metadata Conventions by extending attributes and dimensions with the prefix dggs_. An example in Zarr format is provided at https://github.com/danlooo/blue-marble.dggs.zarr. The root group contains a group for all spatial refinement levels (dataset) that contain all variables (arrays) for variables and dimensions at the given level. Each dataset MUST contain spatial dimensions dggs_i, dggs_j, and dggs_n.

Meta Data

Attributes used to descirbe the DGGS:

keyformatexampledescription
dggs_resolutionint2Spatial refinement level defined by the given DGGSRS
dggs_bbox{"X":[float,float],"Y":[float,float]}{"X":[-180.0,180.0],"Y":[-90.0,90.0]}Bounding box of the data in WGS84
dggs_dggsrsstring"ISEA4D.Penta"Name of DGGSRS

The root group / MUST contain attributes dggs_bbox and dggs_dggsrs. Dataset groups /dggs_s{r} MUST contain attributes dggs_dggsrs and dggs_resolution. Arrays /dggs_s{r}/{array_name} MUST contain attributes dggs_bbox, dggs_dggsrs, and dggs_resolution.