Exemple #1
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    #ant_list = ["3c", "2b"]
    #ant_list = ['1a', '1f', '1c', '2a', '2b', '2h',
    #        '4g', '1k', '5c', '1h', '4j']
    ant_list = ['3c']
    #snap_if.setatten({'3cx': 27, '3cy': 27, '2bx': 27, '2by': 27})
    snap_if.setatten({ant + pol: 27 for ant in ant_list for pol in ["x", "y"]})
    snap_dada.set_freq_auto([1600] * len(ant_list), ant_list)
    #snap_if.tune_if_ants(ant_list)
    obs_time = 10

    goes_az = 121.96
    goes_el = 23.63
    step = 0.1

    az_list = np.arange(goes_az - 1, goes_az + 1, step)
    el_list = np.arange(goes_el - 1, goes_el + 1, step)

    for az in az_list:
        os.system("killall ata_udpdb")
        for el in el_list:
            print("az: %.2f, el: %.2f" % (az, el))
            ata_control.set_az_el(ant_list, az, el)
            utc = snap_dada.start_recording(ant_list,
                                            obs_time,
                                            acclen=120 * 16,
                                            disable_rfi=True)
        time.sleep(10)
Exemple #2
0
def park_antennas():
    logging.info('Parking antennas')
    if do_observation:
        ac.set_az_el(antennas, 0, 18)
    else:
        time.sleep(1)
    logging.info('Antennas parked')
Exemple #3
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # moon observation
    az_offset = 20
    el_offset = 0
    #freqs = np.arange(1000, 11000, 500)
    #freq = 1600 #+ 2*300
    #freq = 1600 + 700 #+ 2*300

    ant_list = ["2b", "2a"]
    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, True)

    obs_time = 30
    source = "NCP"
    ata_control.set_az_el(ant_list, 0, 40.723)
    ata_control.autotune(ant_list)

    freqs = np.arange(1250, 11200, 450)

    snap_dada.set_freq_auto([freqs[0]] * len(ant_list), ant_list)
    time.sleep(30)

    for ifreq, freq in enumerate(freqs):
        snap_dada.set_freq_auto([freq] * len(ant_list), ant_list)
        snap_if.tune_if_ants(ant_list)

        utc = snap_dada.start_recording(ant_list,
                                        obs_time,
                                        npolout=2,
                                        acclen=120 * 2,
                                        source="NCP",
                                        disable_rfi=True)
Exemple #4
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    ant_list = ["1a", "1f", "1c", "2a", "2b", "2h",
            "3c", "4g", "1k", "5c", "1h", "4j"]

    #ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas,ant_list, False)

    ata_control.set_az_el(ant_list, 180, 75)

    ata_control.autotune(ant_list)

    freqs = np.arange(2250, 11200, 550)

    snap_dada.set_freq_auto([freqs[0]]*len(ant_list), ant_list)
    time.sleep(30)
    
    o = open("output_snap_if.txt","w")

    for ifreq, freq in enumerate(freqs):
        time.sleep(10)
        snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
        snap_if.tune_if_ants(ant_list)
        o.write(str(freq))
        o.write(str(snap_if.getatten(ant_list)))

    o.close()
Exemple #5
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ['3c']

    snap_if.setatten({ant + pol: 27 for ant in ant_list for pol in ["x", "y"]})
    snap_dada.set_freq_auto([1600] * len(ant_list), ant_list)

    obs_time = 10

    goes_az = 121.96
    goes_el = 23.63

    # point at goes16
    ata_control.set_az_el(ant_list, goes_az, goes_el)
    utcs = []
    while True:
        utc = snap_dada.start_recording(ant_list,
                                        obs_time,
                                        acclen=120 * 16,
                                        disable_rfi=True)
        utcs.append(utc)
        time.sleep(2)
        print("")
        print("=" * 79)
        for ant in ant_list:
            p = get_power(utc, ant)
            print(ant, p, 10 * np.log10(p), "dB")
        print("=" * 79)
        print("")
        _ = input("measure again?")
Exemple #6
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    ant_list = [
        "1c", "1e", "1g", "1h", "2a", "2b", "2c", "2e", "2h", "2j", "2k", "2l",
        "2m", "3c", "3d", "3l", "4j", "5b", "4g"
    ]  #1k left out cuz of weird movement

    antlo_list = [ant + "B" for ant in ant_list]

    #antlo_list += [ant+"C" for ant in ant_list]

    #los = list(set([antlo[-1] for antlo in antlo_list]))

    freqs = [3500] * len(ant_list)

    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    ata_control.set_freq(freqs, ant_list, lo='b')

    time.sleep(30)

    #source = "3c345"
    #ata_control.make_and_track_ephems(source, ant_list)
    #goes_az = 203.323 #121.96 (goes 16)
    #goes_el = 40.119 #23.63
    az = 223.323
    el = 40.119

    ata_control.set_az_el(ant_list, az, el)

    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)
