{"id":37651709,"url":"https://github.com/stac-extensions/forecast","last_synced_at":"2026-01-16T11:34:35.996Z","repository":{"id":104522984,"uuid":"518795372","full_name":"stac-extensions/forecast","owner":"stac-extensions","description":"Common fields for (meteorological/weather) forecast data.","archived":false,"fork":false,"pushed_at":"2025-01-09T14:42:29.000Z","size":49,"stargazers_count":12,"open_issues_count":4,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-09T14:53:05.509Z","etag":null,"topics":["forecast","stac"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stac-extensions.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-07-28T10:10:56.000Z","updated_at":"2025-01-09T14:39:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee9feea4-a641-4d65-9b81-cc0acd267af9","html_url":"https://github.com/stac-extensions/forecast","commit_stats":{"total_commits":14,"total_committers":4,"mean_commits":3.5,"dds":0.2857142857142857,"last_synced_commit":"33b17611391ef018fb0498762a0eb3167d83459b"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":"stac-extensions/template","purl":"pkg:github/stac-extensions/forecast","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Fforecast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Fforecast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Fforecast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Fforecast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stac-extensions","download_url":"https://codeload.github.com/stac-extensions/forecast/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stac-extensions%2Fforecast/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["forecast","stac"],"created_at":"2026-01-16T11:34:35.451Z","updated_at":"2026-01-16T11:34:35.990Z","avatar_url":"https://github.com/stac-extensions.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forecast Extension Specification\n\n- **Title:** Forecast\n- **Identifier:** \u003chttps://stac-extensions.github.io/forecast/v0.2.0/schema.json\u003e\n- **Field Name Prefix:** forecast\n- **Scope:** Item, Collection\n- **Extension [Maturity Classification](https://github.com/radiantearth/stac-spec/tree/master/extensions/README.md#extension-maturity):** Proposal\n- **Owner**: @m-mohr\n\nThis document explains the Forecast Extension to the [SpatioTemporal Asset Catalog](https://github.com/radiantearth/stac-spec) (STAC) specification.\nIt defines some high-level fields to get a basic understanding of **weather** forecast data.\nSome fields may also be applicable for climate forecast data, but it hasn't been written specifically for that domain.\n\n- Examples:\n  - [Item example for an specific time](examples/item.json): An example STAC Item for a forecast covering a specific instance in time\n- [JSON Schema](json-schema/schema.json)\n- [Changelog](./CHANGELOG.md)\n\n## Fields\n\nThe fields in the table below can be used in these parts of STAC documents:\n- [ ] Catalogs\n- [x] Collections\n- [x] Item Properties (incl. Summaries in Collections)\n- [x] Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)\n- [ ] Links\n\n| Field Name                  | Type   | Description |\n| --------------------------- | ------ | ----------- |\n| forecast:reference_datetime | string | **REQUIRED.** The *reference* datetime: i.e. predictions for times after this point occur in the future. Predictions prior to this time represent 'hindcasts', predicting states that have already occurred. This must be in UTC. It is formatted according to [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6). |\n| forecast:horizon            | string | The time between the reference datetime and the forecast datetime. Formatted as [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations), e.g. `PT6H` for a 6-hour forecast. |\n| forecast:duration           | string | If the forecast is not only for a specific instance in time but instead is for a certain period, you can specify the length here. Formatted as [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations), e.g. `PT3H` for a 3-hour accumulation. If not given, assumes that the forecast is for an instance in time as if this was set to `PT0S` (0 seconds). |\n| forecast:variable           | string | Name of the model variable that corresponds to the data. The variables should correspond to the [CF Standard Names](https://cfconventions.org/Data/cf-standard-names/current/build/cf-standard-name-table.html), e.g. `air_temperature` for the air temperature. |\n| forecast:perturbed          | boolean | Denotes whether the data corresponds to the control run (`false`) or perturbed runs (`true`). The property needs to be specified in both cases as no default value is specified and as such the meaning is \"unknown\" in case it's missing. |\n\n`forecast:variable` is primarily intended for search and as such can only be set to a single value,\neither on the Asset level or on the Item property level. If this field is insufficient for your usecase,\nplease use the more advanced [CF extension](https://github.com/stac-extensions/cf) instead.\n\n### Additional Fields from other extensions\n\n| Field Name        | Type   | Description |\n| ----------------- | ------ | ----------- |\n| datetime          | string | **REQUIRED.** The forecast datetime. It follows the definition in the [STAC Common Metdata](https://github.com/radiantearth/stac-spec/blob/master/item-spec/common-metadata.md#date-and-time). If the forecast is not only for a specific instance in time but instead is for a certain period, you should use `start_datetime` and `end_datetime` and set `datetime` either to reflect the `start_datetime` (recommended) or to `null`. |\n| start_datetime / end_datetime | string | The forecast start and end datetime. It follows the definition in the [STAC Common Metdata](https://github.com/radiantearth/stac-spec/blob/master/item-spec/common-metadata.md#date-and-time). Only use these fields if the forecast is for a period (and as such `forecast:duration` is not `PT0S`). |\n| expires           | string | The datetime until the forecast is valid or gets superseded by a new forecast. It follows the definition in the [Timestamps Extension](https://github.com/stac-extensions/timestamps#item-properties-fields). |\n| deprecated        | string | Set this to `true` if a newer version of the forecast is available. It follows the definition in the [Version Extension](https://github.com/stac-extensions/timestamps#item-properties-fields). |\n\n**Note:** The fields mentioned above don't use the `forecast:` prefix!\n\nIt is also recommended to implement the [Version Extension](https://github.com/stac-extensions/version)\nand use it to \"deprecate\" old forecasts and link between forecasts with the same forecast datetime using the given\n[relation types](https://github.com/stac-extensions/version#relation-types).\n\n## Media Types\n\nYou can use any file format, but here is a list of common media types for forecast assets that have not been listed yet in the list of [common media types in STAC](https://github.com/radiantearth/stac-spec/blob/master/best-practices.md#common-media-types-in-stac):\n\n| Type                    | Description |\n| ----------------------- | ----------- |\n| `application/wmo-GRIB2` | GRIB2 file (usually with the file extension `.grb2` or `.grib2`) |\n| `application/x-netcdf`  | NetCDF file (usually with the file extension `.nc`) |\n\n## Contributing\n\nAll contributions are subject to the\n[STAC Specification Code of Conduct](https://github.com/radiantearth/stac-spec/blob/master/CODE_OF_CONDUCT.md).\nFor contributions, please follow the\n[STAC specification contributing guide](https://github.com/radiantearth/stac-spec/blob/master/CONTRIBUTING.md) Instructions\nfor running tests are copied here for convenience.\n\n### Running tests\n\nThe same checks that run as checks on PR's are part of the repository and can be run locally to verify that changes are valid. \nTo run tests locally, you'll need `npm`, which is a standard part of any [node.js installation](https://nodejs.org/en/download/).\n\nFirst you'll need to install everything with npm once. Just navigate to the root of this repository and on \nyour command line run:\n```bash\nnpm install\n```\n\nThen to check markdown formatting and test the examples against the JSON schema, you can run:\n```bash\nnpm test\n```\n\nThis will spit out the same texts that you see online, and you can then go and fix your markdown or examples.\n\nIf the tests reveal formatting problems with the examples, you can fix them with:\n```bash\nnpm run format-examples\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-extensions%2Fforecast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstac-extensions%2Fforecast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstac-extensions%2Fforecast/lists"}