Added fields to enhance mapping and filtering possibilities #12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Besides it's original intention (satellite data), STAC and STAC API proved to be useful for many other data having a georeference of some kind as well. For many of them the core specification of STAC and STAC API is sufficient. In case of weather forecast data, there are limitations however due to the vast amount of data, the frequent update cycles and the nature of the data.
Weather forecast data is typically calculated or recalculated every X hours (e.g. 3h) and results conceptually in a large number of datapackages, each containing the result of a specific selection of parameters among the many degrees of freedom (spatial, temporal, others...). The fields offered by STAC core allow to distinguish spatial and temporal parameters, but not more. Mapping these > 100'000 datapackages to STAC would either mean few items with an extensive list of assets, or a large list of items with one or a few assets each, or combining several parameter combinations in one file and having large files (50GB +). Each of these solutions is not very user-friendly, since selecting a subset of the data is hard to impossible (E.g. the spatial extent is often the same for every datapackage (covering the whole weather model grid) so it's of limited use for e.g. filtering).
We propose to add additional fields to the forecast extension to enhance mapping and filtering possibilities for forecast data. The degrees of freedom the data contains are
Open questions:
forecast:param
can be astring
or a list or strings. Having just a string would mean each parameter has to be in a separate file, having a list of strings would allow to combine parameters in one file. Although a more practical scenario is probably rather to just have a few parameter groups, e.g. "surface" or "full atmosphere" parameter group which could be implemented with just astring
. Having juststring
s and not lists is also easier for querying/filtering the data, so we propose to just have strings. The allowed values forforecast:param
are intentionally unrestricted since these heavily depend on the forecast model configuration.forecast:mode
attribute with values of eitherctrl
orperturb
. If desired/necessary it could be paired with aforecast:sample_nr
with the number of the perturbation run. Since we'll not currently use this it can also be omitted for now and added later if there's a usecase for it.forecast:level
will also not be implemented/used in our usecase, but could be useful for others.