cwlVersion: v1.2 $namespaces: s: https://schema.org/ s:softwareVersion: 1.0.0 schemas: - http://schema.org/version/9.0/schemaorg-current-http.rdf $graph: - class: Workflow id: water-bodies label: Water bodies detection based on NDWI and the otsu threshold doc: Water bodies detection based on NDWI and otsu threshold applied to a single Sentinel-2 COG STAC item requirements: - class: ScatterFeatureRequirement inputs: aoi: label: area of interest doc: area of interest as a bounding box type: string epsg: label: EPSG code doc: EPSG code type: string default: "EPSG:4326" bands: label: bands used for the NDWI doc: bands used for the NDWI type: string[] default: ["green", "nir"] item: doc: Reference to a STAC item label: STAC item reference type: string outputs: - id: stac_catalog outputSource: - node_stac/stac_catalog type: Directory steps: node_crop: run: "#crop" in: item: item aoi: aoi epsg: epsg band: bands out: - cropped scatter: band scatterMethod: dotproduct node_normalized_difference: run: "#norm_diff" in: rasters: source: node_crop/cropped out: - ndwi node_otsu: run: "#otsu" in: raster: source: node_normalized_difference/ndwi out: - binary_mask_item node_stac: run: "#stac" in: item: item rasters: source: node_otsu/binary_mask_item out: - stac_catalog - class: CommandLineTool id: crop requirements: InlineJavascriptRequirement: {} EnvVarRequirement: envDef: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PYTHONPATH: /app ResourceRequirement: coresMax: 1 ramMax: 512 NetworkAccess: networkAccess: true hints: DockerRequirement: dockerPull: localhost/crop:latest baseCommand: ["python", "-m", "app"] arguments: [] inputs: item: type: string inputBinding: prefix: --input-item aoi: type: string inputBinding: prefix: --aoi epsg: type: string inputBinding: prefix: --epsg band: type: string inputBinding: prefix: --band outputs: cropped: outputBinding: glob: '*.tif' type: File - class: CommandLineTool id: norm_diff requirements: InlineJavascriptRequirement: {} EnvVarRequirement: envDef: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PYTHONPATH: /app ResourceRequirement: coresMax: 1 ramMax: 512 NetworkAccess: networkAccess: false hints: DockerRequirement: dockerPull: localhost/norm-diff:latest baseCommand: ["python", "-m", "app"] arguments: [] inputs: rasters: type: File[] inputBinding: position: 1 outputs: ndwi: outputBinding: glob: '*.tif' type: File - class: CommandLineTool id: otsu requirements: InlineJavascriptRequirement: {} EnvVarRequirement: envDef: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PYTHONPATH: /app ResourceRequirement: coresMax: 1 ramMax: 512 NetworkAccess: networkAccess: false hints: DockerRequirement: dockerPull: localhost/otsu:latest baseCommand: ["python", "-m", "app"] arguments: [] inputs: raster: type: File inputBinding: position: 1 outputs: binary_mask_item: outputBinding: glob: '*.tif' type: File - class: CommandLineTool id: stac requirements: InlineJavascriptRequirement: {} EnvVarRequirement: envDef: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PYTHONPATH: /app ResourceRequirement: coresMax: 1 ramMax: 512 NetworkAccess: networkAccess: true hints: DockerRequirement: dockerPull: localhost/stac:latest baseCommand: ["python", "-m", "app"] arguments: [] inputs: item: type: string inputBinding: prefix: --input-item rasters: type: File inputBinding: prefix: --water-body outputs: stac_catalog: outputBinding: glob: . type: Directory