Skip to content

Support for custom tiling approaches in ndpyramid #92

@maxrjones

Description

@maxrjones

Overview of tiling schemes in ndpyramid

Most of the CarbonPlan mapping toolkit is based on the map zoom level quadtree pattern where the number of tiles at a given zoom level corresponds to 2zoom and each zoom level covers the entire globe, as described in the schema docs. ndpyramid currently supports EPSG:4326 and EPSG:3857 through the pyramid_reproject and pyramid_regrid functions, which correspond to the global-geodetic and global-mercator profiles in the Tile Map Service OGC Specification, with the exception that the EPSG:4326 pyramids have one tile at zoom level 0, whereas the global-geodetic profile has two.

The pyramid_coarsen function instead generates pyramids with each zoom level representing a decimation relative to the base resolution. In the case in which each zoom level is a decimation of 2zoom relative to the base resolution, this corresponds to the local profile in the Tile Map Service OGC Specification. These pyramid levels do not align with standard web map zoom levels, can be in any projection, and are not supported by @carbonplan/maps.

The gdal COG driver also supports a custom tiling scheme, which allows setting the target projection, resolution, and extent independently. This is not currently supported in ndpyramid.

Open questions:

  1. Should ndpyramid support the custom tiling scheme? What would be the benefit of this feature?
  2. Would there be substantial benefits of @carbonplan/maps supporting a local or decimation pyramid scheme?

A separate issue is how to best represent the difference between these schemes in the multiscales metadata. Currently the representation would need to be inferred by the method and kwargs attributes, which seems difficult to interpret.

Benefits of global tiling scheme

  • More performant rendering, especially when in Web Mercator

Benefits of local tiling scheme

  • Cost savings for storage. For example, this notebook shows that the global-geodetic tiling scheme produces pyramids for the CORDEX model that are ~22% or ~190% larger than the local scheme depending on whether the upper or lower zoom level determination is used. I expect the difference is larger for higher resolution data with smaller spatial extents.
  • Keeping the data as close to the raw format as possible (so you don't have any reprojection resampling)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions