# datacube extension STAC spec bands: https://github.com/radiantearth/stac-spec/blob/master/commons/common-metadata.md#bands Datacube STAC Extension: https://github.com/stac-extensions/datacube **champion:** Alessandro Amici ## Questions - What from the data cube extension can we actually use bands for? - Going through the fields: - cube:dimension is required - cube:variable is analogous to bands Should we use bands? - Cons: - bands typically share units whereas variables don't necessarily - it is not the typical word in this domain - Pros: - tooling might expect bands and if you don't provide them then the tooling needs to know how to handle that. - if we push on with using bands more heavily (as in Emmanuel's PR) we can stay aligned. Right now there is a 1:1 translation between the zarr and the datacube extension. If you can put whatever you want from whatever STAC extension within bands. ## Variable Object if we make it a band | Existing Field Name | Proposed Field Name | Type | Description | | ---------------- | -------------------------| ----------- | --- | | dimensions | cube:dimension_refs | \[string] | **REQUIRED.** The dimensions of the variable. This should refer to keys in the ``cube:dimensions`` object or be an empty list if the variable has no dimensions. | | type | cube:type | string | **REQUIRED.** Type of the variable, either `data` or `auxiliary`. | | description | description | string | Same as in the band definition | | extent | statistics.minimum/statistics.maximum | nested object | The minimum and maximum of the values within the variable array. Same as in the band spec definition | | values | cube:values | \[number\|string] | An (ordered) list of all values, especially useful for [nominal](https://en.wikipedia.org/wiki/Level_of_measurement#Nominal_level) values. | | unit | units | string | Same as in the band spec definition | | nodata | nodata | number\|string | Same as in the band spec definition | | data_type | data_type | string | Same as in the band spec definition | ## Example using datacube as it is now (YAML repesentation of a STAC Item) ```yaml stac_version: 1.1.0 type: Feature collection: era5 id: reanalysis-era5-land properties: dc:title: ERA5-Land dc:abstract: >- ERA5-Land provides land variables evolution over several decades at an enhanced resolution compared to ERA5. The dataset is provided in a ARCO Zarr format ideal for time series analysis Hourly, daily and monthly. dc:access_rights: unrestricted dc:subject: - ERA5 - Land - ECMWF - reanalysis - weather dc:description: > ERA5-Land is a reanalysis dataset providing a consistent view of the evolution of land variables dc:accrual_periodicity: 'freq:monthly' dc:extent: 703.7 TB datetime: '2025-09-30T23:00:00Z' start_datetime: '1950-01-01T00:00:00Z' end_datetime: '2025-09-30T23:00:00Z' updated: '2025-10-12T20:55:35Z' cube:dimensions: valid_time: type: temporal extent: - '1950-01-01T00:00:00Z' - '2025-09-30T00:00:00Z' step: PT1D latitude: type: spatial axis: 'y' extent: - 90 - -57.1 step: 0.1 reference_system: 4326 longitude: type: spatial axis: x extent: - 0 - 359.9 step: 0.1 reference_system: 4326 cube:variables: d2m: type: data description: 2 metre dewpoint temperature dimensions: - valid_time - latitude - longitude unit: K u10: type: data description: 10 metre U wind component dimensions: - valid_time - latitude - longitude extent: [-70, 70] unit: m s**-1 v10: type: data description: 10 metre V wind component dimensions: - valid_time - latitude - longitude unit: m s**-1 geometry: type: MultiPolygon coordinates: - - - - -180 - -57.1 - - -180 - 90 - - -0.1 - 90 - - -0.1 - -57.1 - - -180 - -57.1 - - - - 0 - -57.1 - - 0 - 90 - - 180 - 90 - - 180 - -57.1 - - 0 - -57.1 bbox: - 0 - -57.1 - 359.9 - 90 links: - href: 'https://doi.org/10.24381/cds.e2161bac' rel: derived_from type: text/html title: ERA5-Land hourly data from 1950 to present - href: https://earthdatahub.destine.eu/api/stac/v1/collections/era5/items/reanalysis-era5-land rel: self type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/' rel: root type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/collections/era5' rel: parent type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/collections/era5' rel: collection type: application/json assets: hourly-data: title: ERA5-land hourly data href: https://data.earthdatahub.destine.eu/era5/reanalysis-era5-land-no-antartica-houly-v0.zarr roles: - data type: application/x-zarr cube:dimensions: valid_time: type: temporal extent: - '1950-01-01T00:00:00Z' - '2025-09-30T23:00:00Z' step: PT1H latitude: type: spatial axis: 'y' extent: - 90 - -57.1 step: 0.1 reference_system: 4326 longitude: type: spatial axis: x extent: - 0 - 359.9 step: 0.1 reference_system: 4326 thumbnail: href: https://s3.gra.cloud.ovh.net/v1/AUTH_954d6a1ff56543e5860809415ceebf17/edh-static/desp-edh/catalogue/era5/reanalysis-era5-land/thumbnail_5f4b32d493db27aaf83c74576bf773864934f10e0911f0b3ad6f84b3f7da52e9.png roles: - thumbnail ``` ## Example using bands ```yaml stac_version: 1.1.0 type: Feature collection: era5 id: reanalysis-era5-land properties: dc:title: ERA5-Land dc:abstract: >- ERA5-Land provides land variables evolution over several decades at an enhanced resolution compared to ERA5. The dataset is provided in a ARCO Zarr format ideal for time series analysis Hourly, daily and monthly. dc:access_rights: unrestricted dc:subject: - ERA5 - Land - ECMWF - reanalysis - weather dc:description: > ERA5-Land is a reanalysis dataset providing a consistent view of the evolution of land variables dc:accrual_periodicity: 'freq:monthly' dc:extent: 703.7 TB datetime: '2025-09-30T23:00:00Z' start_datetime: '1950-01-01T00:00:00Z' end_datetime: '2025-09-30T23:00:00Z' updated: '2025-10-12T20:55:35Z' cube:dimensions: valid_time: type: temporal extent: - '1950-01-01T00:00:00Z' - '2025-09-30T00:00:00Z' step: PT1D latitude: type: spatial axis: 'y' extent: - 90 - -57.1 step: 0.1 reference_system: 4326 longitude: type: spatial axis: x extent: - 0 - 359.9 step: 0.1 reference_system: 4326 bands: - name: d2m cube:type: data description: 2 metre dewpoint temperature cube:dimension_refs: - valid_time - latitude - longitude unit: K - name: u10 cube:type: data description: 10 metre U wind component cube:dimension_refs: - valid_time - latitude - longitude statistics: minumum: 0 maximum: 10 unit: m s**-1 - name: v10 cube:type: data description: 10 metre V wind component cube:dimension_refs: - valid_time - latitude - longitude unit: m s**-1 geometry: type: MultiPolygon coordinates: - - - - -180 - -57.1 - - -180 - 90 - - -0.1 - 90 - - -0.1 - -57.1 - - -180 - -57.1 - - - - 0 - -57.1 - - 0 - 90 - - 180 - 90 - - 180 - -57.1 - - 0 - -57.1 bbox: - 0 - -57.1 - 359.9 - 90 links: - href: 'https://doi.org/10.24381/cds.e2161bac' rel: derived_from type: text/html title: ERA5-Land hourly data from 1950 to present - href: https://earthdatahub.destine.eu/api/stac/v1/collections/era5/items/reanalysis-era5-land rel: self type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/' rel: root type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/collections/era5' rel: parent type: application/json - href: 'https://earthdatahub.destine.eu/api/stac/v1/collections/era5' rel: collection type: application/json assets: hourly-data: title: ERA5-land hourly data href: https://data.earthdatahub.destine.eu/era5/reanalysis-era5-land-no-antartica-houly-v0.zarr roles: - data type: application/x-zarr thumbnail: href: https://s3.gra.cloud.ovh.net/v1/AUTH_954d6a1ff56543e5860809415ceebf17/edh-static/desp-edh/catalogue/era5/reanalysis-era5-land/thumbnail_5f4b32d493db27aaf83c74576bf773864934f10e0911f0b3ad6f84b3f7da52e9.png roles: - thumbnail ```