Logo
  • Home

Tutorials

  • Overview
  • Your first custom-type input
  • GeoJSON
    • GeoJSON Point
    • GeoJSON Feature
  • OGC Bounding Box
  • STAC
    • STAC Catalog
    • STAC Collection
    • STAC Item
      • CWL example
      • Input example
      • Execute the example
  • String formats
    • Datetime
    • URI
  • Experimental
    • Experimental Discovery Inputs
    • Experimental Process Inputs

How-to guides

  • Overview
  • Use an existing schema
  • Define new types

Reference

  • Overview
  • GeoJSON
    • Types
    • Schema details
  • OGC API Processes
    • Types
    • Schema details
  • STAC
    • Types
    • Schema details
  • String formats
    • Types
    • Schema details

Explanation

  • Custom types and their limits
EOAP schemas
  • Tutorials
  • STAC
  • STAC Item
  • Edit on eoap/schemas

STAC Item¶

This example uses a null geometry. The schema also declares named geometry record types.

Declaring STAC extensions does not add arbitrary extension properties to the CWL record. See custom types and their limits for the constraints and the option of passing a document URI.

CWL example¶

# Copyright 2025 Terradue
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cwlVersion: v1.2
class: CommandLineTool
label: "Echo STAC Item"
baseCommand: echo
requirements:
  - class: InlineJavascriptRequirement
  - class: SchemaDefRequirement
    types:
      - $import: https://raw.githubusercontent.com/eoap/schemas/main/stac.yaml
inputs:
  stac_item:
    type: https://raw.githubusercontent.com/eoap/schemas/main/stac.yaml#Item
    label: "STAC Catalog"
    doc: "STAC Catalog defined in STAC format"
    inputBinding:
      valueFrom: |
        ${
          // Validate if type is 'Feature'
          if ('Feature' != inputs.stac_item.type) {
            throw "Invalid STAC type: expected 'Feature', got '" + inputs.stac_item.type + "'";
          }
          // get the STAC Item id

          return "STAC Item ID: " + inputs.stac_item.id;
        }
outputs:
  echo_output:
    type: stdout
stdout: echo_output.txt

Input example¶

# Copyright 2025 Terradue
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

