- Title: Open Science Catalog
- Identifier: https://stac-extensions.github.io/osc/v1.0.0-rc.3/schema.json
- Field Name Prefix: osc
- Scope: Catalog, Collection, Item
- Extension Maturity Classification: Proposal
- Owner: @constantinius
This document explains the Open Science Catalog Extension to the SpatioTemporal Asset Catalog (STAC) specification.
- Examples:
- Project Catalog example: Shows a project STAC Catalog
- Product Collection example: Shows a product STAC Collection
- JSON Schema
- Changelog
This extension makes use of certain terms and definitions.
A science project dealing with theme, often bound to a certain geographic region. Each project can produce a a number of products,
which are sub-collections of type product
.
In the OSC STAC Extension, projects are depicted as STAC Collections with additional fields.
The description of a science product which was produced in the context of a project.
In the OSC STAC Extension, products are depicted as STAC Collections with additional fields.
A product can be linked to sub-collections/catalogs of any shape or form or directly reference the STAC Items actually referencing the data files the Product is comprised of. STAC Items should mirror the fields of the product collection for search purposes.
A thematic grouping of science projects and products, such as "Oceans", "Atmosphere" or "Land".
An physical variable observed by a science product, such as "Wind stress" or "Geomagnetic field".
A set of satellite missions which provided input for the product.
The fields in the table below can be used in these parts of STAC documents:
- Catalogs
- Collections
- Item Properties
- Assets (for both Collections and Items, incl. Item Asset Definitions in Collections)
- Links
NOTE: The Item fields can be added to Collection summaries, but should usually not be added to the summaries as the same fields already exist in the collection as top-level properties anyway. As such the extension does not validate Collection summaries.
Field Name | Type | Description |
---|---|---|
osc:type | string | REQUIRED. The underlying type of this resource. Either "project" or "product" . This field then defines what other fields are allowed and required. |
osc:name | string | The descriptive name. Can be distinct from title or id , but is available for historic reasons. |
osc:status | string | REQUIRED. This field details whether the project or product is planned , ongoing , or has been completed . |
osc:project | string | REQUIRED (for products). The name of the project the product is associated with. |
osc:region | string | The name of the geographic region the project or product is dealing with if any, e.g "Arctic" or "Agulhas" . |
osc:variables | [string] | The names of the variables the product is observing, e.g "Wind stress" or "Geomagnetic field" . |
osc:missions | [string] | The names of the satellite missions which provided input for this project or product. |
osc:themes | [string] | The names of the themes the project or product is dealing with. |
Fields that apply when the osc:type
is set to product
:
- osc:name
- osc:status - REQUIRED
- osc:project - REQUIRED
- osc:region
- osc:variables
- osc:missions
- osc:themes
Fields that apply when the osc:type
is set to project
:
- osc:name
- osc:status - REQUIRED
- osc:region
- osc:missions
- osc:themes
- contacts
The following fields should be implemented from the Contacts extension:
Field Name | Type | Description |
---|---|---|
contacts | [Contact Object] | A list of contacts qualified by their role. |
The following roles
for contacts SHALL be used:
- The role for the technical officer of a project is
technical_officer
. - The role for consortium partners is
consortium_member
.
All contributions are subject to the STAC Specification Code of Conduct. For contributions, please follow the STAC specification contributing guide Instructions for running tests are copied here for convenience.
The 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.
To run tests locally, you'll need npm
, which is a standard part of any node.js installation.
First you'll need to install everything with npm once. Just navigate to the root of this repository and on your command line run:
npm install
Then to check markdown formatting and test the examples against the JSON schema, you can run:
npm test
This will spit out the same texts that you see online, and you can then go and fix your markdown or examples.
If the tests reveal formatting problems with the examples, you can fix them with:
npm run format-examples