Skip to content
Snippets Groups Projects
split-directions.cwl 6.13 KiB
Newer Older
James Petley's avatar
James Petley committed
class: Workflow
cwlVersion: v1.2
id: split-directions
label: Split Directions
doc: |
  This is a workflow for the LOFAR-VLBI pipeline that
Jurjen de Jong's avatar
Jurjen de Jong committed
    * Splits a LOFAR MeasurementSet into various target directions
    * Applies delay calibrator solutions
    * Optionally (for wide-field imaging) performs direction-dependent calibrator selection
    * Optionally performs self-calibration on the target directions
James Petley's avatar
James Petley committed
  This step should be run after the delay calibration workflow.

requirements:
  - class: SubworkflowFeatureRequirement
  - class: MultipleInputFeatureRequirement
  - class: ScatterFeatureRequirement

inputs:
    - id: msin
      type: Directory[]
Jurjen de Jong's avatar
Jurjen de Jong committed
      doc: The input MS of the target directions.
James Petley's avatar
James Petley committed
    - id: delay_solset
      type: File?
James Petley's avatar
James Petley committed
      doc: The solution tables generated by the VLBI delay calibration workflow in an HDF5 format.
    - id: image_cat
      type: File
jurjen93's avatar
jurjen93 committed
      doc: The image catalogue (in FITS or CSV format) containing the target directions.
      default: lotss_catalogue.csv
James Petley's avatar
James Petley committed
    - id: max_dp3_threads
      type: int?
      default: 4
      doc: Number of cores to use per job for
James Petley's avatar
James Petley committed
        tasks with high I/O or memory.
    - id: numbands
      type: int?
      default: -1
      doc: The number of bands to group. -1 means all bands.
    - id: truncateLastSBs
      type: boolean?
      default: true
      doc: Whether to truncate the last subbands of the
James Petley's avatar
James Petley committed
        MSs to the same length.
    - id: do_selfcal
      type: boolean?
      default: false
      doc: Whether to do selfcal on the direction concat MSs.
Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: dd_selection
      type: boolean?
jurjen93's avatar
jurjen93 committed
      default: true
Jurjen de Jong's avatar
Jurjen de Jong committed
      doc: If set to true the pipeline will perform direction-dependent calibrator selection.
jurjen93's avatar
jurjen93 committed
    - id: phasediff_score
      type: float
      default: 9
      doc: |
         Phasediff-score for calibrator selection <2.3 good for DD-calibrators and <0.7 good for DI-calibrators.
         Only used when dd_selection==true.
jurjen93's avatar
jurjen93 committed
    - id: peak_flux_cut
jurjen93's avatar
jurjen93 committed
      type: float
      default: 0.0
      doc: |
         Peak flux (Jy/beam) cut to pre-select sources from catalogue. Default at 0.0 is no cut.
         Only used when dd_selection==true.
James Petley's avatar
James Petley committed
    - id: configfile
      type: File
jurjen93's avatar
jurjen93 committed
      default: null
      doc: The configuration file to be used to run
        facetselfcal.py during the target_selfcal step.
James Petley's avatar
James Petley committed
    - id: h5merger
      type: Directory
      doc: The h5merger directory.
    - id: selfcal
      type: Directory
      doc: The selfcal directory.
James Petley's avatar
James Petley committed
steps:
jurjen93's avatar
jurjen93 committed
    - id: select_bright_sources
jurjen93's avatar
jurjen93 committed
      label: Select bright sources
jurjen93's avatar
jurjen93 committed
      in:
        - id: msin
          source: msin
        - id: image_cat
          source: image_cat
jurjen93's avatar
jurjen93 committed
        - id: peak_flux_cut
          source: peak_flux_cut
jurjen93's avatar
jurjen93 committed
      out:
        - bright_cat
      run: ../steps/select_bright_sources.cwl
      when: $(inputs.dd_selection)
James Petley's avatar
James Petley committed
    - id: target_phaseup
      label: Target Phaseup
      in:
        - id: msin
          source: msin
        - id: image_cat
jurjen93's avatar
jurjen93 committed
          source:
            - select_bright_sources/bright_cat
            - image_cat
          pickValue: first_non_null
        - id: delay_solutions
          source: delay_solset
