Пример #1
0
def get_delays(antenna_order, nants):
    """Gets the delays currently set in the sanps.

    Parameters
    ----------
    antenna_order : array
        The order of antennas in the snaps.
    nants : int
        The total number of antennas in the array.

    Returns
    -------
    ndarray
        The delays for each antenna/pol in the array.
    """
    delays = np.zeros((nants, 2), dtype=np.int)
    d = dsa_store.DsaStore()
    nant_snap = 3
    nsnaps = len(antenna_order) // nant_snap
    nant_lastsnap = len(antenna_order) % nant_snap
    if nant_lastsnap != 0:
        nsnaps += 1
    else:
        nant_lastsnap = nant_snap
    for i in range(0, nsnaps):
        LOGGER.info('getting delays for snap {0} of {1}'.format(i + 1, nsnaps))
        try:
            snap_delays = np.array(
                d.get_dict('/mon/snap/{0}/delays'.format(i + 1))['delays']) * 2
            snap_delays = snap_delays.reshape(
                3, 2)[:nant_snap if i < nsnaps - 1 else nant_lastsnap, :]
            delays[(antenna_order - 1)[i * 3:(i + 1) * 3], :] = snap_delays
        except (AttributeError, TypeError) as e:
            LOGGER.error('delays not set for snap{0}'.format(i + 1))
    return delays
Пример #2
0
 def test_put_get(self):
     my_etcd = ds.DsaStore(etcdconf)
     test_dict = {}
     test_dict['value'] = 23.4
     test_dict['value2'] = 23
     test_dict['value3'] = 'value3'
     my_etcd.put_dict('/test/1', test_dict)
     rtn_dict = my_etcd.get_dict('/test/1')
     self.assertEqual(rtn_dict, test_dict)
Пример #3
0
def get_lastname():
    """ Look at etcd to get name of last triggered candidate
    Return of None means that the name generation should start anew.
    """

    from dsautils import dsa_store
    ds = dsa_store.DsaStore()

    try:
        lastname, vv = ds.get_dict('/mon/corr/1/trigger').popitem()
    except:
        lastname = None

    return lastname
Пример #4
0
    def __init__(self, ant_num):
        """c-tor. Specify antenna number. Use 0 for all antennas

        :param ant_num: Antenna number or list of antennas to control. 0 for all.
        :type ant_num: Integer or Array of Integers.
        """
        self.ant_nums = []
        # Test contructor
        if isinstance(ant_num, list):
            self.ant_nums = ant_num
        else:
            self.ant_nums.append(ant_num)

        self.my_store = ds.DsaStore(ETCDCONF)
        self.cmd_key_base = CMD_KEY_BASE
        self.mon_key_base = MON_KEY_BASE
        self.log = dsl.DsaSyslogger('dsa', 'ant', logging.INFO, 'Ant')
        self.log.function('c-tor')
        self.log.info("Created Ant object")
Пример #5
0
#!/usr/bin/env python3

import sys
import os
import time
from dsautils import dsa_store
d = dsa_store.DsaStore()

datestring = '2apr21'

d.put_dict('/cnf/datestring', datestring)
d.put_dict('/cmd/corr/docopy', 'True')

os.system('/usr/local/bin/dsacon corr start')
time.sleep(60)
os.system('/usr/local/bin/dsacon corr set')
time.sleep(3600)

d.put_dict('/cmd/corr/0', {'cmd': 'trigger', 'val': '0'})
time.sleep(120)
os.system('/usr/local/bin/dsacon corr stop')
time.sleep(60)
d.put_dict('/cmd/corr/docopy', 'False')
time.sleep(10)
Пример #6
0
#!/usr/bin/env python3

import sys
import os
import time
from dsautils import dsa_store; d = dsa_store.DsaStore()

datestring = '26mar21'

d.put_dict('/cnf/datestring',datestring)
d.put_dict('/cmd/corr/docopy','True')

os.system('/usr/local/bin/dsacon corr start')
time.sleep(20)
os.system('/usr/local/bin/dsacon corr set')
time.sleep(3600)

d.put_dict('/cmd/corr/0', {'cmd': 'trigger', 'val': '0'})
time.sleep(120)
os.system('/usr/local/bin/dsacon corr stop')
time.sleep(60)
d.put_dict('/cmd/corr/docopy','False')
time.sleep(10)







Пример #7
0
from dsautils import dsa_store
import dsautils.dsa_syslog as dsl
from dsautils import cnf
import dsacalib.constants as ct
from dsacalib.fringestopping import calc_uvw

from dsamfs.fringestopping import generate_fringestopping_table
from dsamfs.fringestopping import zenith_visibility_model

# Logger
LOGGER = dsl.DsaSyslogger()
LOGGER.subsystem("software")
LOGGER.app("dsamfs")

ETCD = dsa_store.DsaStore()


def get_delays(antenna_order, nants):
    """Gets the delays currently set in the sanps.

    Parameters
    ----------
    antenna_order : array
        The order of antennas in the snaps.
    nants : int
        The total number of antennas in the array.

    Returns
    -------
    ndarray
Пример #8
0
 def test_etcd(self):
     my_etcd = ds.DsaStore(etcdconf)
     rtn_etcd = my_etcd.get_etcd()
Пример #9
0
 def test_c_tor(self):
     my_etcd = ds.DsaStore(etcdconf)
     self.assertIsInstance(my_etcd, ds.DsaStore)
Пример #10
0
from datetime import datetime
import os
import traceback
import socket
import numpy as np
import h5py
import astropy.units as u
from psrdada.exceptions import PSRDadaError
from antpos.utils import get_itrf
import dsautils.dsa_syslog as dsl
import dsautils.dsa_store as ds
import dsacalib.constants as ct
import dsamfs.utils as pu
from dsamfs.fringestopping import fringestop_on_zenith

etcd = ds.DsaStore()

logger = dsl.DsaSyslogger()
logger.subsystem("software")
logger.app("dsamfs")


def initialize_uvh5_file(fhdf,
                         nfreq,
                         npol,
                         pt_dec,
                         antenna_order,
                         fobs,
                         fs_table=None):
    """Initializes an HDF5 file according to the UVH5 specification.