cwlVersion: v1.2 $namespaces: s: https://schema.org/ cwltool: http://commonwl.org/cwltool# $graph: - class: Workflow id: booms_visualization_pipeline doc: This pipeline runs an oil spill simulation pipeline with openoil, and creates visualizations of the simulation results. inputs: latitude: type: double doc: Spill center latitude (WGS-84) longitude: type: double doc: Spill center longitude (WGS-84) radius: type: int doc: Initial radius of the oil spill on the sea surface start_time: type: string doc: Calendar date and time when the spill begins (UTC) duration: type: int doc: Total number of hours to simulate particles: type: int? doc: >- Number of particles used to represent the oil slick. More particles provide higher detail, require more computation time mass: type: int? doc: Total mass of oil spilled in kilograms reader_ocean: type: string? doc: THREDDS or OPeNDAP URL for ocean currents data reader_wave: type: string? doc: THREDDS or OPeNDAP URL for wave data reader_wind: type: string? doc: THREDDS or OPeNDAP URL for wind data time_step: type: int? doc: Model's internal calculation interval time_step_output: type: int? doc: Result interval. Must be greater than time_step oil_type: type: string? doc: Type of oil spilled. This determines its physical and chemical properties booms: type: string? doc: List of containment booms density: type: double? doc: Oil density values viscosity: type: double? doc: Oil viscosity values visualization_frames: type: string? label: narratives default: "0,1,2,3,4,5,6,7,8,9,10" visualization_density: type: string? label: narratives default: "0.01, 0.05, 0.10, 0.50, 1.00" steps: step_simulation: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/openoil-booms/openoil_booms_0_4_0.cwl#openoil_booms' in: latitude: latitude longitude: longitude radius: radius start_time: start_time duration: duration particles: particles mass: mass reader_ocean: reader_ocean reader_wave: reader_wave reader_wind: reader_wind time_step: time_step time_step_output: time_step_output oil_type: oil_type booms: booms density: density viscosity: viscosity out: - map - result - simulation - simulation_currents step_netcdf_metadata: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/netcdf-metadata/netcdf_metadata_0_1_0.cwl#netcdf_metadata' in: netcdf_file: step_simulation/result out: - metadata step_extract_particles: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/wp6tools-extract-particles/wp6tools_extract_particles_0_2_0.cwl#extract_particles' in: input-file: step_simulation/result output-format: default: "stac" projection-function: default: "none" projection-resolution: default: "none" latitude-variable: default: "lat" longitude-variable: default: "lon" time-variable: default: "time" out: - result step_crop_frames: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/wp6tools-crop-frames/wp6tools_crop_frames_0_2_0.cwl#crop_frames' in: particles: step_extract_particles/result frames: visualization_frames out: - result step_generate_contours: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/wp6tools-generate-contours/wp6tools_generate_contours_0_2_0.cwl#generate_contours' in: cropped: step_crop_frames/result density: visualization_density output-format: default: "json" out: - result dir2files: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/dir2files/dir2files_0_1_0.cwl#dir2files' in: input_dir: step_generate_contours/result out: - output_files json_append: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/json-append/json_append_wp6tools_pipeline_0_1_0.cwl#json_append_wp6tools_pipeline' in: files: dir2files/output_files out: - result step_2stac2: run: 'https://pipe-drive.inesctec.pt/application-packages/tools/2stac2/2stac2_wp6tools_pipeline_0_3_1.cwl#2stac2_wp6tools_pipeline' in: simulation: step_simulation/result contours: json_append/result metadata: step_netcdf_metadata/metadata out: - stac_result outputs: - id: wf_outputs outputSource: - step_2stac2/stac_result type: Directory hints: "cwltool:Secrets": secrets: [access_key,secret_key,session_token,password] requirements: InlineJavascriptRequirement: {} SubworkflowFeatureRequirement: {} s:name: booms_visualization_pipeline s:description: | This pipeline runs an oil spill pipeline with openoil and creates visualizations of the simulation results. s:keywords: - oil spill - openoil - opendrift - visualization s:softwareVersion: 0.2.0 s:producer: class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt s:address: class: s:PostalAddress s:addressCountry: PT s:sourceOrganization: - class: s:Organization s:name: INESCTEC s:url: https://inesctec.pt s:address: class: s:PostalAddress s:addressCountry: PT s:author: - class: s:Person s:name: Miguel Correia s:email: miguel.r.correia@inesctec.pt s:dateCreated: "2025-12-05T16:40:11Z"