James Petley's avatar
James Petley committed
        - id: parset
      run: ./subworkflows/split_parset.cwl
      scatter: msin

    - id: dp3_target_phaseup
      label: DP3 Target Phaseup
      in:
        - id: msin
          source: msin
        - id: parset
          source: target_phaseup/parset
          linkMerge: merge_flattened
        - id: delay_solset
          source: delay_solset
        - id: max_dp3_threads
          source: max_dp3_threads
      out:
        - id: msout
      run: ../steps/dp3_target_phaseup.cwl
      scatter: [msin, parset]
      scatterMethod: dotproduct

Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: flatten_msout
      label: Flatten msout
James Petley's avatar
James Petley committed
      in:
Jurjen de Jong's avatar
Jurjen de Jong committed
        - id: nestedarray
James Petley's avatar
James Petley committed
          source: dp3_target_phaseup/msout
Jurjen de Jong's avatar
Jurjen de Jong committed
        - id: flattenedarray
      run: ../steps/flatten.cwl
James Petley's avatar
James Petley committed

Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: make_concat_parset
      label: Make parsets
Jurjen de Jong's avatar
Jurjen de Jong committed
         - id: msin
           source: flatten_msout/flattenedarray
         - id: lofar_helpers
           source: h5merger
Jurjen de Jong's avatar
Jurjen de Jong committed
         - id: concat_parsets
      run: ../steps/make_concat_parsets.cwl
Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: dp3_parset
      label: dp3_parset
James Petley's avatar
James Petley committed
      in:
Jurjen de Jong's avatar
Jurjen de Jong committed
        - id: parset
          source: make_concat_parset/concat_parsets
James Petley's avatar
James Petley committed
      out:
Jurjen de Jong's avatar
Jurjen de Jong committed
        - id: msout
      run: ../steps/dp3_parset.cwl
      scatter: parset
James Petley's avatar
James Petley committed

Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: ddcal_pre_selection
      label: DD direction selection
James Petley's avatar
James Petley committed
      in:
        - id: msin
Jurjen de Jong's avatar
Jurjen de Jong committed
          source: dp3_parset/msout
        - id: lofar_helpers
          source: h5merger
        - id: selfcal
          source: selfcal
        - id: dd_selection
          source: dd_selection
jurjen93's avatar
jurjen93 committed
        - id: phasediff_score
          source: phasediff_score
James Petley's avatar
James Petley committed
      out:
Jurjen de Jong's avatar
Jurjen de Jong committed
        - id: phasediff_score_csv
        - id: best_ms
      when: $(inputs.dd_selection)
      run: ./subworkflows/ddcal_pre_selection.cwl
James Petley's avatar
James Petley committed

    - id: target_selfcal
      label: Target Selfcal
      in:
        - id: msin
Jurjen de Jong's avatar
Jurjen de Jong committed
          source:
            - ddcal_pre_selection/best_ms
            - dp3_parset/msout
          pickValue: first_non_null
James Petley's avatar
James Petley committed
        - id: configfile
          source: configfile
        - id: h5merger
          source: h5merger
        - id: selfcal
          source: selfcal
        - id: do_selfcal
          source: do_selfcal
      out:
        - id: images
James Petley's avatar
James Petley committed
        - id: fits_images
      when: $(inputs.do_selfcal)
      run: ../steps/facet_selfcal.cwl
James Petley's avatar
James Petley committed
      scatter: msin

outputs:
    - id: msout_concat
Jurjen de Jong's avatar
Jurjen de Jong committed
      outputSource:
        - ddcal_pre_selection/best_ms
        - dp3_parset/msout
      pickValue: first_non_null
James Petley's avatar
James Petley committed
    - id: images
James Petley's avatar
James Petley committed
        items:
          type: array
          items: File
      outputSource:
        - target_selfcal/images
      pickValue: all_non_null
    - id: fits_images
James Petley's avatar
James Petley committed
        items:
          type: array
          items: File
      outputSource:
        - target_selfcal/fits_images
      pickValue: all_non_null
Jurjen de Jong's avatar
Jurjen de Jong committed
    - id: phasediff_score_csv
      type: File?
      outputSource: ddcal_pre_selection/phasediff_score_csv
    - id: h5parm
      type: File[]
      outputSource:
        - target_selfcal/h5parm
      pickValue: all_non_null