Exemple #7
0
    def point_src_azel(self, az, el, ant_list, az_off=0, el_off=0):
        ''' This function points the antenna at the source
            designated by the azimuth and elevation specified
            by the user. '''

        if el > ap.MIN_ELEV:
            ac.set_az_el(ant_list, az + az_off, el + el_off)
            #if not self.is_configured:
            #ac.autotune(ant_list)
            #print("\nAutotuned.\n")
            return

        print("Sorry, {0} is below the minimum allowed elevation \n"
               "of {1}. Reset your coordinates and try again.".format( \
               el, ap.MIN_ELEV))
        return
Exemple #8
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    ant_list = ["1c", "1e", "1g", "1h", "1k", "2a", "2b", "2c",
                "2e", "2h", "2j", "2l", "2m", "3c", "3d",
                "3l", "4j", "5b", "4g", "2k"]

    antlo_list = [ant+"B" for ant in ant_list]
    
    #antlo_list += [ant+"C" for ant in ant_list]
    

    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)


    time.sleep(30)
    
    freqs = np.arange(2250, 11200, 550)

    obs_time = 20
    
    start_az = 20
    start_el = 0
    end_az = 360
    end_el = 90
    step = 10

    az_list = np.arange(start_az, end_az, step)
    el_list = np.arange(start_el, end_el, step)

    for freq in freqs:
    
        ata_control.set_freq(freq, ant_list, lo='b')
        ata_control.autotune(ant_list)
        snap_if.tune_if_antslo(antlo_list)

        for az in az_list:
            for el in el_list:

                print("az: %.2f, el: %.2f" %(az, el))
                os.system("killall ata_udpdb")
                ata_control.set_az_el(ant_list, az, el)
                utc = snap_dada.start_recording(antlo_list, obs_time, acclen=120*16,
                        disable_rfi=True)
            time.sleep(10)
Exemple #9
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = [
        "1c", "1e", "1g", "1h", "2a", "2b", "2c", "2e", "2h", "2j", "2k", "2l",
        "2m", "3c", "3d", "3l", "4j", "5b", "4g"
    ]  # whats going on with 1k? 2k points somewhere else

    ant_2k = ['2k']

    lo = 'B'
    antlo_list = [ant + lo for ant in ant_list]

    pams = {ant + pol: 27 for ant in ant_list for pol in ["x", "y"]}
    ifs = {antlo + pol: 20 for antlo in antlo_list for pol in ["x", "y"]}

    ata_control.set_pams(pams)
    snap_if.setatten(ifs)
    freq = 1600

    #snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
    ata_control.set_freq([freq] * len(ant_list), ant_list, lo='b')

    obs_time = 60

    az = 203.323  #121.96
    el = 40.119  #23.63
    #step = 2

    #az_list = np.arange(goes_az - 10, goes_az + 10, step)
    #el_list = np.arange(goes_el - 10, goes_el + 10, step)

    #for az in az_list:
    #    for el in el_list

    print("az: %.2f, el: %.2f" % (az, el))
    os.system("killall ata_udpdb")
    ata_control.set_az_el(ant_2k, az, el)

    utc = snap_dada.start_recording(antlo_list,
                                    obs_time,
                                    acclen=120 * 16,
                                    disable_rfi=True)
    time.sleep(10)
Exemple #10
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ["1a", "1f", "1c", "2a", "2h", "3c", "4g", "1k", "5c"]
    az_incr = [0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360]
    az_incr = [210, 240, 270, 300, 330, 360]
    el = 18
    #ata_control.autotune(ant_list)
    #ata_control.set_freq(1400, ant_list)
    #os.system(ATTEMP_SCRIPT)

    obs_time = 600

    for az in az_incr:
        ata_control.set_az_el(ant_list, az, el)

        utc = snap_dada.start_recording(ant_list,
                                        obs_time,
                                        npolout=2,
                                        acclen=160 * 8,
                                        disable_rfi=True)
