Skip to content

Updated to recent discussions #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [1.0.0]

### Added

- `osc:experiment` for products
- `osc:workflows` for projects
- Definitions for workflows and experiments
- Describe relation to OGC API - Records
- Describe applicable relation types

### Changed

- Clarified which fields apply for which type
- `osc:region` is not used for projects any longer

### Removed

- `osc:name`
Expand Down
79 changes: 62 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,14 @@ An physical variable observed by a science product, such as "Wind stress" or "Ge

A set of satellite missions which provided input for the product.

### Workflow

A definition of processing steps defined in a project that can be executed in an experiment to generate a product.

### Experiment

A specific execution of a workflow that generated a product.

## Fields

The fields in the table below can be used in these parts of STAC documents:
Expand All @@ -64,29 +72,39 @@ The fields in the table below can be used in these parts of STAC documents:
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: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. |
### Projects and Products

Fields that apply when the `osc:type` is set to `product`:
| 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:status | string | **REQUIRED.** This field details whether the project or product is `planned`, `ongoing`, or has been `completed`. |

Additionally, the following fields from other extensions apply:

- osc:status - **REQUIRED**
- osc:project - **REQUIRED**
- osc:region
- osc:variables
- osc:missions
- [themes](#themes)

### Products only

Fields that apply when the `osc:type` is set to `product`:

| Field Name | Type | Description |
| -------------- | --------- | ----------- |
| osc:project | string | **REQUIRED.** 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 product. |
| osc:experiment | string | The name of the experiment that created the product. |

### Projects only

Fields that apply when the `osc:type` is set to `project`:

- osc:status - **REQUIRED**
- osc:region
- [themes](#themes)
| Field Name | Type | Description |
| -------------- | --------- | ----------- |
| osc:workflows | \[string] | The names of the workflows created by the project. |

Additionally, the following fields from other extensions apply:

- [contacts](#contacts)

### Contacts
Expand All @@ -113,6 +131,33 @@ The following fields should be implemented from the [Themes extension](https://g
The themes field can contain concepts from different controlled vocabularies (via `scheme`).
By default this extension only asks to add concepts for the scheme `https://github.com/stac-extensions/osc#theme`.

## Relation types

The following types should be used as applicable `rel` types in the
[Link Object](https://github.com/radiantearth/stac-spec/tree/master/item-spec/item-spec.md#link-object).

| Type | Description |
| ----------- | ------------------------------------- |
| related | Links to resources that are identified in the osc: fields, e.g. a link to the project as identified in the `osc:project` field. |
| environment | Links to a file that identifies the execution environment of an experiment (applicable mostly to OGC API - Records) |
| input | Links to a file that identifies any input parameters of an experiment (applicable mostly to OGC API - Records) |

## OGC API - Records

Although this extension is a STAC extension, similar fields with the same `osc:` prefix
are also used in OGC API - Records that describe workflows and experiments.

The following fields occur in workflows:

- `osc:project` (string, required)
- `osc:experiments` (\[string])

The following fields occur in experiments:

- `osc:project` (string, required)
- `osc:workflow` (string, required)
- `osc:product` (string, required)

## Contributing

All contributions are subject to the
Expand Down
12 changes: 10 additions & 2 deletions json-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,12 @@
"osc:status": {
"$ref": "#/definitions/status"
},
"osc:region": {
"$ref": "#/definitions/region"
"osc:workflows": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"patternProperties": {
Expand Down Expand Up @@ -113,6 +117,10 @@
},
"osc:missions": {
"$ref": "#/definitions/missions"
},
"osc:experiment": {
"type": "string",
"minLength": 1
}
},
"patternProperties": {
Expand Down