Skip to content

pattern-9

Repository: https://github.com/eoap/application-package-patterns

Version: 2.0.0

License: {'@type': 's:CreativeWork', 's:identifier': 'Apache-2.0', 's:name': 'Apache License 2.0', 's:url': 'https://spdx.org/licenses/Apache-2.0.html'}

Author: Lois Lane (lois.lane@meoga.com)

Author: Clark Kent (clark.kent@meoga.com)

NDVI and NDWI vegetation indexes

NDVI and NDWI vegetation indexes from Landsat-8/9 acquisitions

Inputs

Name Type Description
aoi #BBox area of interest as a bounding box
epsg #CRS EPSG code
indexes #VegetationIndex[] indexes to compute
item Directory Landsat-8/9 acquisition reference

Outputs

Name Type Description
vegetation_indexes Directory[]? Vegetation indexes

Type https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI

name: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI
type: record
fields:
- name: value
  type: string

Type #BBox

name: '#BBox'
type: record
fields:
- name: bbox
  type:
    type: array
    items: double
- name: crs
  type: string

Type #SpectralBand

name: '#SpectralBand'
type: enum
symbols:
- red
- green
- blue
- nir
- nir08
- swir16
- swir22

Type #CRS

name: '#CRS'
type: enum
symbols:
- '4326'
- '3857'
- '32610'
- '32611'
- native

Type #VegetationIndex

name: '#VegetationIndex'
type: enum
symbols:
- ndvi
- ndwi
- none

clt

application-package-patterns: clt.

Inputs

Name Type Description
item Directory item.
aoi #BBox aoi.
epsg #CRS epsg.
index #VegetationIndex index.

Outputs

Name Type Description
vegetation_index Directory? vegetation index.

Type https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI

name: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI
type: record
fields:
- name: value
  type: string

Type #BBox

name: '#BBox'
type: record
fields:
- name: bbox
  type:
    type: array
    items: double
- name: crs
  type: string

Type #SpectralBand

name: '#SpectralBand'
type: enum
symbols:
- red
- green
- blue
- nir
- nir08
- swir16
- swir22

Type #CRS

name: '#CRS'
type: enum
symbols:
- '4326'
- '3857'
- '32610'
- '32611'
- native

Type #VegetationIndex

name: '#VegetationIndex'
type: enum
symbols:
- ndvi
- ndwi
- none

Run the wrapped pattern

The application uses local File/Directory ports. eoap-cwlwrap converts these to typed URI references and composes the locked mastering staging artifacts, using immutable GHCR container digests. Configure PATTERNS_S3_ENDPOINT for your S3 service.

python scripts/run-acceptance.py --case pattern-9

The typed application inputs are:

{
  "aoi": {
    "bbox": [
      -118.985,
      38.432,
      -118.183,
      38.938
    ],
    "crs": "CRS84"
  },
  "epsg": "4326",
  "indexes": [
    "ndvi",
    "none"
  ],
  "item": {
    "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1"
  }
}

The acceptance runner adds S3 credentials, bucket and a unique publication prefix. It verifies returned STAC links and georeferenced raster assets against the actual area of interest.

Diagrams

Activity

Activity diagram

PlantUML source

Component

Component diagram

PlantUML source

Class

Class diagram

PlantUML source

Sequence

Sequence diagram

PlantUML source

State

State diagram

PlantUML source

Ogc Processes Inputs

Ogc_Processes_Inputs diagram

PlantUML source

Ogc Processes Outputs

Ogc_Processes_Outputs diagram

PlantUML source