cwlVersion: v1.2 $namespaces: s: https://schema.org/ cwltool: http://commonwl.org/cwltool# $graph: - class: Workflow id: bathymetry_pipeline_2s3 inputs: lon_min: type: float label: Minimum Longitude doc: The minimum longitude of the study area lon_max: type: float label: Maximum Longitude doc: The maximum longitude of the study area lat_min: type: float label: Minimum Latitude doc: The minimum latitude of the study area lat_max: type: float label: Maximum Latitude doc: The maximum latitude of the study area region: type: string? doc: region endpoint: type: string doc: endpoint access_key: type: string doc: access_key secret_key: type: string doc: secret_key session_token: type: string? doc: region bucket: type: string doc: bucket steps: step_bathymetry: run: '#bathymetry' in: lon_min: lon_min lon_max: lon_max lat_min: lat_min lat_max: lat_max out: - result - metadata step_2stac: run: '#2stac' in: result: step_bathymetry/result metadata: step_bathymetry/metadata out: - results step_2s3: run: '#2s3' in: region: region endpoint: endpoint access_key: access_key secret_key: secret_key session_token: session_token bucket: bucket stac_result: step_2stac/results out: - base_path outputs: - id: wf_outputs outputSource: - step_2stac/results type: Directory hints: "cwltool:Secrets": secrets: [access_key,secret_key,session_token] s:name: Bathymetry for a given area to STAC s:description: Bathymetry for a given area to STAC s:keywords: - bathymetry - stac s:programmingLanguage: python s:sourceOrganization: - class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt s:author: - class: s:Person s:name: Miguel Correia s:email: miguel.r.correia@inesctec.pt s:codeRepository: https://pipe-drive.inesctec.pt/application-packages/workflows/others/bathymetry_pipeline_2s3.cwl s:dateCreated: "2024-04-01T13:00:00Z" # tools - class: CommandLineTool id: bathymetry baseCommand: python arguments: - /opt/bathymetry.py - --lon_min - valueFrom: $( inputs.lon_min ) - --lon_max - valueFrom: $( inputs.lon_max ) - --lat_min - valueFrom: $( inputs.lat_min ) - --lat_max - valueFrom: $( inputs.lat_max ) inputs: lon_min: type: float doc: The minimum longitude of the study area. lon_max: type: float doc: The maximum longitude of the study area. lat_min: type: float doc: The minimum latitude of the study area. lat_max: type: float doc: The maximum latitude of the study area. outputs: result: format: ogc:netcdf type: File outputBinding: glob: "result/out.nc" doc: | The output NetCDF file generated by the bathymetry model. The file is in the OGC NetCDF media type. metadata: type: File outputBinding: glob: "result/metadata.json" doc: metadata description requirements: NetworkAccess: networkAccess: true EnvVarRequirement: envDef: PATH: /opt/conda/envs/application/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # GEBCO_URL: https://pipe-drive.inesctec.pt/inputs/GEBCO_2014_1D.nc ResourceRequirement: {} InlineJavascriptRequirement: {} DockerRequirement: dockerPull: iliad-repository.inesctec.pt/bathymetry-forth:0.1.0 s:name: Bathymetry for given bounding box s:description: Get bathymetry to a given bounding box. You can define an outside source. s:keywords: - bathymetry - bounding box s:softwareVersion: 0.1.0 s:programmingLanguage: python s:sourceOrganization: - class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt - class: s:Organization s:name: FORTH s:url: https://forth.gr s:author: - class: s:Person s:email: kspanoudaki@gmail.com s:name: Katerina Spanoudaki s:contributor: - class: s:Person s:email: miguel.r.correia@inesctec.pt s:name: Miguel Correia s:codeRepository: https://pipe-drive.inesctec.pt/application-packages/tools/bathymetry-forth/bathymetry_forth_0_1_0.cwl s:dateCreated: "2024-04-01T13:00:00Z" - class: CommandLineTool id: 2stac baseCommand: python arguments: - /opt/2stac.py - --result - valueFrom: $( inputs.result ) - --metadata - valueFrom: $( inputs.metadata ) inputs: result: type: File doc: The resulting file of the previous model to insert in STAC metadata: type: File doc: The resulting metadata of the previous model to insert in STAC outputs: results: outputBinding: glob: . type: Directory doc: STAC output requirements: ResourceRequirement: {} InlineJavascriptRequirement: {} DockerRequirement: dockerPull: iliad-repository.inesctec.pt/2stac:0.1.0 s:name: 2Stac s:softwareVersion: 0.1.0 s:description: Transform the result into a STAC s:keywords: - stac - metadata s:programmingLanguage: python s:sourceOrganization: - class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt s:author: - class: s:Person s:name: Miguel Correia s:email: miguel.r.correia@inesctec.pt s:codeRepository: https://pipe-drive.inesctec.pt/application-packages/tools/2stac/2stac_0_1_0.cwl s:dateCreated: "2024-04-01T13:00:00Z" - class: CommandLineTool id: 2s3 baseCommand: python arguments: - /opt/2s3.py - --endpoint - valueFrom: $( inputs.endpoint ) - --access_key - valueFrom: $( inputs.access_key ) - --secret_key - valueFrom: $( inputs.secret_key ) - --bucket - valueFrom: $( inputs.bucket ) - --endpoint - valueFrom: $( inputs.endpoint ) - valueFrom: $( function () { if (inputs.region) { return ["--region", inputs.region]; } else { return []; } }()) - --base_path - valueFrom: $( function () { return "bathymetry_pipeline_2s3_result_" + new Date().toISOString().replace(/:/g, '').replace(/\-/g, '').split('.')[0]; }()) - valueFrom: $( function () { if (inputs.session_token) { return ["--session_token", inputs.session_token]; } else { return []; } }()) - --directory - valueFrom: $( inputs.stac_result ) inputs: region: type: string? doc: region endpoint: type: string doc: endpoint access_key: type: string doc: access_key secret_key: type: string doc: secret_key session_token: type: string? doc: session_token bucket: type: string doc: bucket stac_result: type: Directory doc: stac result folder outputs: base_path: type: string requirements: NetworkAccess: networkAccess: true ResourceRequirement: {} InlineJavascriptRequirement: {} DockerRequirement: dockerPull: iliad-repository.inesctec.pt/2s3:0.1.0 hints: "cwltool:Secrets": secrets: [access_key,secret_key,session_token] s:name: 2s3 s:description: Uploads files and/or folders to a S3 bucket storage. s:keywords: - s3 - storage s:programmingLanguage: python s:softwareVersion: 0.1.0 s:sourceOrganization: - class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt s:author: - class: s:Person s:name: Miguel Correia s:email: miguel.r.correia@inesctec.pt s:codeRepository: https://pipe-drive.inesctec.pt/application-packages/tools/2s3/2s3_0_1_0.cwl s:dateCreated: "2024-04-01T13:00:00Z"