Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8c94c99
feat: metadata sanification
sim13pods Nov 27, 2025
3b87f2d
fix: depndencies APIs update
sim13pods Nov 27, 2025
fb45325
feat: added Git repo link
sim13pods Nov 27, 2025
5f6d2fe
fix: temporarly disable the hints, they cause "string indices must be…
sim13pods Nov 27, 2025
94eba25
feat: license update
sim13pods Nov 27, 2025
64d2b73
feat: re-enabled the assertions, Notebooks print errors (if any)
sim13pods Dec 1, 2025
52b56a1
fix: trailing # on $base so names are minted
sim13pods Dec 1, 2025
72cb438
fix: wrong indentation
sim13pods Dec 2, 2025
d19799a
feat: diagrams update
sim13pods Dec 3, 2025
5d3baa8
fix: refuse with wrong image
sim13pods Dec 3, 2025
9f90024
feat: pattern-11 re-executed
sim13pods Dec 3, 2025
bdabd83
feat: suppress useless logging
sim13pods Dec 3, 2025
b4f0612
Merge branch 'main' into develop
fabricebrito Jan 7, 2026
2663959
adds explicit input files and WIP on diagram rifactoring
fabricebrito Jan 7, 2026
f1b855a
missed add
fabricebrito Jan 7, 2026
d7ac04e
fixes cwl version in pattern 12
fabricebrito Jan 7, 2026
dcc67dd
Remove polyfill script from mkdocs configuration
xmichele Jun 25, 2026
020d295
fix tests
Jul 9, 2026
afb68ea
bump ver 0.2.1
Jul 9, 2026
6ff4ec3
Merge branch 'main' into develop
fabricebrito Jul 24, 2026
2ca69b6
meta(cwl-workflow): metadata assestment
sim13pods Aug 28, 2026
ef16b7b
docs: regenerated static documentation
sim13pods Aug 28, 2026
24a9e2a
fix(metadata): @type field not tolerated by salad parser for single CLT
sim13pods Aug 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -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.
29 changes: 29 additions & 0 deletions Taskfile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
9 changes: 9 additions & 0 deletions cwl-workflow/pattern-1-inputs.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
126 changes: 82 additions & 44 deletions cwl-workflow/pattern-1.cwl
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -133,5 +173,3 @@ $graph:
outputBinding:
glob: .
type: Directory


15 changes: 15 additions & 0 deletions cwl-workflow/pattern-10-inputs.json
Original file line number Diff line number Diff line change
@@ -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"
}
]
}
109 changes: 87 additions & 22 deletions cwl-workflow/pattern-10.cwl
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -29,6 +88,8 @@ $graph:
requirements:
SubworkflowFeatureRequirement: {}
ScatterFeatureRequirement: {}
hints:
- class: eoap:JSONSchemaHint
inputs:
aoi:
label: area of interest
Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -186,4 +251,4 @@ $graph:
expression: |
${ return { flat: [].concat(...inputs.nested) }; }
requirements:
- class: InlineJavascriptRequirement
- class: InlineJavascriptRequirement
13 changes: 13 additions & 0 deletions cwl-workflow/pattern-11-inputs.json
Original file line number Diff line number Diff line change
@@ -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"
}
}
Loading