Pattern 12 - Water body detection based on NDWI and the otsu threshold v1.0.0

This patterns publishes all products generated by all steps

This software is licensed under the terms of the Apache License 2.0 license - SPDX short identifier: Apache-2.0

2025-01-01 - 2026-08-28T13:28:01.300 Copyright Make Earth Observation Great Again - > https://ror.org/9999cx000

Project Team

Authors

Name Email Organization Role Identifier
Lane, Lois lois.lane@meoga.com Make Earth Observation Great Again Project administration https://orcid.org/0000-9999-0000-9999
Kent, Clark clark.kent@meoga.com Make Earth Observation Great Again Supervision https://orcid.org/9999-0000-9999-0000

Contributors

Name Email Organization Role Identifier
Luthor, Lex lex.luthor@meoga.com Make Earth Observation Great Again Software None

User Manual

User Manual can be found on https://eoap.github.io/application-package-patterns/pattern-1/.

Runtime environment

Supported Operating Systems

  • Linux
  • macOS
  • macOS Server

Requirements


pattern-12

CWL Class

Workflow

Requirements

Inputs

Id Type Label Doc
aoi BBox: area of interest area of interest as a bounding box
bands array of string bands used for the NDWI bands used for the NDWI
item Directory Landsat-8/9 acquisition reference Landsat-8/9 acquisition reference
cropped-collection URI: cropped reflectances STAC Collection STAC Collection URL for the cropped reflectances
ndwi-collection URI: NDWI STAC Collection STAC Collection URL for the NDWI
water-bodies-collection URI: Water bodies STAC Collection STAC Collection URL for the water bodies

Steps

Id Runs Label Doc
node_crop #crop Crop reflectances Crop the reflectances from the Landsat-8/9 acquisition based on the area of interest and input bands
node_normalized_difference #norm_diff Compute NDWI Compute NDWI from the cropped reflectances
node_otsu #otsu Detect water bodies Detect water bodies based on the otsu threshold from the NDWI

Outputs

Id Type Label Doc
cropped array of Directory Cropped reflectances Cropped reflectances
ndwi Directory Normalized Difference Water Index Normalized Difference Water Index calculated from the input bands
water_bodies Directory Water bodies detected Water bodies detected based on the NDWI and otsu threshold

OGC API - Processes

When pattern-12 Workflow is exposed through OGC API - Processes - Part 1: Core, inputs and outputs fields below represent the interface of the getProcessDescription API.

Inputs

pattern-12 OGC API Processes JSON Inputs schema

Outputs

pattern-12 OGC API Processes JSON Outputs schema

UML Diagrams

Activity diagram

Learn more about the Activity diagram below.

pattern-12 flow diagram

Component diagram

Learn more about the Component diagram below.

pattern-12 flow diagram

Class diagram

Learn more about the Class diagram below.

pattern-12 flow diagram

Sequence diagram

Learn more about the Sequence diagram below.

pattern-12 flow diagram

State diagram

Learn more about the State diagram below.

pattern-12 flow diagram

Run in step

node_crop

crop

CWL Class

CommandLineTool

Inputs

Id Option Type
item --input-item Directory
aoi --aoi BBox:
epsg --epsg BBox:
band --band string
collection --collection URI:

Execution usage example:

runner crop-cli \
--input-item <ITEM> \
--aoi <AOI> \
--epsg <EPSG> \
--band <BAND> \
--collection <COLLECTION>

Run in step

node_normalized_difference

norm_diff

CWL Class

CommandLineTool

Inputs

Id Option Type
rasters --rasters array of Directory
item --item Directory
collection --collection URI:

Execution usage example:

runner ndi-cli \
--rasters <RASTERS> \
--item <ITEM> \
--collection <COLLECTION>

Run in step

node_otsu

otsu

CWL Class

CommandLineTool

Inputs

Id Option Type
raster --input-ndi Directory
item --item Directory
collection --collection URI:

Execution usage example:

runner otsu-cli \
--input-ndi <RASTER> \
--item <ITEM> \
--collection <COLLECTION>