Hierarchical HEALPix output#
We write output in multiple resolutions (hierarchical) on the HEALPix grid in order to simplify and speed up analysis. In order to take advantage of this particular output format, it is necessary to know about some particular properties of this representation. As HEALPix and hierarchical data structures are in principle independent, we’ll introduce them separately. But we’ll see that both fit together quite snugly.
Usage examples
- Getting started with hierarchical HEALPix data
- Plotting with cartopy
- Plot the difference between two fields on (possibly) different grids
- Time space diagrams
- Regridding HEALPix data to 1x1 degree
- HEALPix with pyicon
- Averages of ocean data
- Using land-sea mask
- Comparing EUREC4A’s dropsondes to ICON
- Resampling to lon-lat grid
Hierarchical Output#
In this context, hierarchical output means multiple copies of the output at different resolutions.
A combination of hierarchical output and chunked storage allows to access data such that the amount of data required to load scales with the size of the screen, plot or analysis domain instead of with the size of the model. In general, this enables fast analysis of high resolution model output.
A spatial hierarchy can probably be best illustrated with how online map services work:

The map shows global temperature distribution[1], at multiple
resolutions. The top level (z = 0
, whereby z= 1
), contains four images (chunks) at double the
horizontal resolution. The third and any further level continues in the
same manner.
With this structure, a user (or a library) can select a zoom
level
appropriate for the current region of interest (e.g. 12
for a map of
Hamburg or 5
for central Europe or even 0
for global means), but no
matter of the chosen zoom
level, the amount of data required to load
stays approximately constant.
While hierarchical datasets can dramatically speed up analysis, it’s interesting to note that not much more storage space is required: as visible in the figure above, all coarser levels combined are much smaller than only the finest level.
A similar hierarchical structure can be built for temporal aggregation: if data is stored e.g. in 30 minute, 3 hour and daily intervals, one can select an aggregation interval appropriate for the chosen form of analysis. By e.g. using daily data instead of 30 minute data, 48 time less data has to be loaded.
HEALPix#
The HEALPix (Górski et al., 2004) grid is a pixelation of a sphere, designed to support hierarchical structure, be (exactly) equal area and iso-Latitude. It’s also based on quadrilaterals. To get a first impression of the grid, you might want to check out a grid viewer. The grid is defined by a set of equations, which often can make grid point querying operations very fast, e.g. there is a function to compute (instead of look up) the grid cell number given a pair of longitude and latitude. These functions are implemented in the HEALPix Software Package which comes with bindings in various languages, including the healpy Python package.
HEALPix spatial resolution#
HEALPix grids comprise zoom
level (or nest). The surface area of the
earth is
HEALPix |
number of latitudes |
eff. ang. resolution |
|
---|---|---|---|
0 |
6519 |
3 |
|
6 |
101.9 |
255 |
|
8 |
25.5 |
1023 |
|
10 |
6.4 |
4095 |
|
12 |
1.6 |
16383 |
ICON uses R
Rules of thumb
For many global applications, especially when comparing to standard data sets, a
grid will sufficeFor zonal averages choosing
gives better than 1 resolutionFor near native resolution, choose
, i.e. for the NextGEMS cycle 3 runs.