Exemple #11
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ["1a", "1f", "1c", "2a", "2h", "3c", "4g", "1k", "5c"]
    az_ants = [0, 45, 90, 135, 180, 225, 270, 315, 360]

    el_inc = [20, 30, 40, 50, 60, 70, 80, 85]

    #ata_control.autotune(ant_list)
    #ata_control.set_freq(1400, ant_list)
    #os.system(ATTEMP_SCRIPT)

    obs_time = 600

    for el in el_inc:
        for iant, ant in enumerate(ant_list):
            ata_control.set_az_el(ant_list[iant], az_ants[iant], el)

        utc = snap_dada.start_recording(ant_list,
                                        obs_time,
                                        npolout=2,
                                        acclen=160 * 8,
                                        disable_rfi=True)
Exemple #12
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ['2k', '2e', '2m', '2j', '3d', '1k']
    lo = 'B'
    antlo_list = [ant + lo for ant in ant_list]

    pams = {ant + pol: 27 for ant in ant_list for pol in ["x", "y"]}
    ifs = {antlo + pol: 20 for antlo in antlo_list for pol in ["x", "y"]}

    ata_control.set_pams(pams)
    snap_if.setatten(ifs)
    freq = 1600

    #snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
    ata_control.set_freq([freq] * len(ant_list), ant_list, lo='b')

    obs_time = 20

    #goes 17
    goes_az = 203.323  #121.96 (goes 16)
    goes_el = 40.119  #23.63
    step = 0.5

    az_list = np.arange(goes_az - 3, goes_az + 3, step)[6:]
    el_list = np.arange(goes_el - 3, goes_el + 3, step)

    for az in az_list:
        for el in el_list:
            print("az: %.2f, el: %.2f" % (az, el))
            os.system("killall ata_udpdb")
            ata_control.set_az_el(ant_list, az, el)
            utc = snap_dada.start_recording(antlo_list,
                                            obs_time,
                                            acclen=120 * 16,
                                            disable_rfi=True)
        time.sleep(10)
Exemple #13
0
 def stop(self):
     print("The session has ended. Stowing antenna(s)")
     ac.set_az_el(self.my_ants, 0.00, 18.00)
     return True
Exemple #14
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ['1k', '2a', '2b', '2c', '2e', '2j', '4j']
    lo = 'B'
    antlo_list = [ant + lo for ant in ant_list]

    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    #pams = {ant+pol:27 for ant in ant_list for pol in ["x","y"]}
    #ifs  = {antlo+pol:20 for antlo in antlo_list for pol in ["x","y"]}

    #ata_control.set_pams(pams)
    #snap_if.setatten(ifs)
    #freq = 1600

    #obs_time = 70

    ###snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
    #ata_control.set_freq([freq]*len(ant_list), ant_list, lo='b')

    #os.system("killall ata_udpdb")

    goes_az = 203.323  #121.96 (goes 16)
    goes_el = 40.119  #23.63

    #el swivel

    #az_start = goes_az
    #el_start = goes_el + 10
    #el_end   = goes_el - 10

    #az swivel

    el_start = goes_el - 10
    az_start = goes_az - 10
    az_end = goes_az + 10

    invr = 2.55e-5
    print("az: %.2f, el: %.2f" % (az_start, el_start))

    ata_control.set_az_el(ant_list, az_start, el_start)

    _ = input("enter to continue")

    t_start = time.time()
    t_start += 37  #leap seconds
    t_start += 5  #let's start this in 5 seconds into the future

    t_span = 60  #seconds

    steps = t_span // 5  #5 seconds per step

    print(t_start)
    print(t_span)

    #ephem = generate_ephem_el_swivel(az_start, el_start, el_end, t_start, t_span,  steps, invr)

    ephem = generate_ephem_az_swivel(az_start, az_end, el_start, t_start,
                                     t_span, steps, invr)
    print(ephem)

    ephem_to_txt("test_ephem_goes17_az.txt", ephem)
    print("ephem file saved to disk")