stac_item:
  type: Feature
  stac_version: 1.0.0
  stac_extensions:
    - https://stac-extensions.github.io/raster/v1.1.0/schema.json
    - https://stac-extensions.github.io/eo/v1.1.0/schema.json
    - https://stac-extensions.github.io/view/v1.0.0/schema.json
    - https://stac-extensions.github.io/projection/v2.0.0/schema.json
    - https://landsat.usgs.gov/stac/landsat-extension/v1.1.1/schema.json
    - https://stac-extensions.github.io/classification/v2.0.0/schema.json
    - https://stac-extensions.github.io/scientific/v1.0.0/schema.json
  id: LC08_L2SP_042033_20231007_02_T1
  bbox:
    - 8.3986668
    - 47.3783503
    - 8.4571096
    - 47.4058268
  properties:
    gsd: 30
    created: '2023-10-13T09:19:56.326826Z'
    datetime: '2023-10-07T18:33:27.281508Z'
    platform: landsat-8
    description: Landsat Collection 2 Level-2
    instruments:
      - oli
      - tirs
  links:
    - rel: collection
      href: https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2
      type: application/json
    - rel: parent
      href: https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2
      type: application/json
    - rel: root
      href: https://planetarycomputer.microsoft.com/api/stac/v1/
      type: application/json
    - rel: cite-as
      href: https://doi.org/10.5066/P9OGBGM6
      title: Landsat 8-9 OLI/TIRS Collection 2 Level-2
    - rel: via
      href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l2-sr/items/LC08_L2SP_042033_20231007_20231011_02_T1_SR
      type: application/json
      title: USGS STAC Item
    - rel: via
      href: https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l2-st/items/LC08_L2SP_042033_20231007_20231011_02_T1_ST
      type: application/json
      title: USGS STAC Item
    - rel: preview
      href: https://planetarycomputer.microsoft.com/api/data/v1/item/map?collection=landsat-c2-l2&item=LC08_L2SP_042033_20231007_02_T1
      type: text/html
      title: Map of item
    - rel: derived_from
      href: https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1
    - rel: self
      href: "/data/work/github/eoap/application-package-patterns/data/LC08_L2SP_042033_20231007_02_T1/LC08_L2SP_042033_20231007_02_T1.json"
      type: application/json
  assets:
    qa:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_QA.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Surface Temperature Quality Assessment Band
      description: Collection 2 Level-2 Quality Assessment Band (ST_QA) Surface Temperature Product
      roles:
        - data
    ang:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ANG.txt
      type: text/plain
      title: Angle Coefficients File
      description: Collection 2 Level-1 Angle Coefficients File
      roles:
        - metadata
    red:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B4.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Red Band
      description: Collection 2 Level-2 Red Band (SR_B4) Surface Reflectance
      roles:
        - data
        - reflectance
    blue:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B2.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Blue Band
      description: Collection 2 Level-2 Blue Band (SR_B2) Surface Reflectance
      roles:
        - data
        - reflectance
    drad:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_DRAD.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Downwelled Radiance Band
      description: Collection 2 Level-2 Downwelled Radiance Band (ST_DRAD) Surface Temperature Product
      roles:
        - data
    emis:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_EMIS.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Emissivity Band
      description: Collection 2 Level-2 Emissivity Band (ST_EMIS) Surface Temperature Product
      roles:
        - data
    emsd:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_EMSD.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Emissivity Standard Deviation Band
      description: Collection 2 Level-2 Emissivity Standard Deviation Band (ST_EMSD) Surface Temperature Product
      roles:
        - data
    trad:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_TRAD.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Thermal Radiance Band
      description: Collection 2 Level-2 Thermal Radiance Band (ST_TRAD) Surface Temperature Product
      roles:
        - data
    urad:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_URAD.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Upwelled Radiance Band
      description: Collection 2 Level-2 Upwelled Radiance Band (ST_URAD) Surface Temperature Product
      roles:
        - data
    atran:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_ATRAN.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Atmospheric Transmittance Band
      description: Collection 2 Level-2 Atmospheric Transmittance Band (ST_ATRAN) Surface Temperature Product
      roles:
        - data
    cdist:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_CDIST.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Cloud Distance Band
      description: Collection 2 Level-2 Cloud Distance Band (ST_CDIST) Surface Temperature Product
      roles:
        - data
    green:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B3.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Green Band
      description: Collection 2 Level-2 Green Band (SR_B3) Surface Reflectance
      roles:
        - data
        - reflectance
    nir08:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B5.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Near Infrared Band 0.8
      description: Collection 2 Level-2 Near Infrared Band 0.8 (SR_B5) Surface Reflectance
      roles:
        - data
        - reflectance
    lwir11:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_ST_B10.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Surface Temperature Band
      description: Collection 2 Level-2 Thermal Infrared Band (ST_B10) Surface Temperature
      gsd: 100
      roles:
        - data
        - temperature
    swir16:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B6.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Short-wave Infrared Band 1.6
      description: Collection 2 Level-2 Short-wave Infrared Band 1.6 (SR_B6) Surface Reflectance
      roles:
        - data
        - reflectance
    swir22:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B7.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Short-wave Infrared Band 2.2
      description: Collection 2 Level-2 Short-wave Infrared Band 2.2 (SR_B7) Surface Reflectance
      roles:
        - data
        - reflectance
    coastal:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_B1.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Coastal/Aerosol Band
      description: Collection 2 Level-2 Coastal/Aerosol Band (SR_B1) Surface Reflectance
      roles:
        - data
        - reflectance
    mtl.txt:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_MTL.txt
      type: text/plain
      title: Product Metadata File (txt)
      description: Collection 2 Level-2 Product Metadata File (txt)
      roles:
        - metadata
    mtl.xml:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_MTL.xml
      type: application/xml
      title: Product Metadata File (xml)
      description: Collection 2 Level-2 Product Metadata File (xml)
      roles:
        - metadata
    mtl.json:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_MTL.json
      type: application/json
      title: Product Metadata File (json)
      description: Collection 2 Level-2 Product Metadata File (json)
      roles:
        - metadata
    qa_pixel:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_QA_PIXEL.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Pixel Quality Assessment Band
      description: Collection 2 Level-1 Pixel Quality Assessment Band (QA_PIXEL)
      roles:
        - cloud
        - cloud-shadow
        - snow-ice
        - water-mask
    qa_radsat:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_QA_RADSAT.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Radiometric Saturation and Terrain Occlusion Quality Assessment Band
      description: Collection 2 Level-1 Radiometric Saturation and Terrain Occlusion Quality Assessment Band (QA_RADSAT)
      roles:
        - saturation
    qa_aerosol:
      href: LC08_L2SP_042033_20231007_20231011_02_T1_SR_QA_AEROSOL.TIF
      type: image/tiff; application=geotiff; profile=cloud-optimized
      title: Aerosol Quality Assessment Band
      description: Collection 2 Level-2 Aerosol Quality Assessment Band (SR_QA_AEROSOL) Surface Reflectance Product
      roles:
        - data-mask
        - water-mask
    tilejson:
      href: tilejson.json
      type: application/json
      title: TileJSON with default rendering
      roles:
        - tiles
    rendered_preview:
      href: preview.png
      type: image/png
      title: Rendered preview
      rel: preview
      roles:
        - overview
  collection: landsat-c2-l2

Execute the example¶

Run the example with:

cwltool examples/stac/item.cwl examples/stac/item.yaml

This produces the output:

INFO /opt/hostedtoolcache/Python/3.12.14/x64/bin/cwltool 3.3.20260925135507
INFO Resolved '../../examples/stac/item.cwl' to 'file:///home/runner/work/schemas/schemas/examples/stac/item.cwl'
INFO [job item.cwl] /tmp/187ip8y0$ echo \
    'STAC Item ID: LC08_L2SP_042033_20231007_02_T1' > /tmp/187ip8y0/echo_output.txt
INFO [job item.cwl] completed success
INFO Final process status is success

The content of the echo_output.txt file is:

STAC Item ID: LC08_L2SP_042033_20231007_02_T1
Previous Next

Apache License, Version 2.0

Built with MkDocs using a theme provided by Read the Docs.
eoap/schemas « Previous Next »