diff --git a/.env b/.env new file mode 100644 index 0000000..c3feae8 --- /dev/null +++ b/.env @@ -0,0 +1,19 @@ +# Copyright 2026 Transpiler-Mate +# +# 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. + +# Required by Task remote includes. +# See https://github.com/Terradue/taskfile-utils +TASK_X_REMOTE_TASKFILES=1 + +# Optional override used by Taskfile.yaml. diff --git a/Taskfile.yaml b/Taskfile.yaml index ab79a7a..1d87d08 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -5,6 +5,35 @@ includes: local: Taskfile-local.yaml tasks: + generate_pattern_doc: + cmds: + - | + transpiler-mate cwl2markdown --output ./docs ./cwl-workflow/pattern-{{.PATTERN_INDEX}}.cwl#pattern-{{.PATTERN_INDEX}} + - | + transpiler-mate cwl2puml --convert-image --image-format svg --output ./docs ./cwl-workflow/pattern-{{.PATTERN_INDEX}}.cwl + + generate_mkdoc: + cmds: + - pip install "transpiler-mate-runtime @ git+https://github.com/sim13pods/transpiler-mate-runtime.git@main" + - pip install "cwl2markdown @ git+https://github.com/sim13pods/cwl2markdown.git@main" + - pip install "cwl2puml @ git+https://github.com/Terradue/cwl2puml.git@transpiler-mate" + - for: + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - '10' + - '11' + - '12' + task: generate_pattern_doc + vars: + PATTERN_INDEX: '{{.ITEM}}' + build: - task: remote:build diff --git a/cwl-workflow/pattern-1-inputs.json b/cwl-workflow/pattern-1-inputs.json new file mode 100644 index 0000000..d6818d1 --- /dev/null +++ b/cwl-workflow/pattern-1-inputs.json @@ -0,0 +1,9 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-1.cwl b/cwl-workflow/pattern-1.cwl index 5b17de8..e1635d7 100644 --- a/cwl-workflow/pattern-1.cwl +++ b/cwl-workflow/pattern-1.cwl @@ -1,57 +1,97 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ - -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf - -s:softwareVersion: 1.0.0 - -s:applicationCategory: "Earth Observation application package" -s:keywords: -- '@type': s:DefinedTerm - s:name: application-type - s:description: delineation -- '@type': s:DefinedTerm - s:name: domain - s:description: hydrology - -s:thumbnail: - '@type': s:ImageObject - s:contentUrl: "https://s3.waw3-2.cloudferro.com/swift/v1/stac-png/S2_L2A.jpg" - s:caption: "Water bodies detected based on the NDWI and otsu threshold" - s:encodingFormat: "image/jpeg" - s:height: "360" - s:width: "640" + s: "https://schema.org/" +"@type": "s:SoftwareApplication" +s:name: Pattern 1 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * one input parameter of type `Directory` + * one output parameter of type `Directory` + This scenario typically takes one input, applies an algorithm and produces a result + Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input a Landsat-8/9 acquisition +s:dateCreated: "2025-01-01" s:license: - '@type': s:CreativeWork - s:name: "License CC BY 4.0" - s:url: "https://creativecommons.org/licenses/by/4.0/" - s:encodingFormat: "text/html" - + "@type": "s:CreativeWork" + s:identifier: Apache-2.0 + s:name: Apache License 2.0 + s:url: "https://spdx.org/licenses/Apache-2.0.html" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 s:softwareHelp: -- '@type': s:CreativeWork - s:name: "User Manual" - s:url: "https://eoap.github.io/application-package-patterns/" - s:encodingFormat: "text/html" - + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" s:author: - '@type': s:Person - s:givenName: "John" - s:familyName: "Doe" - s:affiliation: - '@type': s:Organization - s:name: "Make EO Great Again Platform" - s:email: "john.doe@meogap.org" - + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-1 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 Landsat-8/9 acquisition requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -133,5 +173,3 @@ $graph: outputBinding: glob: . type: Directory - - diff --git a/cwl-workflow/pattern-10-inputs.json b/cwl-workflow/pattern-10-inputs.json new file mode 100644 index 0000000..43ad316 --- /dev/null +++ b/cwl-workflow/pattern-10-inputs.json @@ -0,0 +1,15 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "indexes": ["ndvi", "ndwi"], + "items": [ + { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1" + } + ] +} \ No newline at end of file diff --git a/cwl-workflow/pattern-10.cwl b/cwl-workflow/pattern-10.cwl index 92d4700..11e75cd 100644 --- a/cwl-workflow/pattern-10.cwl +++ b/cwl-workflow/pattern-10.cwl @@ -1,26 +1,85 @@ -# ## 10. multiple inputs, multiple outputs - -# The CWL includes: -# - input parameter of type `Directory[]` -# - output parameter of type `Directory[]` - -# This scenario takes as input an array of acquisition, applies an algorithm to each of them. - - -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 10 - NDVI and NDWI vegetation indexes +s:description: | + This pattern shows how to flatten an array of array of `Directory` +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: vegetation-index - - '@type': s:PropertyValue - s:name: domain - s:value: agriculture -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-10 @@ -29,6 +88,8 @@ $graph: requirements: SubworkflowFeatureRequirement: {} ScatterFeatureRequirement: {} + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -62,6 +123,8 @@ $graph: steps: subworkflow: run: "#vegetation_indexes" + label: Compute vegetation indexes + doc: Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisitions in: item: items aoi: aoi @@ -75,6 +138,8 @@ $graph: flatten: run: "#flatten_array" + label: Flatten Directory[][] → Directory[] + doc: Flatten the nested array of Directories into a single array in: nested: subworkflow/vegetation_indexes out: @@ -186,4 +251,4 @@ $graph: expression: | ${ return { flat: [].concat(...inputs.nested) }; } requirements: - - class: InlineJavascriptRequirement \ No newline at end of file + - class: InlineJavascriptRequirement diff --git a/cwl-workflow/pattern-11-inputs.json b/cwl-workflow/pattern-11-inputs.json new file mode 100644 index 0000000..a4afb46 --- /dev/null +++ b/cwl-workflow/pattern-11-inputs.json @@ -0,0 +1,13 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + "dem": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://elevationeuwest.blob.core.windows.net/copernicus-dem/COP30_hh/Copernicus_DSM_COG_10_N38_00_W119_00_DEM.tif" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-11.cwl b/cwl-workflow/pattern-11.cwl index 261905b..1615821 100644 --- a/cwl-workflow/pattern-11.cwl +++ b/cwl-workflow/pattern-11.cwl @@ -1,23 +1,93 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 11 - Water bodies detection based on NDWI and the otsu threshold (with DEM) +s:description: | + This pattern uses as input a File and a Directory +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: delineation - - '@type': s:PropertyValue - s:name: domain - s:value: hydrology -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-11 label: Water bodies detection based on NDWI and the otsu threshold (with DEM) doc: Water bodies detection based on NDWI and otsu threshold applied to a single Landsat-8/9 acquisition requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -52,6 +122,8 @@ $graph: steps: step: run: "#clt" + label: Detect water bodies + doc: Detect water bodies based on the NDWI and otsu threshold from Landsat-8/9 acquisition and DEM in: item: item aoi: aoi @@ -106,4 +178,3 @@ $graph: glob: . type: Directory - diff --git a/cwl-workflow/pattern-12-inputs.json b/cwl-workflow/pattern-12-inputs.json new file mode 100644 index 0000000..166f4ca --- /dev/null +++ b/cwl-workflow/pattern-12-inputs.json @@ -0,0 +1,24 @@ +{ + "aoi": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox", + "bbox": [-118.985, 38.432, -118.183, 38.938], + "crs": "CRS84" + }, + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + "bands": ["green", "nir08"], + "cropped-collection": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI", + "value": "https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/cropped_collection.json" + }, + "ndwi-collection": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI", + "value": "https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/ndi_collection.json" + }, + "water-bodies-collection": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI", + "value": "https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/water_bodies_collection.json" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-12.cwl b/cwl-workflow/pattern-12.cwl index c3d637f..2ec2a89 100644 --- a/cwl-workflow/pattern-12.cwl +++ b/cwl-workflow/pattern-12.cwl @@ -1,9 +1,85 @@ -cwlVersion: v1.2 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 12 - Water body detection based on NDWI and the otsu threshold +s:description: | + This patterns publishes all products generated by all steps +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.2 $graph: - class: Workflow id: pattern-12 @@ -15,6 +91,8 @@ $graph: types: - $import: https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml - $import: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -63,6 +141,8 @@ $graph: steps: node_crop: run: "#crop" + label: Crop reflectances + doc: Crop the reflectances from the Landsat-8/9 acquisition based on the area of interest and input bands in: item: item aoi: aoi @@ -75,6 +155,8 @@ $graph: scatterMethod: dotproduct node_normalized_difference: run: "#norm_diff" + label: Compute NDWI + doc: Compute NDWI from the cropped reflectances in: rasters: source: node_crop/cropped @@ -84,6 +166,8 @@ $graph: - ndwi node_otsu: run: "#otsu" + label: Detect water bodies + doc: Detect water bodies based on the otsu threshold from the NDWI in: raster: source: node_normalized_difference/ndwi diff --git a/cwl-workflow/pattern-2-inputs.json b/cwl-workflow/pattern-2-inputs.json new file mode 100644 index 0000000..b9d4384 --- /dev/null +++ b/cwl-workflow/pattern-2-inputs.json @@ -0,0 +1,13 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "item_1": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + "item_2": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-2.cwl b/cwl-workflow/pattern-2.cwl index d0c5551..73cfa4e 100644 --- a/cwl-workflow/pattern-2.cwl +++ b/cwl-workflow/pattern-2.cwl @@ -1,23 +1,97 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" +"@type": "s:SoftwareApplication" +s:name: Pattern 2 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * two input parameters of type `Directory` + * one output parameter of type `Directory` + + This scenario typically takes as input one pre-event acquisition, one post-even acquisition, applies an algorithm and produces a result + + Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input two Landsat-8/9 acquisitions +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: delineation - - '@type': s:PropertyValue - s:name: domain - s:value: hydrology -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-2 label: Water bodies detection based on NDWI and the otsu threshold doc: Water bodies detection based on NDWI and otsu threshold applied to a pair of Landsat-8/9 acquisitions requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -52,6 +126,8 @@ $graph: steps: step: run: "#clt" + label: Detect water bodies + doc: Detect water bodies based on the NDWI and otsu threshold from Landsat- in: item_1: item_1 item_2: item_2 @@ -107,4 +183,3 @@ $graph: glob: . type: Directory - diff --git a/cwl-workflow/pattern-3-inputs.json b/cwl-workflow/pattern-3-inputs.json new file mode 100644 index 0000000..1106ae0 --- /dev/null +++ b/cwl-workflow/pattern-3-inputs.json @@ -0,0 +1,15 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "items": [ + { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1" + } + ] +} \ No newline at end of file diff --git a/cwl-workflow/pattern-3.cwl b/cwl-workflow/pattern-3.cwl index 64c7bdc..1b364da 100644 --- a/cwl-workflow/pattern-3.cwl +++ b/cwl-workflow/pattern-3.cwl @@ -1,17 +1,90 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 3 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * scatter on an input parameter of type `Directory[]` + * one output parameter of type `Directory` + + This scenario typically takes as input a stack of acquisitions, applies an aggregation algorithm and produces a result + + Implementation: detect water bodies taking as input a list of Landsat-8/9 acquisitions producing a STAC Catalog with n STAC Items +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: delineation - - '@type': s:PropertyValue - s:name: domain - s:value: hydrology -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-3 @@ -19,6 +92,8 @@ $graph: doc: Water bodies detection based on NDWI and otsu threshold applied to a set of Landsat-8/9 acquisitions requirements: ScatterFeatureRequirement: {} + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -49,6 +124,8 @@ $graph: steps: step: run: "#clt" + label: Detect water bodies + doc: Detect water bodies based on the NDWI and otsu threshold from Landsat- in: item: items aoi: aoi @@ -102,4 +179,3 @@ $graph: glob: . type: Directory - diff --git a/cwl-workflow/pattern-4-inputs.json b/cwl-workflow/pattern-4-inputs.json new file mode 100644 index 0000000..e1b6c29 --- /dev/null +++ b/cwl-workflow/pattern-4-inputs.json @@ -0,0 +1,8 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-4.cwl b/cwl-workflow/pattern-4.cwl index 21224d4..25d9271 100644 --- a/cwl-workflow/pattern-4.cwl +++ b/cwl-workflow/pattern-4.cwl @@ -1,23 +1,98 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 4 - NDVI and NDWI vegetation indexes +s:description: | + * one input parameter of type `Directory` + * two output parameters of type `Directory` + + This scenario takes as input an acquisition, applies two algorithms and generates two outputs. + + Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition. The output include two STAC Catalogs, each with a single STAC Item +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: vegetation-index - - '@type': s:PropertyValue - s:name: domain - s:value: agriculture -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-4 label: NDVI and NDWI vegetation indexes doc: NDVI and NDWI vegetation indexes from Landsat-8/9 acquisitions requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -49,6 +124,8 @@ $graph: steps: step: run: "#clt" + label: Compute NDVI and NDWI + doc: Compute NDVI and NDWI from Landsat-8/9 acquisitions in: item: item aoi: aoi @@ -95,4 +172,3 @@ $graph: outputBinding: glob: ndwi type: Directory - diff --git a/cwl-workflow/pattern-5-inputs.json b/cwl-workflow/pattern-5-inputs.json new file mode 100644 index 0000000..742eddb --- /dev/null +++ b/cwl-workflow/pattern-5-inputs.json @@ -0,0 +1,9 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "indexes": ["ndvi", "ndwi"], + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-5.cwl b/cwl-workflow/pattern-5.cwl index 421eedb..7237355 100644 --- a/cwl-workflow/pattern-5.cwl +++ b/cwl-workflow/pattern-5.cwl @@ -1,28 +1,90 @@ -# ## 5. one input/scatter on outputs - -# The CWL includes: -# - one input parameter of type `Directory` -# - scatter on an output parameter of type `Directory[]` - -# This scenario takes as input an acquisition, applies an algorithm and generates several outputs +$namespaces: + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 5 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * one input parameter of type `Directory` + * scatter on an output parameter of type `Directory[]` -# Implementation: process the NDVI and NDWI taking as input a Landsat-9 acquisition and generating a stack of STAC Catalogs + This scenario takes as input an acquisition, applies an algorithm and generates several outputs + Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition and generating a stack of STAC Catalogs +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" cwlVersion: v1.0 -$namespaces: - s: https://schema.org/ -s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: vegetation-index - - '@type': s:PropertyValue - s:name: domain - s:value: agriculture -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf $graph: - class: Workflow id: pattern-5 @@ -30,6 +92,8 @@ $graph: doc: NDVI and NDWI vegetation indexes from Landsat-8/9 acquisitions requirements: ScatterFeatureRequirement: {} + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -60,6 +124,8 @@ $graph: steps: step: run: "#clt" + label: Compute vegetation indexes + doc: Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisition in: item: item aoi: aoi @@ -112,4 +178,3 @@ $graph: glob: . type: Directory - diff --git a/cwl-workflow/pattern-6-inputs.json b/cwl-workflow/pattern-6-inputs.json new file mode 100644 index 0000000..e1b6c29 --- /dev/null +++ b/cwl-workflow/pattern-6-inputs.json @@ -0,0 +1,8 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-6.cwl b/cwl-workflow/pattern-6.cwl index 4d99f0f..91bd0c4 100644 --- a/cwl-workflow/pattern-6.cwl +++ b/cwl-workflow/pattern-6.cwl @@ -1,27 +1,95 @@ -# ## 6. one input, no output +$namespaces: + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Water bodies detection based on NDWI and the otsu threshold +s:description: | + NDVI mean from Landsat-8/9 acquisitions -# The CWL includes: -# - one input parameter of type `Directory` -# - there are no output parameters of type `Directory` + 6. one input, no output -# This corner-case scenario takes as input an acquisition, applies an algorithm and generates an output that is not a STAC Catalog + The CWL includes: + - one input parameter of type `Directory` + - there are no output parameters of type `Directory` -# Implementation: derive the NDVI mean taking as input a Landsat-9 acquisition + This corner-case scenario takes as input an acquisition, applies an algorithm and generates an output that is not a STAC Catalog -cwlVersion: v1.0 -$namespaces: - s: https://schema.org/ + Implementation: derive the NDVI mean taking as input a Landsat-9 acquisition +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: vegetation-index - - '@type': s:PropertyValue - s:name: domain - s:value: agriculture -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-6 @@ -29,6 +97,8 @@ $graph: doc: NDVI mean from Landsat-8/9 acquisitions requirements: ScatterFeatureRequirement: {} + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -53,6 +123,8 @@ $graph: steps: step: run: "#clt" + label: Compute NDVI mean + doc: Compute NDVI mean from the Landsat-8/9 acquisition in: item: item aoi: aoi @@ -98,4 +170,3 @@ $graph: loadContents: true outputEval: $(parseFloat(self[0].contents)) type: float - diff --git a/cwl-workflow/pattern-7-inputs.json b/cwl-workflow/pattern-7-inputs.json new file mode 100644 index 0000000..b9d4384 --- /dev/null +++ b/cwl-workflow/pattern-7-inputs.json @@ -0,0 +1,13 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "item_1": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + "item_2": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-7.cwl b/cwl-workflow/pattern-7.cwl index a1caba8..5f55dc3 100644 --- a/cwl-workflow/pattern-7.cwl +++ b/cwl-workflow/pattern-7.cwl @@ -1,23 +1,98 @@ -cwlVersion: v1.0 $namespaces: - s: https://schema.org/ + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 7 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * one optional input parameter of type `Directory?` + * one output parameter of type `Directory` + + This scenario may take as input an acquisition, an optional input, applies an algorithm and generates an output + + Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding. +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: delineation - - '@type': s:PropertyValue - s:name: domain - s:value: hydrology -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-7 label: Water bodies detection based on NDWI and the otsu threshold doc: Water bodies detection based on NDWI and otsu threshold applied to a mandatory Landsat-8/9 acquisition and an optional second acquisition requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -52,6 +127,8 @@ $graph: steps: step: run: "#clt" + label: Detect water bodies + doc: Detect water bodies based on the NDWI and otsu threshold from Landsat- in: item_1: item_1 item_2: item_2 @@ -107,4 +184,3 @@ $graph: glob: . type: Directory - diff --git a/cwl-workflow/pattern-8-inputs.json b/cwl-workflow/pattern-8-inputs.json new file mode 100644 index 0000000..c627fec --- /dev/null +++ b/cwl-workflow/pattern-8-inputs.json @@ -0,0 +1,10 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "bands": ["green", "nir08"], + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + }, + "produce_output": true +} \ No newline at end of file diff --git a/cwl-workflow/pattern-8.cwl b/cwl-workflow/pattern-8.cwl index d28f62d..50e4d66 100644 --- a/cwl-workflow/pattern-8.cwl +++ b/cwl-workflow/pattern-8.cwl @@ -1,33 +1,98 @@ -# ## 8. one input, optional output - -# The CWL includes: -# - one input parameter of type `Directory` -# - one output parameter of type `Directory?` - -# This scenario takes as input an acquisition, applies an algorithm and may or may not generate and output +$namespaces: + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 8 - Water bodies detection based on NDWI and the otsu threshold +s:description: | + * one input parameter of type `Directory` + * one output parameter of type `Directory?` -# Implementation: process the NDVI taking as input a Landsat-9 acquisition with a parameter to create or not the output + This scenario takes as input an acquisition, applies an algorithm and may or may not generate and output -cwlVersion: v1.0 -$namespaces: - s: https://schema.org/ + Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding. +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: delineation - - '@type': s:PropertyValue - s:name: domain - s:value: hydrology -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + +cwlVersion: v1.0 $graph: - class: Workflow id: pattern-8 label: Water bodies detection based on NDWI and the otsu threshold doc: Water bodies detection based on NDWI and otsu threshold applied to an Landsat-8/9 acquisition reference requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -63,6 +128,8 @@ $graph: steps: step: run: "#clt" + label: Detect water bodies + doc: Detect water bodies based on the NDWI and otsu threshold from Landsat-8/9 acquisition in: item: item aoi: aoi @@ -118,4 +185,3 @@ $graph: glob: output type: Directory? - diff --git a/cwl-workflow/pattern-9-inputs.json b/cwl-workflow/pattern-9-inputs.json new file mode 100644 index 0000000..b3ae4cf --- /dev/null +++ b/cwl-workflow/pattern-9-inputs.json @@ -0,0 +1,9 @@ +{ + "aoi": "-118.985,38.432,-118.183,38.938", + "epsg": "EPSG:4326", + "indexes": ["ndvi", "none"], + "item": { + "class": "https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL", + "value": "https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1" + } +} \ No newline at end of file diff --git a/cwl-workflow/pattern-9.cwl b/cwl-workflow/pattern-9.cwl index 3504059..2433d6f 100644 --- a/cwl-workflow/pattern-9.cwl +++ b/cwl-workflow/pattern-9.cwl @@ -1,26 +1,88 @@ -# ## 9. one input, optional outputs - -# The CWL includes: -# - one input parameter of type `Directory` -# - output parameter of type `Directory[]?` - -# This scenario takes as input an acquisition, applies an algorithm and may or may not generate outputs +$namespaces: + s: "https://schema.org/" + eoap: "http://oeap.github.io/schema#" +"@type": "s:SoftwareApplication" +s:name: Pattern 9 - NDVI and NDWI vegetation indexes +s:description: | + * one input parameter of type `Directory` + * output parameter of type `Directory[]?` + This scenario takes as input an acquisition, applies an algorithm and may or may not generate outputs +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" cwlVersion: v1.0 -$namespaces: - s: https://schema.org/ -s:softwareVersion: 1.0.0 -s:applicationCategory: "Earth Observation application package" -s:additionalProperty: - - '@type': s:PropertyValue - s:name: application-type - s:value: vegetation-index - - '@type': s:PropertyValue - s:name: domain - s:value: agriculture -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf $graph: - class: Workflow id: pattern-9 @@ -28,6 +90,8 @@ $graph: doc: NDVI and NDWI vegetation indexes from Landsat-8/9 acquisitions requirements: ScatterFeatureRequirement: {} + hints: + - class: eoap:JSONSchemaHint inputs: aoi: label: area of interest @@ -58,6 +122,8 @@ $graph: steps: step: run: "#clt" + label: Compute vegetation indexes + doc: Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisition in: item: item aoi: aoi @@ -110,4 +176,3 @@ $graph: glob: output type: Directory? - diff --git a/cwl-workflow/test-custom-types.cwl b/cwl-workflow/test-custom-types.cwl index f23d2e9..9a47148 100644 --- a/cwl-workflow/test-custom-types.cwl +++ b/cwl-workflow/test-custom-types.cwl @@ -1,11 +1,79 @@ -cwlVersion: v1.2 +cwlVersion: v1.0 +schemas: +- http://schema.org/version/9.0/schemaorg-current-http.rdf $namespaces: s: https://schema.org/ + eoap: "http://oeap.github.io/schema#" -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf +s:name: Echo custom CWL Types +s:description: This workflow demonstrates usage of all CWL primitive types. It runs the `echo-tool` with default values and captures the output in a file. +s:dateCreated: '2025-01-01' +s:license: + '@type': s:CreativeWork + s:identifier: Apache-2.0 + +s:keywords: +- CWL +- Workflow +- Earth Observation + +s:operatingSystem: +- Linux +- macOS +s:softwareRequirements: +- https://cwltool.readthedocs.io/en/latest/ +- https://www.python.org/ s:softwareVersion: 1.0.0 +s:softwareHelp: +- '@type': s:CreativeWork + s:name: User Manual + s:url: tps://eoap.github.io/application-package-patterns/ + +s:publisher: + '@type': s:Organization + s:name: Make Earth Observation Great Again + s:email: info@meoga.com + s:identifier: https://ror.org/9999cx000 + +s:author: +- '@type': s:Role + s:roleName: Project Manager + s:additionalType: http://purl.org/spar/datacite/ProjectManager + s:author: + '@type': s:Person + s:givenName: Lois + s:familyName: Lane + s:email: lois.lane@dailyplanet.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Daily Planet + s:identifier: https://ror.org/0000cx000 +- '@type': s:Role + s:roleName: Researcher + s:additionalType: http://purl.org/spar/datacite/Researcher + s:author: + '@type': s:Person + s:givenName: Clark + s:familyName: Kent + s:email: clark.kent@dailyplanet.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Daily Planet + s:identifier: https://ror.org/0000cx000 + +s:contributor: +- '@type': s:Person + s:givenName: Lex + s:familyName: Luthor + s:email: lex.luthor@luthorcorp.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Luthor Corp + s:identifier: https://ror.org/0000cx000 $graph: - id: test-custom-types @@ -19,6 +87,8 @@ $graph: - $import: https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml - $import: https://raw.githubusercontent.com/eoap/schemas/main/geojson.yaml - $import: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml + hints: + - class: eoap:JSONSchemaHint inputs: - id: bbox type: https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox diff --git a/cwl-workflow/test-primitives.cwl b/cwl-workflow/test-primitives.cwl index 524b6ad..3afdbe3 100644 --- a/cwl-workflow/test-primitives.cwl +++ b/cwl-workflow/test-primitives.cwl @@ -1,11 +1,79 @@ -cwlVersion: v1.2 +cwlVersion: v1.0 +schemas: +- http://schema.org/version/9.0/schemaorg-current-http.rdf $namespaces: s: https://schema.org/ - -schemas: - - http://schema.org/version/9.0/schemaorg-current-http.rdf + eoap: "http://oeap.github.io/schema#" + +s:name: Echo All CWL Primitive Types +s:description: This workflow demonstrates usage of all CWL primitive types. It runs the `echo-tool` with default values and captures the output in a file. +s:dateCreated: '2025-01-01' +s:license: + '@type': s:CreativeWork + s:identifier: Apache-2.0 + +s:keywords: +- CWL +- Workflow +- Earth Observation + +s:operatingSystem: +- Linux +- macOS +s:softwareRequirements: +- https://cwltool.readthedocs.io/en/latest/ +- https://www.python.org/ s:softwareVersion: 1.0.0 +s:softwareHelp: +- '@type': s:CreativeWork + s:name: User Manual + s:url: tps://eoap.github.io/application-package-patterns/ + +s:publisher: + '@type': s:Organization + s:name: Make Earth Observation Great Again + s:email: info@meoga.com + s:identifier: https://ror.org/9999cx000 + +s:author: +- '@type': s:Role + s:roleName: Project Manager + s:additionalType: http://purl.org/spar/datacite/ProjectManager + s:author: + '@type': s:Person + s:givenName: Lois + s:familyName: Lane + s:email: lois.lane@dailyplanet.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Daily Planet + s:identifier: https://ror.org/0000cx000 +- '@type': s:Role + s:roleName: Researcher + s:additionalType: http://purl.org/spar/datacite/Researcher + s:author: + '@type': s:Person + s:givenName: Clark + s:familyName: Kent + s:email: clark.kent@dailyplanet.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Daily Planet + s:identifier: https://ror.org/0000cx000 + +s:contributor: +- '@type': s:Person + s:givenName: Lex + s:familyName: Luthor + s:email: lex.luthor@luthorcorp.com + s:identifier: https://orcid.org/0000-9999-0000-9999 + s:affiliation: + '@type': s:Organization + s:name: Luthor Corp + s:identifier: https://ror.org/0000cx000 $graph: - id: test-primitives @@ -13,6 +81,8 @@ $graph: label: Echo All CWL Primitive Types doc: This workflow demonstrates usage of all CWL primitive types. It runs the `echo-tool` with default values and captures the output in a file. requirements: [] + hints: + - class: eoap:JSONSchemaHint inputs: - id: null_input type: ["null", "string"] diff --git a/docs/__init__.py b/docs/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/docs/helpers.py b/docs/helpers.py deleted file mode 100644 index f11f36d..0000000 --- a/docs/helpers.py +++ /dev/null @@ -1,127 +0,0 @@ -import sys -import graphviz -from cwl2puml import to_puml, DiagramType -from cwltool.main import main as cwlmain -from cwltool.context import LoadingContext, RuntimeContext -from cwltool.executors import NoopJobExecutor -from io import StringIO, BytesIO -from IPython.display import Markdown, display -from eoap_cwlwrap import wrap -from eoap_cwlwrap.types import type_to_string -from cwl_loader import load_cwl_from_location -from cwl_loader.utils import search_process -from PIL import Image -from plantuml import deflate_and_encode -from urllib.request import urlopen -import cwl_loader -cwl_loader.logger.remove() -cwl_loader.logger.add(sys.stderr, level="INFO") - -import eoap_cwlwrap -eoap_cwlwrap.logger.remove() -#eoap_cwlwrap.logger.add(sys.stderr, level="INFO") - -class WorkflowViewer: - def __init__(self, cwl_file, workflow, entrypoint): - self.cwl_file = cwl_file - self.workflow = workflow - self.entrypoint = entrypoint - self.output = ".wrapped.cwl" - self.base_url = "https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/main" - - @staticmethod - def from_file(cwl_file, entrypoint): - workflow = load_cwl_from_location(path=cwl_file) - return WorkflowViewer(cwl_file, workflow, entrypoint) - - @staticmethod - def from_reference(cwl_file, workflow, entrypoint): - return WorkflowViewer(cwl_file, workflow, entrypoint) - - def _prepare_headers(self, headers: list[str]): - return f"| {' | '.join(headers)} |\n| {' | '.join(["---"] * len(headers))} |\n" - - def _display_parameters(self, parameters_name): - md = self._prepare_headers(["Id", "Type", "Label", "Doc"]) - - wf = search_process(process_id=self.entrypoint, process=self.workflow) - - for p in getattr(wf, parameters_name, []): - md += f"| `{p.id}` | `{type_to_string(p.type_)}` | {p.label} | {p.doc} |\n" - - display(Markdown(md)) - - def display_inputs(self): - self._display_parameters("inputs") - - def display_outputs(self): - self._display_parameters("outputs") - - def display_steps(self): - md = self._prepare_headers(["Id", "Runs", "Label", "Doc"]) - - for step in search_process( - process_id=self.entrypoint, process=self.workflow - ).steps: - md += f"| `{step.id.replace(f'file:///#{self.entrypoint}/', '')}` | `{step.run}` | {step.label} | {step.doc} |\n" - - display(Markdown(md)) - - def display_components_diagram(self): - out = StringIO() - to_puml( - cwl_document=self.workflow, - diagram_type=DiagramType.COMPONENT, - output_stream=out, - ) - - clear_output = out.getvalue() - encoded = deflate_and_encode(clear_output) - diagram_url = f"https://www.plantuml.com/plantuml/png/{encoded}" - - with urlopen(diagram_url) as url: - img = Image.open(BytesIO(url.read())) - display(img) - - def plot(self): - args = ["--print-dot", f"{self.cwl_file}#{self.entrypoint}"] - - stream_err = StringIO() - stream_out = StringIO() - - _ = cwlmain( - args, - stdout=stream_out, - stderr=stream_err, - executor=NoopJobExecutor(), - loadingContext=LoadingContext(), - runtimeContext=RuntimeContext(), - ) - - return graphviz.Source(stream_out.getvalue()) - - -class WorkflowWrapper: - def __init__(self, workflow, entrypoint): - self.workflow = workflow - self.entrypoint = entrypoint - self.base_url = "https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop" - - def wrap(self): - directory_stage_in = load_cwl_from_location( - path=f"{self.base_url}/templates/stage-in.cwl" - ) - file_stage_in = load_cwl_from_location( - path=f"{self.base_url}/templates/stage-in-file.cwl" - ) - stage_out_cwl = load_cwl_from_location( - path=f"{self.base_url}/templates/stage-out.cwl" - ) - - return wrap( - directory_stage_in=directory_stage_in, - file_stage_in=file_stage_in, - workflows=self.workflow, - workflow_id=self.entrypoint, - stage_out=stage_out_cwl, - ) diff --git a/docs/pattern-1.ipynb b/docs/pattern-1.ipynb deleted file mode 100644 index 7996d7f..0000000 --- a/docs/pattern-1.ipynb +++ /dev/null @@ -1,941 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 20, - "id": "49711fee", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The autoreload extension is already loaded. To reload it, use:\n", - " %reload_ext autoreload\n" - ] - } - ], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-1\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from pathlib import Path\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:10:03.409\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-1.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.410\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-1.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.445\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.446\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.453\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.467\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.468\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-1...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.469\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.470\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:03.470\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-1.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern \n", - "\n", - "The CWL includes: \n", - "\n", - "- one input parameter of type `Directory`\n", - "- one output parameter of type `Directory`\n", - "\n", - "This scenario typically takes one input, applies an algorithm and produces a result\n", - "\n", - "Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input a Landsat-8/9 acquisition" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-1/aoi\n", - "\n", - "pattern-1/aoi\n", - "\n", - "\n", - "\n", - "pattern-1/step\n", - "\n", - "pattern-1/step\n", - "\n", - "\n", - "\n", - "pattern-1/aoi->pattern-1/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-1/bands\n", - "\n", - "pattern-1/bands\n", - "\n", - "\n", - "\n", - "pattern-1/bands->pattern-1/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-1/epsg\n", - "\n", - "pattern-1/epsg\n", - "\n", - "\n", - "\n", - "pattern-1/epsg->pattern-1/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-1/item\n", - "\n", - "pattern-1/item\n", - "\n", - "\n", - "\n", - "pattern-1/item->pattern-1/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-1/water_bodies\n", - "\n", - "pattern-1/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-1/step->pattern-1/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | Water bodies detection | Water bodies detection based on NDWI and otsu threshold applied to a single Landsat-8/9 acquisition |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `Directory` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:10:04.506\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:04.725\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:04.733\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:04.734\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:04.734\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.650\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.651\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.652\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.652\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.653\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.851\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.860\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.861\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:05.861\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.715\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.716\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.717\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.718\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.718\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.904\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.914\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.915\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:06.916\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.879\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.880\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.881\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.881\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.882\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.882\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.883\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.883\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.883\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.884\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.884\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.885\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-1 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.885\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-1/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.886\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-1/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.886\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-1/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.887\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-1/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.887\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.888\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.888\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.889\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.889\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-1 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.890\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-1/water_bodies: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.890\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.891\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.891\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.892\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:10:07.893\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0089 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "03c6930e", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "cd4b348a", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-1/aoi | area of interest as a bounding box - This parameter is derived from pattern-1/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-1/epsg | EPSG code - This parameter is derived from pattern-1/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-1/bands | bands used for the NDWI - This parameter is derived from pattern-1/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-1/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-1/item |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-1` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "900f06be", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "24c48d88", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "b2929047", - "metadata": {}, - "outputs": [], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "37bb7754", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\n", - " \"green\",\n", - " \"nir08\"\n", - " ],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "81dce561", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "```json\n", - "{\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-q5mw75/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "markdown", - "id": "d0accb70", - "metadata": {}, - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e44ab947", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.6" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-1.md b/docs/pattern-1.md new file mode 100644 index 0000000..c427f72 --- /dev/null +++ b/docs/pattern-1.md @@ -0,0 +1,166 @@ +# Pattern 1 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* one input parameter of type `Directory` +* one output parameter of type `Directory` + + This scenario typically takes one input, applies an algorithm and produces a result + +Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input a Landsat-8/9 acquisition + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:25:32.603 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-1 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Water bodies detection | Water bodies detection based on NDWI and otsu threshold applied to a single Landsat-8/9 acquisition | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-1` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-1 OGC API Processes JSON Inputs schema](./pattern-1/ogc_processes_inputs.svg "pattern-1 diagram") + +#### Outputs + +![pattern-1 OGC API Processes JSON Outputs schema](./pattern-1/ogc_processes_outputs.svg "pattern-1 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-1 flow diagram](./pattern-1/activity.svg "pattern-1 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-1 flow diagram](./pattern-1/component.svg "pattern-1 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-1 flow diagram](./pattern-1/class.svg "pattern-1 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-1 flow diagram](./pattern-1/sequence.svg "pattern-1 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-1 flow diagram](./pattern-1/state.svg "pattern-1 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner pattern-1 \ +--input-item \ +--aoi \ +--epsg \ +--band +``` + diff --git a/docs/pattern-1/activity.puml b/docs/pattern-1/activity.puml new file mode 100644 index 0000000..ad216f0 --- /dev/null +++ b/docs/pattern-1/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:32.998 + '/ +@startuml +start + + + + + +group pattern-1 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :item; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-1/activity.svg b/docs/pattern-1/activity.svg new file mode 100644 index 0000000..a48c084 --- /dev/null +++ b/docs/pattern-1/activity.svg @@ -0,0 +1 @@ +pattern-1aoiepsgbandsitemstep: stepCommandLineTool: cltwater_bodies \ No newline at end of file diff --git a/docs/pattern-1/class.puml b/docs/pattern-1/class.puml new file mode 100644 index 0000000..8408d25 --- /dev/null +++ b/docs/pattern-1/class.puml @@ -0,0 +1,130 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:35.310 + '/ +@startuml + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold" { + + + + +class "pattern-1" as Workflow_pattern_1 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + item: Directory + + + __ Outputs __ + + + water_bodies: Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_1 --> string + + + + ' no need to add a Workflow_pattern_1 --> string + + + + ' no need to add a Workflow_pattern_1 --> string + + + + ' no need to add a Workflow_pattern_1 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + __ Outputs __ + + + stac-catalog: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_1 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-1/class.svg b/docs/pattern-1/class.svg new file mode 100644 index 0000000..05b4f18 --- /dev/null +++ b/docs/pattern-1/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu thresholdStepspattern-1 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] item: Directory  Inputs water_bodies: Directory   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string band: string[]  Inputs stac-catalog: Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-1/component.puml b/docs/pattern-1/component.puml new file mode 100644 index 0000000..af109b6 --- /dev/null +++ b/docs/pattern-1/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:34.176 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-1'" { + component "pattern-1" as pattern_1 { + + portin "aoi" as pattern_1_aoi + + portin "epsg" as pattern_1_epsg + + portin "bands" as pattern_1_bands + + portin "item" as pattern_1_item + + + portout "water_bodies" as pattern_1_water_bodies + + } + + + frame "step" as pattern_1_step { + + portin "item" as pattern_1_step_item + + + + pattern_1_item .down.> pattern_1_step_item + + + + portin "aoi" as pattern_1_step_aoi + + + + pattern_1_aoi .down.> pattern_1_step_aoi + + + + portin "epsg" as pattern_1_step_epsg + + + + pattern_1_epsg .down.> pattern_1_step_epsg + + + + portin "band" as pattern_1_step_band + + + + pattern_1_bands .down.> pattern_1_step_band + + + + + + portout "stac-catalog" as pattern_1_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_1_step_stac_catalog .up.> pattern_1_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-1/component.svg b/docs/pattern-1/component.svg new file mode 100644 index 0000000..7cbce62 --- /dev/null +++ b/docs/pattern-1/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-1'pattern-1stepaoiepsgbandsitemwater_bodiesitemaoiepsgbandstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-1/ogc_processes_inputs.puml b/docs/pattern-1/ogc_processes_inputs.puml new file mode 100644 index 0000000..77fe205 --- /dev/null +++ b/docs/pattern-1/ogc_processes_inputs.puml @@ -0,0 +1,95 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:38.881 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-1/ogc_processes_inputs.svg b/docs/pattern-1/ogc_processes_inputs.svg new file mode 100644 index 0000000..b7e16e5 --- /dev/null +++ b/docs/pattern-1/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-1/ogc_processes_outputs.puml b/docs/pattern-1/ogc_processes_outputs.puml new file mode 100644 index 0000000..394395b --- /dev/null +++ b/docs/pattern-1/ogc_processes_outputs.puml @@ -0,0 +1,35 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:40.695 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-1/ogc_processes_outputs.svg b/docs/pattern-1/ogc_processes_outputs.svg new file mode 100644 index 0000000..1b4e490 --- /dev/null +++ b/docs/pattern-1/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-1/sequence.puml b/docs/pattern-1/sequence.puml new file mode 100644 index 0000000..2e7276c --- /dev/null +++ b/docs/pattern-1/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:36.639 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold == + +control "pattern-1" as pattern_1_or +activate pattern_1_or + + +wfrunner -> pattern_1_or : ""aoi"" + +wfrunner -> pattern_1_or : ""epsg"" + +wfrunner -> pattern_1_or : ""bands"" + +wfrunner -> pattern_1_or : ""item"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_1_or__step +activate pattern_1_or__step + + + +pattern_1_or -> pattern_1_or__step : ""item"" (from ""item"") + + + +pattern_1_or -> pattern_1_or__step : ""aoi"" (from ""aoi"") + + + +pattern_1_or -> pattern_1_or__step : ""epsg"" (from ""epsg"") + + + +pattern_1_or -> pattern_1_or__step : ""band"" (from ""bands"") + + + +pattern_1_or__step -> pattern_1_or__step : Compute + + +pattern_1_or <-- pattern_1_or__step : ""stac-catalog"" + + +deactivate pattern_1_or__step + + + + + + + +wfrunner <-- pattern_1_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_1_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-1/sequence.svg b/docs/pattern-1/sequence.svg new file mode 100644 index 0000000..afab35f --- /dev/null +++ b/docs/pattern-1/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-1step. stepWorkflow runnerpattern-1step. stepWorkflow runnerWorkflow runnerpattern-1pattern-1step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-1step. stepWater bodies detection based on NDWI and the otsu threshold[001]aoi[002]epsg[003]bands[004]item[005]item(fromitem)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]band(frombands)[009]Compute[010]stac-catalog[011]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-1/state.puml b/docs/pattern-1/state.puml new file mode 100644 index 0000000..504cacf --- /dev/null +++ b/docs/pattern-1/state.puml @@ -0,0 +1,103 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:37.833 + '/ +@startuml +hide empty description + + + + + +state "pattern-1" as pattern_1 { + + state "aoi" as pattern_1_aoi <> + + state "epsg" as pattern_1_epsg <> + + state "bands" as pattern_1_bands <> + + state "item" as pattern_1_item <> + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_1_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_1_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_1_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_1_bands --> step_band + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_1_water_bodies <> + +step_stac_catalog --> pattern_1_water_bodies + + +} + +[*] --> pattern_1_aoi + +[*] --> pattern_1_epsg + +[*] --> pattern_1_bands + +[*] --> pattern_1_item + + + +pattern_1_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-1/state.svg b/docs/pattern-1/state.svg new file mode 100644 index 0000000..1037fd0 --- /dev/null +++ b/docs/pattern-1/state.svg @@ -0,0 +1 @@ +pattern-1stepaoiepsgbandsitemwater_bodiesitemaoiepsgbandstac-catalog \ No newline at end of file diff --git a/docs/pattern-10.ipynb b/docs/pattern-10.ipynb deleted file mode 100644 index dba90e1..0000000 --- a/docs/pattern-10.ipynb +++ /dev/null @@ -1,937 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-10\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:53:33.511\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-10.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.513\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-10.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.558\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.558\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.565\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.583\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.584\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-10...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.584\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow vegetation_indexes...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.585\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.585\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning ExpressionTool flatten_array...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.585\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:33.586\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-10.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 10\n", - "\n", - "This pattern shows how to flatten an array of array of `Directory`\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-10/subworkflow\n", - "\n", - "NDVI and NDWI vegetation indexes\n", - "\n", - "\n", - "\n", - "pattern-10/flatten\n", - "\n", - "Flatten Directory[][] → Directory[]\n", - "\n", - "\n", - "\n", - "pattern-10/subworkflow->pattern-10/flatten\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-10/vegetation_indexes\n", - "\n", - "pattern-10/vegetation_indexes\n", - "\n", - "\n", - "\n", - "pattern-10/flatten->pattern-10/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-10/aoi\n", - "\n", - "pattern-10/aoi\n", - "\n", - "\n", - "\n", - "pattern-10/aoi->pattern-10/subworkflow\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-10/epsg\n", - "\n", - "pattern-10/epsg\n", - "\n", - "\n", - "\n", - "pattern-10/epsg->pattern-10/subworkflow\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-10/indexes\n", - "\n", - "pattern-10/indexes\n", - "\n", - "\n", - "\n", - "pattern-10/indexes->pattern-10/subworkflow\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-10/items\n", - "\n", - "pattern-10/items\n", - "\n", - "\n", - "\n", - "pattern-10/items->pattern-10/subworkflow\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `indexes` | `string[]` | indexes | indexes to compute |\n", - "| `items` | `Directory[]` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `subworkflow` | `#vegetation_indexes` | None | None |\n", - "| `flatten` | `#flatten_array` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `Directory[]` | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:53:35.159\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:53:35.217\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.225\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.225\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.226\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.971\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.971\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.972\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.972\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:35.973\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.021\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.028\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.028\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.029\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.823\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.824\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.824\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.825\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.825\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.879\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.890\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.891\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:36.892\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.813\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.813\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.814\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.814\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.814\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.815\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.815\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.816\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.816\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.817\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.817\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.818\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-10 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.820\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-10/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.820\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-10/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.821\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-10/indexes: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.821\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-10/items: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.822\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.822\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.822\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.823\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m175\u001b[0m - \u001b[1m Array detected, 'scatter' required for reference:items\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.824\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/items' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.825\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-10 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.825\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-10/vegetation_indexes: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.826\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.826\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.827\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.827\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m284\u001b[0m - \u001b[1m Array detected, scatter required for stac_catalog:app/vegetation_indexes\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.828\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/vegetation_indexes' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:53:37.828\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0112 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "NDVI and NDWI vegetation indexes\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/indexes\n", - "\n", - "main/indexes\n", - "\n", - "\n", - "\n", - "main/indexes->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/items\n", - "\n", - "main/items\n", - "\n", - "\n", - "\n", - "main/items->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "9d994b96", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "4f62c1d7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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qh1X98Kv1C+zqdyuq8W96tPf+l355rr5+TfcK+9NUv+amrolru6Ei3/pXHTl6hH59bOaxq68uK0zl4TQi0OaS+7MkwRIgARIgARIgARyIsCuPKdqMdYegY9tO/5YNV8Gr9Uvv6mfaVP3y3v3yuvNlWrLe105JjUN+Xvz3Lv65XW8RFdeK8uLV3blwEMpMwLoxSFllgLDJQESIAESIAESIIFZEGBXPosyzyHJzXfzr5UfeY2apG38fW+0yCMJ5EcAvTik/LJgxCRAAiRAAiRAAiRQPgF25eXXmBmSAAnMkQB6cUhz5MCcSYAESIAESIAESCB1AuzKU68Q4yMBEiABFwLoxSG52OEaEiABEiABEiABEiCBsATYlYflS+skQAIkcB4C6MUhnScSeiUBEiABEiABEiABEjhEgF35ITo8RwIkQAK5EkAvDinXXBg3CZAACZAACZAACZRMgF15ydVlbiRAAvMlgF4c0nxpMHMSIAESIAESIAESSJcAu/J0a8PISIAESMCdAHpxSO7WuJIESIAESIAESIAESCAUAXblocjSLgmQAAmckwB6cUjnjIe+SYAESIAESIAESIAEzAQcu/KX/8zmfGlf3wyWxjq1zNtXG70YHLuqnv8dWrkfj2X26InG9V///n33Tlhjsp7oLbaII5eOnGZxcpr6mO+Oceg9cVIax7LYN97ltX+KmuIJoBeHVHzSTJAESIAESIAESIAEMiTg2JXfPYbN9e7eYF84fXgxzNiqbh+Mp8TydobRi3HtVOU2upuDlPbj6Xvp5acm9kb9SSPk+8XlZbXGRGtMeyfG+9xbCnc7qbV1fNreOm+KY767YoTbEycUUWM4loWeh2OXF1SUZkMAvTik2STPREmABEiABEiABEggIwKOXXnoDI/3RpbWuwnswCkZ93Evcv740TaE6U0UPMgk5Aizjku/aspX9dZNtMa0d2K8z72lnTcttLaOT9PT/R9H+w63J8bvS2v6o7OwWuCJORFALw5pTvkzVxIgARIgARIgARLIhcCorvzz7ur68a9J6e3m8u5HHV/Q5olM32+v1l9K8/zf69V1M+dbLb1XneHL1fV/xoeDseLtul3RTm16o85G3+nzf9tpr8vVet10nM3r8V39p7Gullzf27qfJma9fBtQ42Xn/+/uo643d8qQDkhH3now/6fjArPbWHfR3TzuctI2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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-10/aoi | area of interest as a bounding box - This parameter is derived from pattern-10/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-10/epsg | EPSG code - This parameter is derived from pattern-10/epsg |\n", - "| `indexes` | `string[]` | indexes - pattern-10/indexes | indexes to compute - This parameter is derived from pattern-10/indexes |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `items` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Landsat-8/9 acquisition reference - pattern-10/items | Landsat-8/9 acquisition reference - This parameter is derived from pattern-10/items |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-10` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "c7b629c1", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "6fcaa29c", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "735a2649", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"indexes\": [\"ndvi\", \"ndwi\"], \"items\": [{\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}, {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\"}]}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"indexes\": [\"ndvi\", \"ndwi\"],\n", - " \"items\": [\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\",\n", - " },\n", - " ],\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "2c1460a5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"vegetation_indexes\": [\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-le48yt/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-xxo3gq/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-hy7kst/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-304s2i/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - " ]\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-10.md b/docs/pattern-10.md new file mode 100644 index 0000000..fafef7f --- /dev/null +++ b/docs/pattern-10.md @@ -0,0 +1,276 @@ +# Pattern 10 - NDVI and NDWI vegetation indexes v1.0.0 + +This pattern shows how to flatten an array of array of `Directory` + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:27:21.416 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-10 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [SubworkflowFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#SubworkflowFeatureRequirement) +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `indexes` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | indexes | indexes to compute | +| `items` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [subworkflow](#vegetation_indexes) | `#vegetation_indexes` | Compute vegetation indexes | Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisitions | +| [flatten](#flatten_array) | `#flatten_array` | Flatten Directory[][] → Directory[] | Flatten the nested array of Directories into a single array | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `vegetation_indexes` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions | + + +### OGC API - Processes + +When `pattern-10` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-10 OGC API Processes JSON Inputs schema](./pattern-10/ogc_processes_inputs.svg "pattern-10 diagram") + +#### Outputs + +![pattern-10 OGC API Processes JSON Outputs schema](./pattern-10/ogc_processes_outputs.svg "pattern-10 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-10 flow diagram](./pattern-10/activity.svg "pattern-10 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-10 flow diagram](./pattern-10/component.svg "pattern-10 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-10 flow diagram](./pattern-10/class.svg "pattern-10 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-10 flow diagram](./pattern-10/sequence.svg "pattern-10 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-10 flow diagram](./pattern-10/state.svg "pattern-10 State diagram") + + +### Run in step + +`subworkflow` + + + +## vegetation_indexes + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `indexes` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | indexes | indexes to compute | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | STAC item reference | Reference to a STAC item | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | None | None | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `vegetation_indexes` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Vegetation indexes | Vegetation indexes | + + +### OGC API - Processes + +When `vegetation_indexes` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![vegetation_indexes OGC API Processes JSON Inputs schema](./vegetation_indexes/ogc_processes_inputs.svg "vegetation_indexes diagram") + +#### Outputs + +![vegetation_indexes OGC API Processes JSON Outputs schema](./vegetation_indexes/ogc_processes_outputs.svg "vegetation_indexes diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![vegetation_indexes flow diagram](./vegetation_indexes/activity.svg "vegetation_indexes Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![vegetation_indexes flow diagram](./vegetation_indexes/component.svg "vegetation_indexes Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![vegetation_indexes flow diagram](./vegetation_indexes/class.svg "vegetation_indexes Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![vegetation_indexes flow diagram](./vegetation_indexes/sequence.svg "vegetation_indexes Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![vegetation_indexes flow diagram](./vegetation_indexes/state.svg "vegetation_indexes State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `index` | `--vegetation-index` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-5 \ +--input-item \ +--aoi \ +--epsg \ +--vegetation-index +``` + + + +### Run in step + +`flatten` + + + +## flatten_array + +### CWL Class + +[ExpressionTool](https://www.commonwl.org/v1.2/Workflow.html#ExpressionTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `nested` | `--nested` | `array` of `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | + + + diff --git a/docs/pattern-10/activity.puml b/docs/pattern-10/activity.puml new file mode 100644 index 0000000..e44ed3d --- /dev/null +++ b/docs/pattern-10/activity.puml @@ -0,0 +1,72 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:31.823 + '/ +@startuml +start + + + + + +group pattern-10 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :indexes; <> +split again + + :items; <> +end split + + + + +repeat + + +group vegetation_indexes { + + +repeat + + +:step: step +CommandLineTool: clt; + +repeat while (dotproduct step/index) + + +} + +repeat while (dotproduct ['subworkflow/item']) + + + + + + +:step: flatten +ExpressionTool: flatten_array; + + + + + +split + + :vegetation_indexes; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-10/activity.svg b/docs/pattern-10/activity.svg new file mode 100644 index 0000000..6a52dd7 --- /dev/null +++ b/docs/pattern-10/activity.svg @@ -0,0 +1 @@ +pattern-10aoiepsgindexesitemsvegetation_indexesstep: stepCommandLineTool: cltdotproduct step/indexdotproduct ['subworkflow/item']step: flattenExpressionTool: flatten_arrayvegetation_indexes \ No newline at end of file diff --git a/docs/pattern-10/class.puml b/docs/pattern-10/class.puml new file mode 100644 index 0000000..55cae8e --- /dev/null +++ b/docs/pattern-10/class.puml @@ -0,0 +1,249 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:34.489 + '/ +@startuml + + + + + + + + + + + + + + + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "pattern-10" as Workflow_pattern_10 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + indexes: string[] = ['ndvi', 'ndwi'] + + + items: Directory[] + + + __ Outputs __ + + + vegetation_indexes: Directory[] + + + + __ Steps __ + + - subworkflow: vegetation_indexes + + - flatten: flatten_array + + + } + + + + ' no need to add a Workflow_pattern_10 --> string + + + + ' no need to add a Workflow_pattern_10 --> string + + + + ' no need to add a Workflow_pattern_10 --> string + + + + ' no need to add a Workflow_pattern_10 --> Directory + + + + package "Steps" { + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "vegetation_indexes" as Workflow_vegetation_indexes extends Workflow { + __ Inputs __ + + + aoi: string + + + epsg: string = EPSG:4326 + + + indexes: string[] = ['ndvi', 'ndwi'] + + + item: Directory + + + __ Outputs __ + + + vegetation_indexes: Directory[] + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + index: string + + + __ Outputs __ + + + vegetation_index: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_vegetation_indexes --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_vegetation_indexes --> ScatterFeatureRequirement + + + } + + + +} + +Workflow_pattern_10 --> Workflow_vegetation_indexes + + + + + + + + + +class "flatten_array" as ExpressionTool_flatten_array extends ExpressionTool { + __ Inputs __ + + + nested: Directory[][] + + + __ Outputs __ + + + flat: Directory[] + + + + } + + + + ' no need to add a ExpressionTool_flatten_array --> Directory + + +Workflow_pattern_10 --> ExpressionTool_flatten_array + + + } + + + + package "Requirements" { + + + class SubworkflowFeatureRequirement + Workflow_pattern_10 --> SubworkflowFeatureRequirement + + + + class ScatterFeatureRequirement + Workflow_pattern_10 --> ScatterFeatureRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-10/class.svg b/docs/pattern-10/class.svg new file mode 100644 index 0000000..b6739f0 --- /dev/null +++ b/docs/pattern-10/class.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesStepsNDVI and NDWI vegetation indexesStepsRequirementsRequirementspattern-10 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 indexes: string[] = ['ndvi', 'ndwi'] items: Directory[]  Inputs vegetation_indexes: Directory[]   Outputs subworkflow: vegetation_indexes flatten: flatten_array  StepsWorkflowflatten_array nested: Directory[][]  Inputs flat: Directory[]   OutputsExpressionToolvegetation_indexes aoi: string epsg: string = EPSG:4326 indexes: string[] = ['ndvi', 'ndwi'] item: Directory  Inputs vegetation_indexes: Directory[]   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string index: string  Inputs vegetation_index: Directory   OutputsCommandLineToolScatterFeatureRequirementSubworkflowFeatureRequirementScatterFeatureRequirementHints \ No newline at end of file diff --git a/docs/pattern-10/component.puml b/docs/pattern-10/component.puml new file mode 100644 index 0000000..3bd4c69 --- /dev/null +++ b/docs/pattern-10/component.puml @@ -0,0 +1,100 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:32.953 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-10'" { + component "pattern-10" as pattern_10 { + + portin "aoi" as pattern_10_aoi + + portin "epsg" as pattern_10_epsg + + portin "indexes" as pattern_10_indexes + + portin "items" as pattern_10_items + + + portout "vegetation_indexes" as pattern_10_vegetation_indexes + + } + + + frame "subworkflow" as pattern_10_subworkflow { + + portin "item" as pattern_10_subworkflow_item + + + + pattern_10_items .down.> pattern_10_subworkflow_item + + + + portin "aoi" as pattern_10_subworkflow_aoi + + + + pattern_10_aoi .down.> pattern_10_subworkflow_aoi + + + + portin "epsg" as pattern_10_subworkflow_epsg + + + + pattern_10_epsg .down.> pattern_10_subworkflow_epsg + + + + portin "indexes" as pattern_10_subworkflow_indexes + + + + pattern_10_indexes .down.> pattern_10_subworkflow_indexes + + + + + + portout "vegetation_indexes" as pattern_10_subworkflow_vegetation_indexes + + + component "vegetation_indexes" as vegetation_indexes + } + + frame "flatten" as pattern_10_flatten { + + portin "nested" as pattern_10_flatten_nested + + + + pattern_10_subworkflow_vegetation_indexes .down.> pattern_10_flatten_nested + + + + + + portout "flat" as pattern_10_flatten_flat + + + component "flatten_array" as flatten_array + } + +} + + + + +pattern_10_flatten_flat .up.> pattern_10_vegetation_indexes + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-10/component.svg b/docs/pattern-10/component.svg new file mode 100644 index 0000000..8549b5b --- /dev/null +++ b/docs/pattern-10/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-10'pattern-10subworkflowflattenaoiepsgindexesitemsvegetation_indexesitemaoiepsgindexesvegetation_indexesvegetation_indexesnestedflatflatten_array \ No newline at end of file diff --git a/docs/pattern-10/ogc_processes_inputs.puml b/docs/pattern-10/ogc_processes_inputs.puml new file mode 100644 index 0000000..a8e3632 --- /dev/null +++ b/docs/pattern-10/ogc_processes_inputs.puml @@ -0,0 +1,98 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:38.995 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "indexes": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "ndvi", + "ndwi" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "indexes", + "description": "indexes to compute" + }, + "items": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-10/ogc_processes_inputs.svg b/docs/pattern-10/ogc_processes_inputs.svg new file mode 100644 index 0000000..940aa0a --- /dev/null +++ b/docs/pattern-10/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   indexes   items   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleindexesdescriptionindexes to computetypearrayitems   default   typestringndvindwi   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referencetypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/pattern-10/ogc_processes_outputs.puml b/docs/pattern-10/ogc_processes_outputs.puml new file mode 100644 index 0000000..74f3f25 --- /dev/null +++ b/docs/pattern-10/ogc_processes_outputs.puml @@ -0,0 +1,38 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:40.935 + '/ +@startjson +{ + "vegetation_indexes": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "title": "Vegetation indexes", + "description": "Vegetation indexes from Landsat-8/9 acquisitions" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-10/ogc_processes_outputs.svg b/docs/pattern-10/ogc_processes_outputs.svg new file mode 100644 index 0000000..d40517e --- /dev/null +++ b/docs/pattern-10/ogc_processes_outputs.svg @@ -0,0 +1 @@ +vegetation_indexes   schema   metadata   titleVegetation indexesdescriptionVegetation indexes from Landsat-8/9 acquisitionstypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/pattern-10/sequence.puml b/docs/pattern-10/sequence.puml new file mode 100644 index 0000000..521c327 --- /dev/null +++ b/docs/pattern-10/sequence.puml @@ -0,0 +1,139 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:36.228 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI and NDWI vegetation indexes == + +control "pattern-10" as pattern_10_or +activate pattern_10_or + + +wfrunner -> pattern_10_or : ""aoi"" + +wfrunner -> pattern_10_or : ""epsg"" + +wfrunner -> pattern_10_or : ""indexes"" + +wfrunner -> pattern_10_or : ""items"" + + + + +loop dotproduct ['subworkflow/item'] + + + + +box "NDVI and NDWI vegetation indexes" + control "step: subworkflow\nWorkflow: vegetation_indexes" as pattern_10_or__subworkflow_or + activate pattern_10_or__subworkflow_or + + + pattern_10_or -> pattern_10_or__subworkflow_or : ""item"" (from ""items"") + + pattern_10_or -> pattern_10_or__subworkflow_or : ""aoi"" (from ""aoi"") + + pattern_10_or -> pattern_10_or__subworkflow_or : ""epsg"" (from ""epsg"") + + pattern_10_or -> pattern_10_or__subworkflow_or : ""indexes"" (from ""indexes"") + + + + +loop dotproduct step/index + + + +participant "step: step\nCommandLineTool: clt" as pattern_10_or__subworkflow_or__step +activate pattern_10_or__subworkflow_or__step + + + +pattern_10_or__subworkflow_or -> pattern_10_or__subworkflow_or__step : ""item"" (from ""item"") + + + +pattern_10_or__subworkflow_or -> pattern_10_or__subworkflow_or__step : ""aoi"" (from ""aoi"") + + + +pattern_10_or__subworkflow_or -> pattern_10_or__subworkflow_or__step : ""epsg"" (from ""epsg"") + + + +pattern_10_or__subworkflow_or -> pattern_10_or__subworkflow_or__step : ""index"" (from ""indexes"") + + + +pattern_10_or__subworkflow_or__step -> pattern_10_or__subworkflow_or__step : Compute + + +pattern_10_or__subworkflow_or <-- pattern_10_or__subworkflow_or__step : ""vegetation_index"" + + +deactivate pattern_10_or__subworkflow_or__step + +end + + + + + + pattern_10_or <-- pattern_10_or__subworkflow_or : ""vegetation_indexes"" (from ""step/vegetation_index"") + + + + deactivate pattern_10_or__subworkflow_or +end box + +end + + + + + + + +participant "step: flatten\nExpressionTool: flatten_array" as pattern_10_or__flatten +activate pattern_10_or__flatten + + + +pattern_10_or -> pattern_10_or__flatten : ""nested"" (from ""subworkflow/vegetation_indexes"") + + + +pattern_10_or__flatten -> pattern_10_or__flatten : Compute + + +pattern_10_or <-- pattern_10_or__flatten : ""flat"" + + +deactivate pattern_10_or__flatten + + + + + + + +wfrunner <-- pattern_10_or : ""vegetation_indexes"" (from ""flatten/flat"") + + + +deactivate pattern_10_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-10/sequence.svg b/docs/pattern-10/sequence.svg new file mode 100644 index 0000000..c0c7a61 --- /dev/null +++ b/docs/pattern-10/sequence.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesWorkflow runnerpattern-10step. subworkflowstep. stepstep. flattenWorkflow runnerpattern-10step. subworkflowstep. stepstep. flattenWorkflow runnerWorkflow runnerpattern-10pattern-10step: subworkflowWorkflow: vegetation_indexesstep: subworkflowWorkflow: vegetation_indexesstep: stepCommandLineTool: cltstep: stepCommandLineTool: cltstep: flattenExpressionTool: flatten_arraystep: flattenExpressionTool: flatten_arrayWorkflow runnerpattern-10step. subworkflowstep. stepstep. flattenNDVI and NDWI vegetation indexes[001]aoi[002]epsg[003]indexes[004]itemsloop[dotproduct ['subworkflow/item']][005]item(fromitems)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]indexes(fromindexes)loop[dotproduct step/index][009]item(fromitem)[010]aoi(fromaoi)[011]epsg(fromepsg)[012]index(fromindexes)[013]Compute[014]vegetation_index[015]vegetation_indexes(fromstep/vegetation_index)[016]nested(fromsubworkflow/vegetation_indexes)[017]Compute[018]flat[019]vegetation_indexes(fromflatten/flat) \ No newline at end of file diff --git a/docs/pattern-10/state.puml b/docs/pattern-10/state.puml new file mode 100644 index 0000000..0564e68 --- /dev/null +++ b/docs/pattern-10/state.puml @@ -0,0 +1,173 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:37.651 + '/ +@startuml +hide empty description + + + + + +state "pattern-10" as pattern_10 { + + state "aoi" as pattern_10_aoi <> + + state "epsg" as pattern_10_epsg <> + + state "indexes" as pattern_10_indexes <> + + state "items" as pattern_10_items <> + + + + + + +state "pattern-10" as pattern_10 { + + + state "aoi" as vegetation_indexes_aoi <> + + + state "epsg" as vegetation_indexes_epsg <> + + + state "indexes" as vegetation_indexes_indexes <> + + + state "item" as vegetation_indexes_item <> + + + + pattern_10_items --> vegetation_indexes_item + + + + pattern_10_aoi --> vegetation_indexes_aoi + + + + pattern_10_epsg --> vegetation_indexes_epsg + + + + pattern_10_indexes --> vegetation_indexes_indexes + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + vegetation_indexes_item --> step_item + + + + state "aoi" as step_aoi <> + + + + vegetation_indexes_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + vegetation_indexes_epsg --> step_epsg + + + + state "index" as step_index <> + + + + vegetation_indexes_indexes --> step_index + + + + + + state "vegetation_index" as step_vegetation_index <> + + + } + + + + +state "vegetation_indexes" as subworkflow_vegetation_indexes <> + +step_vegetation_index --> subworkflow_vegetation_indexes + + + +} + + + + + + + + + state flatten { + + state "nested" as flatten_nested <> + + + + subworkflow_vegetation_indexes --> flatten_nested + + + + + + state "flat" as flatten_flat <> + + + } + + + + +state "vegetation_indexes" as pattern_10_vegetation_indexes <> + +flatten_flat --> pattern_10_vegetation_indexes + + +} + +[*] --> pattern_10_aoi + +[*] --> pattern_10_epsg + +[*] --> pattern_10_indexes + +[*] --> pattern_10_items + + + +pattern_10_vegetation_indexes --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-10/state.svg b/docs/pattern-10/state.svg new file mode 100644 index 0000000..3c4d28a --- /dev/null +++ b/docs/pattern-10/state.svg @@ -0,0 +1 @@ +pattern-10pattern-10stepflattenaoiepsgindexesitemsvegetation_indexesaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_indexnestedflat \ No newline at end of file diff --git a/docs/pattern-11.ipynb b/docs/pattern-11.ipynb deleted file mode 100644 index af1f924..0000000 --- a/docs/pattern-11.ipynb +++ /dev/null @@ -1,955 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-11\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:07.905\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-11.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.906\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-11.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.930\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.930\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.936\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.950\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.951\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-11...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.951\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.951\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:07.952\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-11.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern-11\n", - "\n", - "This pattern uses as input a `File` and a `Directory`" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-11/aoi\n", - "\n", - "pattern-11/aoi\n", - "\n", - "\n", - "\n", - "pattern-11/step\n", - "\n", - "pattern-11/step\n", - "\n", - "\n", - "\n", - "pattern-11/aoi->pattern-11/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-11/bands\n", - "\n", - "pattern-11/bands\n", - "\n", - "\n", - "\n", - "pattern-11/bands->pattern-11/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-11/dem\n", - "\n", - "pattern-11/dem\n", - "\n", - "\n", - "\n", - "pattern-11/dem->pattern-11/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-11/epsg\n", - "\n", - "pattern-11/epsg\n", - "\n", - "\n", - "\n", - "pattern-11/epsg->pattern-11/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-11/item\n", - "\n", - "pattern-11/item\n", - "\n", - "\n", - "\n", - "pattern-11/item->pattern-11/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-11/water_bodies\n", - "\n", - "pattern-11/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-11/step->pattern-11/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n", - "| `dem` | `File` | Digital Elevation Model (DEM) | Digital Elevation Model (DEM) geotiff |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `Directory` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:08.965\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.041\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.059\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.060\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.062\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:09.870\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.871\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.871\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.872\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.872\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.948\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.954\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.955\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:09.956\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.785\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.786\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.786\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.786\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.787\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.843\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.852\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.852\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:10.853\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.892\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.892\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.893\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.893\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.893\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.894\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.894\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.895\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.895\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.895\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.896\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.896\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-11 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.897\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-11/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.897\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-11/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.898\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-11/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.899\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-11/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.899\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.900\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.901\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.902\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.902\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-11/dem: File\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.902\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m File type detected, creating a related 'file_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.903\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting File to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.903\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m File converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.904\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/dem' to 'file_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.904\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-11 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.905\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-11/water_bodies: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.905\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.906\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.906\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.908\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:11.908\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0127 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/file_stage_in_0\n", - "\n", - "main/file_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold (with DEM)\n", - "\n", - "\n", - "\n", - "main/file_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/file_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/dem\n", - "\n", - "main/dem\n", - "\n", - "\n", - "\n", - "main/dem->main/file_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "6d5c2e55", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "c908296c", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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i4+rs83702Z79njmjmnft5vzTf2h874hF7VreUz7utqcn5WfKX//Ojt/qLZSY5r5mqgLKB1Nm117Va0IV6P3OkwPt0//XV29uNvqjTvoP97+cWn7/5b57+/CuKMWzv/v1WXphftvZdvXX92jvvWecOOub9uYpe5czsLHTwRCJY7rUHq8Nrv2Or2V1i0K2UP5XHlMO33N6UkCaRJo7vo0s5gt6i/3fvTCvRW9KH9NcfNcXJ+5b0vYXBbFfdnelh+x/dlsduebXXl08w9nONtszt+L8407xd0677q3v/5vs3HHt1+bs7oDnzsRCJc2PKD0VG127cXWEYHPdxT89/v3/vrX+8GfXPoGLpY+uvUpHYtiJ//g2tFcMxhQF1A6jDa79qpaEa5G73WYdu6E7x7X7v9nn8XfTflVomfuc9rqUd+FcUd1t9Rt6e9O+3/k/nux2Tmte9S33vCN243jb9uYpe68jiXok2WoxHEdSs/XZtdeMa2UblHIHsrnymOarDn/TERQUORFoLnr88pu9GzeNmfuLejb19evze7z87twv6JVvGw2/z43m9vi/cy9KXDqT+HeR/yuY6kufZQfK8gxre7tXVx/91c57pxXv7mte/I5ikC4tOEBpados2svtkYl8O/5/d+v80XtBtQFlGbQZtdeVSvC1ei9DpP7bYV/7+UPt97Kn4YVW3dTdffJr+LbPYr6Low7qjumnf1zP+rafB7cf92p6vf7a9VFetS33p9u3NUcuG1jlrrzOpagT5ahEsd1KD1fm117zdUa+xaF7KF8rjymyZo30cgFChJImwBLu9f6uRfv86t795c4+79S+He727of+/51byHc7+bcumOa+8Hvze3t+ab8932rhzO4S3fuwzI5ptW9vQOPaXtSPZ/CpQ0PKD1pm117sTUqgffr3e62/FL+5TxQF1A6uja79qpaEa5G73WYduVvy55vfhVF+WMv9xHZzh3Cbt0BzT2+5S6MO+pF6e+uvhzcfy/KX3PwXT7q+3Z96/3hxu3nwG277b69joXolmWoxHEdSs/UZtdec7XGvkUheyifK49psuZNNHKBggTSJsDS7rd+r9fuN2Hc9yP4Y9rn2ebi/s790qJ7UXc/ny2Paf+537MpH7f1PM7gLrkPy/zL/U353kH9Kbr7ofFz2fe87sHnTgTCpQ0PKD1Vm117sbU2AqgLKM2g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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-11/aoi | area of interest as a bounding box - This parameter is derived from pattern-11/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-11/epsg | EPSG code - This parameter is derived from pattern-11/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-11/bands | bands used for the NDWI - This parameter is derived from pattern-11/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-11/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-11/item |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-file/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-file/another_input |\n", - "| `dem` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Digital Elevation Model (DEM) - pattern-11/dem | Digital Elevation Model (DEM) geotiff - This parameter is derived from pattern-11/dem |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `file_stage_in_0` | `#my-asthonishing-stage-in-file` | None | None |\n", - "| `app` | `#pattern-11` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "9abd0fca", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "d5887820", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "3029a947", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"bands\": [\"green\", \"nir08\"], \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}, \"dem\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://elevationeuwest.blob.core.windows.net/copernicus-dem/COP30_hh/Copernicus_DSM_COG_10_N38_00_W119_00_DEM.tif\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " \"dem\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://elevationeuwest.blob.core.windows.net/copernicus-dem/COP30_hh/Copernicus_DSM_COG_10_N38_00_W119_00_DEM.tif\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "2b07440c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-7kn7r0/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-11.md b/docs/pattern-11.md new file mode 100644 index 0000000..de6fd89 --- /dev/null +++ b/docs/pattern-11.md @@ -0,0 +1,164 @@ +# Pattern 11 - Water bodies detection based on NDWI and the otsu threshold (with DEM) v1.0.0 + +This pattern uses as input a File and a Directory + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:27:44.052 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-11 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | +| `dem` | [File](https://www.commonwl.org/v1.2/Workflow.html#File) | Digital Elevation Model (DEM) | Digital Elevation Model (DEM) geotiff | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Detect water bodies | Detect water bodies based on the NDWI and otsu threshold from Landsat-8/9 acquisition and DEM | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-11` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-11 OGC API Processes JSON Inputs schema](./pattern-11/ogc_processes_inputs.svg "pattern-11 diagram") + +#### Outputs + +![pattern-11 OGC API Processes JSON Outputs schema](./pattern-11/ogc_processes_outputs.svg "pattern-11 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-11 flow diagram](./pattern-11/activity.svg "pattern-11 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-11 flow diagram](./pattern-11/component.svg "pattern-11 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-11 flow diagram](./pattern-11/class.svg "pattern-11 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-11 flow diagram](./pattern-11/sequence.svg "pattern-11 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-11 flow diagram](./pattern-11/state.svg "pattern-11 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| +| `dem` | `--dem` | [File](https://www.commonwl.org/v1.2/Workflow.html#File) | + +### Execution usage example: + +``` +runner pattern-11 \ +--input-item \ +--aoi \ +--epsg \ +--band \ +--dem +``` + diff --git a/docs/pattern-11/activity.puml b/docs/pattern-11/activity.puml new file mode 100644 index 0000000..6c37a07 --- /dev/null +++ b/docs/pattern-11/activity.puml @@ -0,0 +1,54 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:45.421 + '/ +@startuml +start + + + + + +group pattern-11 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :item; <> +split again + + :dem; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-11/activity.svg b/docs/pattern-11/activity.svg new file mode 100644 index 0000000..f5ef3ba --- /dev/null +++ b/docs/pattern-11/activity.svg @@ -0,0 +1 @@ +pattern-11aoiepsgbandsitemdemstep: stepCommandLineTool: cltwater_bodies \ No newline at end of file diff --git a/docs/pattern-11/class.puml b/docs/pattern-11/class.puml new file mode 100644 index 0000000..41389fe --- /dev/null +++ b/docs/pattern-11/class.puml @@ -0,0 +1,142 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:47.611 + '/ +@startuml + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold (with DEM)" { + + + + +class "pattern-11" as Workflow_pattern_11 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + item: Directory + + + dem: File + + + __ Outputs __ + + + water_bodies: Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_11 --> string + + + + ' no need to add a Workflow_pattern_11 --> string + + + + ' no need to add a Workflow_pattern_11 --> string + + + + ' no need to add a Workflow_pattern_11 --> Directory + + + + ' no need to add a Workflow_pattern_11 --> File + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + dem: File + + + __ Outputs __ + + + stac-catalog: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> File + + +Workflow_pattern_11 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-11/class.svg b/docs/pattern-11/class.svg new file mode 100644 index 0000000..40e8138 --- /dev/null +++ b/docs/pattern-11/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu threshold (with DEM)Stepspattern-11 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] item: Directory dem: File  Inputs water_bodies: Directory   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string band: string[] dem: File  Inputs stac-catalog: Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-11/component.puml b/docs/pattern-11/component.puml new file mode 100644 index 0000000..555ff38 --- /dev/null +++ b/docs/pattern-11/component.puml @@ -0,0 +1,92 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:46.446 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-11'" { + component "pattern-11" as pattern_11 { + + portin "aoi" as pattern_11_aoi + + portin "epsg" as pattern_11_epsg + + portin "bands" as pattern_11_bands + + portin "item" as pattern_11_item + + portin "dem" as pattern_11_dem + + + portout "water_bodies" as pattern_11_water_bodies + + } + + + frame "step" as pattern_11_step { + + portin "item" as pattern_11_step_item + + + + pattern_11_item .down.> pattern_11_step_item + + + + portin "aoi" as pattern_11_step_aoi + + + + pattern_11_aoi .down.> pattern_11_step_aoi + + + + portin "epsg" as pattern_11_step_epsg + + + + pattern_11_epsg .down.> pattern_11_step_epsg + + + + portin "band" as pattern_11_step_band + + + + pattern_11_bands .down.> pattern_11_step_band + + + + portin "dem" as pattern_11_step_dem + + + + pattern_11_dem .down.> pattern_11_step_dem + + + + + + portout "stac-catalog" as pattern_11_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_11_step_stac_catalog .up.> pattern_11_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-11/component.svg b/docs/pattern-11/component.svg new file mode 100644 index 0000000..130cda5 --- /dev/null +++ b/docs/pattern-11/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-11'pattern-11stepaoiepsgbandsitemdemwater_bodiesitemaoiepsgbanddemstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-11/ogc_processes_inputs.puml b/docs/pattern-11/ogc_processes_inputs.puml new file mode 100644 index 0000000..ba21f88 --- /dev/null +++ b/docs/pattern-11/ogc_processes_inputs.puml @@ -0,0 +1,119 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:51.789 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + }, + "dem": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "File" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Digital Elevation Model (DEM)", + "description": "Digital Elevation Model (DEM) geotiff" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-11/ogc_processes_inputs.svg b/docs/pattern-11/ogc_processes_inputs.svg new file mode 100644 index 0000000..60b3a36 --- /dev/null +++ b/docs/pattern-11/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   item   dem   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleDigital Elevation Model (DEM)descriptionDigital Elevation Model (DEM) geotiffoneOf         typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json   titlecwl:typevalueFile \ No newline at end of file diff --git a/docs/pattern-11/ogc_processes_outputs.puml b/docs/pattern-11/ogc_processes_outputs.puml new file mode 100644 index 0000000..eaf389f --- /dev/null +++ b/docs/pattern-11/ogc_processes_outputs.puml @@ -0,0 +1,35 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:53.537 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-11/ogc_processes_outputs.svg b/docs/pattern-11/ogc_processes_outputs.svg new file mode 100644 index 0000000..1b4e490 --- /dev/null +++ b/docs/pattern-11/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-11/sequence.puml b/docs/pattern-11/sequence.puml new file mode 100644 index 0000000..3aafaef --- /dev/null +++ b/docs/pattern-11/sequence.puml @@ -0,0 +1,86 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:49.043 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold (with DEM) == + +control "pattern-11" as pattern_11_or +activate pattern_11_or + + +wfrunner -> pattern_11_or : ""aoi"" + +wfrunner -> pattern_11_or : ""epsg"" + +wfrunner -> pattern_11_or : ""bands"" + +wfrunner -> pattern_11_or : ""item"" + +wfrunner -> pattern_11_or : ""dem"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_11_or__step +activate pattern_11_or__step + + + +pattern_11_or -> pattern_11_or__step : ""item"" (from ""item"") + + + +pattern_11_or -> pattern_11_or__step : ""aoi"" (from ""aoi"") + + + +pattern_11_or -> pattern_11_or__step : ""epsg"" (from ""epsg"") + + + +pattern_11_or -> pattern_11_or__step : ""band"" (from ""bands"") + + + +pattern_11_or -> pattern_11_or__step : ""dem"" (from ""dem"") + + + +pattern_11_or__step -> pattern_11_or__step : Compute + + +pattern_11_or <-- pattern_11_or__step : ""stac-catalog"" + + +deactivate pattern_11_or__step + + + + + + + +wfrunner <-- pattern_11_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_11_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-11/sequence.svg b/docs/pattern-11/sequence.svg new file mode 100644 index 0000000..f1291b1 --- /dev/null +++ b/docs/pattern-11/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-11step. stepWorkflow runnerpattern-11step. stepWorkflow runnerWorkflow runnerpattern-11pattern-11step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-11step. stepWater bodies detection based on NDWI and the otsu threshold (with DEM)[001]aoi[002]epsg[003]bands[004]item[005]dem[006]item(fromitem)[007]aoi(fromaoi)[008]epsg(fromepsg)[009]band(frombands)[010]dem(fromdem)[011]Compute[012]stac-catalog[013]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-11/state.puml b/docs/pattern-11/state.puml new file mode 100644 index 0000000..8597b04 --- /dev/null +++ b/docs/pattern-11/state.puml @@ -0,0 +1,117 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:50.583 + '/ +@startuml +hide empty description + + + + + +state "pattern-11" as pattern_11 { + + state "aoi" as pattern_11_aoi <> + + state "epsg" as pattern_11_epsg <> + + state "bands" as pattern_11_bands <> + + state "item" as pattern_11_item <> + + state "dem" as pattern_11_dem <> + + + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_11_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_11_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_11_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_11_bands --> step_band + + + + state "dem" as step_dem <> + + + + pattern_11_dem --> step_dem + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_11_water_bodies <> + +step_stac_catalog --> pattern_11_water_bodies + + +} + +[*] --> pattern_11_aoi + +[*] --> pattern_11_epsg + +[*] --> pattern_11_bands + +[*] --> pattern_11_item + +[*] --> pattern_11_dem + + + +pattern_11_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-11/state.svg b/docs/pattern-11/state.svg new file mode 100644 index 0000000..6c1f26a --- /dev/null +++ b/docs/pattern-11/state.svg @@ -0,0 +1 @@ +pattern-11stepaoiepsgbandsitemdemwater_bodiesitemaoiepsgbanddemstac-catalog \ No newline at end of file diff --git a/docs/pattern-12.ipynb b/docs/pattern-12.ipynb deleted file mode 100644 index bd0d096..0000000 --- a/docs/pattern-12.ipynb +++ /dev/null @@ -1,926 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-12\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:56.413\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-12.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:56.414\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-12.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:56.472\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:56.473\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:56.479\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.453\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.454\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-12...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.455\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool crop...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.455\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool norm_diff...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.456\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool otsu...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.456\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:57.456\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-12.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 12\n", - "\n", - "This patterns publishes all products generated by all steps" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-12/node_crop\n", - "\n", - "pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "pattern-12/node_normalized_difference\n", - "\n", - "pattern-12/node_normalized_difference\n", - "\n", - "\n", - "\n", - "pattern-12/node_crop->pattern-12/node_normalized_difference\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/cropped\n", - "\n", - "pattern-12/cropped\n", - "\n", - "\n", - "\n", - "pattern-12/node_crop->pattern-12/cropped\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/node_otsu\n", - "\n", - "pattern-12/node_otsu\n", - "\n", - "\n", - "\n", - "pattern-12/node_normalized_difference->pattern-12/node_otsu\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/ndwi\n", - "\n", - "pattern-12/ndwi\n", - "\n", - "\n", - "\n", - "pattern-12/node_normalized_difference->pattern-12/ndwi\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/water_bodies\n", - "\n", - "pattern-12/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-12/node_otsu->pattern-12/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/aoi\n", - "\n", - "pattern-12/aoi\n", - "\n", - "\n", - "\n", - "pattern-12/aoi->pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/aoi->pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/cropped-collection\n", - "\n", - "pattern-12/cropped-collection\n", - "\n", - "\n", - "\n", - "pattern-12/cropped-collection->pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/item\n", - "\n", - "pattern-12/item\n", - "\n", - "\n", - "\n", - "pattern-12/item->pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/item->pattern-12/node_normalized_difference\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/item->pattern-12/node_otsu\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/ndwi-collection\n", - "\n", - "pattern-12/ndwi-collection\n", - "\n", - "\n", - "\n", - "pattern-12/ndwi-collection->pattern-12/node_normalized_difference\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/water-bodies-collection\n", - "\n", - "pattern-12/water-bodies-collection\n", - "\n", - "\n", - "\n", - "pattern-12/water-bodies-collection->pattern-12/node_otsu\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-12/bands\n", - "\n", - "pattern-12/bands\n", - "\n", - "\n", - "\n", - "pattern-12/bands->pattern-12/node_crop\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox` | area of interest | area of interest as a bounding box |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n", - "| `cropped-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | cropped reflectances STAC Collection | STAC Collection URL for the cropped reflectances |\n", - "| `ndwi-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | NDWI STAC Collection | STAC Collection URL for the NDWI |\n", - "| `water-bodies-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies STAC Collection | STAC Collection URL for the water bodies |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `node_crop` | `#crop` | None | None |\n", - "| `node_normalized_difference` | `#norm_diff` | None | None |\n", - "| `node_otsu` | `#otsu` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `cropped` | `Directory[]` | Cropped reflectances | Cropped reflectances |\n", - "| `ndwi` | `Directory` | Normalized Difference Water Index | Normalized Difference Water Index calculated from the input bands |\n", - "| `water_bodies` | `Directory` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:59.657\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:55:59.719\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:59.732\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:59.733\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:55:59.735\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.528\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.529\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.529\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.530\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.531\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.575\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.583\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.583\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:00.584\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.319\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.319\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.320\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.321\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.321\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.369\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.379\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.380\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:01.381\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.344\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.345\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.345\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.346\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.346\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.347\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.347\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.347\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.348\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.349\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.349\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.350\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-12 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.351\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/aoi: https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.351\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.352\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.352\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.353\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.353\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.354\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.355\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/cropped-collection: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.355\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/ndwi-collection: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.356\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-12/water-bodies-collection: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.356\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-12 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.357\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-12/cropped: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.357\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.358\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.358\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.360\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m284\u001b[0m - \u001b[1m Array detected, scatter required for stac_catalog:app/cropped\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.361\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/cropped' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.361\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-12/ndwi: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.362\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_1'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.362\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.362\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.366\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/ndwi' to 'stage_out_1' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.366\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-12/water_bodies: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.367\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.367\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.368\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.369\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_2' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:56:02.370\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0208 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels\n", - " Edge main/directory_stage_in_0 -> main/another_input\n", - "Error: lost main/another_input main/directory_stage_in_0 edge\n" - ] - }, - { - "ename": "CalledProcessError", - "evalue": "Command '[PosixPath('dot'), '-Kdot', '-Tsvg']' returned non-zero exit status 1. [stderr: 'Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels\\n Edge main/directory_stage_in_0 -> main/another_input\\nError: lost main/another_input main/directory_stage_in_0 edge\\n']", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mCalledProcessError\u001b[39m Traceback (most recent call last)", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/backend/execute.py:88\u001b[39m, in \u001b[36mrun_check\u001b[39m\u001b[34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[39m\n\u001b[32m 87\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m---> \u001b[39m\u001b[32m88\u001b[39m \u001b[43mproc\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcheck_returncode\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 89\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m subprocess.CalledProcessError \u001b[38;5;28;01mas\u001b[39;00m e:\n", - "\u001b[36mFile \u001b[39m\u001b[32m/home/linuxbrew/.linuxbrew/Cellar/python@3.13/3.13.1/lib/python3.13/subprocess.py:508\u001b[39m, in \u001b[36mCompletedProcess.check_returncode\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 507\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m.returncode:\n\u001b[32m--> \u001b[39m\u001b[32m508\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m CalledProcessError(\u001b[38;5;28mself\u001b[39m.returncode, \u001b[38;5;28mself\u001b[39m.args, \u001b[38;5;28mself\u001b[39m.stdout,\n\u001b[32m 509\u001b[39m \u001b[38;5;28mself\u001b[39m.stderr)\n", - "\u001b[31mCalledProcessError\u001b[39m: Command '[PosixPath('dot'), '-Kdot', '-Tsvg']' returned non-zero exit status 1.", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[31mCalledProcessError\u001b[39m Traceback (most recent call last)", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/IPython/core/formatters.py:1036\u001b[39m, in \u001b[36mMimeBundleFormatter.__call__\u001b[39m\u001b[34m(self, obj, include, exclude)\u001b[39m\n\u001b[32m 1033\u001b[39m method = get_real_method(obj, \u001b[38;5;28mself\u001b[39m.print_method)\n\u001b[32m 1035\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m method \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m-> \u001b[39m\u001b[32m1036\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmethod\u001b[49m\u001b[43m(\u001b[49m\u001b[43minclude\u001b[49m\u001b[43m=\u001b[49m\u001b[43minclude\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mexclude\u001b[49m\u001b[43m=\u001b[49m\u001b[43mexclude\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 1037\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 1038\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m:\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/jupyter_integration.py:98\u001b[39m, in \u001b[36mJupyterIntegration._repr_mimebundle_\u001b[39m\u001b[34m(self, include, exclude, **_)\u001b[39m\n\u001b[32m 96\u001b[39m include = \u001b[38;5;28mset\u001b[39m(include) \u001b[38;5;28;01mif\u001b[39;00m include \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m {\u001b[38;5;28mself\u001b[39m._jupyter_mimetype}\n\u001b[32m 97\u001b[39m include -= \u001b[38;5;28mset\u001b[39m(exclude \u001b[38;5;129;01mor\u001b[39;00m [])\n\u001b[32m---> \u001b[39m\u001b[32m98\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m {mimetype: \u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmethod_name\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 99\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m mimetype, method_name \u001b[38;5;129;01min\u001b[39;00m MIME_TYPES.items()\n\u001b[32m 100\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m mimetype \u001b[38;5;129;01min\u001b[39;00m include}\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/jupyter_integration.py:112\u001b[39m, in \u001b[36mJupyterIntegration._repr_image_svg_xml\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 110\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_repr_image_svg_xml\u001b[39m(\u001b[38;5;28mself\u001b[39m) -> \u001b[38;5;28mstr\u001b[39m:\n\u001b[32m 111\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Return the rendered graph as SVG string.\"\"\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m112\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mpipe\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43msvg\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m=\u001b[49m\u001b[43mSVG_ENCODING\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/piping.py:104\u001b[39m, in \u001b[36mPipe.pipe\u001b[39m\u001b[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)\u001b[39m\n\u001b[32m 55\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mpipe\u001b[39m(\u001b[38;5;28mself\u001b[39m,\n\u001b[32m 56\u001b[39m \u001b[38;5;28mformat\u001b[39m: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 57\u001b[39m renderer: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m (...)\u001b[39m\u001b[32m 61\u001b[39m engine: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 62\u001b[39m encoding: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m) -> typing.Union[\u001b[38;5;28mbytes\u001b[39m, \u001b[38;5;28mstr\u001b[39m]:\n\u001b[32m 63\u001b[39m \u001b[38;5;250m \u001b[39m\u001b[33;03m\"\"\"Return the source piped through the Graphviz layout command.\u001b[39;00m\n\u001b[32m 64\u001b[39m \n\u001b[32m 65\u001b[39m \u001b[33;03m Args:\u001b[39;00m\n\u001b[32m (...)\u001b[39m\u001b[32m 102\u001b[39m \u001b[33;03m ' \u001b[39m\u001b[32m104\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_pipe_legacy\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 105\u001b[39m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m=\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 106\u001b[39m \u001b[43m \u001b[49m\u001b[43mformatter\u001b[49m\u001b[43m=\u001b[49m\u001b[43mformatter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 107\u001b[39m \u001b[43m \u001b[49m\u001b[43mneato_no_op\u001b[49m\u001b[43m=\u001b[49m\u001b[43mneato_no_op\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 108\u001b[39m \u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m=\u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 109\u001b[39m \u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[43m=\u001b[49m\u001b[43mengine\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 110\u001b[39m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m=\u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/_tools.py:185\u001b[39m, in \u001b[36mdeprecate_positional_args..decorator..wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m 177\u001b[39m wanted = \u001b[33m'\u001b[39m\u001b[33m, \u001b[39m\u001b[33m'\u001b[39m.join(\u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m=\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mvalue\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[33m'\u001b[39m\n\u001b[32m 178\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m name, value \u001b[38;5;129;01min\u001b[39;00m deprecated.items())\n\u001b[32m 179\u001b[39m warnings.warn(\u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[33mThe signature of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfunc_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m will be reduced\u001b[39m\u001b[33m'\u001b[39m\n\u001b[32m 180\u001b[39m \u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[33m to \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msupported_number\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m positional arg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00ms_\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00mqualification\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\n\u001b[32m 181\u001b[39m \u001b[33mf\u001b[39m\u001b[33m'\u001b[39m\u001b[33m \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(supported)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m: pass \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mwanted\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m as keyword arg\u001b[39m\u001b[38;5;132;01m{\u001b[39;00ms_\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m,\n\u001b[32m 182\u001b[39m stacklevel=stacklevel,\n\u001b[32m 183\u001b[39m category=category)\n\u001b[32m--> \u001b[39m\u001b[32m185\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/piping.py:121\u001b[39m, in \u001b[36mPipe._pipe_legacy\u001b[39m\u001b[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)\u001b[39m\n\u001b[32m 112\u001b[39m \u001b[38;5;129m@_tools\u001b[39m.deprecate_positional_args(supported_number=\u001b[32m1\u001b[39m, ignore_arg=\u001b[33m'\u001b[39m\u001b[33mself\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m 113\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34m_pipe_legacy\u001b[39m(\u001b[38;5;28mself\u001b[39m,\n\u001b[32m 114\u001b[39m \u001b[38;5;28mformat\u001b[39m: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m (...)\u001b[39m\u001b[32m 119\u001b[39m engine: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[32m 120\u001b[39m encoding: typing.Optional[\u001b[38;5;28mstr\u001b[39m] = \u001b[38;5;28;01mNone\u001b[39;00m) -> typing.Union[\u001b[38;5;28mbytes\u001b[39m, \u001b[38;5;28mstr\u001b[39m]:\n\u001b[32m--> \u001b[39m\u001b[32m121\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_pipe_future\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[32m 122\u001b[39m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m=\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 123\u001b[39m \u001b[43m \u001b[49m\u001b[43mformatter\u001b[49m\u001b[43m=\u001b[49m\u001b[43mformatter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 124\u001b[39m \u001b[43m \u001b[49m\u001b[43mneato_no_op\u001b[49m\u001b[43m=\u001b[49m\u001b[43mneato_no_op\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 125\u001b[39m \u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m=\u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 126\u001b[39m \u001b[43m \u001b[49m\u001b[43mengine\u001b[49m\u001b[43m=\u001b[49m\u001b[43mengine\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m 127\u001b[39m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m=\u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/piping.py:149\u001b[39m, in \u001b[36mPipe._pipe_future\u001b[39m\u001b[34m(self, format, renderer, formatter, neato_no_op, quiet, engine, encoding)\u001b[39m\n\u001b[32m 146\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m encoding \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[32m 147\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m codecs.lookup(encoding) \u001b[38;5;129;01mis\u001b[39;00m codecs.lookup(\u001b[38;5;28mself\u001b[39m.encoding):\n\u001b[32m 148\u001b[39m \u001b[38;5;66;03m# common case: both stdin and stdout need the same encoding\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m149\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_pipe_lines_string\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m=\u001b[49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 150\u001b[39m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[32m 151\u001b[39m raw = \u001b[38;5;28mself\u001b[39m._pipe_lines(*args, input_encoding=\u001b[38;5;28mself\u001b[39m.encoding, **kwargs)\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/backend/piping.py:212\u001b[39m, in \u001b[36mpipe_lines_string\u001b[39m\u001b[34m(engine, format, input_lines, encoding, renderer, formatter, neato_no_op, quiet)\u001b[39m\n\u001b[32m 206\u001b[39m cmd = dot_command.command(engine, \u001b[38;5;28mformat\u001b[39m,\n\u001b[32m 207\u001b[39m renderer=renderer,\n\u001b[32m 208\u001b[39m formatter=formatter,\n\u001b[32m 209\u001b[39m neato_no_op=neato_no_op)\n\u001b[32m 210\u001b[39m kwargs = {\u001b[33m'\u001b[39m\u001b[33minput_lines\u001b[39m\u001b[33m'\u001b[39m: input_lines, \u001b[33m'\u001b[39m\u001b[33mencoding\u001b[39m\u001b[33m'\u001b[39m: encoding}\n\u001b[32m--> \u001b[39m\u001b[32m212\u001b[39m proc = \u001b[43mexecute\u001b[49m\u001b[43m.\u001b[49m\u001b[43mrun_check\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcmd\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcapture_output\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m=\u001b[49m\u001b[43mquiet\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 213\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m proc.stdout\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/.local/share/hatch/env/virtual/patterns/VcrZkRRN/patterns/lib/python3.13/site-packages/graphviz/backend/execute.py:90\u001b[39m, in \u001b[36mrun_check\u001b[39m\u001b[34m(cmd, input_lines, encoding, quiet, **kwargs)\u001b[39m\n\u001b[32m 88\u001b[39m proc.check_returncode()\n\u001b[32m 89\u001b[39m \u001b[38;5;28;01mexcept\u001b[39;00m subprocess.CalledProcessError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[32m---> \u001b[39m\u001b[32m90\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m CalledProcessError(*e.args)\n\u001b[32m 92\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m proc\n", - "\u001b[31mCalledProcessError\u001b[39m: Command '[PosixPath('dot'), '-Kdot', '-Tsvg']' returned non-zero exit status 1. [stderr: 'Warning: flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels\\n Edge main/directory_stage_in_0 -> main/another_input\\nError: lost main/another_input main/directory_stage_in_0 edge\\n']" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "19f51d4e", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "b91e6fd2", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox` | area of interest - pattern-12/aoi | area of interest as a bounding box - This parameter is derived from pattern-12/aoi |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-12/bands | bands used for the NDWI - This parameter is derived from pattern-12/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-12/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-12/item |\n", - "| `cropped-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | cropped reflectances STAC Collection - pattern-12/cropped-collection | STAC Collection URL for the cropped reflectances - This parameter is derived from pattern-12/cropped-collection |\n", - "| `ndwi-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | NDWI STAC Collection - pattern-12/ndwi-collection | STAC Collection URL for the NDWI - This parameter is derived from pattern-12/ndwi-collection |\n", - "| `water-bodies-collection` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies STAC Collection - pattern-12/water-bodies-collection | STAC Collection URL for the water bodies - This parameter is derived from pattern-12/water-bodies-collection |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-12` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n", - "| `stage_out_1` | `#my-super-stage-out` | None | None |\n", - "| `stage_out_2` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `cropped` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Cropped reflectances | Cropped reflectances |\n", - "| `ndwi` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Normalized Difference Water Index | Normalized Difference Water Index calculated from the input bands |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "baaafe9f", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "dc4d0b49", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "7fa174e4", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\n", - " \"aoi\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox\",\n", - " \"bbox\": [\n", - " -118.985,\n", - " 38.432,\n", - " -118.183,\n", - " 38.938\n", - " ],\n", - " \"crs\": \"CRS84\"\n", - " },\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"\n", - " },\n", - " \"bands\": [\n", - " \"green\",\n", - " \"nir08\"\n", - " ],\n", - " \"cropped-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/cropped_collection.json\"\n", - " },\n", - " \"ndwi-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/ndi_collection.json\"\n", - " },\n", - " \"water-bodies-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/water_bodies_collection.json\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox\",\n", - " \"bbox\": [-118.985, 38.432, -118.183, 38.938],\n", - " \"crs\": \"CRS84\",\n", - " },\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"cropped-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/cropped_collection.json\",\n", - " },\n", - " \"ndwi-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/ndi_collection.json\",\n", - " },\n", - " \"water-bodies-collection\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#URI\",\n", - " \"value\": \"https://github.com/eoap/application-package-patterns/raw/refs/heads/develop/collections/water_bodies_collection.json\",\n", - " },\n", - "}\n", - "\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "1cfd01e0", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"cropped\": [\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-qk2x3f/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-9ewzav/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - " ],\n", - " \"ndwi\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-lgdey7/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-9lato7/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d3f04a90", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-12.md b/docs/pattern-12.md new file mode 100644 index 0000000..754dd36 --- /dev/null +++ b/docs/pattern-12.md @@ -0,0 +1,230 @@ +# 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](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:28:01.300 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-12 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) +* [SchemaDefRequirement](https://www.commonwl.org/v1.2/Workflow.html#SchemaDefRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [BBox](https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox):
  • `bbox`: `array` of [double](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • `crs`: [enum](https://www.commonwl.org/v1.2/Workflow.html#CommandInputEnumSchema):
    • `CRS84`
    • `CRS84h`
| area of interest | area of interest as a bounding box | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | +| `cropped-collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| cropped reflectances STAC Collection | STAC Collection URL for the cropped reflectances | +| `ndwi-collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| NDWI STAC Collection | STAC Collection URL for the NDWI | +| `water-bodies-collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| Water bodies STAC Collection | STAC Collection URL for the water bodies | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [node_crop](#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) | `#norm_diff` | Compute NDWI | Compute NDWI from the cropped reflectances | +| [node_otsu](#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](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Cropped reflectances | Cropped reflectances | +| `ndwi` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Normalized Difference Water Index | Normalized Difference Water Index calculated from the input bands | +| `water_bodies` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-12` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-12 OGC API Processes JSON Inputs schema](./pattern-12/ogc_processes_inputs.svg "pattern-12 diagram") + +#### Outputs + +![pattern-12 OGC API Processes JSON Outputs schema](./pattern-12/ogc_processes_outputs.svg "pattern-12 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-12 flow diagram](./pattern-12/activity.svg "pattern-12 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-12 flow diagram](./pattern-12/component.svg "pattern-12 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-12 flow diagram](./pattern-12/class.svg "pattern-12 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-12 flow diagram](./pattern-12/sequence.svg "pattern-12 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-12 flow diagram](./pattern-12/state.svg "pattern-12 State diagram") + + +### Run in step + +`node_crop` + + + +## crop + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [BBox](https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox):
  • `bbox`: `array` of [double](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • `crs`: [enum](https://www.commonwl.org/v1.2/Workflow.html#CommandInputEnumSchema):
    • `CRS84`
    • `CRS84h`
| +| `epsg` | `--epsg` | [BBox](https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox):
  • `bbox`: `array` of [double](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • `crs`: [enum](https://www.commonwl.org/v1.2/Workflow.html#CommandInputEnumSchema):
    • `CRS84`
    • `CRS84h`
| +| `band` | `--band` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `collection` | `--collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner crop-cli \ +--input-item \ +--aoi \ +--epsg \ +--band \ +--collection +``` + +### Run in step + +`node_normalized_difference` + + + +## norm_diff + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `rasters` | `--rasters` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `item` | `--item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `collection` | `--collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner ndi-cli \ +--rasters \ +--item \ +--collection +``` + +### Run in step + +`node_otsu` + + + +## otsu + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `raster` | `--input-ndi` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `item` | `--item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `collection` | `--collection` | [URI](https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI):
  • `value`: [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner otsu-cli \ +--input-ndi \ +--item \ +--collection +``` + diff --git a/docs/pattern-12/activity.puml b/docs/pattern-12/activity.puml new file mode 100644 index 0000000..0d5252d --- /dev/null +++ b/docs/pattern-12/activity.puml @@ -0,0 +1,83 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:05.579 + '/ +@startuml +start + + + + + +group pattern-12 { + +split + + :aoi; <> +split again + + :bands; <> +split again + + :item; <> +split again + + :cropped-collection; <> +split again + + :ndwi-collection; <> +split again + + :water-bodies-collection; <> +end split + + + + +repeat + + +:step: node_crop +CommandLineTool: crop; + +repeat while (dotproduct node_crop/band) + + + + + + +:step: node_normalized_difference +CommandLineTool: norm_diff; + + + + + + + + +:step: node_otsu +CommandLineTool: otsu; + + + + + +split + + :cropped; <> +split again + + :ndwi; <> +split again + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-12/activity.svg b/docs/pattern-12/activity.svg new file mode 100644 index 0000000..5681d64 --- /dev/null +++ b/docs/pattern-12/activity.svg @@ -0,0 +1 @@ +pattern-12aoibandsitemcropped-collectionndwi-collectionwater-bodies-collectionstep: node_cropCommandLineTool: cropdotproduct node_crop/bandstep: node_normalized_differenceCommandLineTool: norm_diffstep: node_otsuCommandLineTool: otsucroppedndwiwater_bodies \ No newline at end of file diff --git a/docs/pattern-12/class.puml b/docs/pattern-12/class.puml new file mode 100644 index 0000000..3a77ac7 --- /dev/null +++ b/docs/pattern-12/class.puml @@ -0,0 +1,531 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:08.328 + '/ +@startuml + + + + + + + + + + + + + + + + package "Schemas" { + + + + + +enum CRS { + + CRS84 + + CRS84h + + } + + + + + + +record BBox { + + +bbox: double[] + + +crs: CRS + + } + + ' no need to add a BBox --> double + + BBox --> CRS + + + + + + + +record Date { + + +value: string + + } + + ' no need to add a Date --> string + + + + + + + +record DateTime { + + +value: string + + } + + ' no need to add a DateTime --> string + + + + + + + +record Duration { + + +value: string + + } + + ' no need to add a Duration --> string + + + + + + + +record Email { + + +value: string + + } + + ' no need to add a Email --> string + + + + + + + +record Hostname { + + +value: string + + } + + ' no need to add a Hostname --> string + + + + + + + +record IDNEmail { + + +value: string + + } + + ' no need to add a IDNEmail --> string + + + + + + + +record IDNHostname { + + +value: string + + } + + ' no need to add a IDNHostname --> string + + + + + + + +record IPv4 { + + +value: string + + } + + ' no need to add a IPv4 --> string + + + + + + + +record IPv6 { + + +value: string + + } + + ' no need to add a IPv6 --> string + + + + + + + +record IRI { + + +value: string + + } + + ' no need to add a IRI --> string + + + + + + + +record IRIReference { + + +value: string + + } + + ' no need to add a IRIReference --> string + + + + + + + +record JsonPointer { + + +value: string + + } + + ' no need to add a JsonPointer --> string + + + + + + + +record Password { + + +value: string + + } + + ' no need to add a Password --> string + + + + + + + +record RelativeJsonPointer { + + +value: string + + } + + ' no need to add a RelativeJsonPointer --> string + + + + + + + +record UUID { + + +value: string + + } + + ' no need to add a UUID --> string + + + + + + + +record URI { + + +value: string + + } + + ' no need to add a URI --> string + + + + + + + +record URIReference { + + +value: string + + } + + ' no need to add a URIReference --> string + + + + + + + +record URITemplate { + + +value: string + + } + + ' no need to add a URITemplate --> string + + + + + + + +record Time { + + +value: string + + } + + ' no need to add a Time --> string + + + + } + + + + + package "Water body detection based on NDWI and the otsu threshold" { + + + + +class "pattern-12" as Workflow_pattern_12 extends Workflow { + __ Inputs __ + + + aoi: BBox + + + bands: string[] = ['green', 'nir'] + + + item: Directory + + + cropped-collection: URI + + + ndwi-collection: URI + + + water-bodies-collection: URI + + + __ Outputs __ + + + cropped: Directory[] + + + ndwi: Directory + + + water_bodies: Directory + + + + __ Steps __ + + - node_crop: crop + + - node_normalized_difference: norm_diff + + - node_otsu: otsu + + + } + + + + Workflow_pattern_12 --> BBox + + + + ' no need to add a Workflow_pattern_12 --> string + + + + ' no need to add a Workflow_pattern_12 --> Directory + + + + Workflow_pattern_12 --> URI + + + + Workflow_pattern_12 --> URI + + + + Workflow_pattern_12 --> URI + + + + package "Steps" { + + + + + + + + +class "crop" as CommandLineTool_crop extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: BBox + + + epsg: BBox + + + band: string + + + collection: URI + + + __ Outputs __ + + + cropped: Directory + + + + } + + + + ' no need to add a CommandLineTool_crop --> Directory + + + + CommandLineTool_crop --> BBox + + + + CommandLineTool_crop --> BBox + + + + ' no need to add a CommandLineTool_crop --> string + + + + CommandLineTool_crop --> URI + + +Workflow_pattern_12 --> CommandLineTool_crop + + + + + + + + + +class "norm_diff" as CommandLineTool_norm_diff extends CommandLineTool { + __ Inputs __ + + + rasters: Directory[] + + + item: Directory + + + collection: URI + + + __ Outputs __ + + + ndwi: Directory + + + + } + + + + ' no need to add a CommandLineTool_norm_diff --> Directory + + + + ' no need to add a CommandLineTool_norm_diff --> Directory + + + + CommandLineTool_norm_diff --> URI + + +Workflow_pattern_12 --> CommandLineTool_norm_diff + + + + + + + + + +class "otsu" as CommandLineTool_otsu extends CommandLineTool { + __ Inputs __ + + + raster: Directory + + + item: Directory + + + collection: URI + + + __ Outputs __ + + + water_bodies: Directory + + + + } + + + + ' no need to add a CommandLineTool_otsu --> Directory + + + + ' no need to add a CommandLineTool_otsu --> Directory + + + + CommandLineTool_otsu --> URI + + +Workflow_pattern_12 --> CommandLineTool_otsu + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_pattern_12 --> ScatterFeatureRequirement + + + + class SchemaDefRequirement + Workflow_pattern_12 --> SchemaDefRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-12/class.svg b/docs/pattern-12/class.svg new file mode 100644 index 0000000..76c7526 --- /dev/null +++ b/docs/pattern-12/class.svg @@ -0,0 +1 @@ +SchemasWater body detection based on NDWI and the otsu thresholdStepsRequirementsCRSCRS84 CRS84hBBoxbbox: double[] crs: CRSDatevalue: stringDateTimevalue: stringDurationvalue: stringEmailvalue: stringHostnamevalue: stringIDNEmailvalue: stringIDNHostnamevalue: stringIPv4value: stringIPv6value: stringIRIvalue: stringIRIReferencevalue: stringJsonPointervalue: stringPasswordvalue: stringRelativeJsonPointervalue: stringUUIDvalue: stringURIvalue: stringURIReferencevalue: stringURITemplatevalue: stringTimevalue: stringpattern-12 aoi: BBox bands: string[] = ['green', 'nir'] item: Directory cropped-collection: URI ndwi-collection: URI water-bodies-collection: URI  Inputs cropped: Directory[] ndwi: Directory water_bodies: Directory   Outputs node_crop: crop node_normalized_difference: norm_diff node_otsu: otsu  StepsWorkflowcrop item: Directory aoi: BBox epsg: BBox band: string collection: URI  Inputs cropped: Directory   OutputsCommandLineToolnorm_diff rasters: Directory[] item: Directory collection: URI  Inputs ndwi: Directory   Outputsotsu raster: Directory item: Directory collection: URI  Inputs water_bodies: Directory   OutputsScatterFeatureRequirementSchemaDefRequirementHints \ No newline at end of file diff --git a/docs/pattern-12/component.puml b/docs/pattern-12/component.puml new file mode 100644 index 0000000..7360dec --- /dev/null +++ b/docs/pattern-12/component.puml @@ -0,0 +1,178 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:06.925 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-12'" { + component "pattern-12" as pattern_12 { + + portin "aoi" as pattern_12_aoi + + portin "bands" as pattern_12_bands + + portin "item" as pattern_12_item + + portin "cropped-collection" as pattern_12_cropped_collection + + portin "ndwi-collection" as pattern_12_ndwi_collection + + portin "water-bodies-collection" as pattern_12_water_bodies_collection + + + portout "cropped" as pattern_12_cropped + + portout "ndwi" as pattern_12_ndwi + + portout "water_bodies" as pattern_12_water_bodies + + } + + + frame "node_crop" as pattern_12_node_crop { + + portin "item" as pattern_12_node_crop_item + + + + pattern_12_item .down.> pattern_12_node_crop_item + + + + portin "aoi" as pattern_12_node_crop_aoi + + + + pattern_12_aoi .down.> pattern_12_node_crop_aoi + + + + portin "epsg" as pattern_12_node_crop_epsg + + + + pattern_12_aoi .down.> pattern_12_node_crop_epsg + + + + portin "band" as pattern_12_node_crop_band + + + + pattern_12_bands .down.> pattern_12_node_crop_band + + + + portin "collection" as pattern_12_node_crop_collection + + + + pattern_12_cropped_collection .down.> pattern_12_node_crop_collection + + + + + + portout "cropped" as pattern_12_node_crop_cropped + + + component "crop" as crop + } + + frame "node_normalized_difference" as pattern_12_node_normalized_difference { + + portin "rasters" as pattern_12_node_normalized_difference_rasters + + + + pattern_12_node_crop_cropped .down.> pattern_12_node_normalized_difference_rasters + + + + portin "item" as pattern_12_node_normalized_difference_item + + + + pattern_12_item .down.> pattern_12_node_normalized_difference_item + + + + portin "collection" as pattern_12_node_normalized_difference_collection + + + + pattern_12_ndwi_collection .down.> pattern_12_node_normalized_difference_collection + + + + + + portout "ndwi" as pattern_12_node_normalized_difference_ndwi + + + component "norm_diff" as norm_diff + } + + frame "node_otsu" as pattern_12_node_otsu { + + portin "raster" as pattern_12_node_otsu_raster + + + + pattern_12_node_normalized_difference_ndwi .down.> pattern_12_node_otsu_raster + + + + portin "item" as pattern_12_node_otsu_item + + + + pattern_12_item .down.> pattern_12_node_otsu_item + + + + portin "collection" as pattern_12_node_otsu_collection + + + + pattern_12_water_bodies_collection .down.> pattern_12_node_otsu_collection + + + + + + portout "water_bodies" as pattern_12_node_otsu_water_bodies + + + component "otsu" as otsu + } + +} + + + + +pattern_12_node_crop_cropped .up.> pattern_12_cropped + + + + + +pattern_12_node_normalized_difference_ndwi .up.> pattern_12_ndwi + + + + + +pattern_12_node_otsu_water_bodies .up.> pattern_12_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-12/component.svg b/docs/pattern-12/component.svg new file mode 100644 index 0000000..1d7be9f --- /dev/null +++ b/docs/pattern-12/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-12'pattern-12node_cropnode_normalized_differencenode_otsuaoibandsitemcropped-collectionndwi-collectionwater-bodies-collectioncroppedndwiwater_bodiesitemaoiepsgbandcollectioncroppedcroprastersitemcollectionndwinorm_diffrasteritemcollectionwater_bodiesotsu \ No newline at end of file diff --git a/docs/pattern-12/ogc_processes_inputs.puml b/docs/pattern-12/ogc_processes_inputs.puml new file mode 100644 index 0000000..96de817 --- /dev/null +++ b/docs/pattern-12/ogc_processes_inputs.puml @@ -0,0 +1,148 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:13.097 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "object", + "properties": { + "bbox": { + "type": "array", + "items": { + "type": "number", + "format": "double" + } + }, + "crs": { + "type": "string", + "enum": [ + "CRS84", + "CRS84h" + ] + } + }, + "required": [ + "bbox", + "crs" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "https://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBox" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + }, + "cropped-collection": { + "schema": { + "type": "string", + "format": "uri" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "cropped reflectances STAC Collection", + "description": "STAC Collection URL for the cropped reflectances" + }, + "ndwi-collection": { + "schema": { + "type": "string", + "format": "uri" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "NDWI STAC Collection", + "description": "STAC Collection URL for the NDWI" + }, + "water-bodies-collection": { + "schema": { + "type": "string", + "format": "uri" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Water bodies STAC Collection", + "description": "STAC Collection URL for the water bodies" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-12/ogc_processes_inputs.svg b/docs/pattern-12/ogc_processes_inputs.svg new file mode 100644 index 0000000..75554c6 --- /dev/null +++ b/docs/pattern-12/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   bands   item   cropped-collection   ndwi-collection   water-bodies-collection   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypeobjectproperties   required   bbox   crs   typearrayitems   typenumberformatdoubletypestringenum   CRS84CRS84hbboxcrs   titlecwl:typevaluehttps://raw.githubusercontent.com/eoap/schemas/main/ogc.yaml#BBoxschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlecropped reflectances STAC CollectiondescriptionSTAC Collection URL for the cropped reflectancestypestringformaturi   titlecwl:typevaluehttps://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URIschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleNDWI STAC CollectiondescriptionSTAC Collection URL for the NDWItypestringformaturi   titlecwl:typevaluehttps://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URIschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleWater bodies STAC CollectiondescriptionSTAC Collection URL for the water bodiestypestringformaturi   titlecwl:typevaluehttps://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI \ No newline at end of file diff --git a/docs/pattern-12/ogc_processes_outputs.puml b/docs/pattern-12/ogc_processes_outputs.puml new file mode 100644 index 0000000..b5317ed --- /dev/null +++ b/docs/pattern-12/ogc_processes_outputs.puml @@ -0,0 +1,92 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:14.839 + '/ +@startjson +{ + "cropped": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "title": "Cropped reflectances", + "description": "Cropped reflectances" + }, + "ndwi": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Normalized Difference Water Index", + "description": "Normalized Difference Water Index calculated from the input bands" + }, + "water_bodies": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-12/ogc_processes_outputs.svg b/docs/pattern-12/ogc_processes_outputs.svg new file mode 100644 index 0000000..9557d77 --- /dev/null +++ b/docs/pattern-12/ogc_processes_outputs.svg @@ -0,0 +1 @@ +cropped   ndwi   water_bodies   schema   metadata   titleCropped reflectancesdescriptionCropped reflectancestypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[]schema   metadata   titleNormalized Difference Water IndexdescriptionNormalized Difference Water Index calculated from the input bandsoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-12/sequence.puml b/docs/pattern-12/sequence.puml new file mode 100644 index 0000000..ca729be --- /dev/null +++ b/docs/pattern-12/sequence.puml @@ -0,0 +1,162 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:10.348 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water body detection based on NDWI and the otsu threshold == + +control "pattern-12" as pattern_12_or +activate pattern_12_or + + +wfrunner -> pattern_12_or : ""aoi"" + +wfrunner -> pattern_12_or : ""bands"" + +wfrunner -> pattern_12_or : ""item"" + +wfrunner -> pattern_12_or : ""cropped-collection"" + +wfrunner -> pattern_12_or : ""ndwi-collection"" + +wfrunner -> pattern_12_or : ""water-bodies-collection"" + + + + +loop dotproduct node_crop/band + + + +participant "step: node_crop\nCommandLineTool: crop" as pattern_12_or__node_crop +activate pattern_12_or__node_crop + + + +pattern_12_or -> pattern_12_or__node_crop : ""item"" (from ""item"") + + + +pattern_12_or -> pattern_12_or__node_crop : ""aoi"" (from ""aoi"") + + + +pattern_12_or -> pattern_12_or__node_crop : ""epsg"" (from ""aoi"") + + + +pattern_12_or -> pattern_12_or__node_crop : ""band"" (from ""bands"") + + + +pattern_12_or -> pattern_12_or__node_crop : ""collection"" (from ""cropped-collection"") + + + +pattern_12_or__node_crop -> pattern_12_or__node_crop : Compute + + +pattern_12_or <-- pattern_12_or__node_crop : ""cropped"" + + +deactivate pattern_12_or__node_crop + +end + + + + + + + +participant "step: node_normalized_difference\nCommandLineTool: norm_diff" as pattern_12_or__node_normalized_difference +activate pattern_12_or__node_normalized_difference + + + +pattern_12_or -> pattern_12_or__node_normalized_difference : ""rasters"" (from ""node_crop/cropped"") + + + +pattern_12_or -> pattern_12_or__node_normalized_difference : ""item"" (from ""item"") + + + +pattern_12_or -> pattern_12_or__node_normalized_difference : ""collection"" (from ""ndwi-collection"") + + + +pattern_12_or__node_normalized_difference -> pattern_12_or__node_normalized_difference : Compute + + +pattern_12_or <-- pattern_12_or__node_normalized_difference : ""ndwi"" + + +deactivate pattern_12_or__node_normalized_difference + + + + + + + + + +participant "step: node_otsu\nCommandLineTool: otsu" as pattern_12_or__node_otsu +activate pattern_12_or__node_otsu + + + +pattern_12_or -> pattern_12_or__node_otsu : ""raster"" (from ""node_normalized_difference/ndwi"") + + + +pattern_12_or -> pattern_12_or__node_otsu : ""item"" (from ""item"") + + + +pattern_12_or -> pattern_12_or__node_otsu : ""collection"" (from ""water-bodies-collection"") + + + +pattern_12_or__node_otsu -> pattern_12_or__node_otsu : Compute + + +pattern_12_or <-- pattern_12_or__node_otsu : ""water_bodies"" + + +deactivate pattern_12_or__node_otsu + + + + + + + +wfrunner <-- pattern_12_or : ""cropped"" (from ""node_crop/cropped"") + + + +wfrunner <-- pattern_12_or : ""ndwi"" (from ""node_normalized_difference/ndwi"") + + + +wfrunner <-- pattern_12_or : ""water_bodies"" (from ""node_otsu/water_bodies"") + + + +deactivate pattern_12_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-12/sequence.svg b/docs/pattern-12/sequence.svg new file mode 100644 index 0000000..eca9a18 --- /dev/null +++ b/docs/pattern-12/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-12step. node_cropstep. node_normalized_differencestep. node_otsuWorkflow runnerpattern-12step. node_cropstep. node_normalized_differencestep. node_otsuWorkflow runnerWorkflow runnerpattern-12pattern-12step: node_cropCommandLineTool: cropstep: node_cropCommandLineTool: cropstep: node_normalized_differenceCommandLineTool: norm_diffstep: node_normalized_differenceCommandLineTool: norm_diffstep: node_otsuCommandLineTool: otsustep: node_otsuCommandLineTool: otsuWorkflow runnerpattern-12step. node_cropstep. node_normalized_differencestep. node_otsuWater body detection based on NDWI and the otsu threshold[001]aoi[002]bands[003]item[004]cropped-collection[005]ndwi-collection[006]water-bodies-collectionloop[dotproduct node_crop/band][007]item(fromitem)[008]aoi(fromaoi)[009]epsg(fromaoi)[010]band(frombands)[011]collection(fromcropped-collection)[012]Compute[013]cropped[014]rasters(fromnode_crop/cropped)[015]item(fromitem)[016]collection(fromndwi-collection)[017]Compute[018]ndwi[019]raster(fromnode_normalized_difference/ndwi)[020]item(fromitem)[021]collection(fromwater-bodies-collection)[022]Compute[023]water_bodies[024]cropped(fromnode_crop/cropped)[025]ndwi(fromnode_normalized_difference/ndwi)[026]water_bodies(fromnode_otsu/water_bodies) \ No newline at end of file diff --git a/docs/pattern-12/state.puml b/docs/pattern-12/state.puml new file mode 100644 index 0000000..ff135d2 --- /dev/null +++ b/docs/pattern-12/state.puml @@ -0,0 +1,223 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:28:11.780 + '/ +@startuml +hide empty description + + + + + +state "pattern-12" as pattern_12 { + + state "aoi" as pattern_12_aoi <> + + state "bands" as pattern_12_bands <> + + state "item" as pattern_12_item <> + + state "cropped-collection" as pattern_12_cropped_collection <> + + state "ndwi-collection" as pattern_12_ndwi_collection <> + + state "water-bodies-collection" as pattern_12_water_bodies_collection <> + + + + + + + + + + + + + + + + + + + state node_crop { + + state "item" as node_crop_item <> + + + + pattern_12_item --> node_crop_item + + + + state "aoi" as node_crop_aoi <> + + + + pattern_12_aoi --> node_crop_aoi + + + + state "epsg" as node_crop_epsg <> + + + + pattern_12_aoi --> node_crop_epsg + + + + state "band" as node_crop_band <> + + + + pattern_12_bands --> node_crop_band + + + + state "collection" as node_crop_collection <> + + + + pattern_12_cropped_collection --> node_crop_collection + + + + + + state "cropped" as node_crop_cropped <> + + + } + + + + + + + + + + + + + state node_normalized_difference { + + state "rasters" as node_normalized_difference_rasters <> + + + + node_crop_cropped --> node_normalized_difference_rasters + + + + state "item" as node_normalized_difference_item <> + + + + pattern_12_item --> node_normalized_difference_item + + + + state "collection" as node_normalized_difference_collection <> + + + + pattern_12_ndwi_collection --> node_normalized_difference_collection + + + + + + state "ndwi" as node_normalized_difference_ndwi <> + + + } + + + + + + + + + + + + + state node_otsu { + + state "raster" as node_otsu_raster <> + + + + node_normalized_difference_ndwi --> node_otsu_raster + + + + state "item" as node_otsu_item <> + + + + pattern_12_item --> node_otsu_item + + + + state "collection" as node_otsu_collection <> + + + + pattern_12_water_bodies_collection --> node_otsu_collection + + + + + + state "water_bodies" as node_otsu_water_bodies <> + + + } + + + + +state "cropped" as pattern_12_cropped <> + +node_crop_cropped --> pattern_12_cropped + + +state "ndwi" as pattern_12_ndwi <> + +node_normalized_difference_ndwi --> pattern_12_ndwi + + +state "water_bodies" as pattern_12_water_bodies <> + +node_otsu_water_bodies --> pattern_12_water_bodies + + +} + +[*] --> pattern_12_aoi + +[*] --> pattern_12_bands + +[*] --> pattern_12_item + +[*] --> pattern_12_cropped_collection + +[*] --> pattern_12_ndwi_collection + +[*] --> pattern_12_water_bodies_collection + + + +pattern_12_cropped --> [*] + +pattern_12_ndwi --> [*] + +pattern_12_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-12/state.svg b/docs/pattern-12/state.svg new file mode 100644 index 0000000..25f8ecc --- /dev/null +++ b/docs/pattern-12/state.svg @@ -0,0 +1 @@ +pattern-12node_cropnode_normalized_differencenode_otsuaoibandsitemcropped-collectionndwi-collectionwater-bodies-collectioncroppedndwiwater_bodiesitemaoiepsgbandcollectioncroppedrastersitemcollectionndwirasteritemcollectionwater_bodies \ No newline at end of file diff --git a/docs/pattern-2.ipynb b/docs/pattern-2.ipynb deleted file mode 100644 index c3d6000..0000000 --- a/docs/pattern-2.ipynb +++ /dev/null @@ -1,984 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-2\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\"))\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:28:03.383\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-2.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.384\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-2.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.406\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.407\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.414\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.430\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.431\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-2...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.432\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.432\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:03.433\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-2.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 2\n", - "\n", - "The CWL includes: \n", - "\n", - "- two input parameters of type `Directory`\n", - "- one output parameter of type `Directory`\n", - "\n", - "This scenario typically takes as input one pre-event acquisition, one post-even acquisition, applies an algorithm and produces a result\n", - "\n", - "Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input two Landsat-8/9 acquisitions" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-2/aoi\n", - "\n", - "pattern-2/aoi\n", - "\n", - "\n", - "\n", - "pattern-2/step\n", - "\n", - "pattern-2/step\n", - "\n", - "\n", - "\n", - "pattern-2/aoi->pattern-2/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-2/bands\n", - "\n", - "pattern-2/bands\n", - "\n", - "\n", - "\n", - "pattern-2/bands->pattern-2/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-2/epsg\n", - "\n", - "pattern-2/epsg\n", - "\n", - "\n", - "\n", - "pattern-2/epsg->pattern-2/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-2/item_1\n", - "\n", - "pattern-2/item_1\n", - "\n", - "\n", - "\n", - "pattern-2/item_1->pattern-2/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-2/item_2\n", - "\n", - "pattern-2/item_2\n", - "\n", - "\n", - "\n", - "pattern-2/item_2->pattern-2/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-2/water_bodies\n", - "\n", - "pattern-2/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-2/step->pattern-2/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item_1` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n", - "| `item_2` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `Directory` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:28:04.453\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:28:04.513\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:04.521\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:04.522\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:04.524\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.705\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.705\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.706\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.706\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.707\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.760\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.767\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.768\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:05.768\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.866\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.867\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.867\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.868\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.868\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.923\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.935\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.935\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:06.936\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.966\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.967\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.967\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.968\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.968\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.969\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.969\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.970\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.970\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.971\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.971\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.972\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-2 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.972\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-2/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.973\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-2/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.974\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-2/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.974\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-2/item_1: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.975\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.975\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.975\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.976\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item_1' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.976\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-2/item_2: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.977\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_1'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.977\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.977\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.978\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item_2' to 'directory_stage_in_1' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.978\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-2 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.979\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-2/water_bodies: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.979\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.980\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.980\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.983\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:28:07.986\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0147 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_1\n", - "\n", - "main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_1->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item_1\n", - "\n", - "main/item_1\n", - "\n", - "\n", - "\n", - "main/item_1->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item_2\n", - "\n", - "main/item_2\n", - "\n", - "\n", - "\n", - "main/item_2->main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "60a0a485", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "db90164b", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-2/aoi | area of interest as a bounding box - This parameter is derived from pattern-2/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-2/epsg | EPSG code - This parameter is derived from pattern-2/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-2/bands | bands used for the NDWI - This parameter is derived from pattern-2/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item_1` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-2/item_1 | Landsat-8/9 acquisition reference - This parameter is derived from pattern-2/item_1 |\n", - "| `item_2` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-2/item_2 | Landsat-8/9 acquisition reference - This parameter is derived from pattern-2/item_2 |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `directory_stage_in_1` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-2` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "d8cfdb89", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "2dd2452c", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "fd41a34a", - "metadata": {}, - "outputs": [], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"item_1\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " \"item_2\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "9491fae9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\n", - " \"green\",\n", - " \"nir08\"\n", - " ],\n", - " \"item_1\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"\n", - " },\n", - " \"item_2\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "76b2860d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-97qrwy/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-2.md b/docs/pattern-2.md new file mode 100644 index 0000000..115502e --- /dev/null +++ b/docs/pattern-2.md @@ -0,0 +1,169 @@ +# Pattern 2 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* two input parameters of type `Directory` +* one output parameter of type `Directory` + +This scenario typically takes as input one pre-event acquisition, one post-even acquisition, applies an algorithm and produces a result + +Implementation: delineate water bodies using NDWI and Otsu automatic threshold taking as input two Landsat-8/9 acquisitions + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:25:42.647 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-2 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item_1` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | +| `item_2` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Detect water bodies | Detect water bodies based on the NDWI and otsu threshold from Landsat- | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-2` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-2 OGC API Processes JSON Inputs schema](./pattern-2/ogc_processes_inputs.svg "pattern-2 diagram") + +#### Outputs + +![pattern-2 OGC API Processes JSON Outputs schema](./pattern-2/ogc_processes_outputs.svg "pattern-2 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-2 flow diagram](./pattern-2/activity.svg "pattern-2 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-2 flow diagram](./pattern-2/component.svg "pattern-2 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-2 flow diagram](./pattern-2/class.svg "pattern-2 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-2 flow diagram](./pattern-2/sequence.svg "pattern-2 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-2 flow diagram](./pattern-2/state.svg "pattern-2 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item_1` | `--input-item-1` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `item_2` | `--input-item-2` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner pattern-2 \ +--input-item-1 \ +--input-item-2 \ +--aoi \ +--epsg \ +--band +``` + diff --git a/docs/pattern-2/activity.puml b/docs/pattern-2/activity.puml new file mode 100644 index 0000000..235e813 --- /dev/null +++ b/docs/pattern-2/activity.puml @@ -0,0 +1,54 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:43.062 + '/ +@startuml +start + + + + + +group pattern-2 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :item_1; <> +split again + + :item_2; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-2/activity.svg b/docs/pattern-2/activity.svg new file mode 100644 index 0000000..7620485 --- /dev/null +++ b/docs/pattern-2/activity.svg @@ -0,0 +1 @@ +pattern-2aoiepsgbandsitem_1item_2step: stepCommandLineTool: cltwater_bodies \ No newline at end of file diff --git a/docs/pattern-2/class.puml b/docs/pattern-2/class.puml new file mode 100644 index 0000000..f71faf8 --- /dev/null +++ b/docs/pattern-2/class.puml @@ -0,0 +1,142 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:45.142 + '/ +@startuml + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold" { + + + + +class "pattern-2" as Workflow_pattern_2 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + item_1: Directory + + + item_2: Directory + + + __ Outputs __ + + + water_bodies: Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_2 --> string + + + + ' no need to add a Workflow_pattern_2 --> string + + + + ' no need to add a Workflow_pattern_2 --> string + + + + ' no need to add a Workflow_pattern_2 --> Directory + + + + ' no need to add a Workflow_pattern_2 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item_1: Directory + + + item_2: Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + __ Outputs __ + + + stac-catalog: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_2 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-2/class.svg b/docs/pattern-2/class.svg new file mode 100644 index 0000000..102a81e --- /dev/null +++ b/docs/pattern-2/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu thresholdStepspattern-2 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] item_1: Directory item_2: Directory  Inputs water_bodies: Directory   Outputs step: clt  StepsWorkflowclt item_1: Directory item_2: Directory aoi: string epsg: string band: string[]  Inputs stac-catalog: Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-2/component.puml b/docs/pattern-2/component.puml new file mode 100644 index 0000000..3fb775f --- /dev/null +++ b/docs/pattern-2/component.puml @@ -0,0 +1,92 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:44.005 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-2'" { + component "pattern-2" as pattern_2 { + + portin "aoi" as pattern_2_aoi + + portin "epsg" as pattern_2_epsg + + portin "bands" as pattern_2_bands + + portin "item_1" as pattern_2_item_1 + + portin "item_2" as pattern_2_item_2 + + + portout "water_bodies" as pattern_2_water_bodies + + } + + + frame "step" as pattern_2_step { + + portin "item_1" as pattern_2_step_item_1 + + + + pattern_2_item_1 .down.> pattern_2_step_item_1 + + + + portin "item_2" as pattern_2_step_item_2 + + + + pattern_2_item_2 .down.> pattern_2_step_item_2 + + + + portin "aoi" as pattern_2_step_aoi + + + + pattern_2_aoi .down.> pattern_2_step_aoi + + + + portin "epsg" as pattern_2_step_epsg + + + + pattern_2_epsg .down.> pattern_2_step_epsg + + + + portin "band" as pattern_2_step_band + + + + pattern_2_bands .down.> pattern_2_step_band + + + + + + portout "stac-catalog" as pattern_2_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_2_step_stac_catalog .up.> pattern_2_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-2/component.svg b/docs/pattern-2/component.svg new file mode 100644 index 0000000..c6fc4f7 --- /dev/null +++ b/docs/pattern-2/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-2'pattern-2stepaoiepsgbandsitem_1item_2water_bodiesitem_1item_2aoiepsgbandstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-2/ogc_processes_inputs.puml b/docs/pattern-2/ogc_processes_inputs.puml new file mode 100644 index 0000000..90ae711 --- /dev/null +++ b/docs/pattern-2/ogc_processes_inputs.puml @@ -0,0 +1,125 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:49.323 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item_1": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + }, + "item_2": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-2/ogc_processes_inputs.svg b/docs/pattern-2/ogc_processes_inputs.svg new file mode 100644 index 0000000..8b7e357 --- /dev/null +++ b/docs/pattern-2/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   item_1   item_2   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-2/ogc_processes_outputs.puml b/docs/pattern-2/ogc_processes_outputs.puml new file mode 100644 index 0000000..c26fbf1 --- /dev/null +++ b/docs/pattern-2/ogc_processes_outputs.puml @@ -0,0 +1,35 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:51.373 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-2/ogc_processes_outputs.svg b/docs/pattern-2/ogc_processes_outputs.svg new file mode 100644 index 0000000..1b4e490 --- /dev/null +++ b/docs/pattern-2/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-2/sequence.puml b/docs/pattern-2/sequence.puml new file mode 100644 index 0000000..fe6bfbf --- /dev/null +++ b/docs/pattern-2/sequence.puml @@ -0,0 +1,86 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:46.570 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold == + +control "pattern-2" as pattern_2_or +activate pattern_2_or + + +wfrunner -> pattern_2_or : ""aoi"" + +wfrunner -> pattern_2_or : ""epsg"" + +wfrunner -> pattern_2_or : ""bands"" + +wfrunner -> pattern_2_or : ""item_1"" + +wfrunner -> pattern_2_or : ""item_2"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_2_or__step +activate pattern_2_or__step + + + +pattern_2_or -> pattern_2_or__step : ""item_1"" (from ""item_1"") + + + +pattern_2_or -> pattern_2_or__step : ""item_2"" (from ""item_2"") + + + +pattern_2_or -> pattern_2_or__step : ""aoi"" (from ""aoi"") + + + +pattern_2_or -> pattern_2_or__step : ""epsg"" (from ""epsg"") + + + +pattern_2_or -> pattern_2_or__step : ""band"" (from ""bands"") + + + +pattern_2_or__step -> pattern_2_or__step : Compute + + +pattern_2_or <-- pattern_2_or__step : ""stac-catalog"" + + +deactivate pattern_2_or__step + + + + + + + +wfrunner <-- pattern_2_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_2_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-2/sequence.svg b/docs/pattern-2/sequence.svg new file mode 100644 index 0000000..58f68f1 --- /dev/null +++ b/docs/pattern-2/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-2step. stepWorkflow runnerpattern-2step. stepWorkflow runnerWorkflow runnerpattern-2pattern-2step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-2step. stepWater bodies detection based on NDWI and the otsu threshold[001]aoi[002]epsg[003]bands[004]item_1[005]item_2[006]item_1(fromitem_1)[007]item_2(fromitem_2)[008]aoi(fromaoi)[009]epsg(fromepsg)[010]band(frombands)[011]Compute[012]stac-catalog[013]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-2/state.puml b/docs/pattern-2/state.puml new file mode 100644 index 0000000..a073540 --- /dev/null +++ b/docs/pattern-2/state.puml @@ -0,0 +1,117 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:47.906 + '/ +@startuml +hide empty description + + + + + +state "pattern-2" as pattern_2 { + + state "aoi" as pattern_2_aoi <> + + state "epsg" as pattern_2_epsg <> + + state "bands" as pattern_2_bands <> + + state "item_1" as pattern_2_item_1 <> + + state "item_2" as pattern_2_item_2 <> + + + + + + + + + + + + + + + + + + + state step { + + state "item_1" as step_item_1 <> + + + + pattern_2_item_1 --> step_item_1 + + + + state "item_2" as step_item_2 <> + + + + pattern_2_item_2 --> step_item_2 + + + + state "aoi" as step_aoi <> + + + + pattern_2_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_2_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_2_bands --> step_band + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_2_water_bodies <> + +step_stac_catalog --> pattern_2_water_bodies + + +} + +[*] --> pattern_2_aoi + +[*] --> pattern_2_epsg + +[*] --> pattern_2_bands + +[*] --> pattern_2_item_1 + +[*] --> pattern_2_item_2 + + + +pattern_2_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-2/state.svg b/docs/pattern-2/state.svg new file mode 100644 index 0000000..017c728 --- /dev/null +++ b/docs/pattern-2/state.svg @@ -0,0 +1 @@ +pattern-2stepaoiepsgbandsitem_1item_2water_bodiesitem_1item_2aoiepsgbandstac-catalog \ No newline at end of file diff --git a/docs/pattern-3.ipynb b/docs/pattern-3.ipynb deleted file mode 100644 index 5ef5144..0000000 --- a/docs/pattern-3.ipynb +++ /dev/null @@ -1,952 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-3\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 15:10:27.357\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-3.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.358\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-3.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 15:10:27.382\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.383\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.391\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.408\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.409\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-3...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.409\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.410\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:27.410\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-3.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 3\n", - "\n", - "The CWL includes: \n", - "\n", - "- scatter on an input parameter of type `Directory[]`\n", - "- one output parameter of type `Directory`\n", - "\n", - "This scenario typically takes as input a stack of acquisitions, applies an aggregation algorithm and produces a result\n", - "\n", - "Implementation: detect water bodies taking as input a list of Landsat-8/9 acquisitions producing a STAC Catalog with n STAC Items" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-3/aoi\n", - "\n", - "pattern-3/aoi\n", - "\n", - "\n", - "\n", - "pattern-3/step\n", - "\n", - "pattern-3/step\n", - "\n", - "\n", - "\n", - "pattern-3/aoi->pattern-3/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-3/bands\n", - "\n", - "pattern-3/bands\n", - "\n", - "\n", - "\n", - "pattern-3/bands->pattern-3/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-3/epsg\n", - "\n", - "pattern-3/epsg\n", - "\n", - "\n", - "\n", - "pattern-3/epsg->pattern-3/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-3/items\n", - "\n", - "pattern-3/items\n", - "\n", - "\n", - "\n", - "pattern-3/items->pattern-3/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-3/water_bodies\n", - "\n", - "pattern-3/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-3/step->pattern-3/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `items` | `Directory[]` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `Directory[]` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 15:10:28.525\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 15:10:28.723\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:28.730\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:28.731\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:28.731\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.761\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.761\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.762\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.762\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.762\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.940\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.947\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.948\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:29.949\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:30.899\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:30.900\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:30.900\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:30.900\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:30.900\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:31.070\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:31.081\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:31.082\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:31.082\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.089\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.091\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.092\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.093\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.096\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.097\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.098\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.100\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.100\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.103\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.104\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-3 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.106\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-3/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.108\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-3/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.110\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-3/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.111\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-3/items: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.112\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.113\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.115\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.117\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m175\u001b[0m - \u001b[1m Array detected, 'scatter' required for reference:items\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.118\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/items' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.119\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-3 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.120\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-3/water_bodies: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.122\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.122\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.123\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.125\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m284\u001b[0m - \u001b[1m Array detected, scatter required for stac_catalog:app/water_bodies\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.126\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 15:10:32.127\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0247 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/items\n", - "\n", - "main/items\n", - "\n", - "\n", - "\n", - "main/items->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "a4675232", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "85658bab", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-3/aoi | area of interest as a bounding box - This parameter is derived from pattern-3/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-3/epsg | EPSG code - This parameter is derived from pattern-3/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-3/bands | bands used for the NDWI - This parameter is derived from pattern-3/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `items` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Landsat-8/9 acquisition reference - pattern-3/items | Landsat-8/9 acquisition reference - This parameter is derived from pattern-3/items |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-3` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "8268e071", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "49396b89", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "653ffcc3", - "metadata": {}, - "outputs": [], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"items\": [\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\",\n", - " },\n", - " ],\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "a15fae27", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\n", - " \"green\",\n", - " \"nir08\"\n", - " ],\n", - " \"items\": [\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"\n", - " },\n", - " {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\"\n", - " }\n", - " ]\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "4017d479", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"water_bodies\": [\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-rv4f0i/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-07qxjy/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - " ]\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-3.md b/docs/pattern-3.md new file mode 100644 index 0000000..2a95b3c --- /dev/null +++ b/docs/pattern-3.md @@ -0,0 +1,168 @@ +# Pattern 3 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* scatter on an input parameter of type `Directory[]` +* one output parameter of type `Directory` + +This scenario typically takes as input a stack of acquisitions, applies an aggregation algorithm and produces a result + +Implementation: detect water bodies taking as input a list of Landsat-8/9 acquisitions producing a STAC Catalog with n STAC Items + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:25:54.020 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-3 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `items` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Detect water bodies | Detect water bodies based on the NDWI and otsu threshold from Landsat- | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-3` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-3 OGC API Processes JSON Inputs schema](./pattern-3/ogc_processes_inputs.svg "pattern-3 diagram") + +#### Outputs + +![pattern-3 OGC API Processes JSON Outputs schema](./pattern-3/ogc_processes_outputs.svg "pattern-3 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-3 flow diagram](./pattern-3/activity.svg "pattern-3 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-3 flow diagram](./pattern-3/component.svg "pattern-3 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-3 flow diagram](./pattern-3/class.svg "pattern-3 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-3 flow diagram](./pattern-3/sequence.svg "pattern-3 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-3 flow diagram](./pattern-3/state.svg "pattern-3 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner pattern-3 \ +--input-item \ +--aoi \ +--epsg \ +--band +``` + diff --git a/docs/pattern-3/activity.puml b/docs/pattern-3/activity.puml new file mode 100644 index 0000000..5b61a35 --- /dev/null +++ b/docs/pattern-3/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:55.328 + '/ +@startuml +start + + + + + +group pattern-3 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :items; <> +end split + + + + +repeat + + +:step: step +CommandLineTool: clt; + +repeat while (dotproduct step/item) + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-3/activity.svg b/docs/pattern-3/activity.svg new file mode 100644 index 0000000..7f8a260 --- /dev/null +++ b/docs/pattern-3/activity.svg @@ -0,0 +1 @@ +pattern-3aoiepsgbandsitemsstep: stepCommandLineTool: cltdotproduct step/itemwater_bodies \ No newline at end of file diff --git a/docs/pattern-3/class.puml b/docs/pattern-3/class.puml new file mode 100644 index 0000000..dfdd6bb --- /dev/null +++ b/docs/pattern-3/class.puml @@ -0,0 +1,143 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:57.092 + '/ +@startuml + + + + + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold" { + + + + +class "pattern-3" as Workflow_pattern_3 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + items: Directory[] + + + __ Outputs __ + + + water_bodies: Directory[] + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_3 --> string + + + + ' no need to add a Workflow_pattern_3 --> string + + + + ' no need to add a Workflow_pattern_3 --> string + + + + ' no need to add a Workflow_pattern_3 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + __ Outputs __ + + + stac-catalog: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_3 --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_pattern_3 --> ScatterFeatureRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-3/class.svg b/docs/pattern-3/class.svg new file mode 100644 index 0000000..cd76d29 --- /dev/null +++ b/docs/pattern-3/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu thresholdStepsRequirementspattern-3 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] items: Directory[]  Inputs water_bodies: Directory[]   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string band: string[]  Inputs stac-catalog: Directory   OutputsCommandLineToolScatterFeatureRequirementHints \ No newline at end of file diff --git a/docs/pattern-3/component.puml b/docs/pattern-3/component.puml new file mode 100644 index 0000000..2c91f7d --- /dev/null +++ b/docs/pattern-3/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:56.252 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-3'" { + component "pattern-3" as pattern_3 { + + portin "aoi" as pattern_3_aoi + + portin "epsg" as pattern_3_epsg + + portin "bands" as pattern_3_bands + + portin "items" as pattern_3_items + + + portout "water_bodies" as pattern_3_water_bodies + + } + + + frame "step" as pattern_3_step { + + portin "item" as pattern_3_step_item + + + + pattern_3_items .down.> pattern_3_step_item + + + + portin "aoi" as pattern_3_step_aoi + + + + pattern_3_aoi .down.> pattern_3_step_aoi + + + + portin "epsg" as pattern_3_step_epsg + + + + pattern_3_epsg .down.> pattern_3_step_epsg + + + + portin "band" as pattern_3_step_band + + + + pattern_3_bands .down.> pattern_3_step_band + + + + + + portout "stac-catalog" as pattern_3_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_3_step_stac_catalog .up.> pattern_3_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-3/component.svg b/docs/pattern-3/component.svg new file mode 100644 index 0000000..c0ab10e --- /dev/null +++ b/docs/pattern-3/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-3'pattern-3stepaoiepsgbandsitemswater_bodiesitemaoiepsgbandstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-3/ogc_processes_inputs.puml b/docs/pattern-3/ogc_processes_inputs.puml new file mode 100644 index 0000000..16901b2 --- /dev/null +++ b/docs/pattern-3/ogc_processes_inputs.puml @@ -0,0 +1,98 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:00.820 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "items": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-3/ogc_processes_inputs.svg b/docs/pattern-3/ogc_processes_inputs.svg new file mode 100644 index 0000000..b799457 --- /dev/null +++ b/docs/pattern-3/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   items   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referencetypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/pattern-3/ogc_processes_outputs.puml b/docs/pattern-3/ogc_processes_outputs.puml new file mode 100644 index 0000000..60606c2 --- /dev/null +++ b/docs/pattern-3/ogc_processes_outputs.puml @@ -0,0 +1,38 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:03.045 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-3/ogc_processes_outputs.svg b/docs/pattern-3/ogc_processes_outputs.svg new file mode 100644 index 0000000..48692a9 --- /dev/null +++ b/docs/pattern-3/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdtypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/pattern-3/sequence.puml b/docs/pattern-3/sequence.puml new file mode 100644 index 0000000..7bb51c9 --- /dev/null +++ b/docs/pattern-3/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:58.345 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold == + +control "pattern-3" as pattern_3_or +activate pattern_3_or + + +wfrunner -> pattern_3_or : ""aoi"" + +wfrunner -> pattern_3_or : ""epsg"" + +wfrunner -> pattern_3_or : ""bands"" + +wfrunner -> pattern_3_or : ""items"" + + + + +loop dotproduct step/item + + + +participant "step: step\nCommandLineTool: clt" as pattern_3_or__step +activate pattern_3_or__step + + + +pattern_3_or -> pattern_3_or__step : ""item"" (from ""items"") + + + +pattern_3_or -> pattern_3_or__step : ""aoi"" (from ""aoi"") + + + +pattern_3_or -> pattern_3_or__step : ""epsg"" (from ""epsg"") + + + +pattern_3_or -> pattern_3_or__step : ""band"" (from ""bands"") + + + +pattern_3_or__step -> pattern_3_or__step : Compute + + +pattern_3_or <-- pattern_3_or__step : ""stac-catalog"" + + +deactivate pattern_3_or__step + +end + + + + + +wfrunner <-- pattern_3_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_3_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-3/sequence.svg b/docs/pattern-3/sequence.svg new file mode 100644 index 0000000..8153622 --- /dev/null +++ b/docs/pattern-3/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-3step. stepWorkflow runnerpattern-3step. stepWorkflow runnerWorkflow runnerpattern-3pattern-3step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-3step. stepWater bodies detection based on NDWI and the otsu threshold[001]aoi[002]epsg[003]bands[004]itemsloop[dotproduct step/item][005]item(fromitems)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]band(frombands)[009]Compute[010]stac-catalog[011]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-3/state.puml b/docs/pattern-3/state.puml new file mode 100644 index 0000000..409b683 --- /dev/null +++ b/docs/pattern-3/state.puml @@ -0,0 +1,103 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:25:59.785 + '/ +@startuml +hide empty description + + + + + +state "pattern-3" as pattern_3 { + + state "aoi" as pattern_3_aoi <> + + state "epsg" as pattern_3_epsg <> + + state "bands" as pattern_3_bands <> + + state "items" as pattern_3_items <> + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_3_items --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_3_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_3_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_3_bands --> step_band + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_3_water_bodies <> + +step_stac_catalog --> pattern_3_water_bodies + + +} + +[*] --> pattern_3_aoi + +[*] --> pattern_3_epsg + +[*] --> pattern_3_bands + +[*] --> pattern_3_items + + + +pattern_3_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-3/state.svg b/docs/pattern-3/state.svg new file mode 100644 index 0000000..3fb93c2 --- /dev/null +++ b/docs/pattern-3/state.svg @@ -0,0 +1 @@ +pattern-3stepaoiepsgbandsitemswater_bodiesitemaoiepsgbandstac-catalog \ No newline at end of file diff --git a/docs/pattern-4.ipynb b/docs/pattern-4.ipynb deleted file mode 100644 index a729fb6..0000000 --- a/docs/pattern-4.ipynb +++ /dev/null @@ -1,971 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-4\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:46:42.802\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-4.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.804\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-4.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.826\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.827\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.834\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.846\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.847\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-4...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.848\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.848\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:42.849\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-4.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 4\n", - "\n", - "The CWL includes: \n", - "\n", - "- one input parameter of type `Directory`\n", - "- two output parameters of type `Directory`\n", - "\n", - "This scenario takes as input an acquisition, applies two algorithms and generates two outputs.\n", - "\n", - "Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition. The output include two STAC Catalogs, each with a single STAC Item" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-4/aoi\n", - "\n", - "pattern-4/aoi\n", - "\n", - "\n", - "\n", - "pattern-4/step\n", - "\n", - "pattern-4/step\n", - "\n", - "\n", - "\n", - "pattern-4/aoi->pattern-4/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-4/epsg\n", - "\n", - "pattern-4/epsg\n", - "\n", - "\n", - "\n", - "pattern-4/epsg->pattern-4/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-4/item\n", - "\n", - "pattern-4/item\n", - "\n", - "\n", - "\n", - "pattern-4/item->pattern-4/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-4/ndvi\n", - "\n", - "pattern-4/ndvi\n", - "\n", - "\n", - "\n", - "pattern-4/step->pattern-4/ndvi\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-4/ndwi\n", - "\n", - "pattern-4/ndwi\n", - "\n", - "\n", - "\n", - "pattern-4/step->pattern-4/ndwi\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `ndvi` | `Directory` | NDVI vegetation index | NDVI vegetation index |\n", - "| `ndwi` | `Directory` | NDWI vegetation index | NDWI vegetation index |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:46:43.807\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:46:44.021\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.028\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.029\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.030\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.929\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.930\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.931\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.931\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:44.932\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.109\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.116\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.116\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.117\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.920\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.920\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.921\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.921\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:45.922\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.118\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.129\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.130\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.131\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.916\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.917\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.918\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.918\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.919\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.919\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.920\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.921\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.921\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.922\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.922\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.922\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-4 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.923\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-4/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.923\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-4/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.924\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-4/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.924\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.925\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.925\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.925\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.926\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-4 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.926\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-4/ndvi: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.927\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.927\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.928\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.929\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/ndvi' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.930\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-4/ndwi: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.931\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_1'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.932\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.932\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/ndwi' to 'stage_out_1' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:46:46.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0115 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "NDVI and NDWI vegetation indexes\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_1\n", - "\n", - "main/stage_out_1\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/ndvi\n", - "\n", - "main/ndvi\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/ndvi\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/ndwi\n", - "\n", - "main/ndwi\n", - "\n", - "\n", - "\n", - "main/stage_out_1->main/ndwi\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_1\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "8106e9d4", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "12b7d698", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAADqQAAALwCAMAAAB8nQW9AAAAYFBMVEUAAAALCwsSEhIYGBgnJycrKyszMzM7OztDQ0NPT09TU1NfX19jY2Nra2t3d3d/f3+Hh4eMjIySkpKenp6np6evr6+zs7O7u7vGxsbJycnS0tLb29vn5+ft7e3x8fH////AMa1EAAEAAElEQVR4AexdiXbbOAxU4pzO0bTZpmmaRP//l0tJloagCYmUSFq2x+/tBgTBwWCow4gct6r5ogJUgApQASpABagAFaACVIAKUAEqsBIFqpXwIA0qQAWoABWgAlSAClABKkAFqAAVoAI1m1QeBFSAClABKkAFqAAVoAJUgApQASqwGgXYpK5mK0iEClABKkAFqAAVoAJUgApQASpABdik8higAlSAClABKkAFqAAVoAJUgApQgdUowCZ1NVtBIlSAClABKjCmwPfYJOeoABWgAlSAClCBk1FAb1LfrzZ8UQEqQAWoABVYjQLsUk/mzQcLoQJUgApQASowpoDapL5fv4+t4xwVoAJUgApQgYIKvF9vCmZjKipABagAFaACVOBwCmhNKnvUw+0JM1MBKkAFqICrgLkrsUl1ReGYClABKkAFqMBpKqA0qexRT3O7WRUVoAJU4DgVaO5KbFKPc+/ImgpQASpABahArAL+JpU9aqyOjKcCVIAKUIF8CrR3JTap+QQmMhWgAlSAClCBNSngbVLZo65pi8iFClABKnDuCnR3JTap534csH4qQAWoABU4FwV8TSp71HPZfdZJBagAFTgGBXZ3JTapx7BZ5EgFqAAVoAJUYLkCniaVPepyWYlABagAFaACqRTo70psUlMpShwqQAWoABWgAutWYL9J7d8NrJs32VEBKkAFqMB5KDDcldiknseGs0oqQAWoABWgAntN6vBugNpQASpABagAFTi4ArgrsUk9+GaQABWgAlSAClCBIgrsNakbvqgAFaACVIAKrEeB9/5uyCa1V4I/qQAVoAJUgAqctgL7Tepp18vqqAAVoAJU4KgUQGsK66gKIFkqQAWoABWgAlQgUgE2qZGCMZwKUAEqQAVKKoDWFFbJ/MxFBagAFaACVIAKlFaATWppxZmPClABKkAFIhRAaworYjlDqQAVoAJUgApQgaNTgE3q0W0ZCVMBKkAFzkkBtKawzql+1koFqAAVoAJU4PwUYJN6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vgnwbiabfx5SZbyoTQIkQAIksCqBI/8+6qq86YwEJAR4SJXQou6+CfBuJpv/80PqkS8SIAESIAESKIbAi+y2Rm0SIIH1CBSzTzAQEiifAO9moq3p7JAqGk1lEiABEiABEiABEiABEiABEiABEohIgIfUiDBpigRIgARIgARIgARIgARIgARIYBkBHlKX8eNoEiABEiABEiABEiABEiABEiCBiAR4SI0Ik6ZIgARIgARIgARIgARIgARIgASWEeAhdRk/jiYBEiABEiABEiABEiABEiABEohIgIfUiDBpigRIgARIgARIgARIgARIgARIYBkBHlKX8eNoEiABEiABEiABEiABEiABEiCBiAR4SI0Ik6ZIgARIgARIgARIgARIgARIgASWEeAhdRk/jiYBEiABEiABEiABEiABEiABEohIgIfUiDBpigRIgARIgARIgARIgARIgARIYBkBHlKX8eNoEiABEiABEiABEiABEiABEiCBiAR4SI0Ik6ZIgARIgARIgARIgARIgARIgASWEeAhdRk/jiYBEiABEiABEiABEiABEiABEohIgIfUiDBpigRIgARIgARIgARIgARIgARIYBkBHlKX8eNoEiABEiABEiABEiABEiABEiCBiAT+B+YPy7bumcI7AAAAAElFTkSuQmCC", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-4/aoi | area of interest as a bounding box - This parameter is derived from pattern-4/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-4/epsg | EPSG code - This parameter is derived from pattern-4/epsg |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-4/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-4/item |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-4` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n", - "| `stage_out_1` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `ndvi` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | NDVI vegetation index | NDVI vegetation index |\n", - "| `ndwi` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | NDWI vegetation index | NDWI vegetation index |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bc2ff043", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "4e8372f1", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "58f84721", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "b2fdc13a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"ndvi\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-k22ltj/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " \"ndwi\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-kqxpfe/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b76cc744", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-4.md b/docs/pattern-4.md new file mode 100644 index 0000000..810fee9 --- /dev/null +++ b/docs/pattern-4.md @@ -0,0 +1,164 @@ +# Pattern 4 - NDVI and NDWI vegetation indexes v1.0.0 + +* one input parameter of type `Directory` +* two output parameters of type `Directory` + +This scenario takes as input an acquisition, applies two algorithms and generates two outputs. + +Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition. The output include two STAC Catalogs, each with a single STAC Item + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:26:06.102 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-4 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Compute NDVI and NDWI | Compute NDVI and NDWI from Landsat-8/9 acquisitions | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `ndvi` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | NDVI vegetation index | NDVI vegetation index | +| `ndwi` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | NDWI vegetation index | NDWI vegetation index | + + +### OGC API - Processes + +When `pattern-4` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-4 OGC API Processes JSON Inputs schema](./pattern-4/ogc_processes_inputs.svg "pattern-4 diagram") + +#### Outputs + +![pattern-4 OGC API Processes JSON Outputs schema](./pattern-4/ogc_processes_outputs.svg "pattern-4 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-4 flow diagram](./pattern-4/activity.svg "pattern-4 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-4 flow diagram](./pattern-4/component.svg "pattern-4 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-4 flow diagram](./pattern-4/class.svg "pattern-4 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-4 flow diagram](./pattern-4/sequence.svg "pattern-4 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-4 flow diagram](./pattern-4/state.svg "pattern-4 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-4 \ +--input-item \ +--aoi \ +--epsg +``` + diff --git a/docs/pattern-4/activity.puml b/docs/pattern-4/activity.puml new file mode 100644 index 0000000..bdee23a --- /dev/null +++ b/docs/pattern-4/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:07.448 + '/ +@startuml +start + + + + + +group pattern-4 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :item; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :ndvi; <> +split again + + :ndwi; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-4/activity.svg b/docs/pattern-4/activity.svg new file mode 100644 index 0000000..ddb28c1 --- /dev/null +++ b/docs/pattern-4/activity.svg @@ -0,0 +1 @@ +pattern-4aoiepsgitemstep: stepCommandLineTool: cltndvindwi \ No newline at end of file diff --git a/docs/pattern-4/class.puml b/docs/pattern-4/class.puml new file mode 100644 index 0000000..1c1a23b --- /dev/null +++ b/docs/pattern-4/class.puml @@ -0,0 +1,118 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:09.437 + '/ +@startuml + + + + + + + + + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "pattern-4" as Workflow_pattern_4 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + item: Directory + + + __ Outputs __ + + + ndvi: Directory + + + ndwi: Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_4 --> string + + + + ' no need to add a Workflow_pattern_4 --> string + + + + ' no need to add a Workflow_pattern_4 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + __ Outputs __ + + + ndvi: Directory + + + ndwi: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_4 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-4/class.svg b/docs/pattern-4/class.svg new file mode 100644 index 0000000..27ceb7c --- /dev/null +++ b/docs/pattern-4/class.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesStepspattern-4 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 item: Directory  Inputs ndvi: Directory ndwi: Directory   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string  Inputs ndvi: Directory ndwi: Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-4/component.puml b/docs/pattern-4/component.puml new file mode 100644 index 0000000..867f87c --- /dev/null +++ b/docs/pattern-4/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:08.480 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-4'" { + component "pattern-4" as pattern_4 { + + portin "aoi" as pattern_4_aoi + + portin "epsg" as pattern_4_epsg + + portin "item" as pattern_4_item + + + portout "ndvi" as pattern_4_ndvi + + portout "ndwi" as pattern_4_ndwi + + } + + + frame "step" as pattern_4_step { + + portin "item" as pattern_4_step_item + + + + pattern_4_item .down.> pattern_4_step_item + + + + portin "aoi" as pattern_4_step_aoi + + + + pattern_4_aoi .down.> pattern_4_step_aoi + + + + portin "epsg" as pattern_4_step_epsg + + + + pattern_4_epsg .down.> pattern_4_step_epsg + + + + + + portout "ndvi" as pattern_4_step_ndvi + + portout "ndwi" as pattern_4_step_ndwi + + + component "clt" as clt + } + +} + + + + +pattern_4_step_ndvi .up.> pattern_4_ndvi + + + + + +pattern_4_step_ndwi .up.> pattern_4_ndwi + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-4/component.svg b/docs/pattern-4/component.svg new file mode 100644 index 0000000..f617bcf --- /dev/null +++ b/docs/pattern-4/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-4'pattern-4stepaoiepsgitemndvindwiitemaoiepsgndvindwiclt \ No newline at end of file diff --git a/docs/pattern-4/ogc_processes_inputs.puml b/docs/pattern-4/ogc_processes_inputs.puml new file mode 100644 index 0000000..2f6bb5c --- /dev/null +++ b/docs/pattern-4/ogc_processes_inputs.puml @@ -0,0 +1,72 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:13.286 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-4/ogc_processes_inputs.svg b/docs/pattern-4/ogc_processes_inputs.svg new file mode 100644 index 0000000..6a76103 --- /dev/null +++ b/docs/pattern-4/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-4/ogc_processes_outputs.puml b/docs/pattern-4/ogc_processes_outputs.puml new file mode 100644 index 0000000..34bd785 --- /dev/null +++ b/docs/pattern-4/ogc_processes_outputs.puml @@ -0,0 +1,62 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:14.720 + '/ +@startjson +{ + "ndvi": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "NDVI vegetation index", + "description": "NDVI vegetation index" + }, + "ndwi": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "NDWI vegetation index", + "description": "NDWI vegetation index" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-4/ogc_processes_outputs.svg b/docs/pattern-4/ogc_processes_outputs.svg new file mode 100644 index 0000000..f65aa91 --- /dev/null +++ b/docs/pattern-4/ogc_processes_outputs.svg @@ -0,0 +1 @@ +ndvi   ndwi   schema   metadata   titleNDVI vegetation indexdescriptionNDVI vegetation indexoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   titleNDWI vegetation indexdescriptionNDWI vegetation indexoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-4/sequence.puml b/docs/pattern-4/sequence.puml new file mode 100644 index 0000000..b12ce9c --- /dev/null +++ b/docs/pattern-4/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:10.710 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI and NDWI vegetation indexes == + +control "pattern-4" as pattern_4_or +activate pattern_4_or + + +wfrunner -> pattern_4_or : ""aoi"" + +wfrunner -> pattern_4_or : ""epsg"" + +wfrunner -> pattern_4_or : ""item"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_4_or__step +activate pattern_4_or__step + + + +pattern_4_or -> pattern_4_or__step : ""item"" (from ""item"") + + + +pattern_4_or -> pattern_4_or__step : ""aoi"" (from ""aoi"") + + + +pattern_4_or -> pattern_4_or__step : ""epsg"" (from ""epsg"") + + + +pattern_4_or__step -> pattern_4_or__step : Compute + + +pattern_4_or <-- pattern_4_or__step : ""ndvi"" + +pattern_4_or <-- pattern_4_or__step : ""ndwi"" + + +deactivate pattern_4_or__step + + + + + + + +wfrunner <-- pattern_4_or : ""ndvi"" (from ""step/ndvi"") + + + +wfrunner <-- pattern_4_or : ""ndwi"" (from ""step/ndwi"") + + + +deactivate pattern_4_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-4/sequence.svg b/docs/pattern-4/sequence.svg new file mode 100644 index 0000000..561c9ef --- /dev/null +++ b/docs/pattern-4/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-4step. stepWorkflow runnerpattern-4step. stepWorkflow runnerWorkflow runnerpattern-4pattern-4step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-4step. stepNDVI and NDWI vegetation indexes[001]aoi[002]epsg[003]item[004]item(fromitem)[005]aoi(fromaoi)[006]epsg(fromepsg)[007]Compute[008]ndvi[009]ndwi[010]ndvi(fromstep/ndvi)[011]ndwi(fromstep/ndwi) \ No newline at end of file diff --git a/docs/pattern-4/state.puml b/docs/pattern-4/state.puml new file mode 100644 index 0000000..e9cec08 --- /dev/null +++ b/docs/pattern-4/state.puml @@ -0,0 +1,98 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:12.176 + '/ +@startuml +hide empty description + + + + + +state "pattern-4" as pattern_4 { + + state "aoi" as pattern_4_aoi <> + + state "epsg" as pattern_4_epsg <> + + state "item" as pattern_4_item <> + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_4_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_4_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_4_epsg --> step_epsg + + + + + + state "ndvi" as step_ndvi <> + + state "ndwi" as step_ndwi <> + + + } + + + + +state "ndvi" as pattern_4_ndvi <> + +step_ndvi --> pattern_4_ndvi + + +state "ndwi" as pattern_4_ndwi <> + +step_ndwi --> pattern_4_ndwi + + +} + +[*] --> pattern_4_aoi + +[*] --> pattern_4_epsg + +[*] --> pattern_4_item + + + +pattern_4_ndvi --> [*] + +pattern_4_ndwi --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-4/state.svg b/docs/pattern-4/state.svg new file mode 100644 index 0000000..da83eb4 --- /dev/null +++ b/docs/pattern-4/state.svg @@ -0,0 +1 @@ +pattern-4stepaoiepsgitemndvindwiitemaoiepsgndvindwi \ No newline at end of file diff --git a/docs/pattern-5.ipynb b/docs/pattern-5.ipynb deleted file mode 100644 index e3eac68..0000000 --- a/docs/pattern-5.ipynb +++ /dev/null @@ -1,914 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-5\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:48:45.200\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-5.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.201\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-5.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.224\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.225\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.231\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.243\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.244\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-5...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.244\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.245\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:45.245\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-5.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 5\n", - "\n", - "The CWL includes: \n", - "\n", - "- one input parameter of type `Directory`\n", - "- scatter on an output parameter of type `Directory[]`\n", - "\n", - "This scenario takes as input an acquisition, applies an algorithm and generates several outputs\n", - "\n", - "Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition and generating a stack of STAC Catalogs" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-5/aoi\n", - "\n", - "pattern-5/aoi\n", - "\n", - "\n", - "\n", - "pattern-5/step\n", - "\n", - "pattern-5/step\n", - "\n", - "\n", - "\n", - "pattern-5/aoi->pattern-5/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-5/epsg\n", - "\n", - "pattern-5/epsg\n", - "\n", - "\n", - "\n", - "pattern-5/epsg->pattern-5/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-5/item\n", - "\n", - "pattern-5/item\n", - "\n", - "\n", - "\n", - "pattern-5/item->pattern-5/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-5/indexes\n", - "\n", - "pattern-5/indexes\n", - "\n", - "\n", - "\n", - "pattern-5/indexes->pattern-5/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-5/vegetation_indexes\n", - "\n", - "pattern-5/vegetation_indexes\n", - "\n", - "\n", - "\n", - "pattern-5/step->pattern-5/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `indexes` | `string[]` | indexes | indexes to compute |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `Directory[]` | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:48:46.200\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:48:46.252\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:46.261\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:46.262\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:46.263\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.071\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.071\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.071\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.072\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.072\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.128\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.135\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.136\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.136\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.934\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.935\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.935\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.935\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:47.936\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:48.000\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:48.011\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:48.011\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:48.012\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.089\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.089\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.090\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.091\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.091\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.092\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.092\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.092\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.093\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.094\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.094\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.095\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-5 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.095\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-5/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.096\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-5/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.096\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-5/indexes: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.097\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-5/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.097\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.097\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.098\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.098\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-5 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-5/vegetation_indexes: Directory[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory[] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.100\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory[] converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.101\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m284\u001b[0m - \u001b[1m Array detected, scatter required for stac_catalog:app/vegetation_indexes\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.101\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/vegetation_indexes' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:48:49.102\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0076 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "NDVI and NDWI vegetation indexes\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/indexes\n", - "\n", - "main/indexes\n", - "\n", - "\n", - "\n", - "main/indexes->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "9413d052", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "65fa3841", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-5/aoi | area of interest as a bounding box - This parameter is derived from pattern-5/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-5/epsg | EPSG code - This parameter is derived from pattern-5/epsg |\n", - "| `indexes` | `string[]` | indexes - pattern-5/indexes | indexes to compute - This parameter is derived from pattern-5/indexes |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-5/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-5/item |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-5` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[]` | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "39fcce8c", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "978e7b06", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bb9e34fd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"indexes\": [\"ndvi\", \"ndwi\"], \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"indexes\": [\"ndvi\", \"ndwi\"],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "11d19a38", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"vegetation_indexes\": [\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-dlyiom/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-9urqt7/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - " ]\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-5.md b/docs/pattern-5.md new file mode 100644 index 0000000..8037f7d --- /dev/null +++ b/docs/pattern-5.md @@ -0,0 +1,168 @@ +# Pattern 5 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* one input parameter of type `Directory` +* scatter on an output parameter of type `Directory[]` + +This scenario takes as input an acquisition, applies an algorithm and generates several outputs + +Implementation: process the NDVI and NDWI taking as input a Landsat-8/9 acquisition and generating a stack of STAC Catalogs + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:26:18.851 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-5 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `indexes` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | indexes | indexes to compute | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Compute vegetation indexes | Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisition | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `vegetation_indexes` | `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Vegetation indexes | Vegetation indexes from Landsat-8/9 acquisitions | + + +### OGC API - Processes + +When `pattern-5` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-5 OGC API Processes JSON Inputs schema](./pattern-5/ogc_processes_inputs.svg "pattern-5 diagram") + +#### Outputs + +![pattern-5 OGC API Processes JSON Outputs schema](./pattern-5/ogc_processes_outputs.svg "pattern-5 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-5 flow diagram](./pattern-5/activity.svg "pattern-5 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-5 flow diagram](./pattern-5/component.svg "pattern-5 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-5 flow diagram](./pattern-5/class.svg "pattern-5 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-5 flow diagram](./pattern-5/sequence.svg "pattern-5 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-5 flow diagram](./pattern-5/state.svg "pattern-5 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `index` | `--vegetation-index` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-5 \ +--input-item \ +--aoi \ +--epsg \ +--vegetation-index +``` + diff --git a/docs/pattern-5/activity.puml b/docs/pattern-5/activity.puml new file mode 100644 index 0000000..0f01075 --- /dev/null +++ b/docs/pattern-5/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:20.734 + '/ +@startuml +start + + + + + +group pattern-5 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :indexes; <> +split again + + :item; <> +end split + + + + +repeat + + +:step: step +CommandLineTool: clt; + +repeat while (dotproduct step/index) + + + +split + + :vegetation_indexes; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-5/activity.svg b/docs/pattern-5/activity.svg new file mode 100644 index 0000000..18df40f --- /dev/null +++ b/docs/pattern-5/activity.svg @@ -0,0 +1 @@ +pattern-5aoiepsgindexesitemstep: stepCommandLineTool: cltdotproduct step/indexvegetation_indexes \ No newline at end of file diff --git a/docs/pattern-5/class.puml b/docs/pattern-5/class.puml new file mode 100644 index 0000000..ca00074 --- /dev/null +++ b/docs/pattern-5/class.puml @@ -0,0 +1,139 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:22.713 + '/ +@startuml + + + + + + + + + + + + + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "pattern-5" as Workflow_pattern_5 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + indexes: string[] = ['ndvi', 'ndwi'] + + + item: Directory + + + __ Outputs __ + + + vegetation_indexes: Directory[] + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_5 --> string + + + + ' no need to add a Workflow_pattern_5 --> string + + + + ' no need to add a Workflow_pattern_5 --> string + + + + ' no need to add a Workflow_pattern_5 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + index: string + + + __ Outputs __ + + + vegetation_index: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_5 --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_pattern_5 --> ScatterFeatureRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-5/class.svg b/docs/pattern-5/class.svg new file mode 100644 index 0000000..3344c1a --- /dev/null +++ b/docs/pattern-5/class.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesStepsRequirementspattern-5 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 indexes: string[] = ['ndvi', 'ndwi'] item: Directory  Inputs vegetation_indexes: Directory[]   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string index: string  Inputs vegetation_index: Directory   OutputsCommandLineToolScatterFeatureRequirementHints \ No newline at end of file diff --git a/docs/pattern-5/component.puml b/docs/pattern-5/component.puml new file mode 100644 index 0000000..4bc58e3 --- /dev/null +++ b/docs/pattern-5/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:21.691 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-5'" { + component "pattern-5" as pattern_5 { + + portin "aoi" as pattern_5_aoi + + portin "epsg" as pattern_5_epsg + + portin "indexes" as pattern_5_indexes + + portin "item" as pattern_5_item + + + portout "vegetation_indexes" as pattern_5_vegetation_indexes + + } + + + frame "step" as pattern_5_step { + + portin "item" as pattern_5_step_item + + + + pattern_5_item .down.> pattern_5_step_item + + + + portin "aoi" as pattern_5_step_aoi + + + + pattern_5_aoi .down.> pattern_5_step_aoi + + + + portin "epsg" as pattern_5_step_epsg + + + + pattern_5_epsg .down.> pattern_5_step_epsg + + + + portin "index" as pattern_5_step_index + + + + pattern_5_indexes .down.> pattern_5_step_index + + + + + + portout "vegetation_index" as pattern_5_step_vegetation_index + + + component "clt" as clt + } + +} + + + + +pattern_5_step_vegetation_index .up.> pattern_5_vegetation_indexes + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-5/component.svg b/docs/pattern-5/component.svg new file mode 100644 index 0000000..15e6109 --- /dev/null +++ b/docs/pattern-5/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-5'pattern-5stepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_indexclt \ No newline at end of file diff --git a/docs/pattern-5/ogc_processes_inputs.puml b/docs/pattern-5/ogc_processes_inputs.puml new file mode 100644 index 0000000..638233f --- /dev/null +++ b/docs/pattern-5/ogc_processes_inputs.puml @@ -0,0 +1,95 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:26.804 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "indexes": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "ndvi", + "ndwi" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "indexes", + "description": "indexes to compute" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-5/ogc_processes_inputs.svg b/docs/pattern-5/ogc_processes_inputs.svg new file mode 100644 index 0000000..02a1f9b --- /dev/null +++ b/docs/pattern-5/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   indexes   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleindexesdescriptionindexes to computetypearrayitems   default   typestringndvindwi   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-5/ogc_processes_outputs.puml b/docs/pattern-5/ogc_processes_outputs.puml new file mode 100644 index 0000000..930409a --- /dev/null +++ b/docs/pattern-5/ogc_processes_outputs.puml @@ -0,0 +1,38 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:28.371 + '/ +@startjson +{ + "vegetation_indexes": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "title": "Vegetation indexes", + "description": "Vegetation indexes from Landsat-8/9 acquisitions" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-5/ogc_processes_outputs.svg b/docs/pattern-5/ogc_processes_outputs.svg new file mode 100644 index 0000000..d40517e --- /dev/null +++ b/docs/pattern-5/ogc_processes_outputs.svg @@ -0,0 +1 @@ +vegetation_indexes   schema   metadata   titleVegetation indexesdescriptionVegetation indexes from Landsat-8/9 acquisitionstypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/pattern-5/sequence.puml b/docs/pattern-5/sequence.puml new file mode 100644 index 0000000..f1e1107 --- /dev/null +++ b/docs/pattern-5/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:24.253 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI and NDWI vegetation indexes == + +control "pattern-5" as pattern_5_or +activate pattern_5_or + + +wfrunner -> pattern_5_or : ""aoi"" + +wfrunner -> pattern_5_or : ""epsg"" + +wfrunner -> pattern_5_or : ""indexes"" + +wfrunner -> pattern_5_or : ""item"" + + + + +loop dotproduct step/index + + + +participant "step: step\nCommandLineTool: clt" as pattern_5_or__step +activate pattern_5_or__step + + + +pattern_5_or -> pattern_5_or__step : ""item"" (from ""item"") + + + +pattern_5_or -> pattern_5_or__step : ""aoi"" (from ""aoi"") + + + +pattern_5_or -> pattern_5_or__step : ""epsg"" (from ""epsg"") + + + +pattern_5_or -> pattern_5_or__step : ""index"" (from ""indexes"") + + + +pattern_5_or__step -> pattern_5_or__step : Compute + + +pattern_5_or <-- pattern_5_or__step : ""vegetation_index"" + + +deactivate pattern_5_or__step + +end + + + + + +wfrunner <-- pattern_5_or : ""vegetation_indexes"" (from ""step/vegetation_index"") + + + +deactivate pattern_5_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-5/sequence.svg b/docs/pattern-5/sequence.svg new file mode 100644 index 0000000..1f94c4a --- /dev/null +++ b/docs/pattern-5/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-5step. stepWorkflow runnerpattern-5step. stepWorkflow runnerWorkflow runnerpattern-5pattern-5step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-5step. stepNDVI and NDWI vegetation indexes[001]aoi[002]epsg[003]indexes[004]itemloop[dotproduct step/index][005]item(fromitem)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]index(fromindexes)[009]Compute[010]vegetation_index[011]vegetation_indexes(fromstep/vegetation_index) \ No newline at end of file diff --git a/docs/pattern-5/state.puml b/docs/pattern-5/state.puml new file mode 100644 index 0000000..cab79f0 --- /dev/null +++ b/docs/pattern-5/state.puml @@ -0,0 +1,103 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:25.676 + '/ +@startuml +hide empty description + + + + + +state "pattern-5" as pattern_5 { + + state "aoi" as pattern_5_aoi <> + + state "epsg" as pattern_5_epsg <> + + state "indexes" as pattern_5_indexes <> + + state "item" as pattern_5_item <> + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_5_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_5_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_5_epsg --> step_epsg + + + + state "index" as step_index <> + + + + pattern_5_indexes --> step_index + + + + + + state "vegetation_index" as step_vegetation_index <> + + + } + + + + +state "vegetation_indexes" as pattern_5_vegetation_indexes <> + +step_vegetation_index --> pattern_5_vegetation_indexes + + +} + +[*] --> pattern_5_aoi + +[*] --> pattern_5_epsg + +[*] --> pattern_5_indexes + +[*] --> pattern_5_item + + + +pattern_5_vegetation_indexes --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-5/state.svg b/docs/pattern-5/state.svg new file mode 100644 index 0000000..995ec50 --- /dev/null +++ b/docs/pattern-5/state.svg @@ -0,0 +1 @@ +pattern-5stepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_index \ No newline at end of file diff --git a/docs/pattern-6.ipynb b/docs/pattern-6.ipynb deleted file mode 100644 index 3a8cc58..0000000 --- a/docs/pattern-6.ipynb +++ /dev/null @@ -1,787 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-6\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:49:34.737\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-6.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.738\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-6.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:49:34.763\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.764\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.772\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.787\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.788\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-6...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.789\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.790\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:34.790\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-6.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 6\n", - "\n", - "The CWL includes: \n", - "\n", - "- one input parameter of type `Directory`\n", - "- there are no output parameters of type `Directory`\n", - "\n", - "This scenario takes as input an acquisition, applies an algorithm and generates an output that is not a STAC Catalog\n", - "\n", - "Implementation: derive the NDVI mean taking as input a Landsat-8/9 acquisition" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-6/aoi\n", - "\n", - "pattern-6/aoi\n", - "\n", - "\n", - "\n", - "pattern-6/step\n", - "\n", - "pattern-6/step\n", - "\n", - "\n", - "\n", - "pattern-6/aoi->pattern-6/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-6/epsg\n", - "\n", - "pattern-6/epsg\n", - "\n", - "\n", - "\n", - "pattern-6/epsg->pattern-6/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-6/item\n", - "\n", - "pattern-6/item\n", - "\n", - "\n", - "\n", - "pattern-6/item->pattern-6/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-6/mean\n", - "\n", - "pattern-6/mean\n", - "\n", - "\n", - "\n", - "pattern-6/step->pattern-6/mean\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `mean` | `float` | Vegetation index mean | Vegetation index mean |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:49:36.222\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:49:36.290\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:36.298\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:36.299\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:36.300\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.482\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.483\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.484\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.484\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.485\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.538\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.543\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.543\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:37.544\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.584\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.585\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.586\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.586\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.587\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.651\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.660\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.660\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:38.661\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.868\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.869\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.870\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.870\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.871\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.871\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.871\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.873\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.873\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-6 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.873\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-6/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.874\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-6/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.874\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-6/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.874\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.875\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.875\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.876\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.876\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-6 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.876\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-6/mean: float\u001b[0m\n", - "\u001b[32m2025-09-05 14:49:39.877\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0040 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "NDVI mean\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/mean\n", - "\n", - "main/mean\n", - "\n", - "\n", - "\n", - "main/app->main/mean\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "1fab18a5", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "7ea7afd7", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-6/aoi | area of interest as a bounding box - This parameter is derived from pattern-6/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-6/epsg | EPSG code - This parameter is derived from pattern-6/epsg |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-6/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-6/item |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-6` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `mean` | `float` | Vegetation index mean - app/mean | Vegetation index mean - This output is derived from app/mean |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "fa392ea6", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "ea6ebc37", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dea8daf5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "e9498556", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"mean\": 0.07260978\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-6.md b/docs/pattern-6.md new file mode 100644 index 0000000..241e70a --- /dev/null +++ b/docs/pattern-6.md @@ -0,0 +1,170 @@ +# Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +NDVI mean from Landsat-8/9 acquisitions + +6. one input, no output + +The CWL includes: +- one input parameter of type `Directory` +- there are no output parameters of type `Directory` + +This corner-case scenario takes as input an acquisition, applies an algorithm and generates an output that is not a STAC Catalog + +Implementation: derive the NDVI mean taking as input a Landsat-9 acquisition + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:26:31.335 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-6 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Compute NDVI mean | Compute NDVI mean from the Landsat-8/9 acquisition | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `mean` | [float](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | Vegetation index mean | Vegetation index mean | + + +### OGC API - Processes + +When `pattern-6` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-6 OGC API Processes JSON Inputs schema](./pattern-6/ogc_processes_inputs.svg "pattern-6 diagram") + +#### Outputs + +![pattern-6 OGC API Processes JSON Outputs schema](./pattern-6/ogc_processes_outputs.svg "pattern-6 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-6 flow diagram](./pattern-6/activity.svg "pattern-6 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-6 flow diagram](./pattern-6/component.svg "pattern-6 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-6 flow diagram](./pattern-6/class.svg "pattern-6 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-6 flow diagram](./pattern-6/sequence.svg "pattern-6 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-6 flow diagram](./pattern-6/state.svg "pattern-6 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-6 \ +--input-item \ +--aoi \ +--epsg +``` + diff --git a/docs/pattern-6/activity.puml b/docs/pattern-6/activity.puml new file mode 100644 index 0000000..cd2d2f9 --- /dev/null +++ b/docs/pattern-6/activity.puml @@ -0,0 +1,48 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:32.582 + '/ +@startuml +start + + + + + +group pattern-6 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :item; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :mean; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-6/activity.svg b/docs/pattern-6/activity.svg new file mode 100644 index 0000000..1719302 --- /dev/null +++ b/docs/pattern-6/activity.svg @@ -0,0 +1 @@ +pattern-6aoiepsgitemstep: stepCommandLineTool: cltmean \ No newline at end of file diff --git a/docs/pattern-6/class.puml b/docs/pattern-6/class.puml new file mode 100644 index 0000000..5595699 --- /dev/null +++ b/docs/pattern-6/class.puml @@ -0,0 +1,127 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:34.804 + '/ +@startuml + + + + + + + + + + + + + + + + + + package "NDVI mean" { + + + + +class "pattern-6" as Workflow_pattern_6 extends Workflow { + __ Inputs __ + + + aoi: string + + + epsg: string = EPSG:4326 + + + item: Directory + + + __ Outputs __ + + + mean: float + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_6 --> string + + + + ' no need to add a Workflow_pattern_6 --> string + + + + ' no need to add a Workflow_pattern_6 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + __ Outputs __ + + + mean: float + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_6 --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_pattern_6 --> ScatterFeatureRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-6/class.svg b/docs/pattern-6/class.svg new file mode 100644 index 0000000..087b360 --- /dev/null +++ b/docs/pattern-6/class.svg @@ -0,0 +1 @@ +NDVI meanStepsRequirementspattern-6 aoi: string epsg: string = EPSG:4326 item: Directory  Inputs mean: float   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string  Inputs mean: float   OutputsCommandLineToolScatterFeatureRequirementHints \ No newline at end of file diff --git a/docs/pattern-6/component.puml b/docs/pattern-6/component.puml new file mode 100644 index 0000000..71ffcb6 --- /dev/null +++ b/docs/pattern-6/component.puml @@ -0,0 +1,72 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:33.771 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-6'" { + component "pattern-6" as pattern_6 { + + portin "aoi" as pattern_6_aoi + + portin "epsg" as pattern_6_epsg + + portin "item" as pattern_6_item + + + portout "mean" as pattern_6_mean + + } + + + frame "step" as pattern_6_step { + + portin "item" as pattern_6_step_item + + + + pattern_6_item .down.> pattern_6_step_item + + + + portin "aoi" as pattern_6_step_aoi + + + + pattern_6_aoi .down.> pattern_6_step_aoi + + + + portin "epsg" as pattern_6_step_epsg + + + + pattern_6_epsg .down.> pattern_6_step_epsg + + + + + + portout "mean" as pattern_6_step_mean + + + component "clt" as clt + } + +} + + + + +pattern_6_step_mean .up.> pattern_6_mean + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-6/component.svg b/docs/pattern-6/component.svg new file mode 100644 index 0000000..f87aa46 --- /dev/null +++ b/docs/pattern-6/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-6'pattern-6stepaoiepsgitemmeanitemaoiepsgmeanclt \ No newline at end of file diff --git a/docs/pattern-6/ogc_processes_inputs.puml b/docs/pattern-6/ogc_processes_inputs.puml new file mode 100644 index 0000000..1ad86c5 --- /dev/null +++ b/docs/pattern-6/ogc_processes_inputs.puml @@ -0,0 +1,71 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:38.776 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-6/ogc_processes_inputs.svg b/docs/pattern-6/ogc_processes_inputs.svg new file mode 100644 index 0000000..b5a85de --- /dev/null +++ b/docs/pattern-6/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestring   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-6/ogc_processes_outputs.puml b/docs/pattern-6/ogc_processes_outputs.puml new file mode 100644 index 0000000..75e2563 --- /dev/null +++ b/docs/pattern-6/ogc_processes_outputs.puml @@ -0,0 +1,22 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:40.013 + '/ +@startjson +{ + "mean": { + "schema": { + "type": "number", + "format": "float" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "float" + } + ], + "title": "Vegetation index mean", + "description": "Vegetation index mean" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-6/ogc_processes_outputs.svg b/docs/pattern-6/ogc_processes_outputs.svg new file mode 100644 index 0000000..b2de7d6 --- /dev/null +++ b/docs/pattern-6/ogc_processes_outputs.svg @@ -0,0 +1 @@ +mean   schema   metadata   titleVegetation index meandescriptionVegetation index meantypenumberformatfloat   titlecwl:typevaluefloat \ No newline at end of file diff --git a/docs/pattern-6/sequence.puml b/docs/pattern-6/sequence.puml new file mode 100644 index 0000000..f3d6c54 --- /dev/null +++ b/docs/pattern-6/sequence.puml @@ -0,0 +1,74 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:36.336 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI mean == + +control "pattern-6" as pattern_6_or +activate pattern_6_or + + +wfrunner -> pattern_6_or : ""aoi"" + +wfrunner -> pattern_6_or : ""epsg"" + +wfrunner -> pattern_6_or : ""item"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_6_or__step +activate pattern_6_or__step + + + +pattern_6_or -> pattern_6_or__step : ""item"" (from ""item"") + + + +pattern_6_or -> pattern_6_or__step : ""aoi"" (from ""aoi"") + + + +pattern_6_or -> pattern_6_or__step : ""epsg"" (from ""epsg"") + + + +pattern_6_or__step -> pattern_6_or__step : Compute + + +pattern_6_or <-- pattern_6_or__step : ""mean"" + + +deactivate pattern_6_or__step + + + + + + + +wfrunner <-- pattern_6_or : ""mean"" (from ""step/mean"") + + + +deactivate pattern_6_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-6/sequence.svg b/docs/pattern-6/sequence.svg new file mode 100644 index 0000000..cdf056b --- /dev/null +++ b/docs/pattern-6/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-6step. stepWorkflow runnerpattern-6step. stepWorkflow runnerWorkflow runnerpattern-6pattern-6step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-6step. stepNDVI mean[001]aoi[002]epsg[003]item[004]item(fromitem)[005]aoi(fromaoi)[006]epsg(fromepsg)[007]Compute[008]mean[009]mean(fromstep/mean) \ No newline at end of file diff --git a/docs/pattern-6/state.puml b/docs/pattern-6/state.puml new file mode 100644 index 0000000..96172ce --- /dev/null +++ b/docs/pattern-6/state.puml @@ -0,0 +1,89 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:37.670 + '/ +@startuml +hide empty description + + + + + +state "pattern-6" as pattern_6 { + + state "aoi" as pattern_6_aoi <> + + state "epsg" as pattern_6_epsg <> + + state "item" as pattern_6_item <> + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_6_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_6_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_6_epsg --> step_epsg + + + + + + state "mean" as step_mean <> + + + } + + + + +state "mean" as pattern_6_mean <> + +step_mean --> pattern_6_mean + + +} + +[*] --> pattern_6_aoi + +[*] --> pattern_6_epsg + +[*] --> pattern_6_item + + + +pattern_6_mean --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-6/state.svg b/docs/pattern-6/state.svg new file mode 100644 index 0000000..d623d51 --- /dev/null +++ b/docs/pattern-6/state.svg @@ -0,0 +1 @@ +pattern-6stepaoiepsgitemmeanitemaoiepsgmean \ No newline at end of file diff --git a/docs/pattern-7.ipynb b/docs/pattern-7.ipynb deleted file mode 100644 index c2c35c0..0000000 --- a/docs/pattern-7.ipynb +++ /dev/null @@ -1,967 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-7\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:50:31.290\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-7.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.292\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-7.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:50:31.321\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.322\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.328\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.343\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.344\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-7...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.345\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.345\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:31.346\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-7.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 7\n", - "\n", - "The CWL includes: \n", - "- one optional input parameter of type `Directory?`\n", - "- one output parameter of type `Directory`\n", - "\n", - "This scenario may take as input an acquisition, an optional input, applies an algorithm and generates an output\n", - "\n", - "Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-7/aoi\n", - "\n", - "pattern-7/aoi\n", - "\n", - "\n", - "\n", - "pattern-7/step\n", - "\n", - "pattern-7/step\n", - "\n", - "\n", - "\n", - "pattern-7/aoi->pattern-7/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-7/bands\n", - "\n", - "pattern-7/bands\n", - "\n", - "\n", - "\n", - "pattern-7/bands->pattern-7/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-7/epsg\n", - "\n", - "pattern-7/epsg\n", - "\n", - "\n", - "\n", - "pattern-7/epsg->pattern-7/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-7/item_1\n", - "\n", - "pattern-7/item_1\n", - "\n", - "\n", - "\n", - "pattern-7/item_1->pattern-7/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-7/item_2\n", - "\n", - "pattern-7/item_2\n", - "\n", - "\n", - "\n", - "pattern-7/item_2->pattern-7/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-7/water_bodies\n", - "\n", - "pattern-7/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-7/step->pattern-7/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item_1` | `Directory` | Mandatory Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n", - "| `item_2` | `[ null, Directory ]` | Optional Landsat-8/9 acquisition reference | Optional Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `Directory` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:50:32.305\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:50:32.367\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:32.376\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:32.377\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:32.378\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.244\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.245\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.245\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.246\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.246\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.300\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.306\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.307\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:33.308\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.091\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.092\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.093\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.093\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.094\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.143\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.156\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.156\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.157\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.953\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.953\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.954\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.955\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.955\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.956\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.956\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.956\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.957\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.957\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.957\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.958\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-7 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.958\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-7/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.960\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-7/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.960\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-7/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.961\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-7/item_1: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.961\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.962\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.962\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.963\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item_1' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.963\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-7/item_2: [ null, Directory ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.963\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_1'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.964\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting [ null, Directory ] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.964\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m [ null, Directory ] converted to [ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.965\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m186\u001b[0m - \u001b[1m Nullable detected, 'when' required for reference:item_2\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.965\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item_2' to 'directory_stage_in_1' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.967\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-7 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.967\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-7/water_bodies: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.968\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.969\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.969\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.970\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:50:34.971\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0133 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_1\n", - "\n", - "main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_1->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item_1\n", - "\n", - "main/item_1\n", - "\n", - "\n", - "\n", - "main/item_1->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item_2\n", - "\n", - "main/item_2\n", - "\n", - "\n", - "\n", - "main/item_2->main/directory_stage_in_1\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "1bc616b1", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "4a745f65", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-7/aoi | area of interest as a bounding box - This parameter is derived from pattern-7/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-7/epsg | EPSG code - This parameter is derived from pattern-7/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-7/bands | bands used for the NDWI - This parameter is derived from pattern-7/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item_1` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Mandatory Landsat-8/9 acquisition reference - pattern-7/item_1 | Landsat-8/9 acquisition reference - This parameter is derived from pattern-7/item_1 |\n", - "| `item_2` | `[ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI ]` | Optional Landsat-8/9 acquisition reference - pattern-7/item_2 | Optional Landsat-8/9 acquisition reference - This parameter is derived from pattern-7/item_2 |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `directory_stage_in_1` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-7` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "eb63081e", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "d31b8039", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9606bd15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"bands\": [\"green\", \"nir08\"], \"item_1\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}, \"item_2\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"item_1\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " \"item_2\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC09_L2SP_042033_20231015_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "5441a37d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-x0d2i0/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-7.md b/docs/pattern-7.md new file mode 100644 index 0000000..d237a6c --- /dev/null +++ b/docs/pattern-7.md @@ -0,0 +1,169 @@ +# Pattern 7 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* one optional input parameter of type `Directory?` +* one output parameter of type `Directory` + +This scenario may take as input an acquisition, an optional input, applies an algorithm and generates an output + +Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding. + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:26:42.314 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-7 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item_1` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Mandatory Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | +| `item_2` | One of:
  • [null](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory)
| Optional Landsat-8/9 acquisition reference | Optional Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Detect water bodies | Detect water bodies based on the NDWI and otsu threshold from Landsat- | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-7` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-7 OGC API Processes JSON Inputs schema](./pattern-7/ogc_processes_inputs.svg "pattern-7 diagram") + +#### Outputs + +![pattern-7 OGC API Processes JSON Outputs schema](./pattern-7/ogc_processes_outputs.svg "pattern-7 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-7 flow diagram](./pattern-7/activity.svg "pattern-7 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-7 flow diagram](./pattern-7/component.svg "pattern-7 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-7 flow diagram](./pattern-7/class.svg "pattern-7 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-7 flow diagram](./pattern-7/sequence.svg "pattern-7 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-7 flow diagram](./pattern-7/state.svg "pattern-7 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item_1` | `--input-item-1` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `item_2` | `--input-item-2` | One of:
  • [null](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory)
| +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| + +### Execution usage example: + +``` +runner pattern-7 \ +--input-item-1 \ +(--input-item-2 ) \ +--aoi \ +--epsg \ +--band +``` + diff --git a/docs/pattern-7/activity.puml b/docs/pattern-7/activity.puml new file mode 100644 index 0000000..b02deab --- /dev/null +++ b/docs/pattern-7/activity.puml @@ -0,0 +1,54 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:43.653 + '/ +@startuml +start + + + + + +group pattern-7 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :item_1; <> +split again + + :item_2; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-7/activity.svg b/docs/pattern-7/activity.svg new file mode 100644 index 0000000..c123f0e --- /dev/null +++ b/docs/pattern-7/activity.svg @@ -0,0 +1 @@ +pattern-7aoiepsgbandsitem_1item_2step: stepCommandLineTool: cltwater_bodies \ No newline at end of file diff --git a/docs/pattern-7/class.puml b/docs/pattern-7/class.puml new file mode 100644 index 0000000..f438537 --- /dev/null +++ b/docs/pattern-7/class.puml @@ -0,0 +1,156 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:45.628 + '/ +@startuml + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold" { + + + + +class "pattern-7" as Workflow_pattern_7 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + item_1: Directory + + + item_2: null | Directory + + + __ Outputs __ + + + water_bodies: Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_7 --> string + + + + ' no need to add a Workflow_pattern_7 --> string + + + + ' no need to add a Workflow_pattern_7 --> string + + + + ' no need to add a Workflow_pattern_7 --> Directory + + + + + + + + + + ' no need to add a Workflow_pattern_7 --> null +' no need to add a Workflow_pattern_7 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item_1: Directory + + + item_2: null | Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + __ Outputs __ + + + stac-catalog: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + + + + + + + ' no need to add a CommandLineTool_clt --> null +' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_7 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-7/class.svg b/docs/pattern-7/class.svg new file mode 100644 index 0000000..854bf29 --- /dev/null +++ b/docs/pattern-7/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu thresholdStepspattern-7 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] item_1: Directory item_2: null | Directory  Inputs water_bodies: Directory   Outputs step: clt  StepsWorkflowclt item_1: Directory item_2: null | Directory aoi: string epsg: string band: string[]  Inputs stac-catalog: Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-7/component.puml b/docs/pattern-7/component.puml new file mode 100644 index 0000000..d98dcb8 --- /dev/null +++ b/docs/pattern-7/component.puml @@ -0,0 +1,92 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:44.726 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-7'" { + component "pattern-7" as pattern_7 { + + portin "aoi" as pattern_7_aoi + + portin "epsg" as pattern_7_epsg + + portin "bands" as pattern_7_bands + + portin "item_1" as pattern_7_item_1 + + portin "item_2" as pattern_7_item_2 + + + portout "water_bodies" as pattern_7_water_bodies + + } + + + frame "step" as pattern_7_step { + + portin "item_1" as pattern_7_step_item_1 + + + + pattern_7_item_1 .down.> pattern_7_step_item_1 + + + + portin "item_2" as pattern_7_step_item_2 + + + + pattern_7_item_2 .down.> pattern_7_step_item_2 + + + + portin "aoi" as pattern_7_step_aoi + + + + pattern_7_aoi .down.> pattern_7_step_aoi + + + + portin "epsg" as pattern_7_step_epsg + + + + pattern_7_epsg .down.> pattern_7_step_epsg + + + + portin "band" as pattern_7_step_band + + + + pattern_7_bands .down.> pattern_7_step_band + + + + + + portout "stac-catalog" as pattern_7_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_7_step_stac_catalog .up.> pattern_7_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-7/component.svg b/docs/pattern-7/component.svg new file mode 100644 index 0000000..5dba3b2 --- /dev/null +++ b/docs/pattern-7/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-7'pattern-7stepaoiepsgbandsitem_1item_2water_bodiesitem_1item_2aoiepsgbandstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-7/ogc_processes_inputs.puml b/docs/pattern-7/ogc_processes_inputs.puml new file mode 100644 index 0000000..2d8d50d --- /dev/null +++ b/docs/pattern-7/ogc_processes_inputs.puml @@ -0,0 +1,126 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:49.680 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item_1": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Mandatory Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + }, + "item_2": { + "schema": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "[ null, Directory ]" + } + ], + "minOccurs": 0, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Optional Landsat-8/9 acquisition reference", + "description": "Optional Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-7/ogc_processes_inputs.svg b/docs/pattern-7/ogc_processes_inputs.svg new file mode 100644 index 0000000..a2818c7 --- /dev/null +++ b/docs/pattern-7/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   item_1   item_2   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleMandatory Landsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   minOccurs0maxOccurs1valuePassingbyValuetitleOptional Landsat-8/9 acquisition referencedescriptionOptional Landsat-8/9 acquisition referencenullable☑ trueoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalue[ null, Directory ] \ No newline at end of file diff --git a/docs/pattern-7/ogc_processes_outputs.puml b/docs/pattern-7/ogc_processes_outputs.puml new file mode 100644 index 0000000..05867f5 --- /dev/null +++ b/docs/pattern-7/ogc_processes_outputs.puml @@ -0,0 +1,35 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:52.097 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-7/ogc_processes_outputs.svg b/docs/pattern-7/ogc_processes_outputs.svg new file mode 100644 index 0000000..1b4e490 --- /dev/null +++ b/docs/pattern-7/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-7/sequence.puml b/docs/pattern-7/sequence.puml new file mode 100644 index 0000000..f8eb43e --- /dev/null +++ b/docs/pattern-7/sequence.puml @@ -0,0 +1,86 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:46.903 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold == + +control "pattern-7" as pattern_7_or +activate pattern_7_or + + +wfrunner -> pattern_7_or : ""aoi"" + +wfrunner -> pattern_7_or : ""epsg"" + +wfrunner -> pattern_7_or : ""bands"" + +wfrunner -> pattern_7_or : ""item_1"" + +wfrunner -> pattern_7_or : ""item_2"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_7_or__step +activate pattern_7_or__step + + + +pattern_7_or -> pattern_7_or__step : ""item_1"" (from ""item_1"") + + + +pattern_7_or -> pattern_7_or__step : ""item_2"" (from ""item_2"") + + + +pattern_7_or -> pattern_7_or__step : ""aoi"" (from ""aoi"") + + + +pattern_7_or -> pattern_7_or__step : ""epsg"" (from ""epsg"") + + + +pattern_7_or -> pattern_7_or__step : ""band"" (from ""bands"") + + + +pattern_7_or__step -> pattern_7_or__step : Compute + + +pattern_7_or <-- pattern_7_or__step : ""stac-catalog"" + + +deactivate pattern_7_or__step + + + + + + + +wfrunner <-- pattern_7_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_7_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-7/sequence.svg b/docs/pattern-7/sequence.svg new file mode 100644 index 0000000..0e8fda4 --- /dev/null +++ b/docs/pattern-7/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-7step. stepWorkflow runnerpattern-7step. stepWorkflow runnerWorkflow runnerpattern-7pattern-7step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-7step. stepWater bodies detection based on NDWI and the otsu threshold[001]aoi[002]epsg[003]bands[004]item_1[005]item_2[006]item_1(fromitem_1)[007]item_2(fromitem_2)[008]aoi(fromaoi)[009]epsg(fromepsg)[010]band(frombands)[011]Compute[012]stac-catalog[013]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-7/state.puml b/docs/pattern-7/state.puml new file mode 100644 index 0000000..d2b1d14 --- /dev/null +++ b/docs/pattern-7/state.puml @@ -0,0 +1,117 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:48.325 + '/ +@startuml +hide empty description + + + + + +state "pattern-7" as pattern_7 { + + state "aoi" as pattern_7_aoi <> + + state "epsg" as pattern_7_epsg <> + + state "bands" as pattern_7_bands <> + + state "item_1" as pattern_7_item_1 <> + + state "item_2" as pattern_7_item_2 <> + + + + + + + + + + + + + + + + + + + state step { + + state "item_1" as step_item_1 <> + + + + pattern_7_item_1 --> step_item_1 + + + + state "item_2" as step_item_2 <> + + + + pattern_7_item_2 --> step_item_2 + + + + state "aoi" as step_aoi <> + + + + pattern_7_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_7_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_7_bands --> step_band + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_7_water_bodies <> + +step_stac_catalog --> pattern_7_water_bodies + + +} + +[*] --> pattern_7_aoi + +[*] --> pattern_7_epsg + +[*] --> pattern_7_bands + +[*] --> pattern_7_item_1 + +[*] --> pattern_7_item_2 + + + +pattern_7_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-7/state.svg b/docs/pattern-7/state.svg new file mode 100644 index 0000000..f656217 --- /dev/null +++ b/docs/pattern-7/state.svg @@ -0,0 +1 @@ +pattern-7stepaoiepsgbandsitem_1item_2water_bodiesitem_1item_2aoiepsgbandstac-catalog \ No newline at end of file diff --git a/docs/pattern-8.ipynb b/docs/pattern-8.ipynb deleted file mode 100644 index e0e7aca..0000000 --- a/docs/pattern-8.ipynb +++ /dev/null @@ -1,938 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-8\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:51:45.598\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-8.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.599\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-8.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.622\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.623\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.630\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.642\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.643\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-8...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.644\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.644\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:45.645\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-8.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 8\n", - "\n", - "The CWL includes: \n", - "- one input parameter of type `Directory`\n", - "- one output parameter of type `Directory?`\n", - "\n", - "This scenario takes as input an acquisition, applies an algorithm and may or may not generate and output \n", - "\n", - "Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-8/aoi\n", - "\n", - "pattern-8/aoi\n", - "\n", - "\n", - "\n", - "pattern-8/step\n", - "\n", - "pattern-8/step\n", - "\n", - "\n", - "\n", - "pattern-8/aoi->pattern-8/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-8/bands\n", - "\n", - "pattern-8/bands\n", - "\n", - "\n", - "\n", - "pattern-8/bands->pattern-8/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-8/epsg\n", - "\n", - "pattern-8/epsg\n", - "\n", - "\n", - "\n", - "pattern-8/epsg->pattern-8/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-8/item\n", - "\n", - "pattern-8/item\n", - "\n", - "\n", - "\n", - "pattern-8/item->pattern-8/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-8/produce_output\n", - "\n", - "pattern-8/produce_output\n", - "\n", - "\n", - "\n", - "pattern-8/produce_output->pattern-8/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-8/water_bodies\n", - "\n", - "pattern-8/water_bodies\n", - "\n", - "\n", - "\n", - "pattern-8/step->pattern-8/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `bands` | `string[]` | bands used for the NDWI | bands used for the NDWI |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n", - "| `produce_output` | `boolean` | Flag to produce the output | Flag to produce the output |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `[ null, Directory ]` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:51:46.944\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:47.200\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:47.208\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:47.209\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:47.209\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.481\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.482\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.483\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.483\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.484\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.655\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.662\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.662\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:48.663\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:49.832\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:49.833\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:49.834\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:49.834\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:49.834\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:50.062\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:50.071\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:50.072\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:50.072\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.250\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.251\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.251\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.252\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.252\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.253\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.253\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.254\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.255\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.255\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.256\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.256\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-8 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.257\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-8/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.257\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-8/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.258\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-8/bands: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.259\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-8/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.259\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.259\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.260\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.260\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.261\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-8/produce_output: boolean\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.262\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-8 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.262\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-8/water_bodies: [ null, Directory ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.262\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.263\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting [ null, Directory ] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.263\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m [ null, Directory ] converted to [ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.264\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1m Nullable detected, 'when' required for stac_catalog:app/water_bodies\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.265\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/water_bodies' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:51:51.265\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0098 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "Water bodies detection based on NDWI and the otsu threshold\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/water_bodies\n", - "\n", - "main/water_bodies\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/water_bodies\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/bands\n", - "\n", - "main/bands\n", - "\n", - "\n", - "\n", - "main/bands->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/produce_output\n", - "\n", - "main/produce_output\n", - "\n", - "\n", - "\n", - "main/produce_output->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "2835bc21", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3dc92942", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-8/aoi | area of interest as a bounding box - This parameter is derived from pattern-8/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-8/epsg | EPSG code - This parameter is derived from pattern-8/epsg |\n", - "| `bands` | `string[]` | bands used for the NDWI - pattern-8/bands | bands used for the NDWI - This parameter is derived from pattern-8/bands |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-8/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-8/item |\n", - "| `produce_output` | `boolean` | Flag to produce the output - pattern-8/produce_output | Flag to produce the output - This parameter is derived from pattern-8/produce_output |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-8` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `water_bodies` | `[ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI ]` | Water bodies detected | Water bodies detected based on the NDWI and otsu threshold |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "ea7b91d1", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "66f46b93", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0b808271", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"bands\": [\"green\", \"nir08\"], \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}, \"produce_output\": true}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"bands\": [\"green\", \"nir08\"],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - " \"produce_output\": True,\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "27d4338a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"water_bodies\": {\n", - " \"value\": \"s3://my-bucket/my/sub/path-9y6ls3/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " }\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5704fd74", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-8.md b/docs/pattern-8.md new file mode 100644 index 0000000..132418c --- /dev/null +++ b/docs/pattern-8.md @@ -0,0 +1,169 @@ +# Pattern 8 - Water bodies detection based on NDWI and the otsu threshold v1.0.0 + +* one input parameter of type `Directory` +* one output parameter of type `Directory?` + +This scenario takes as input an acquisition, applies an algorithm and may or may not generate and output + +Implementation: detects water bodies using the Normalized Difference Water Index (NDWI) and Otsu thresholding. + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:26:55.260 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-8 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + + + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `bands` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | bands used for the NDWI | bands used for the NDWI | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | +| `produce_output` | [boolean](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | Flag to produce the output | Flag to produce the output | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Detect water bodies | Detect water bodies based on the NDWI and otsu threshold from Landsat-8/9 acquisition | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `water_bodies` | One of:
  • [null](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory)
| Water bodies detected | Water bodies detected based on the NDWI and otsu threshold | + + +### OGC API - Processes + +When `pattern-8` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-8 OGC API Processes JSON Inputs schema](./pattern-8/ogc_processes_inputs.svg "pattern-8 diagram") + +#### Outputs + +![pattern-8 OGC API Processes JSON Outputs schema](./pattern-8/ogc_processes_outputs.svg "pattern-8 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-8 flow diagram](./pattern-8/activity.svg "pattern-8 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-8 flow diagram](./pattern-8/component.svg "pattern-8 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-8 flow diagram](./pattern-8/class.svg "pattern-8 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-8 flow diagram](./pattern-8/sequence.svg "pattern-8 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-8 flow diagram](./pattern-8/state.svg "pattern-8 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `band` | `--band` | One of:
  • `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
| +| `produce_output` | `--produce_output` | [boolean](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-8 \ +--input-item \ +--aoi \ +--epsg \ +--band \ +--produce_output +``` + diff --git a/docs/pattern-8/activity.puml b/docs/pattern-8/activity.puml new file mode 100644 index 0000000..9e6109e --- /dev/null +++ b/docs/pattern-8/activity.puml @@ -0,0 +1,54 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:57.244 + '/ +@startuml +start + + + + + +group pattern-8 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :bands; <> +split again + + :item; <> +split again + + :produce_output; <> +end split + + + + + + + +:step: step +CommandLineTool: clt; + + + + + +split + + :water_bodies; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-8/activity.svg b/docs/pattern-8/activity.svg new file mode 100644 index 0000000..fcaad18 --- /dev/null +++ b/docs/pattern-8/activity.svg @@ -0,0 +1 @@ +pattern-8aoiepsgbandsitemproduce_outputstep: stepCommandLineTool: cltwater_bodies \ No newline at end of file diff --git a/docs/pattern-8/class.puml b/docs/pattern-8/class.puml new file mode 100644 index 0000000..51ecec3 --- /dev/null +++ b/docs/pattern-8/class.puml @@ -0,0 +1,142 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:59.688 + '/ +@startuml + + + + + + + + + + + + + + package "Water bodies detection based on NDWI and the otsu threshold" { + + + + +class "pattern-8" as Workflow_pattern_8 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + bands: string[] = ['green', 'nir08'] + + + item: Directory + + + produce_output: boolean + + + __ Outputs __ + + + water_bodies: null | Directory + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_8 --> string + + + + ' no need to add a Workflow_pattern_8 --> string + + + + ' no need to add a Workflow_pattern_8 --> string + + + + ' no need to add a Workflow_pattern_8 --> Directory + + + + ' no need to add a Workflow_pattern_8 --> boolean + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + band: string[] + + + produce_output: boolean + + + __ Outputs __ + + + stac-catalog: null | Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> boolean + + +Workflow_pattern_8 --> CommandLineTool_clt + + + } + + + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-8/class.svg b/docs/pattern-8/class.svg new file mode 100644 index 0000000..cac1cf7 --- /dev/null +++ b/docs/pattern-8/class.svg @@ -0,0 +1 @@ +Water bodies detection based on NDWI and the otsu thresholdStepspattern-8 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 bands: string[] = ['green', 'nir08'] item: Directory produce_output: boolean  Inputs water_bodies: null | Directory   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string band: string[] produce_output: boolean  Inputs stac-catalog: null | Directory   OutputsCommandLineToolHints \ No newline at end of file diff --git a/docs/pattern-8/component.puml b/docs/pattern-8/component.puml new file mode 100644 index 0000000..4882035 --- /dev/null +++ b/docs/pattern-8/component.puml @@ -0,0 +1,92 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:26:58.451 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-8'" { + component "pattern-8" as pattern_8 { + + portin "aoi" as pattern_8_aoi + + portin "epsg" as pattern_8_epsg + + portin "bands" as pattern_8_bands + + portin "item" as pattern_8_item + + portin "produce_output" as pattern_8_produce_output + + + portout "water_bodies" as pattern_8_water_bodies + + } + + + frame "step" as pattern_8_step { + + portin "item" as pattern_8_step_item + + + + pattern_8_item .down.> pattern_8_step_item + + + + portin "aoi" as pattern_8_step_aoi + + + + pattern_8_aoi .down.> pattern_8_step_aoi + + + + portin "epsg" as pattern_8_step_epsg + + + + pattern_8_epsg .down.> pattern_8_step_epsg + + + + portin "band" as pattern_8_step_band + + + + pattern_8_bands .down.> pattern_8_step_band + + + + portin "produce_output" as pattern_8_step_produce_output + + + + pattern_8_produce_output .down.> pattern_8_step_produce_output + + + + + + portout "stac-catalog" as pattern_8_step_stac_catalog + + + component "clt" as clt + } + +} + + + + +pattern_8_step_stac_catalog .up.> pattern_8_water_bodies + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-8/component.svg b/docs/pattern-8/component.svg new file mode 100644 index 0000000..71e8459 --- /dev/null +++ b/docs/pattern-8/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-8'pattern-8stepaoiepsgbandsitemproduce_outputwater_bodiesitemaoiepsgbandproduce_outputstac-catalogclt \ No newline at end of file diff --git a/docs/pattern-8/ogc_processes_inputs.puml b/docs/pattern-8/ogc_processes_inputs.puml new file mode 100644 index 0000000..62a50b2 --- /dev/null +++ b/docs/pattern-8/ogc_processes_inputs.puml @@ -0,0 +1,111 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:03.771 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "bands": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "green", + "nir08" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "bands used for the NDWI", + "description": "bands used for the NDWI" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + }, + "produce_output": { + "schema": { + "type": "boolean" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "boolean" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Flag to produce the output", + "description": "Flag to produce the output" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-8/ogc_processes_inputs.svg b/docs/pattern-8/ogc_processes_inputs.svg new file mode 100644 index 0000000..a6f4311 --- /dev/null +++ b/docs/pattern-8/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   bands   item   produce_output   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlebands used for the NDWIdescriptionbands used for the NDWItypearrayitems   default   typestringgreennir08   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectoryschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleFlag to produce the outputdescriptionFlag to produce the outputtypeboolean   titlecwl:typevalueboolean \ No newline at end of file diff --git a/docs/pattern-8/ogc_processes_outputs.puml b/docs/pattern-8/ogc_processes_outputs.puml new file mode 100644 index 0000000..a94ba03 --- /dev/null +++ b/docs/pattern-8/ogc_processes_outputs.puml @@ -0,0 +1,36 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:05.508 + '/ +@startjson +{ + "water_bodies": { + "schema": { + "nullable": true, + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "[ null, Directory ]" + } + ], + "title": "Water bodies detected", + "description": "Water bodies detected based on the NDWI and otsu threshold" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-8/ogc_processes_outputs.svg b/docs/pattern-8/ogc_processes_outputs.svg new file mode 100644 index 0000000..ed8a83d --- /dev/null +++ b/docs/pattern-8/ogc_processes_outputs.svg @@ -0,0 +1 @@ +water_bodies   schema   metadata   titleWater bodies detecteddescriptionWater bodies detected based on the NDWI and otsu thresholdnullable☑ trueoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalue[ null, Directory ] \ No newline at end of file diff --git a/docs/pattern-8/sequence.puml b/docs/pattern-8/sequence.puml new file mode 100644 index 0000000..42f7f8b --- /dev/null +++ b/docs/pattern-8/sequence.puml @@ -0,0 +1,86 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:01.115 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== Water bodies detection based on NDWI and the otsu threshold == + +control "pattern-8" as pattern_8_or +activate pattern_8_or + + +wfrunner -> pattern_8_or : ""aoi"" + +wfrunner -> pattern_8_or : ""epsg"" + +wfrunner -> pattern_8_or : ""bands"" + +wfrunner -> pattern_8_or : ""item"" + +wfrunner -> pattern_8_or : ""produce_output"" + + + + + + + + +participant "step: step\nCommandLineTool: clt" as pattern_8_or__step +activate pattern_8_or__step + + + +pattern_8_or -> pattern_8_or__step : ""item"" (from ""item"") + + + +pattern_8_or -> pattern_8_or__step : ""aoi"" (from ""aoi"") + + + +pattern_8_or -> pattern_8_or__step : ""epsg"" (from ""epsg"") + + + +pattern_8_or -> pattern_8_or__step : ""band"" (from ""bands"") + + + +pattern_8_or -> pattern_8_or__step : ""produce_output"" (from ""produce_output"") + + + +pattern_8_or__step -> pattern_8_or__step : Compute + + +pattern_8_or <-- pattern_8_or__step : ""stac-catalog"" + + +deactivate pattern_8_or__step + + + + + + + +wfrunner <-- pattern_8_or : ""water_bodies"" (from ""step/stac-catalog"") + + + +deactivate pattern_8_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-8/sequence.svg b/docs/pattern-8/sequence.svg new file mode 100644 index 0000000..21de1d3 --- /dev/null +++ b/docs/pattern-8/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-8step. stepWorkflow runnerpattern-8step. stepWorkflow runnerWorkflow runnerpattern-8pattern-8step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-8step. stepWater bodies detection based on NDWI and the otsu threshold[001]aoi[002]epsg[003]bands[004]item[005]produce_output[006]item(fromitem)[007]aoi(fromaoi)[008]epsg(fromepsg)[009]band(frombands)[010]produce_output(fromproduce_output)[011]Compute[012]stac-catalog[013]water_bodies(fromstep/stac-catalog) \ No newline at end of file diff --git a/docs/pattern-8/state.puml b/docs/pattern-8/state.puml new file mode 100644 index 0000000..1396dfb --- /dev/null +++ b/docs/pattern-8/state.puml @@ -0,0 +1,117 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:02.456 + '/ +@startuml +hide empty description + + + + + +state "pattern-8" as pattern_8 { + + state "aoi" as pattern_8_aoi <> + + state "epsg" as pattern_8_epsg <> + + state "bands" as pattern_8_bands <> + + state "item" as pattern_8_item <> + + state "produce_output" as pattern_8_produce_output <> + + + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_8_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_8_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_8_epsg --> step_epsg + + + + state "band" as step_band <> + + + + pattern_8_bands --> step_band + + + + state "produce_output" as step_produce_output <> + + + + pattern_8_produce_output --> step_produce_output + + + + + + state "stac-catalog" as step_stac_catalog <> + + + } + + + + +state "water_bodies" as pattern_8_water_bodies <> + +step_stac_catalog --> pattern_8_water_bodies + + +} + +[*] --> pattern_8_aoi + +[*] --> pattern_8_epsg + +[*] --> pattern_8_bands + +[*] --> pattern_8_item + +[*] --> pattern_8_produce_output + + + +pattern_8_water_bodies --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-8/state.svg b/docs/pattern-8/state.svg new file mode 100644 index 0000000..9747991 --- /dev/null +++ b/docs/pattern-8/state.svg @@ -0,0 +1 @@ +pattern-8stepaoiepsgbandsitemproduce_outputwater_bodiesitemaoiepsgbandproduce_outputstac-catalog \ No newline at end of file diff --git a/docs/pattern-9.ipynb b/docs/pattern-9.ipynb deleted file mode 100644 index 4d3d0ec..0000000 --- a/docs/pattern-9.ipynb +++ /dev/null @@ -1,916 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "49711fee", - "metadata": {}, - "outputs": [], - "source": [ - "%load_ext autoreload\n", - "%autoreload 2\n", - "\n", - "pattern = \"pattern-9\"\n", - "\n", - "entrypoint = pattern\n", - "app_cwl_file = f\"../cwl-workflow/{pattern}.cwl\"\n", - "\n", - "try:\n", - " from docs.helpers import plot_cwl, wrap_cwl\n", - "except (ImportError, ModuleNotFoundError) as e:\n", - "\n", - " import os\n", - " import sys\n", - "\n", - " module_path = os.path.abspath(os.path.join(\".\")) # or the path to your source code\n", - " sys.path.insert(0, module_path)\n", - "\n", - "from helpers import WorkflowViewer, WorkflowWrapper\n", - "from cwl_loader import dump_cwl\n", - "from IPython.display import Markdown, display\n", - "import json" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "384acc8b", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:52:33.852\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from ../cwl-workflow/pattern-9.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.853\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from ../cwl-workflow/pattern-9.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:52:33.877\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.878\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.885\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.899\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.900\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning Workflow pattern-9...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.901\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool clt...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.901\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:33.902\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from ../cwl-workflow/pattern-9.cwl successfully load!\u001b[0m\n" - ] - } - ], - "source": [ - "wf = WorkflowViewer.from_file(app_cwl_file, entrypoint)" - ] - }, - { - "cell_type": "markdown", - "id": "9a0e0139", - "metadata": {}, - "source": [ - "## Application Package Pattern 9\n", - "\n", - "The CWL includes: \n", - "\n", - "- one input parameter of type `Directory`\n", - "- output parameter of type `Directory[]?`\n", - "\n", - "This scenario takes as input an acquisition, applies an algorithm and may or may not generate outputs \n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "b72822ec", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "pattern-9/aoi\n", - "\n", - "pattern-9/aoi\n", - "\n", - "\n", - "\n", - "pattern-9/step\n", - "\n", - "pattern-9/step\n", - "\n", - "\n", - "\n", - "pattern-9/aoi->pattern-9/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-9/epsg\n", - "\n", - "pattern-9/epsg\n", - "\n", - "\n", - "\n", - "pattern-9/epsg->pattern-9/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-9/item\n", - "\n", - "pattern-9/item\n", - "\n", - "\n", - "\n", - "pattern-9/item->pattern-9/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-9/indexes\n", - "\n", - "pattern-9/indexes\n", - "\n", - "\n", - "\n", - "pattern-9/indexes->pattern-9/step\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pattern-9/vegetation_indexes\n", - "\n", - "pattern-9/vegetation_indexes\n", - "\n", - "\n", - "\n", - "pattern-9/step->pattern-9/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "485b5d93", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "1f48503f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest | area of interest as a bounding box |\n", - "| `epsg` | `string` | EPSG code | EPSG code |\n", - "| `indexes` | `string[]` | indexes | indexes to compute |\n", - "| `item` | `Directory` | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "3a8f25c8", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "754d5444", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `step` | `#clt` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "d5e08fbb", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "9d819c9d", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `[ null, Directory[] ]` | Vegetation indexes | Vegetation indexes |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "5ee7cc28", - "metadata": {}, - "source": [ - "## Data flow management" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "28b9c9ce", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:52:34.868\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2025-09-05 14:52:34.925\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:34.936\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:34.937\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:34.938\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.876\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.877\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-directory...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.877\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.878\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.879\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.931\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.938\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.938\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:35.939\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.739\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.740\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-asthonishing-stage-in-file...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.741\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.741\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-in-file.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.741\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_location\u001b[0m:\u001b[36m196\u001b[0m - \u001b[34m\u001b[1mLoading CWL document from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.793\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m199\u001b[0m - \u001b[34m\u001b[1mReading stream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.801\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_stream\u001b[0m:\u001b[36m173\u001b[0m - \u001b[34m\u001b[1mCWL data of type successfully loaded from stream\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.802\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mUpdating the model of type 'CommentedMap' to version 'v1.2'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:36.803\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m135\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now converting to the CWL model...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.845\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m143\u001b[0m - \u001b[34m\u001b[1mRaw CWL document successfully updated to v1.2! Now dereferencing the FQNs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.845\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_clean_process\u001b[0m:\u001b[36m66\u001b[0m - \u001b[34m\u001b[1m Cleaning CommandLineTool my-super-stage-out...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.846\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36mload_cwl_from_yaml\u001b[0m:\u001b[36m151\u001b[0m - \u001b[34m\u001b[1mCWL document successfully dereferenced!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.846\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mcwl_loader\u001b[0m:\u001b[36m_load_cwl_from_stream\u001b[0m:\u001b[36m207\u001b[0m - \u001b[34m\u001b[1mStream from https://raw.githubusercontent.com/eoap/application-package-patterns/refs/heads/develop/templates/stage-out.cwl successfully load!\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-directory'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-directory' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m273\u001b[0m - \u001b[1mValidating stage-in 'my-asthonishing-stage-in-file'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36m_validate_stage_in\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1mstage-in 'my-asthonishing-stage-in-file' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.848\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m331\u001b[0m - \u001b[1mValidating stage-out 'my-super-stage-out'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.848\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap.types\u001b[0m:\u001b[36mvalidate_stage_out\u001b[0m:\u001b[36m353\u001b[0m - \u001b[1mstage-out 'my-super-stage-out' is valid\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.848\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m90\u001b[0m - \u001b[1mBuilding the CWL Orchestrator Workflow...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.849\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m119\u001b[0m - \u001b[1mAnalyzing pattern-9 inputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.849\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-9/aoi: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.850\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-9/epsg: string\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.850\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-9/indexes: string[]\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.851\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m135\u001b[0m - \u001b[1m* pattern-9/item: Directory\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.851\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m148\u001b[0m - \u001b[1m Directory type detected, creating a related 'directory_stage_in_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.852\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m150\u001b[0m - \u001b[1m Converting Directory to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.852\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m154\u001b[0m - \u001b[1m Directory converted to https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.854\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m195\u001b[0m - \u001b[1m Connecting 'app/item' to 'directory_stage_in_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.854\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m246\u001b[0m - \u001b[1mAnalyzing pattern-9 outputs...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.855\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m252\u001b[0m - \u001b[1m* pattern-9/vegetation_indexes: [ null, Directory[] ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.855\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m257\u001b[0m - \u001b[1m Directory type detected, creating a related 'stage_out_0'...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.855\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m259\u001b[0m - \u001b[1m Converting [ null, Directory[] ] to URL-compatible type...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.856\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m263\u001b[0m - \u001b[1m [ null, Directory[] ] converted to [ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[] ]\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.858\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m284\u001b[0m - \u001b[1m Array detected, scatter required for stac_catalog:app/vegetation_indexes\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.859\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m295\u001b[0m - \u001b[1m Nullable detected, 'when' required for stac_catalog:app/vegetation_indexes\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.859\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m304\u001b[0m - \u001b[1m Connecting 'app/vegetation_indexes' to 'stage_out_0' output...\u001b[0m\n", - "\u001b[32m2025-09-05 14:52:37.860\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36meoap_cwlwrap\u001b[0m:\u001b[36m_build_orchestrator_workflow\u001b[0m:\u001b[36m379\u001b[0m - \u001b[1mOrchestrator Workflow built in 0.0112 seconds\u001b[0m\n" - ] - } - ], - "source": [ - "w = WorkflowWrapper(workflow=wf.workflow, entrypoint=entrypoint)\n", - "wrapped = w.wrap()\n", - "\n", - "app_cwl_file = f\".{entrypoint}.cwl\"\n", - "\n", - "with open(app_cwl_file, \"w\") as f:\n", - " dump_cwl(process=wrapped, stream=f)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "3e868052", - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "G\n", - "\n", - "\n", - "cluster_inputs\n", - "\n", - "Workflow Inputs\n", - "\n", - "\n", - "cluster_outputs\n", - "\n", - "Workflow Outputs\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "main/app\n", - "\n", - "NDVI and NDWI vegetation indexes\n", - "\n", - "\n", - "\n", - "main/directory_stage_in_0->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/stage_out_0\n", - "\n", - "main/stage_out_0\n", - "\n", - "\n", - "\n", - "main/app->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "main/stage_out_0->main/vegetation_indexes\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aoi\n", - "\n", - "main/aoi\n", - "\n", - "\n", - "\n", - "main/aoi->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/epsg\n", - "\n", - "main/epsg\n", - "\n", - "\n", - "\n", - "main/epsg->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/indexes\n", - "\n", - "main/indexes\n", - "\n", - "\n", - "\n", - "main/indexes->main/app\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/another_input\n", - "\n", - "main/another_input\n", - "\n", - "\n", - "\n", - "main/another_input->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/item\n", - "\n", - "main/item\n", - "\n", - "\n", - "\n", - "main/item->main/directory_stage_in_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "main/aws_access_key_id\n", - "\n", - "\n", - "\n", - "main/aws_access_key_id->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "main/aws_secret_access_key\n", - "\n", - "\n", - "\n", - "main/aws_secret_access_key->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/endpoint_url\n", - "\n", - "main/endpoint_url\n", - "\n", - "\n", - "\n", - "main/endpoint_url->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/region_name\n", - "\n", - "main/region_name\n", - "\n", - "\n", - "\n", - "main/region_name->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/s3_bucket\n", - "\n", - "main/s3_bucket\n", - "\n", - "\n", - "\n", - "main/s3_bucket->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "main/sub_path\n", - "\n", - "main/sub_path\n", - "\n", - "\n", - "\n", - "main/sub_path->main/stage_out_0\n", - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wf = WorkflowViewer(cwl_file=app_cwl_file, workflow=wrapped, entrypoint=\"main\")\n", - "\n", - "wf.plot()" - ] - }, - { - "cell_type": "markdown", - "id": "ac0ccc89", - "metadata": {}, - "source": [ - "### Workflow components diagram" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "3801b239", - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_components_diagram()" - ] - }, - { - "cell_type": "markdown", - "id": "8f48f4d3", - "metadata": {}, - "source": [ - "### Inputs" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "1505f319", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `aoi` | `string` | area of interest - pattern-9/aoi | area of interest as a bounding box - This parameter is derived from pattern-9/aoi |\n", - "| `epsg` | `string` | EPSG code - pattern-9/epsg | EPSG code - This parameter is derived from pattern-9/epsg |\n", - "| `indexes` | `string[]` | indexes - pattern-9/indexes | indexes to compute - This parameter is derived from pattern-9/indexes |\n", - "| `another_input` | `string` | Another Input - my-asthonishing-stage-in-directory/another_input | An additional input for demonstration purposes - This parameter is derived from my-asthonishing-stage-in-directory/another_input |\n", - "| `item` | `https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI` | Landsat-8/9 acquisition reference - pattern-9/item | Landsat-8/9 acquisition reference - This parameter is derived from pattern-9/item |\n", - "| `s3_bucket` | `string` | my-super-stage-out/s3_bucket | This parameter is derived from: my-super-stage-out/s3_bucket |\n", - "| `sub_path` | `string` | my-super-stage-out/sub_path | This parameter is derived from: my-super-stage-out/sub_path |\n", - "| `aws_access_key_id` | `string` | my-super-stage-out/aws_access_key_id | This parameter is derived from: my-super-stage-out/aws_access_key_id |\n", - "| `aws_secret_access_key` | `string` | my-super-stage-out/aws_secret_access_key | This parameter is derived from: my-super-stage-out/aws_secret_access_key |\n", - "| `region_name` | `string` | my-super-stage-out/region_name | This parameter is derived from: my-super-stage-out/region_name |\n", - "| `endpoint_url` | `string` | my-super-stage-out/endpoint_url | This parameter is derived from: my-super-stage-out/endpoint_url |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_inputs()" - ] - }, - { - "cell_type": "markdown", - "id": "bb09c949", - "metadata": {}, - "source": [ - "### Steps" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "5d2a4e59", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Runs | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `directory_stage_in_0` | `#my-asthonishing-stage-in-directory` | None | None |\n", - "| `app` | `#pattern-9` | None | None |\n", - "| `stage_out_0` | `#my-super-stage-out` | None | None |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_steps()" - ] - }, - { - "cell_type": "markdown", - "id": "2ea5bd60", - "metadata": {}, - "source": [ - "### Outputs" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "abcdff15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "| Id | Type | Label | Doc |\n", - "| --- | --- | --- | --- |\n", - "| `vegetation_indexes` | `[ null, https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI[] ]` | Vegetation indexes | Vegetation indexes |\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wf.display_outputs()" - ] - }, - { - "cell_type": "markdown", - "id": "c82e36f7", - "metadata": {}, - "source": [ - "## Execution\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "f9bfc2ec", - "metadata": {}, - "outputs": [], - "source": [ - "from cwltool.main import main\n", - "from io import StringIO\n", - "import argparse\n", - "import yaml" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "dd06f5bd", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{\"aoi\": \"-118.985,38.432,-118.183,38.938\", \"epsg\": \"EPSG:4326\", \"indexes\": [\"ndvi\", \"none\"], \"item\": {\"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\", \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\"}}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "params = {\n", - " \"aoi\": \"-118.985,38.432,-118.183,38.938\",\n", - " \"epsg\": \"EPSG:4326\",\n", - " \"indexes\": [\"ndvi\", \"none\"],\n", - " \"item\": {\n", - " \"class\": \"https://raw.githubusercontent.com/eoap/schemas/main/url.yaml#URL\",\n", - " \"value\": \"https://planetarycomputer.microsoft.com/api/stac/v1/collections/landsat-c2-l2/items/LC08_L2SP_042033_20231007_02_T1\",\n", - " },\n", - "}\n", - "additional_params = {\n", - " \"another_input\": \"some_value\",\n", - " \"s3_bucket\": \"my-bucket\",\n", - " \"sub_path\": \"my/sub/path\",\n", - " \"aws_access_key_id\": \"test\",\n", - " \"aws_secret_access_key\": \"test\",\n", - " \"region_name\": \"us-west-1\",\n", - " \"endpoint_url\": \"https://s3.us-west-1.amazonaws.com\",\n", - "}\n", - "\n", - "with open(\".params.yaml\", \"w\") as f:\n", - " yaml.dump({**params, **additional_params}, f)\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Inputs\n", - "\n", - "```json\n", - "{json.dumps(params, indent=2)}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "a428fe15", - "metadata": {}, - "outputs": [ - { - "data": { - "text/markdown": [ - "\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{\n", - " \"vegetation_indexes\": [\n", - " {\n", - " \"value\": \"s3://my-bucket/my/sub/path-ubbsam/catalog.json\",\n", - " \"type\": \"https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI\"\n", - " },\n", - " null\n", - " ]\n", - "}\n", - "```\n" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "parsed_args = argparse.Namespace(\n", - " podman=False,\n", - " debug=False,\n", - " validate=False,\n", - " outdir=\"./runs\",\n", - " workflow=f\"{app_cwl_file}#main\",\n", - " job_order=[\".params.yaml\"],\n", - ")\n", - "\n", - "stream_out = StringIO()\n", - "stream_err = StringIO()\n", - "\n", - "res = main(\n", - " args=parsed_args,\n", - " stdout=stream_out,\n", - " stderr=stream_err,\n", - ")\n", - "\n", - "assert res == 0\n", - "\n", - "md = f\"\"\"\n", - "\n", - "### Outputs\n", - "\n", - "```json\n", - "{stream_out.getvalue()}\n", - "```\n", - "\"\"\"\n", - "\n", - "display(Markdown(md))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "patterns (3.13.1)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.13.1" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/pattern-9.md b/docs/pattern-9.md new file mode 100644 index 0000000..73b0766 --- /dev/null +++ b/docs/pattern-9.md @@ -0,0 +1,166 @@ +# Pattern 9 - NDVI and NDWI vegetation indexes v1.0.0 + +* one input parameter of type `Directory` +* output parameter of type `Directory[]?` + +This scenario takes as input an acquisition, applies an algorithm and may or may not generate outputs + + +> This software is licensed under the terms of the [Apache License 2.0](https://spdx.org/licenses/Apache-2.0.html) license - SPDX short identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0) +> +> 2025-01-01 - 2026-08-28T13:27:08.564 Copyright [Make Earth Observation Great Again](mailto:info@meoga.com) - > [https://ror.org/9999cx000](https://ror.org/9999cx000) + +## Project Team + +### Authors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Lane, Lois | [lois.lane@meoga.com](mailto:lois.lane@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Project administration](https://credit.niso.org/contributor-roles/project-administration/) | [https://orcid.org/0000-9999-0000-9999](https://orcid.org/0000-9999-0000-9999) | +| Kent, Clark | [clark.kent@meoga.com](mailto:clark.kent@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Supervision](https://credit.niso.org/contributor-roles/supervision/) | [https://orcid.org/9999-0000-9999-0000](https://orcid.org/9999-0000-9999-0000) | + + +### Contributors + +| Name | Email | Organization | Role | Identifier | +|------|-------|--------------|------|------------| +| Luthor, Lex | [lex.luthor@meoga.com](mailto:lex.luthor@meoga.com) | [Make Earth Observation Great Again](https://ror.org/9999cx000) | [Software](https://credit.niso.org/contributor-roles/software/) | [None](None) | + + + +## User Manual + +User Manual can be found on [https://eoap.github.io/application-package-patterns/pattern-1/](https://eoap.github.io/application-package-patterns/pattern-1/). + + +## Runtime environment + +### Supported Operating Systems + +- Linux +- macOS +- macOS Server + +### Requirements + +- [https://cwltool.readthedocs.io/en/latest/](https://cwltool.readthedocs.io/en/latest/) +- [https://www.python.org/](https://www.python.org/) + + +--- + + +## pattern-9 + +### CWL Class + +[Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) + +### Requirements + +* [ScatterFeatureRequirement](https://www.commonwl.org/v1.2/Workflow.html#ScatterFeatureRequirement) + +### Inputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | area of interest | area of interest as a bounding box | +| `epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | EPSG code | EPSG code | +| `indexes` | `array` of [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | indexes | indexes to compute | +| `item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | Landsat-8/9 acquisition reference | Landsat-8/9 acquisition reference | + + +### Steps + +| Id | Runs | Label | Doc | +|----|------|-------|-----| +| [step](#clt) | `#clt` | Compute vegetation indexes | Compute NDVI and NDWI vegetation indexes from the Landsat-8/9 acquisition | + + +### Outputs + +| Id | Type | Label | Doc | +|----|------|-------|-----| +| `vegetation_indexes` | One of:
  • [null](https://www.commonwl.org/v1.2/Workflow.html#CWLType)
  • `array` of [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory)
| Vegetation indexes | Vegetation indexes | + + +### OGC API - Processes + +When `pattern-9` [Workflow](https://www.commonwl.org/v1.2/Workflow.html#Workflow) is exposed through [OGC API - Processes - Part 1: Core](https://docs.ogc.org/is/18-062r2/18-062r2.html), `inputs` and `outputs` fields below represent the interface of the [getProcessDescription](https://developer.ogc.org/api/processes/index.html#tag/ProcessDescription/operation/getProcessDescription) API. + + + +#### Inputs + +![pattern-9 OGC API Processes JSON Inputs schema](./pattern-9/ogc_processes_inputs.svg "pattern-9 diagram") + +#### Outputs + +![pattern-9 OGC API Processes JSON Outputs schema](./pattern-9/ogc_processes_outputs.svg "pattern-9 diagram") + + +### UML Diagrams + + +#### Activity diagram + +Learn more about the [Activity diagram](https://en.wikipedia.org/wiki/Activity_diagram) below. + +![pattern-9 flow diagram](./pattern-9/activity.svg "pattern-9 Activity diagram") + +#### Component diagram + +Learn more about the [Component diagram](https://en.wikipedia.org/wiki/Component_diagram) below. + +![pattern-9 flow diagram](./pattern-9/component.svg "pattern-9 Component diagram") + +#### Class diagram + +Learn more about the [Class diagram](https://en.wikipedia.org/wiki/Class_diagram) below. + +![pattern-9 flow diagram](./pattern-9/class.svg "pattern-9 Class diagram") + +#### Sequence diagram + +Learn more about the [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) below. + +![pattern-9 flow diagram](./pattern-9/sequence.svg "pattern-9 Sequence diagram") + +#### State diagram + +Learn more about the [State diagram](https://en.wikipedia.org/wiki/State_diagram) below. + +![pattern-9 flow diagram](./pattern-9/state.svg "pattern-9 State diagram") + + +### Run in step + +`step` + + + +## clt + +### CWL Class + +[CommandLineTool](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool) + +### Inputs + +| Id | Option | Type | +|----|------|-------| +| `item` | `--input-item` | [Directory](https://www.commonwl.org/v1.2/Workflow.html#Directory) | +| `aoi` | `--aoi` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `epsg` | `--epsg` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | +| `index` | `--vegetation-index` | [string](https://www.commonwl.org/v1.2/Workflow.html#CWLType) | + +### Execution usage example: + +``` +runner pattern-9 \ +--input-item \ +--aoi \ +--epsg \ +--vegetation-index +``` + diff --git a/docs/pattern-9/activity.puml b/docs/pattern-9/activity.puml new file mode 100644 index 0000000..aa554b1 --- /dev/null +++ b/docs/pattern-9/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:09.971 + '/ +@startuml +start + + + + + +group pattern-9 { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :indexes; <> +split again + + :item; <> +end split + + + + +repeat + + +:step: step +CommandLineTool: clt; + +repeat while (dotproduct step/index) + + + +split + + :vegetation_indexes; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/pattern-9/activity.svg b/docs/pattern-9/activity.svg new file mode 100644 index 0000000..734d61d --- /dev/null +++ b/docs/pattern-9/activity.svg @@ -0,0 +1 @@ +pattern-9aoiepsgindexesitemstep: stepCommandLineTool: cltdotproduct step/indexvegetation_indexes \ No newline at end of file diff --git a/docs/pattern-9/class.puml b/docs/pattern-9/class.puml new file mode 100644 index 0000000..6a5457f --- /dev/null +++ b/docs/pattern-9/class.puml @@ -0,0 +1,139 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:12.179 + '/ +@startuml + + + + + + + + + + + + + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "pattern-9" as Workflow_pattern_9 extends Workflow { + __ Inputs __ + + + aoi: string = -118.985,38.432,-118.183,38.938 + + + epsg: string = EPSG:4326 + + + indexes: string[] = ['ndvi', 'none'] + + + item: Directory + + + __ Outputs __ + + + vegetation_indexes: null | Directory[] + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_pattern_9 --> string + + + + ' no need to add a Workflow_pattern_9 --> string + + + + ' no need to add a Workflow_pattern_9 --> string + + + + ' no need to add a Workflow_pattern_9 --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + index: string + + + __ Outputs __ + + + vegetation_index: null | Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_pattern_9 --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_pattern_9 --> ScatterFeatureRequirement + + + } + + + + package "Hints" { + + + + } + +} diff --git a/docs/pattern-9/class.svg b/docs/pattern-9/class.svg new file mode 100644 index 0000000..e9d87e0 --- /dev/null +++ b/docs/pattern-9/class.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesStepsRequirementspattern-9 aoi: string = -118.985,38.432,-118.183,38.938 epsg: string = EPSG:4326 indexes: string[] = ['ndvi', 'none'] item: Directory  Inputs vegetation_indexes: null | Directory[]   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string index: string  Inputs vegetation_index: null | Directory   OutputsCommandLineToolScatterFeatureRequirementHints \ No newline at end of file diff --git a/docs/pattern-9/component.puml b/docs/pattern-9/component.puml new file mode 100644 index 0000000..b58fae9 --- /dev/null +++ b/docs/pattern-9/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:11.047 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'pattern-9'" { + component "pattern-9" as pattern_9 { + + portin "aoi" as pattern_9_aoi + + portin "epsg" as pattern_9_epsg + + portin "indexes" as pattern_9_indexes + + portin "item" as pattern_9_item + + + portout "vegetation_indexes" as pattern_9_vegetation_indexes + + } + + + frame "step" as pattern_9_step { + + portin "item" as pattern_9_step_item + + + + pattern_9_item .down.> pattern_9_step_item + + + + portin "aoi" as pattern_9_step_aoi + + + + pattern_9_aoi .down.> pattern_9_step_aoi + + + + portin "epsg" as pattern_9_step_epsg + + + + pattern_9_epsg .down.> pattern_9_step_epsg + + + + portin "index" as pattern_9_step_index + + + + pattern_9_indexes .down.> pattern_9_step_index + + + + + + portout "vegetation_index" as pattern_9_step_vegetation_index + + + component "clt" as clt + } + +} + + + + +pattern_9_step_vegetation_index .up.> pattern_9_vegetation_indexes + + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-9/component.svg b/docs/pattern-9/component.svg new file mode 100644 index 0000000..786a128 --- /dev/null +++ b/docs/pattern-9/component.svg @@ -0,0 +1 @@ +Workflow 'pattern-9'pattern-9stepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_indexclt \ No newline at end of file diff --git a/docs/pattern-9/ogc_processes_inputs.puml b/docs/pattern-9/ogc_processes_inputs.puml new file mode 100644 index 0000000..81f8c1f --- /dev/null +++ b/docs/pattern-9/ogc_processes_inputs.puml @@ -0,0 +1,95 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:16.165 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string", + "default": "-118.985,38.432,-118.183,38.938" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "indexes": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "ndvi", + "none" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "indexes", + "description": "indexes to compute" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "Landsat-8/9 acquisition reference", + "description": "Landsat-8/9 acquisition reference" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-9/ogc_processes_inputs.svg b/docs/pattern-9/ogc_processes_inputs.svg new file mode 100644 index 0000000..e6fbb81 --- /dev/null +++ b/docs/pattern-9/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   indexes   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestringdefault-118.985,38.432,-118.183,38.938   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleindexesdescriptionindexes to computetypearrayitems   default   typestringndvinone   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleLandsat-8/9 acquisition referencedescriptionLandsat-8/9 acquisition referenceoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/pattern-9/ogc_processes_outputs.puml b/docs/pattern-9/ogc_processes_outputs.puml new file mode 100644 index 0000000..c57ac96 --- /dev/null +++ b/docs/pattern-9/ogc_processes_outputs.puml @@ -0,0 +1,39 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:18.000 + '/ +@startjson +{ + "vegetation_indexes": { + "schema": { + "nullable": true, + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "[ null, Directory[] ]" + } + ], + "title": "Vegetation indexes", + "description": "Vegetation indexes" + } +} +@endjson \ No newline at end of file diff --git a/docs/pattern-9/ogc_processes_outputs.svg b/docs/pattern-9/ogc_processes_outputs.svg new file mode 100644 index 0000000..5baf136 --- /dev/null +++ b/docs/pattern-9/ogc_processes_outputs.svg @@ -0,0 +1 @@ +vegetation_indexes   schema   metadata   titleVegetation indexesdescriptionVegetation indexesnullable☑ truetypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalue[ null, Directory[] ] \ No newline at end of file diff --git a/docs/pattern-9/sequence.puml b/docs/pattern-9/sequence.puml new file mode 100644 index 0000000..d9980cb --- /dev/null +++ b/docs/pattern-9/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:13.611 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI and NDWI vegetation indexes == + +control "pattern-9" as pattern_9_or +activate pattern_9_or + + +wfrunner -> pattern_9_or : ""aoi"" + +wfrunner -> pattern_9_or : ""epsg"" + +wfrunner -> pattern_9_or : ""indexes"" + +wfrunner -> pattern_9_or : ""item"" + + + + +loop dotproduct step/index + + + +participant "step: step\nCommandLineTool: clt" as pattern_9_or__step +activate pattern_9_or__step + + + +pattern_9_or -> pattern_9_or__step : ""item"" (from ""item"") + + + +pattern_9_or -> pattern_9_or__step : ""aoi"" (from ""aoi"") + + + +pattern_9_or -> pattern_9_or__step : ""epsg"" (from ""epsg"") + + + +pattern_9_or -> pattern_9_or__step : ""index"" (from ""indexes"") + + + +pattern_9_or__step -> pattern_9_or__step : Compute + + +pattern_9_or <-- pattern_9_or__step : ""vegetation_index"" + + +deactivate pattern_9_or__step + +end + + + + + +wfrunner <-- pattern_9_or : ""vegetation_indexes"" (from ""step/vegetation_index"") + + + +deactivate pattern_9_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/pattern-9/sequence.svg b/docs/pattern-9/sequence.svg new file mode 100644 index 0000000..c697306 --- /dev/null +++ b/docs/pattern-9/sequence.svg @@ -0,0 +1 @@ +Workflow runnerpattern-9step. stepWorkflow runnerpattern-9step. stepWorkflow runnerWorkflow runnerpattern-9pattern-9step: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnerpattern-9step. stepNDVI and NDWI vegetation indexes[001]aoi[002]epsg[003]indexes[004]itemloop[dotproduct step/index][005]item(fromitem)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]index(fromindexes)[009]Compute[010]vegetation_index[011]vegetation_indexes(fromstep/vegetation_index) \ No newline at end of file diff --git a/docs/pattern-9/state.puml b/docs/pattern-9/state.puml new file mode 100644 index 0000000..0d98eff --- /dev/null +++ b/docs/pattern-9/state.puml @@ -0,0 +1,103 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:15.053 + '/ +@startuml +hide empty description + + + + + +state "pattern-9" as pattern_9 { + + state "aoi" as pattern_9_aoi <> + + state "epsg" as pattern_9_epsg <> + + state "indexes" as pattern_9_indexes <> + + state "item" as pattern_9_item <> + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + pattern_9_item --> step_item + + + + state "aoi" as step_aoi <> + + + + pattern_9_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + pattern_9_epsg --> step_epsg + + + + state "index" as step_index <> + + + + pattern_9_indexes --> step_index + + + + + + state "vegetation_index" as step_vegetation_index <> + + + } + + + + +state "vegetation_indexes" as pattern_9_vegetation_indexes <> + +step_vegetation_index --> pattern_9_vegetation_indexes + + +} + +[*] --> pattern_9_aoi + +[*] --> pattern_9_epsg + +[*] --> pattern_9_indexes + +[*] --> pattern_9_item + + + +pattern_9_vegetation_indexes --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/pattern-9/state.svg b/docs/pattern-9/state.svg new file mode 100644 index 0000000..c1dc0e1 --- /dev/null +++ b/docs/pattern-9/state.svg @@ -0,0 +1 @@ +pattern-9stepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_index \ No newline at end of file diff --git a/docs/vegetation_indexes/activity.puml b/docs/vegetation_indexes/activity.puml new file mode 100644 index 0000000..b828fdc --- /dev/null +++ b/docs/vegetation_indexes/activity.puml @@ -0,0 +1,51 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:23.259 + '/ +@startuml +start + + + + + +group vegetation_indexes { + +split + + :aoi; <> +split again + + :epsg; <> +split again + + :indexes; <> +split again + + :item; <> +end split + + + + +repeat + + +:step: step +CommandLineTool: clt; + +repeat while (dotproduct step/index) + + + +split + + :vegetation_indexes; <> +end split + + +} + + +stop +@enduml \ No newline at end of file diff --git a/docs/vegetation_indexes/activity.svg b/docs/vegetation_indexes/activity.svg new file mode 100644 index 0000000..81dedf4 --- /dev/null +++ b/docs/vegetation_indexes/activity.svg @@ -0,0 +1 @@ +vegetation_indexesaoiepsgindexesitemstep: stepCommandLineTool: cltdotproduct step/indexvegetation_indexes \ No newline at end of file diff --git a/docs/vegetation_indexes/class.puml b/docs/vegetation_indexes/class.puml new file mode 100644 index 0000000..e5bda6e --- /dev/null +++ b/docs/vegetation_indexes/class.puml @@ -0,0 +1,133 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:25.583 + '/ +@startuml + + + + + + + + + + + + + + + + + + package "NDVI and NDWI vegetation indexes" { + + + + +class "vegetation_indexes" as Workflow_vegetation_indexes extends Workflow { + __ Inputs __ + + + aoi: string + + + epsg: string = EPSG:4326 + + + indexes: string[] = ['ndvi', 'ndwi'] + + + item: Directory + + + __ Outputs __ + + + vegetation_indexes: Directory[] + + + + __ Steps __ + + - step: clt + + + } + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> string + + + + ' no need to add a Workflow_vegetation_indexes --> Directory + + + + package "Steps" { + + + + + + + + +class "clt" as CommandLineTool_clt extends CommandLineTool { + __ Inputs __ + + + item: Directory + + + aoi: string + + + epsg: string + + + index: string + + + __ Outputs __ + + + vegetation_index: Directory + + + + } + + + + ' no need to add a CommandLineTool_clt --> Directory + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + + + ' no need to add a CommandLineTool_clt --> string + + +Workflow_vegetation_indexes --> CommandLineTool_clt + + + } + + + + package "Requirements" { + + + class ScatterFeatureRequirement + Workflow_vegetation_indexes --> ScatterFeatureRequirement + + + } + + + +} diff --git a/docs/vegetation_indexes/class.svg b/docs/vegetation_indexes/class.svg new file mode 100644 index 0000000..e89ea58 --- /dev/null +++ b/docs/vegetation_indexes/class.svg @@ -0,0 +1 @@ +NDVI and NDWI vegetation indexesStepsRequirementsvegetation_indexes aoi: string epsg: string = EPSG:4326 indexes: string[] = ['ndvi', 'ndwi'] item: Directory  Inputs vegetation_indexes: Directory[]   Outputs step: clt  StepsWorkflowclt item: Directory aoi: string epsg: string index: string  Inputs vegetation_index: Directory   OutputsCommandLineToolScatterFeatureRequirement \ No newline at end of file diff --git a/docs/vegetation_indexes/component.puml b/docs/vegetation_indexes/component.puml new file mode 100644 index 0000000..240f1ce --- /dev/null +++ b/docs/vegetation_indexes/component.puml @@ -0,0 +1,82 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:24.463 + '/ +@startuml + +skinparam linetype ortho + + + + +node "Workflow 'vegetation_indexes'" { + component "vegetation_indexes" as vegetation_indexes { + + portin "aoi" as vegetation_indexes_aoi + + portin "epsg" as vegetation_indexes_epsg + + portin "indexes" as vegetation_indexes_indexes + + portin "item" as vegetation_indexes_item + + + portout "vegetation_indexes" as vegetation_indexes_vegetation_indexes + + } + + + frame "step" as vegetation_indexes_step { + + portin "item" as vegetation_indexes_step_item + + + + vegetation_indexes_item .down.> vegetation_indexes_step_item + + + + portin "aoi" as vegetation_indexes_step_aoi + + + + vegetation_indexes_aoi .down.> vegetation_indexes_step_aoi + + + + portin "epsg" as vegetation_indexes_step_epsg + + + + vegetation_indexes_epsg .down.> vegetation_indexes_step_epsg + + + + portin "index" as vegetation_indexes_step_index + + + + vegetation_indexes_indexes .down.> vegetation_indexes_step_index + + + + + + portout "vegetation_index" as vegetation_indexes_step_vegetation_index + + + component "clt" as clt + } + +} + + + + +vegetation_indexes_step_vegetation_index .up.> vegetation_indexes_vegetation_indexes + + + + + +@enduml \ No newline at end of file diff --git a/docs/vegetation_indexes/component.svg b/docs/vegetation_indexes/component.svg new file mode 100644 index 0000000..7bf2fd7 --- /dev/null +++ b/docs/vegetation_indexes/component.svg @@ -0,0 +1 @@ +Workflow 'vegetation_indexes'vegetation_indexesstepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_indexclt \ No newline at end of file diff --git a/docs/vegetation_indexes/ogc_processes_inputs.puml b/docs/vegetation_indexes/ogc_processes_inputs.puml new file mode 100644 index 0000000..ed3294c --- /dev/null +++ b/docs/vegetation_indexes/ogc_processes_inputs.puml @@ -0,0 +1,94 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:28.895 + '/ +@startjson +{ + "aoi": { + "schema": { + "type": "string" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "area of interest", + "description": "area of interest as a bounding box" + }, + "epsg": { + "schema": { + "type": "string", + "default": "EPSG:4326" + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "EPSG code", + "description": "EPSG code" + }, + "indexes": { + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "ndvi", + "ndwi" + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "string[]" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "indexes", + "description": "indexes to compute" + }, + "item": { + "schema": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory" + } + ], + "minOccurs": 1, + "maxOccurs": 1, + "valuePassing": "byValue", + "title": "STAC item reference", + "description": "Reference to a STAC item" + } +} +@endjson \ No newline at end of file diff --git a/docs/vegetation_indexes/ogc_processes_inputs.svg b/docs/vegetation_indexes/ogc_processes_inputs.svg new file mode 100644 index 0000000..2aa0e93 --- /dev/null +++ b/docs/vegetation_indexes/ogc_processes_inputs.svg @@ -0,0 +1 @@ +aoi   epsg   indexes   item   schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitlearea of interestdescriptionarea of interest as a bounding boxtypestring   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleEPSG codedescriptionEPSG codetypestringdefaultEPSG:4326   titlecwl:typevaluestringschema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleindexesdescriptionindexes to computetypearrayitems   default   typestringndvindwi   titlecwl:typevaluestring[]schema   metadata   minOccurs1maxOccurs1valuePassingbyValuetitleSTAC item referencedescriptionReference to a STAC itemoneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory \ No newline at end of file diff --git a/docs/vegetation_indexes/ogc_processes_outputs.puml b/docs/vegetation_indexes/ogc_processes_outputs.puml new file mode 100644 index 0000000..ac32898 --- /dev/null +++ b/docs/vegetation_indexes/ogc_processes_outputs.puml @@ -0,0 +1,38 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:30.449 + '/ +@startjson +{ + "vegetation_indexes": { + "schema": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "string", + "format": "uri" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" + }, + { + "$ref": "https://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json" + }, + { + "$ref": "https://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml" + } + ] + } + }, + "metadata": [ + { + "title": "cwl:type", + "value": "Directory[]" + } + ], + "title": "Vegetation indexes", + "description": "Vegetation indexes" + } +} +@endjson \ No newline at end of file diff --git a/docs/vegetation_indexes/ogc_processes_outputs.svg b/docs/vegetation_indexes/ogc_processes_outputs.svg new file mode 100644 index 0000000..4e616ce --- /dev/null +++ b/docs/vegetation_indexes/ogc_processes_outputs.svg @@ -0,0 +1 @@ +vegetation_indexes   schema   metadata   titleVegetation indexesdescriptionVegetation indexestypearrayitems   oneOf               typestringformaturi$refhttps://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json$refhttps://schemas.stacspec.org/v1.0.0/collection-spec/json-schema/collection.json$refhttps://schemas.opengis.net/ogcapi/features/part1/1.0/openapi/schemas/featureCollectionGeoJSON.yaml   titlecwl:typevalueDirectory[] \ No newline at end of file diff --git a/docs/vegetation_indexes/sequence.puml b/docs/vegetation_indexes/sequence.puml new file mode 100644 index 0000000..0dd0c53 --- /dev/null +++ b/docs/vegetation_indexes/sequence.puml @@ -0,0 +1,80 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:26.707 + '/ +@startuml +autonumber "[000]" + + + +entity "Workflow runner" as wfrunner +activate wfrunner + + + +== NDVI and NDWI vegetation indexes == + +control "vegetation_indexes" as vegetation_indexes_or +activate vegetation_indexes_or + + +wfrunner -> vegetation_indexes_or : ""aoi"" + +wfrunner -> vegetation_indexes_or : ""epsg"" + +wfrunner -> vegetation_indexes_or : ""indexes"" + +wfrunner -> vegetation_indexes_or : ""item"" + + + + +loop dotproduct step/index + + + +participant "step: step\nCommandLineTool: clt" as vegetation_indexes_or__step +activate vegetation_indexes_or__step + + + +vegetation_indexes_or -> vegetation_indexes_or__step : ""item"" (from ""item"") + + + +vegetation_indexes_or -> vegetation_indexes_or__step : ""aoi"" (from ""aoi"") + + + +vegetation_indexes_or -> vegetation_indexes_or__step : ""epsg"" (from ""epsg"") + + + +vegetation_indexes_or -> vegetation_indexes_or__step : ""index"" (from ""indexes"") + + + +vegetation_indexes_or__step -> vegetation_indexes_or__step : Compute + + +vegetation_indexes_or <-- vegetation_indexes_or__step : ""vegetation_index"" + + +deactivate vegetation_indexes_or__step + +end + + + + + +wfrunner <-- vegetation_indexes_or : ""vegetation_indexes"" (from ""step/vegetation_index"") + + + +deactivate vegetation_indexes_or + + +deactivate wfrunner + +@enduml \ No newline at end of file diff --git a/docs/vegetation_indexes/sequence.svg b/docs/vegetation_indexes/sequence.svg new file mode 100644 index 0000000..e8babf6 --- /dev/null +++ b/docs/vegetation_indexes/sequence.svg @@ -0,0 +1 @@ +Workflow runnervegetation_indexesstep. stepWorkflow runnervegetation_indexesstep. stepWorkflow runnerWorkflow runnervegetation_indexesvegetation_indexesstep: stepCommandLineTool: cltstep: stepCommandLineTool: cltWorkflow runnervegetation_indexesstep. stepNDVI and NDWI vegetation indexes[001]aoi[002]epsg[003]indexes[004]itemloop[dotproduct step/index][005]item(fromitem)[006]aoi(fromaoi)[007]epsg(fromepsg)[008]index(fromindexes)[009]Compute[010]vegetation_index[011]vegetation_indexes(fromstep/vegetation_index) \ No newline at end of file diff --git a/docs/vegetation_indexes/state.puml b/docs/vegetation_indexes/state.puml new file mode 100644 index 0000000..40158b3 --- /dev/null +++ b/docs/vegetation_indexes/state.puml @@ -0,0 +1,103 @@ +/' + ' Diagram generated by cwl2puml v0.47.0 + ' timestamp: 2026-08-28T13:27:27.860 + '/ +@startuml +hide empty description + + + + + +state "vegetation_indexes" as vegetation_indexes { + + state "aoi" as vegetation_indexes_aoi <> + + state "epsg" as vegetation_indexes_epsg <> + + state "indexes" as vegetation_indexes_indexes <> + + state "item" as vegetation_indexes_item <> + + + + + + + + + + + + + + + + + state step { + + state "item" as step_item <> + + + + vegetation_indexes_item --> step_item + + + + state "aoi" as step_aoi <> + + + + vegetation_indexes_aoi --> step_aoi + + + + state "epsg" as step_epsg <> + + + + vegetation_indexes_epsg --> step_epsg + + + + state "index" as step_index <> + + + + vegetation_indexes_indexes --> step_index + + + + + + state "vegetation_index" as step_vegetation_index <> + + + } + + + + +state "vegetation_indexes" as vegetation_indexes_vegetation_indexes <> + +step_vegetation_index --> vegetation_indexes_vegetation_indexes + + +} + +[*] --> vegetation_indexes_aoi + +[*] --> vegetation_indexes_epsg + +[*] --> vegetation_indexes_indexes + +[*] --> vegetation_indexes_item + + + +vegetation_indexes_vegetation_indexes --> [*] + + + + +@enduml \ No newline at end of file diff --git a/docs/vegetation_indexes/state.svg b/docs/vegetation_indexes/state.svg new file mode 100644 index 0000000..07d1ab6 --- /dev/null +++ b/docs/vegetation_indexes/state.svg @@ -0,0 +1 @@ +vegetation_indexesstepaoiepsgindexesitemvegetation_indexesitemaoiepsgindexvegetation_index \ No newline at end of file diff --git a/docs/wrapped.cwl b/docs/wrapped.cwl deleted file mode 100644 index e69de29..0000000 diff --git a/mkdocs.yaml b/mkdocs.yaml index 304b99a..ba940ba 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -1,8 +1,10 @@ site_name: Application Packages patterns +repo_url: https://github.com/eoap/application-package-patterns/ +repo_name: eoap/application-package-patterns theme: logo: imgs/icon-eoap.png - name: material + name: readthedocs palette: - media: "(prefers-color-scheme: light)" @@ -56,17 +58,17 @@ extra_javascript: nav: - Introduction: 'index.md' - - Pattern 1: pattern-1.ipynb - - Pattern 2: pattern-2.ipynb - - Pattern 3: pattern-3.ipynb - - Pattern 4: pattern-4.ipynb - - Pattern 5: pattern-5.ipynb - - Pattern 6: pattern-6.ipynb - - Pattern 7: pattern-7.ipynb - - Pattern 8: pattern-8.ipynb - - Pattern 9: pattern-9.ipynb - - Pattern 10: pattern-10.ipynb - - Pattern 11: pattern-11.ipynb - - Pattern 12: pattern-12.ipynb + - Pattern 1: pattern-1.md + - Pattern 2: pattern-2.md + - Pattern 3: pattern-3.md + - Pattern 4: pattern-4.md + - Pattern 5: pattern-5.md + - Pattern 6: pattern-6.md + - Pattern 7: pattern-7.md + - Pattern 8: pattern-8.md + - Pattern 9: pattern-9.md + - Pattern 10: pattern-10.md + - Pattern 11: pattern-11.md + - Pattern 12: pattern-12.md -copyright: License CC BY-SA 4.0, by Creative Commons \ No newline at end of file +copyright: Apache License, Version 2.0 diff --git a/templates/stage-in-file.cwl b/templates/stage-in-file.cwl index 7e56706..e941c75 100644 --- a/templates/stage-in-file.cwl +++ b/templates/stage-in-file.cwl @@ -1,8 +1,87 @@ cwlVersion: v1.0 +$namespaces: + s: "https://schema.org/" +s:name: Astonishing Stage-in from URL +s:description: Stages in a file from a given URL +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + class: CommandLineTool id: my-asthonishing-stage-in-file - +label: "Astonishing Stage-in from URL" +doc: "Stages in a file from a given URL" inputs: reference: type: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI @@ -15,6 +94,8 @@ inputs: outputs: staged: type: File + doc: "The staged file" + label: "Staged File" outputBinding: glob: staged baseCommand: @@ -30,7 +111,7 @@ requirements: types: - $import: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml DockerRequirement: - dockerPull: ghcr.io/eoap/application-package-patterns/vegetation-indexes:0.1.1 + dockerPull: ghcr.io/eoap/application-package-patterns/runner:0.2.0 InlineJavascriptRequirement: {} InitialWorkDirRequirement: listing: diff --git a/templates/stage-in.cwl b/templates/stage-in.cwl index 8b9f917..6eae67f 100644 --- a/templates/stage-in.cwl +++ b/templates/stage-in.cwl @@ -1,8 +1,87 @@ cwlVersion: v1.0 +$namespaces: + s: "https://schema.org/" +s:name: Astonishing Stage-in from STAC Item +s:description: Stages in a STAC Item from a given URL +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + class: CommandLineTool id: my-asthonishing-stage-in-directory - +label: "Astonishing Stage-in from STAC Item" +doc: "Stages in a STAC Item from a given URL" inputs: reference: type: https://raw.githubusercontent.com/eoap/schemas/main/string_format.yaml#URI @@ -15,6 +94,8 @@ inputs: outputs: staged: type: Directory + label: "Staged Directory" + doc: "The directory containing the staged STAC Item as a STAC catalog" outputBinding: glob: . baseCommand: diff --git a/templates/stage-out.cwl b/templates/stage-out.cwl index ddd94ed..a802e3c 100644 --- a/templates/stage-out.cwl +++ b/templates/stage-out.cwl @@ -1,23 +1,112 @@ cwlVersion: v1.0 +$namespaces: + s: "https://schema.org/" +s:name: Super Stage-out to S3 +s:description: Stage-out the results to S3 +s:dateCreated: "2025-01-01" +s: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" +s:keywords: + - CWL + - Workflow + - Earth Observation +s:operatingSystem: + - Linux + - macOS + - macOS Server +s:softwareRequirements: + - "https://cwltool.readthedocs.io/en/latest/" + - "https://www.python.org/" +s:softwareVersion: 1.0.0 +s:softwareHelp: + - "@type": "s:CreativeWork" + s:name: User Manual + s:url: "https://eoap.github.io/application-package-patterns/pattern-1/" +s:publisher: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:author: + - "@type": "s:Role" + s:roleName: Project administration + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/project-administration/" + s:author: + "@type": "s:Person" + s:givenName: Lois + s:familyName: Lane + s:email: "lois.lane@meoga.com" + s:identifier: "https://orcid.org/0000-9999-0000-9999" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" + - "@type": "s:Role" + s:roleName: Supervision + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/supervision/" + s:author: + "@type": "s:Person" + s:givenName: Clark + s:familyName: Kent + s:email: "clark.kent@meoga.com" + s:identifier: "https://orcid.org/9999-0000-9999-0000" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" +s:contributor: + - "@type": "s:Role" + s:roleName: Software + s:startDate: "2025-01-01" + s:additionalType: "https://credit.niso.org/contributor-roles/software/" + s:contributor: + "@type": "s:Person" + s:givenName: Lex + s:familyName: Luthor + s:email: "lex.luthor@meoga.com" + s:affiliation: + "@type": "s:Organization" + s:name: Make Earth Observation Great Again + s:email: "info@meoga.com" + s:identifier: "https://ror.org/9999cx000" class: CommandLineTool id: my-super-stage-out - +label: "Super Stage-out to S3" doc: "Stage-out the results to S3" inputs: s3_bucket: type: string + label: "S3 Bucket name" + doc: "The name of the S3 bucket to stage out to" sub_path: type: string + label: "Sub-path in S3 bucket" + doc: "The sub-path within the S3 bucket to stage out to" aws_access_key_id: type: string + label: "AWS Access Key ID" + doc: "The AWS Access Key ID" aws_secret_access_key: type: string + label: "AWS Secret Access Key" + doc: "The AWS Secret Access Key" region_name: type: string + label: "AWS Region Name" + doc: "The AWS Region Name" endpoint_url: type: string + label: "AWS Endpoint URL" + doc: "The AWS Endpoint URL" stac_catalog: doc: "The folder containing the STAC catalog to stage out" label: "STAC Catalog folder"