Exemple #15
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ['1k', '2k', '2e', '2j', '2m']
    lo = 'B'
    antlo_list = [ant + lo for ant in ant_list]

    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    pams = {ant + pol: 27 for ant in ant_list for pol in ["x", "y"]}
    ifs = {antlo + pol: 20 for antlo in antlo_list for pol in ["x", "y"]}

    ata_control.set_pams(pams)
    snap_if.setatten(ifs)
    freq = 1600

    #obs_time = 70

    ###snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
    ata_control.set_freq([freq] * len(ant_list), ant_list, lo='b')

    goes_az = 203.323  #121.96 (goes 16)
    goes_el = 40.119  #23.63

    #el swivel

    #az_list = np.linspace(goes_az - 10, goes_az + 10, 60 // 5)
    spac = 0.05

    az_list = np.arange(goes_az - 3, goes_az + 3 + spac, spac)

    el_start = goes_el + 3
    el_end = goes_el - 3

    #az swivel

    #el_start = goes_el # - 10
    #az_start = goes_az - 10
    #az_end   = goes_az + 10

    for az_start in az_list:
        os.system("killall ata_udpdb")
        invr = 2.55e-5
        print("az: %.2f, el: %.2f" % (az_start, el_start))

        ata_control.set_az_el(ant_list, az_start, el_start)

        #_ = input("enter to continue")

        grace_time = 15  # time between now and antenna actually moving

        t_start = time.time()
        t_start += 37  #leap seconds
        t_start += grace_time  #let's start this in X seconds into the future

        t_span = 30  #seconds
        obs_time = int(t_span + 1 * grace_time)

        steps = t_span // 5  #5 seconds per step

        ephem = generate_ephem_el_swivel(az_start, el_start, el_end, t_start,
                                         t_span, steps, invr)

        #ephem = generate_ephem_az_swivel(az_start, az_end, el_start, t_start, t_span,  steps, invr)
        print(ephem)

        ephem_name = "/tmp/ephem_goes17_az_%.3f.txt" % az_start

        ephem_to_txt(ephem_name, ephem)
        print("ephem file saved to disk")

        id = upload_ephemeris(ephem_name)

        ata_control.track_ephemeris(id, ant_list)
        #_ = input("tracking..., hit enter to continue")

        utc = snap_dada.start_recording(antlo_list,
                                        obs_time,
                                        acclen=120 * 4,
                                        disable_rfi=True)

        this_utc_basedir = os.path.join(snap_config.ATA_CFG['OBSDIR'], utc)
        dst_ephem_file = os.path.join(this_utc_basedir,
                                      os.path.basename(ephem_name))

        copyfile(ephem_name, dst_ephem_file)

    time.sleep(10)
Exemple #16
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ['1k', '2a', '2b', '2c', '2e', '2j', '2m']
    lo = 'B'
    antlo_list = [ant + lo for ant in ant_list]

    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    pams = {ant + pol: 27 for ant in ant_list for pol in ["x", "y"]}
    ifs = {antlo + pol: 20 for antlo in antlo_list for pol in ["x", "y"]}

    ata_control.set_pams(pams)
    snap_if.setatten(ifs)
    freq = 1600

    obs_time = 70

    ###snap_dada.set_freq_auto([freq]*len(ant_list), ant_list)
    ata_control.set_freq([freq] * len(ant_list), ant_list, lo='b')

    os.system("killall ata_udpdb")

    goes_az = 203.323  #121.96 (goes 16)
    goes_el = 40.119  #23.63

    #el swivel

    #az_start = goes_az
    #el_start = goes_el + 10
    #el_end   = goes_el - 10

    #az swivel

    el_start = goes_el  # - 10
    az_start = goes_az - 10
    az_end = goes_az + 10

    invr = 2.55e-5
    print("az: %.2f, el: %.2f" % (az_start, el_start))

    ata_control.set_az_el(ant_list, az_start, el_start)

    _ = input("enter to continue")

    grace_time = 15  # time between now and antenna actually moving

    t_start = time.time()
    t_start += 37  #leap seconds
    t_start += grace_time  #let's start this in X seconds into the future

    t_span = 60  #seconds
    obs_time = int(t_span + 2 * grace_time)

    steps = t_span // 5  #5 seconds per step

    #print(t_start)
    #print(t_span)

    #ephem = generate_ephem_el_swivel(az_start, el_start, el_end, t_start, t_span,  steps, invr)

    ephem = generate_ephem_az_swivel(az_start, az_end, el_start, t_start,
                                     t_span, steps, invr)
    print(ephem)

    ephem_to_txt("test_ephem_goes17_az.txt", ephem)
    print("ephem file saved to disk")

    id = upload_ephemeris("test_ephem_goes17_az.txt")

    ata_control.track_ephemeris(id, ant_list)

    #t = time.time()
    utc = snap_dada.start_recording(antlo_list,
                                    obs_time,
                                    acclen=120,
                                    disable_rfi=True)
Exemple #17
0
 def stop(self):
     if self.mode == 'offline':
         print("The session has ended. Pretending to stow antenna(s)")
         return True
     ac.set_az_el(self.my_ants, 0.00, 18.00)
     return True