Skip to content
Snippets Groups Projects
Select Git revision
  • 75c78bc76b65b417e2d0524dbc4b2010c9f9fa38
  • master default protected
  • revert-cs032-ccd-ip
  • deploy-components-parallel
  • fix-chrony-exporter
  • L2SS-2407-swap-iers-caltable-monitoring-port
  • L2SS-2357-fix-ruff
  • sync-up-with-meta-pypcc
  • stabilise-landing-page
  • all-stations-lofar2
  • v0.39.7-backports
  • Move-sdptr-to-v1.5.0
  • fix-build-ubuntu
  • tokens-in-env-files
  • fix-build
  • L2SS-2214-deploy-cdb
  • fix-missing-init
  • add-power-hardware-apply
  • L2SS-2129-Add-Subrack-Routine
  • Also-listen-internal-to-rpc
  • fix-build-dind
  • v0.55.5-r2 protected
  • v0.52.8-rc1 protected
  • v0.55.5 protected
  • v0.55.4 protected
  • 0.55.2.dev0
  • 0.55.1.dev0
  • 0.55.0.dev0
  • v0.54.0 protected
  • 0.53.2.dev0
  • 0.53.1.dev0
  • v0.52.3-r2 protected
  • remove-snmp-client
  • v0.52.3 protected
  • v0.52.3dev0 protected
  • 0.53.1dev0
  • v0.52.2-rc3 protected
  • v0.52.2-rc2 protected
  • v0.52.2-rc1 protected
  • v0.52.1.1 protected
  • v0.52.1 protected
41 results

comms_client.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Ateamclipper.py 2.50 KiB
    #!/usr/bin/env python3
    
    ## changelog
    # W.Williams   2014/11/03  add - to give input/output statistics per channel
    # W.Williams   2014/11/03  fix - statistics per correlation
    # A.Drabent    2019/07/24  write fraction of flagged data into output file (for prefactor3)
    # M.VanderWild 2022/04/21  fix ~ use python3 instead of python
    
    import numpy
    import pyrap.tables as pt
    import os
    import sys
    
    msname = str(sys.argv[1])
    
    cliplevelhba = 5.0
    cliplevellba = 50.0
    
    t = pt.table(msname, readonly=False)
    data = t.getcol('MODEL_DATA')
    flag = t.getcol('FLAG')
    freq_tab= pt.table(msname + '::SPECTRAL_WINDOW')
    freq    = freq_tab.getcol('REF_FREQUENCY')
    
    if freq[0] > 100e6:
     cliplevel = cliplevelhba
    if freq[0] < 100e6:
     cliplevel = cliplevellba
    
    
    print('------------------------------')
    print('SB Frequency [MHz]', freq[0]/1e6)
    for chan in range(0,numpy.size(data[0,:,0])):
      print('chan %i : %.5f%% input XX flagged' %( chan, 100.*numpy.sum(flag[:,chan,0] == True)/numpy.size(flag[:,chan,0]) ))
      print('chan %i : %.5f%% input YY flagged' %( chan, 100.*numpy.sum(flag[:,chan,3] == True)/numpy.size(flag[:,chan,3]) ))
    input_flags_xx = 100. * numpy.sum(flag[:,:,0] == True)/numpy.size(flag[:,:,0])
    input_flags_yy = 100. * numpy.sum(flag[:,:,3] == True)/numpy.size(flag[:,:,3])
    print('Total : %.5f%% input XX flagged' %(   input_flags_xx ))
    print('Total : %.5f%% input YY flagged' %(   input_flags_yy ))
    print('')
    print('Cliplevel used [Jy]', cliplevel)
    print('\n\n')
    
    for pol in range(0,numpy.size(data[0,0,:])):
     for chan in range(0,numpy.size(data[0,:,0])):
      print('Doing polarization,chan', pol, chan)
      idx = numpy.where(abs(data[:,chan,pol]) > cliplevel)
      flag[idx,chan,0] = True
      flag[idx,chan,1] = True
      flag[idx,chan,2] = True
      flag[idx,chan,3] = True 
    
    print('')
    for chan in range(0,numpy.size(data[0,:,0])):
      print('chan %i : %.5f%% output XX flagged' %( chan, 100.*numpy.sum(flag[:,chan,0] == True)/numpy.size(flag[:,chan,0]) ))
      print('chan %i : %.5f%% output YY flagged' %( chan, 100.*numpy.sum(flag[:,chan,3] == True)/numpy.size(flag[:,chan,3]) ))
    output_flags_xx = 100. * numpy.sum(flag[:,:,0] == True)/numpy.size(flag[:,:,0])
    output_flags_yy = 100. * numpy.sum(flag[:,:,3] == True)/numpy.size(flag[:,:,3])
    print('Total : %.5f%% output XX flagged' %(   output_flags_xx ))
    print('Total : %.5f%% output YY flagged' %(   output_flags_yy ))
    print('')
    t.putcol('FLAG', flag)
    t.close()
    freq_tab.close()
    
    os.system('echo ' + str(freq[0]) + ' ' + str(output_flags_xx - input_flags_xx) + ' ' + str(output_flags_yy - input_flags_yy) + ' >> Ateamclipper.txt')