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 | 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 | 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
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
Outputs
UML Diagrams
Activity diagram
Learn more about the Activity diagram below.
Component diagram
Learn more about the Component diagram below.
Class diagram
Learn more about the Class diagram below.
Sequence diagram
Learn more about the Sequence diagram below.
State diagram
Learn more about the State diagram below.
Run in step
node_crop
crop
CWL Class
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
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
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>