JSON Schema generation¶
A simple usage of the library that, given generates a JSON Schema for inputs and outputs.
1. Parsing¶
In this sample we'll show the access from a remote public URL.
In [1]:
Copied!
from cwl_loader import load_cwl_from_location
from cwl2ogc import BaseCWLtypes2OGCConverter
workflow_id = 'pattern-12'
cwl_document = load_cwl_from_location('https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl')
workflow = None
for wf in cwl_document:
if workflow_id == wf.id.split('#')[-1]:
workflow = wf
break
if workflow is not None:
cwl_converter = BaseCWLtypes2OGCConverter(workflow)
else:
raise ValueError(f"'#{workflow_id}' not found in input $graph")
from cwl_loader import load_cwl_from_location
from cwl2ogc import BaseCWLtypes2OGCConverter
workflow_id = 'pattern-12'
cwl_document = load_cwl_from_location('https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl')
workflow = None
for wf in cwl_document:
if workflow_id == wf.id.split('#')[-1]:
workflow = wf
break
if workflow is not None:
cwl_converter = BaseCWLtypes2OGCConverter(workflow)
else:
raise ValueError(f"'#{workflow_id}' not found in input $graph")
2025-11-06 22:55:13.958 | DEBUG | cwl_loader:load_cwl_from_location:228 - Loading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl...
2025-11-06 22:55:14.095 | DEBUG | cwl_loader:_load_cwl_from_stream:231 - Reading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl...
2025-11-06 22:55:14.130 | DEBUG | cwl_loader:load_cwl_from_stream:203 - CWL data of type <class 'ruamel.yaml.comments.CommentedMap'> successfully loaded from stream
2025-11-06 22:55:14.130 | DEBUG | cwl_loader:load_cwl_from_yaml:143 - No needs to update the Raw CWL document since it targets already the v1.2
2025-11-06 22:55:14.131 | DEBUG | cwl_loader:load_cwl_from_yaml:145 - Parsing the raw CWL document to the CWL Utils DOM...
2025-11-06 22:55:15.638 | DEBUG | cwl_loader:load_cwl_from_yaml:158 - Raw CWL document successfully parsed to the CWL Utils DOM!
2025-11-06 22:55:15.639 | DEBUG | cwl_loader:load_cwl_from_yaml:160 - Dereferencing the steps[].run...
2025-11-06 22:55:15.639 | DEBUG | cwl_loader:_on_process:78 - Checking if https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl#crop must be externally imported...
2025-11-06 22:55:15.640 | DEBUG | cwl_loader:_on_process:82 - run_url: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl - uri: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl
2025-11-06 22:55:15.640 | DEBUG | cwl_loader:_on_process:78 - Checking if https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl#norm_diff must be externally imported...
2025-11-06 22:55:15.641 | DEBUG | cwl_loader:_on_process:82 - run_url: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl - uri: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl
2025-11-06 22:55:15.641 | DEBUG | cwl_loader:_on_process:78 - Checking if https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl#otsu must be externally imported...
2025-11-06 22:55:15.642 | DEBUG | cwl_loader:_on_process:82 - run_url: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl - uri: https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl
2025-11-06 22:55:15.642 | DEBUG | cwl_loader:load_cwl_from_yaml:167 - steps[].run successfully dereferenced! Dereferencing the FQNs...
2025-11-06 22:55:15.642 | DEBUG | cwl_loader:load_cwl_from_yaml:171 - CWL document successfully dereferenced! Now verifying steps[].run integrity...
2025-11-06 22:55:15.643 | DEBUG | cwl_loader:load_cwl_from_yaml:175 - All steps[].run link are resolvable!
2025-11-06 22:55:15.643 | DEBUG | cwl_loader:load_cwl_from_yaml:178 - Sorting Process instances by dependencies....
2025-11-06 22:55:15.644 | DEBUG | cwl_loader:load_cwl_from_yaml:180 - Sorting process is over.
2025-11-06 22:55:15.644 | DEBUG | cwl_loader:_load_cwl_from_stream:240 - Stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main/cwl-workflow/pattern-12.cwl successfully load!
2. Inputs JSON Schema generation¶
Once the document is parsed, invoke the cwl2ogc APIs to convert the CWL inputs to the JSON schema:
In [2]:
Copied!
import sys
cwl_converter.dump_inputs_json_schema(stream=sys.stdout, pretty_print=True)
import sys
cwl_converter.dump_inputs_json_schema(stream=sys.stdout, pretty_print=True)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://eoap.github.io/cwl2ogc/pattern-12/inputs.yaml",
"description": "The schema to represent a pattern-12 inputs definition",
"type": "object",
"required": [
"aoi",
"bands",
"item",
"cropped-collection",
"ndwi-collection",
"water-bodies-collection"
],
"properties": {
"aoi": {
"$ref": "#/$defs/aoi"
},
"bands": {
"$ref": "#/$defs/bands"
},
"item": {
"$ref": "#/$defs/item"
},
"cropped-collection": {
"$ref": "#/$defs/cropped-collection"
},
"ndwi-collection": {
"$ref": "#/$defs/ndwi-collection"
},
"water-bodies-collection": {
"$ref": "#/$defs/water-bodies-collection"
}
},
"additionalProperties": false,
"$defs": {
"aoi": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
},
"crs": {
"type": "string",
"enum": [
"CRS84",
"CRS84h"
]
}
},
"required": [
"bbox",
"crs"
]
},
"bands": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"green",
"nir"
]
},
"item": {
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"title": "STAC Item",
"description": "This object represents the metadata for an item in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"definitions": {
"asset": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"common_metadata": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"core": {
"title": "GeoJSON Feature",
"$id": "https://geojson.org/schema/Feature.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
{
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1,
"allOf": {
"$ref": "http://json-schema.org/draft-07/schema"
}
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
},
"definitions": {
"collection": {
"title": "STAC Collection",
"description": "These are the fields specific to a STAC Collection. All other fields are inherited from STAC Catalog.",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
}
]
},
"cropped-collection": {
"type": "string",
"format": "uri"
},
"ndwi-collection": {
"type": "string",
"format": "uri"
},
"water-bodies-collection": {
"type": "string",
"format": "uri"
}
}
}
2.1 Inputs validation¶
Schema can be used to fully validate an inputs dictionary (expecting JSON Schema validation errors in the example below):
In [3]:
Copied!
from jsonschema import Draft202012Validator
from jsonschema.exceptions import SchemaError
def validate(schema: dict, data: dict):
try:
validator = Draft202012Validator(schema)
errors = validator.iter_errors(data) if validator is not None else []
if errors:
for error in errors:
print(f"[{'.'.join(error.schema_path)}] - #/{'/'.join(error.path)}: {error.message}")
else:
print('No JSON Schema violations detected!')
except SchemaError as schema_error:
print(f"An error occurred while instantiating {Draft202012Validator.__class__.__name__}: {schema_error.message}")
from jsonschema import Draft202012Validator
from jsonschema.exceptions import SchemaError
def validate(schema: dict, data: dict):
try:
validator = Draft202012Validator(schema)
errors = validator.iter_errors(data) if validator is not None else []
if errors:
for error in errors:
print(f"[{'.'.join(error.schema_path)}] - #/{'/'.join(error.path)}: {error.message}")
else:
print('No JSON Schema violations detected!')
except SchemaError as schema_error:
print(f"An error occurred while instantiating {Draft202012Validator.__class__.__name__}: {schema_error.message}")
Define the inputs to be validate
In [4]:
Copied!
inputs = {
"aoi": "-118.985,38.432,-118.183,38.938",
"filesB": "EPSG:4326",
"bands": [ "green", "nir08" ],
"item": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1"
}
validate(cwl_converter.get_inputs_json_schema(), inputs)
inputs = {
"aoi": "-118.985,38.432,-118.183,38.938",
"filesB": "EPSG:4326",
"bands": [ "green", "nir08" ],
"item": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1"
}
validate(cwl_converter.get_inputs_json_schema(), inputs)
[required] - #/: 'cropped-collection' is a required property
[required] - #/: 'ndwi-collection' is a required property
[required] - #/: 'water-bodies-collection' is a required property
[properties.aoi.type] - #/aoi: '-118.985,38.432,-118.183,38.938' is not of type 'object'
[additionalProperties] - #/: Additional properties are not allowed ('filesB' was unexpected)
3. Outputs JSON Schema generation¶
Users can reuse the BaseCWLtypes2OGCConverter instance to convert the CWL outputs to the JSON Schema:
In [5]:
Copied!
cwl_converter.dump_outputs_json_schema(stream=sys.stdout, pretty_print=True)
cwl_converter.dump_outputs_json_schema(stream=sys.stdout, pretty_print=True)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://eoap.github.io/cwl2ogc/pattern-12/outputs.yaml",
"description": "The schema to represent a pattern-12 outputs definition",
"type": "object",
"required": [
"cropped",
"ndwi",
"water_bodies"
],
"properties": {
"cropped": {
"$ref": "#/$defs/cropped"
},
"ndwi": {
"$ref": "#/$defs/ndwi"
},
"water_bodies": {
"$ref": "#/$defs/water_bodies"
}
},
"additionalProperties": false,
"$defs": {
"cropped": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"title": "STAC Item",
"description": "This object represents the metadata for an item in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"definitions": {
"asset": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"common_metadata": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"core": {
"title": "GeoJSON Feature",
"$id": "https://geojson.org/schema/Feature.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
{
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1,
"allOf": {
"$ref": "http://json-schema.org/draft-07/schema"
}
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
},
"definitions": {
"collection": {
"title": "STAC Collection",
"description": "These are the fields specific to a STAC Collection. All other fields are inherited from STAC Catalog.",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
}
]
}
},
"ndwi": {
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"title": "STAC Item",
"description": "This object represents the metadata for an item in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"definitions": {
"asset": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"common_metadata": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"core": {
"title": "GeoJSON Feature",
"$id": "https://geojson.org/schema/Feature.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
{
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1,
"allOf": {
"$ref": "http://json-schema.org/draft-07/schema"
}
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
},
"definitions": {
"collection": {
"title": "STAC Collection",
"description": "These are the fields specific to a STAC Collection. All other fields are inherited from STAC Catalog.",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
}
]
},
"water_bodies": {
"oneOf": [
{
"type": "string",
"format": "uri"
},
{
"title": "STAC Item",
"description": "This object represents the metadata for an item in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"definitions": {
"asset": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"common_metadata": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
},
"core": {
"title": "GeoJSON Feature",
"$id": "https://geojson.org/schema/Feature.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"assets",
"geometry",
"id",
"links",
"properties",
"stac_version",
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"properties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"title": {
"title": "Item Title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Item Description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type":
"string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"anyOf": [
{
"required": [
"datetime"
],
"properties": {
"datetime": {
"not": {
"anyOf": [
{
"type": "null"
}
]
}
}
}
},
{
"required": [
"datetime",
"start_datetime",
"end_datetime"
]
}
],
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
},
"oneOf": [
{
"type": "null"
},
{
"type": "object"
}
]
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometry": {
"oneOf": [
{
"type": "null"
},
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
},
{
"title": "GeoJSON GeometryCollection",
"type": "object",
"required": [
"type",
"geometries"
],
"properties": {
"type": {
"type": "string",
"enum": [
"GeometryCollection"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"geometries": {
"type": "array",
"items": {
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
}
}
]
},
"id": {
"title": "Provider ID",
"description": "Provider item ID",
"type": "string",
"minLength": 1,
"oneOf": [
{
"type": "number"
},
{
"type": "string"
}
]
},
"links": {
"title": "Item links",
"description": "Links to item relations",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"else": {
"properties": {
"collection": {
"not": {}
}
}
},
"if": {
"properties": {
"links": {
"contains": {
"required": [
"rel"
],
"properties": {
"rel": {
"const": "collection"
}
}
}
}
}
},
"oneOf": [
{
"type": "object",
"required": [
"geometry",
"bbox"
],
"properties": {
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"geometry": {
"title": "GeoJSON Geometry",
"$id": "https://geojson.org/schema/Geometry.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"oneOf": [
{
"title": "GeoJSON Point",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
},
{
"title": "GeoJSON LineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"LineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
},
{
"title": "GeoJSON Polygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Polygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
},
{
"title": "GeoJSON MultiPoint",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPoint"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiLineString",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiLineString"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 2
}
}
}
},
{
"title": "GeoJSON MultiPolygon",
"type": "object",
"required": [
"type",
"coordinates"
],
"properties": {
"type": {
"type": "string",
"enum": [
"MultiPolygon"
]
},
"bbox": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 4
},
"coordinates": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 2
},
"minItems": 4
}
}
}
}
}
]
}
}
},
{
"type": "object",
"required": [
"geometry"
],
"properties": {
"bbox": {
"not": {
"anyOf": [
{}
]
}
},
"geometry": {
"type": "null"
}
}
}
],
"then": {
"required": [
"collection"
],
"properties": {
"collection": {
"title": "Collection ID",
"description": "The ID of the STAC Collection this Item references to.",
"type": "string",
"minLength": 1
}
}
}
},
{
"title": "STAC Collection Specification",
"description": "This object represents Collections in a SpatioTemporal Asset Catalog.",
"$id": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1,
"allOf": {
"$ref": "http://json-schema.org/draft-07/schema"
}
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
},
"definitions": {
"collection": {
"title": "STAC Collection",
"description": "These are the fields specific to a STAC Collection. All other fields are inherited from STAC Catalog.",
"type": "object",
"required": [
"stac_version",
"type",
"id",
"description",
"license",
"extent",
"links"
],
"properties": {
"title": {
"title": "Title",
"type": "string"
},
"description": {
"title": "Description",
"type": "string",
"minLength": 1
},
"type": {
"title": "Type of STAC entity",
"const": "Collection"
},
"assets": {
"title": "Asset links",
"description": "Links to assets",
"type": "object",
"additionalProperties": {
"title": "Basic Descriptive Fields",
"$id": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/basics.json#",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"href"
],
"properties": {
"title": {
"title": "Asset title",
"description": "A human-readable title describing the Item.",
"type": "string"
},
"description": {
"title": "Asset description",
"description": "Detailed multi-line description to fully explain the Item.",
"type": "string"
},
"type": {
"title": "Asset type",
"type": "string"
},
"constellation": {
"title": "Constellation",
"type": "string"
},
"created": {
"title": "Creation Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"datetime": {
"title": "Date and Time",
"description": "The searchable date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"end_datetime": {
"title": "End Date and Time",
"description": "The searchable end date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"gsd": {
"title": "Ground Sample Distance",
"type": "number",
"exclusiveMinimum": 0
},
"href": {
"title": "Asset reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"instruments": {
"title": "Instruments",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"mission": {
"title": "Mission",
"type": "string"
},
"platform": {
"title": "Platform",
"type": "string"
},
"providers": {
"title": "Providers",
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string",
"minLength": 1
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"roles": {
"title": "Asset roles",
"type": "array",
"items": {
"type": "string"
}
},
"start_datetime": {
"title": "Start Date and Time",
"description": "The searchable start date/time of the assets, in UTC (Formatted in RFC 3339) ",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"updated": {
"title": "Last Update Time",
"type": "string",
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
}
},
"dependencies": {
"end_datetime": {
"required": [
"start_datetime"
]
},
"start_datetime": {
"required": [
"end_datetime"
]
}
}
}
},
"extent": {
"title": "Extents",
"type": "object",
"required": [
"spatial",
"temporal"
],
"properties": {
"spatial": {
"title": "Spatial extent object",
"type": "object",
"required": [
"bbox"
],
"properties": {
"bbox": {
"title": "Spatial extents",
"type": "array",
"items": {
"title": "Spatial extent",
"type": "array",
"items": {
"type": "number"
},
"oneOf": [
{
"maxItems": 4,
"minItems": 4
},
{
"maxItems": 6,
"minItems": 6
}
]
},
"minItems": 1
}
}
},
"temporal": {
"title": "Temporal extent object",
"type": "object",
"required": [
"interval"
],
"properties": {
"interval": {
"title": "Temporal extents",
"type": "array",
"items": {
"title": "Temporal extent",
"type": "array",
"items": {
"type": [
"string",
"null"
],
"format": "date-time",
"pattern": "(\\+00:00|Z)$"
},
"maxItems": 2,
"minItems": 2
},
"minItems": 1
}
}
}
}
},
"id": {
"title": "Identifier",
"type": "string",
"minLength": 1
},
"keywords": {
"title": "Keywords",
"type": "array",
"items": {
"type": "string"
}
},
"license": {
"title": "Collection License Name",
"type": "string",
"pattern": "^[\\w\\-\\.\\+]+$"
},
"links": {
"title": "Links",
"type": "array",
"items": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"description": {
"title": "Organization description",
"type": "string"
},
"name": {
"title": "Organization name",
"type": "string"
},
"roles": {
"title": "Organization roles",
"type": "array",
"items": {
"type": "string",
"enum": [
"producer",
"licensor",
"processor",
"host"
]
}
},
"url": {
"title": "Organization homepage",
"type": "string",
"format": "iri"
}
}
}
},
"stac_extensions": {
"title": "STAC extensions",
"type": "array",
"items": {
"title": "Reference to a JSON Schema",
"type": "string",
"format": "iri"
},
"uniqueItems": true
},
"stac_version": {
"title": "STAC version",
"type": "string",
"const": "1.0.0"
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
},
"link": {
"type": "object",
"required": [
"rel",
"href"
],
"properties": {
"title": {
"title": "Link title",
"type": "string"
},
"type": {
"title": "Link type",
"type": "string"
},
"href": {
"title": "Link reference",
"type": "string",
"format": "iri-reference",
"minLength": 1
},
"rel": {
"title": "Link relation type",
"type": "string",
"minLength": 1
}
}
},
"summaries": {
"type": "object",
"additionalProperties": {
"anyOf": [
{
"title": "JSON Schema",
"type": "object",
"minProperties": 1
},
{
"title": "Range",
"type": "object",
"required": [
"minimum",
"maximum"
],
"properties": {
"maximum": {
"title": "Maximum value",
"type": [
"number",
"string"
]
},
"minimum": {
"title": "Minimum value",
"type": [
"number",
"string"
]
}
}
},
{
"title": "Set of values",
"type": "array",
"items": {
"description": "For each field only the original data type of the property can occur (except for arrays), but we can't validate that in JSON Schema yet. See the sumamry description in the STAC specification for details."
},
"minItems": 1
}
]
}
}
}
}
]
}
}
}
2.1 Outputs validation¶
Schema can be used to fully validate an outputs dictionary (JSON Schema validation expected to pass):
In [6]:
Copied!
outputs = {
"example_out": "In girum imus nocte et consumimur igni"
}
validate(cwl_converter.get_outputs_json_schema(), outputs)
outputs = {
"example_out": "In girum imus nocte et consumimur igni"
}
validate(cwl_converter.get_outputs_json_schema(), outputs)
[required] - #/: 'cropped' is a required property
[required] - #/: 'ndwi' is a required property
[required] - #/: 'water_bodies' is a required property
[additionalProperties] - #/: Additional properties are not allowed ('example_out' was unexpected)