Skip to content
Snippets Groups Projects
Select Git revision
  • 1d88a71985132345999effe8d6d2e2edd12d08a2
  • master default protected
  • fix-64-bit
  • L2SDP-261
  • 2021-04-14T14.09.01_sdptr
  • 2021-04-14T13.43.34_sdptr
6 results

tr.cpp

Blame
  • Forked from LOFAR2.0 / sdptr
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    inspect_flagging_dataloss.cwl 5.20 KiB
    class: CommandLineTool
    cwlVersion: v1.1
    id: inspect_flagging_dataloss
    baseCommand:
      - python3
      - script.py
    inputs:
      - id: input
        type: Directory
        inputBinding:
          position: 0
          shellQuote: false
      - id: uvw_sampling
        type: int?
        default: 100
        inputBinding:
          position: 1
    outputs:
      - id: output
        type: 'File'
        outputBinding:
          glob: metrics.json
      - id: flags_output
        type: 'File'
        outputBinding:
          glob: flags.h5
    label: inspect_flagging_dataloss
    requirements:
      - class: ShellCommandRequirement
      - class: InitialWorkDirRequirement
        listing:
         - entryname: script.py
           entry: |
             import sys
             from casacore.tables import table
             import itertools
             import json
             import h5py
             import numpy as np
             import re
             from scipy.constants import c as LIGHT_SPEED
             input_ms_path = sys.argv[1]
             sampling = int(sys.argv[2])
             main_table = table(input_ms_path, 'r')
    
             antennas = table(input_ms_path + '/ANTENNA', 'r')
             spec_window = table(input_ms_path + '/SPECTRAL_WINDOW', 'r')
             observation = table(input_ms_path + '/OBSERVATION', 'r')
    
             sas_id, sap, sb = re.search('L(\d*).*SAP(\d{3}).*SB(\d{3}).*',
                       observation.getcell('LOFAR_FILENAME', 0)).groups()
             antenna_names = antennas.getcol('NAME')
             antenna_positions = antennas.getcol('POSITION')
    
             ref_frequency = spec_window.getcell('REF_FREQUENCY', 0)
    
             TO_UVW = ref_frequency / LIGHT_SPEED  # 1 / (c/nu)
    
             flags = np.array(main_table.getcol('FLAG'))
             vis = np.array(main_table.getcol('DATA'))
    
             uvw = np.array(main_table.getcol('UVW') * TO_UVW)
    
             antenna1 = np.array(main_table.getcol('ANTENNA1'))
             antenna2 = np.array(main_table.getcol('ANTENNA2'))
             time = np.array(main_table.getcol('TIME'))
             n_antennas = antennas.nrows()
             n_baselines = int((n_antennas + 1) * n_antennas * .5)
             n_times = flags.shape[0] // n_baselines
             dataloss = np.array(vis == 0, dtype=np.int)