diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b73a4ece3ea1238a17b15903bff916a81241f459..7c82d6225c0815a988d4036736ccf358e2408667 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -119,7 +119,11 @@ losoto_flagextend: allow_failure: true script: - cwl-runner --no-container steps/LoSoTo.Flagextend.cwl test_jobs/losoto_flagextend.json - +losoto_flagstation: + stage: test_steps + allow_failure: true + script: + - cwl-runner --no-container steps/LoSoTo.FlagStation.cwl test_jobs/losoto_flagstation.json losoto_faraday: stage: test_steps allow_failure: true diff --git a/steps/LoSoTo.FlagStation.cwl b/steps/LoSoTo.FlagStation.cwl new file mode 100644 index 0000000000000000000000000000000000000000..1c67c12fa1fdeb7cd2e2cd3f9a16ebb6fc2a5a8b --- /dev/null +++ b/steps/LoSoTo.FlagStation.cwl @@ -0,0 +1,104 @@ +#!/usr/bin/env cwl-runner + +class: CommandLineTool +cwlVersion: v1.0 +id: losoto_flagstation + +$namespaces: + lofar: https://git.astron.nl/eosc/ontologies/raw/master/schema/lofar.owl +doc: | + This operation for LoSoTo implements a station-flagging procedure. Flags are time-independent. + WEIGHT: compliant + +requirements: + InlineJavascriptRequirement: + expressionLib: + - { $include: utils.js} + InitialWorkDirRequirement: + listing: + - entryname: 'parset.config' + entry: $(get_losoto_config('FLAGSTATION').join('\n')) + + - entryname: $(inputs.input_h5parm.basename) + entry: $(inputs.input_h5parm) + writable: true + +baseCommand: "losoto" + +arguments: + - $(inputs.input_h5parm.basename) + - parset.config + +hints: + DockerRequirement: + dockerPull: lofareosc/lofar-pipeline-ci:latest + +inputs: + - id: input_h5parm + type: File + format: lofar:#H5Parm + - id: soltab + type: string + doc: "Solution table" + - id: mode + type: + type: enum + symbols: + - bandpass + - resid + doc: | + Fitting algorithm: bandpass or resid. Bandpass mode clips amplitudes + relative to a model bandpass (only LOFAR is currently supported). + Resid mode clips residual phases or log(amplitudes). + - id: maxFlaggedFraction + type: float? + doc: | + This sets the maximum allowable fraction of flagged solutions above + which the entire station is flagged. + - id: nSigma + type: float? + doc: | + This sets the number of standard deviations considered when outlier + clipping is done. + - id: maxStddev + type: float? + doc: | + Maximum allowable standard deviation when outlier clipping is done. For phases, this should value + should be in radians, for amplitudes in log(amp). If None (or negative), a value of 0.1 rad is + used for phases and 0.01 for amplitudes. + - id: ampRange + type: float[]? + doc: | + 2-element array of the median amplitude level to be acceptable, + ampRange[0]: lower limit, ampRange[1]: upper limit. + If None or [0, 0], a reasonable range for typical observations is used. + - id: telescope + type: string? + doc: Specifies the telescope if mode = 'bandpass'. + - id: skipInternational + type: string? + doc: | + If True, skip flagging of international LOFAR stations (only used if + telescope = 'lofar') + - id: refAnt + type: string? + doc: | + If mode = resid, this sets the reference antenna for phase solutions, + by default None. + - id: soltabExport + type: string? + doc: | + Soltab to export station flags to. Note: exported flags are not time- or + frequency-dependent. + - id: ncpu + type: int? + doc: Number of cpu to use, by default all available. + +outputs: + - id: output_h5parm + type: File + format: lofar:#H5Parm + outputBinding: + glob: $(inputs.input_h5parm.basename) +$schema: + - https://git.astron.nl/eosc/ontologies/raw/master/schema/lofar.owl diff --git a/test_jobs/losoto_flagstation.json b/test_jobs/losoto_flagstation.json new file mode 100644 index 0000000000000000000000000000000000000000..d206199f088fe63102e13497b83292f7fc985061 --- /dev/null +++ b/test_jobs/losoto_flagstation.json @@ -0,0 +1,5 @@ +{ + "input_h5parm": {"class": "File", "path": "/data/example.h5", "format": "lofar:#H5Parm"}, + "soltab": "sol000/amplitude000", + "mode": "bandpass" +}