Пример #1
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1a", "1f", "1c", "2a", "2h", "1k", "5c", "4g", "4j"]
    #freqs = [950, 950, 1600, 1600, 1600, 1600, 950, 950, 1600]

    #ant_list = ["1a", "1f", "1c", "2a", "2h", "1k", "5c", "4g", "4j", "1h"]
    #freqs = [950, 950, 1600, 1600, 1600, 1600, 950, 950, 1600, 1600]

    ant_list = ["1a", "1f", "5c",   "1c", "2a", "4j",    "2h", "1k", "1h"]
    freqs = [950]*3 + [1600]*3 + [2250]*3

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

    source = "frb180916"
    snap_dada.set_freq_auto(freqs, ant_list)
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    obs_time = 1200
    nhours = 3
    ncycles = 2

    for icycle in range(ncycles):
        for i in range(nhours*3):
            snap_if.tune_if_ants(ant_list)
            utc = snap_dada.start_recording(ant_list, obs_time, 
                    npolout=1, acclen=120, disable_rfi=True)
            snap_dada.mark_obs_for_heimdall(utc)

        time.sleep(1200)
Пример #2
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1f", "1h"]#, "1k", "5c"]
    #freqs =    [950, 1600]#, 1600, 950]

    #ant_list = ["1a",    "4j",    "1k"]
    #freqs = [950] + [1600] + [2250]
    ant_list = ["1f", "5c", "1a", "1c", "2a", "4j", "2h", "1k", "1h"]
    #freqs = [950]*3 + [1600]*3 + [2250]*3
    freqs = [1400] * len(ant_list)

    #ant_list = ["1f", "1k"]
    #freqs = [950, 1600]
    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    source = "j0534+2200"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    snap_dada.set_freq_auto(freqs, ant_list)
    snap_if.tune_if_ants(ant_list)
    obs_time = 1800

    #for i in range(3):
    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    npolout=1,
                                    acclen=40,
                                    disable_rfi=True)
Пример #3
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    # pulsar observation
    antlo_list = ["1aA", "1fA", "1cA", "2aA", "4jA", "2hA", "3dA", "4gA", "1kA", "5cA", "1hA", "2bA",
            "1cB", "1eB", "1gB", "1hB",
            "1kB", "2aB", "2bB", #"2cB",
            "2eB", "2hB", "2jB"]
    ant_list = [antlo[:-1] for antlo in antlo_list]
    los = list(set([antlo[-1] for antlo in antlo_list]))
    
    #freqs = [950]*3 + [1600]*3 + [2250]*3
    #ant_list = ["1f"]
    freqs = [1500]*len(ant_list)


    ata_control.reserve_antennas(list(set(ant_list)))
    atexit.register(ata_control.release_antennas, list(set(ant_list)), True)

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

    time.sleep(30)

    source = "J0332+5434"
    ata_control.make_and_track_ephems(source, list(set(ant_list)))


    ata_control.autotune(ant_list, power_level=-15)
    snap_if.tune_if_antslo(antlo_list)
    obs_time = 600

    utc = snap_dada.start_recording(antlo_list, obs_time, 
            disable_rfi=True, npolout=1, acclen=120)
Пример #4
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

    lo = "c"
    antlo_list = [ant + lo.upper() 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 = [3000] * len(ant_list)
    freqs_c = [1400 + 800] * 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(20)
    ata_control.set_freq(freqs_c, ant_list, lo='c', nofocus=True)
    time.sleep(30)

    source = "3c454.3"
    ata_control.make_and_track_ephems(source, ant_list)
Пример #5
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    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]

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

    #freqs = [1800]*len(ant_list)
    freqs = [3000] * 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 = "m31"
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)
Пример #6
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    ant_list = ["1f", "1h", "1c"]  #, "1k", "5c"]
    freqs = [950, 1300, 1650]  #, 1600, 950]

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

    source = "J0332+5434"
    ata_control.make_and_track_ephems(source, ant_list)

    #ata_control.set_freq(freqs, ant_list)
    snap_dada.set_freq_auto(freqs, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_ants(ant_list)
    obs_time = 300

    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    npolout=1,
                                    acclen=24,
                                    disable_rfi=True)
Пример #7
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    antlo_list = [
        "1cB", "1eB", "1gB", "1hB", "1kB", "2aB", "2bB", "2cB", "2eB", "2hB",
        "2jB", "2lB", "2mB", "3cB", "3dB", "3lB", "4jB", "5bB", "4gB"
    ]

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

    #freqs = [950]*3 + [1600]*3 + [2250]*3
    #ant_list = ["1f"]
    freqs = [3000] * len(ant_list)
    freqs = [6000] * len(ant_list)
    #freqs = [8450]*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='a')
    ata_control.set_freq(freqs, ant_list, lo='b')

    time.sleep(30)

    source = "3c286"
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)
Пример #8
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

    lo = "b"
    antlo_list = [ant + lo.upper() 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 = [3000] * len(ant_list)
    #freqs_c = [3000]*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)
    #ata_control.set_freq(freqs_c, ant_list, lo='c', nofocus=True)
    #time.sleep(30)

    source = "3c295"
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)
Пример #9
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

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

    freqs = [3000] * 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_name = ['3c273', '3c286', '3c295']

    do_autotune = True

    while True:
        for i, source in enumerate(source_name):
            print(i, source)

            if 85 > ata_sources.check_source(source)['el'] > 21:

                ata_control.make_and_track_ephems(source, ant_list)

                if do_autotune:
                    ata_control.autotune(ant_list)
                    snap_if.tune_if_antslo(antlo_list)
                    do_autotune = False

                print("Tuning complete")

                #time.sleep(20)

                obs_time = 610  #925 #seconds

                print("=" * 79)
                print("Starting new obs")
                print("start_record_in_x.py -H 1 2 3 4 -i 10 -n %i" % obs_time)
                os.system("start_record_in_x.py -H 1 2 3 4 -i 10 -n %i" %
                          obs_time)
                print("Recording on sky source %s..." % source)
                time.sleep(obs_time + 20)

                print("=" * 79)
                print("Obs completed")

            else:
                print(
                    str(source) +
                    " is not high (or low) enough to observe, trying again once all others are targeted"
                )
Пример #10
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # multiple source observation
    ant_list = [
        "1c", "1e", "1g", "1h", "1k", "2a", "2b", "2c", "2e", "2h", "2j", "2l",
        "2m", "3c", "3d", "3l", "4j", "5b", "4g"
    ]  #2k left out

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

    freqs = [1500] * 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)

    print("Aquiring source list")

    lista = []

    with open("source_radec.txt") as f:
        source_list = f.readlines()[1:]

        for x in source_list:
            lista.append(x.split(' ')[0])

    source_name = lista

    print(source_name)

    #source_name = source_name[1]   #if you want to just observe one of the sources

    print("source list aquired")

    for i, source in enumerate(source_name):
        print(i, source)

        if ata_sources.check_source(source)['el'] > 17:

            ata_control.make_and_track_ephems(source, ant_list)

            ata_control.autotune(ant_list)
            snap_if.tune_if_antslo(antlo_list)

            obs_time = 30

            #_ = input("press enter to continue")

            utc = snap_dada.start_recording(antlo_list,
                                            obs_time,
                                            disable_rfi=True,
                                            npolout=1,
                                            acclen=120)
        else:
            continue
Пример #11
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

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

    obs_time = 300

    antlo_list = [ant + lo.upper() for ant in ant_list for lo in ['b', 'c']]

    source = "3c48"
    freqs = [1400] * len(ant_list)

    ata_control.set_freq(freqs, ant_list, lo='b')  #, nofocus=True)
    #ata_control.set_freq(freqs_c, ant_list, lo='c')
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)

    print("Tuning complete")

    print("=" * 79)
    print("Starting new obs")
    print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
    os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
    print("Recording...")
    time.sleep(obs_time + 20)

    print("=" * 79)
    print("Source 1 Obs completed")

    #SOURCE 2
    source = "3c84"
    freqs = [1400 + 800] * len(ant_list)

    ata_control.set_freq(freqs, ant_list, lo='b')  #, nofocus=True)
    ata_control.make_and_track_ephems(source, ant_list)

    snap_if.tune_if_antslo(antlo_list)

    print("Tuning complete")

    print("=" * 79)
    print("Starting new obs")
    print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
    os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
    print("Recording...")
    time.sleep(obs_time + 20)

    print("=" * 79)
    print("Obs completed")
Пример #12
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

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

    antlo_list = [ant + lo.upper() for ant in ant_list for lo in ['b', 'c']]

    freqs = [3000] * len(ant_list)
    freqs_c = [3000] * len(ant_list)

    # set LO + focus frequencies
    ata_control.set_freq(freqs, ant_list, lo='b', nofocus=True)
    ata_control.set_freq(freqs_c, ant_list, lo='c')
    time.sleep(30)

    # Track source
    source = "3c84"
    ata_control.make_and_track_ephems(source, ant_list)

    # autotune + IF tuning
    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)

    print("Tuning complete")

    #time.sleep(20)

    xgpu_int_time = 6.5536  #seconds
    obs_time = 600  #seconds

    print("=" * 79)
    print("Setting correlator integration time")
    print("set_postproc_keys.py -s --prefix XTIMEINT=%f" % xgpu_int_time)
    os.system("set_postproc_keys.py -s --prefix XTIMEINT=%f" % xgpu_int_time)

    print("=" * 79)
    print("Starting new obs")
    print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 10 -n %i" % obs_time)
    os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 10 -n %i" % obs_time)
    print("Recording...")
    time.sleep(obs_time + 20)

    print("=" * 79)
    print("Obs completed")
Пример #13
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    ant_list = ["1c", "2a", "2b", "2h"]
    ata_control.reserve_antennas(ant_list)
    freq = 1500
    ata_control.set_freq(freq, ant_list)

    source = "J0534+2200"
    ata_control.make_and_track_ephems(source, ant_list)
    obs_time = 3600
    os.system(ATTEMP_SCRIPT)
    ata_control.release_antennas(ant_list, True)
Пример #14
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1a", "1k", "5c", "1h", "4j", "3d", "4g", "2h", "2a", "2b", "1c"]
    #ant_list = ["1a", "1f", "2a", "2h", "3d", "4g", "1k", "5c", "1h", "2b"]
    ant_list = ['1a', '1f', '1c', '1h',  '2a', '4j', '2h', '3d', '4g', '5c', '2b']

    #freqs = [2000]*len(ant_list)
    freqs = [1500]*len(ant_list)

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

    # observe a pulsar
    #source = "J1935+1616"
    #source = "J0332+5434"
    #ata_control.make_and_track_ephems(source, ant_list)
    #ata_control.autotune(ant_list, power_level=-15)
    #snap_dada.set_freq_auto(freqs, ant_list)
    #snap_if.tune_if_ants(ant_list)
    #utc = snap_dada.start_recording(ant_list, 600,
    #                    npolout=1, acclen=120, disable_rfi=True)


    # now to FRB source
    #source = "frb180916"
    source = "J1934+2153"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list, power_level=-15)
    snap_dada.set_freq_auto(freqs, ant_list)
    snap_if.tune_if_ants(ant_list)
    obs_time = 1200
    nhours = 3
    ncycles = 3

    for icycle in range(ncycles):
        for i in range(nhours*3):
            snap_if.tune_if_ants(ant_list)
            utc = snap_dada.start_recording(ant_list, obs_time, 
                    npolout=1, acclen=120, disable_rfi=True)
            Path('/mnt/buf0/obs/%s/obs.sumall' %utc).touch()
            snap_dada.mark_obs_for_heimdall(utc)


        time.sleep(300)
Пример #15
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

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

    freqs = [1500] * len(ant_list)

    ata_control.reserve_antennas(list(set(ant_list)))
    atexit.register(ata_control.release_antennas, list(set(ant_list)), True)

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

    time.sleep(30)

    source = "J1934+2153"
    ata_control.make_and_track_ephems(source, list(set(ant_list)))

    ata_control.autotune(ant_list, power_level=-15)

    obs_time = 1200

    #Note - ncycles should not be less than nhours, to ensure that the backend
    #can catch up and process the files before filling up disk space
    nhours = 1
    ncycles = 3

    for icycle in range(ncycles):
        for i in range(nhours * 3):
            snap_if.tune_if_antslo(antlo_list)
            utc = snap_dada.start_recording(antlo_list,
                                            obs_time,
                                            npolout=1,
                                            acclen=120,
                                            disable_rfi=True)
            mv_utc_antlo_to_ant(utc)
            Path('/mnt/buf0/obs/%s/obs.sumall' % utc).touch()
            snap_dada.mark_obs_for_heimdall(utc)

        time.sleep(300)
Пример #16
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    """
    ant_list = ["1a","1f","5c"]
    freqs = [950]*3

    ant_list += ["2h", "1k", "1h"]
    freqs += [1300]*3

    ant_list += ["1c", "2a", "4j"]
    freqs += [1650]*3
    """

    #ant_list = ["1f", "2a", "1k", "5c"]
    #freqs = [950, 1600, 1600, 950]
    #ant_list = ["1a", "1f", "1c", "2a", "2b", "2h", "3c",
    #        "1k", "5c", "4g", "4j", "1h"]
    #freqs = [1400]*len(ant_list)

    #ant_list = ["1f", "5c", "1a",   "1c", "2a", "4j",    "2h", "1k", "1h"]
    #freqs = [950]*3 + [1600]*3 + [2250]*3

    ant_list = [
        "1a", "1f", "1c", "2a", "2h", "3d", "5c", "2b", "1h", "4g", "4j"
    ]
    freqs = [1500] * len(ant_list)

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

    source = "J1935+1616"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    snap_dada.set_freq_auto(freqs, ant_list)
    time.sleep(30)

    snap_if.tune_if_ants(ant_list)
    obs_time = 300

    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    npolout=1,
                                    acclen=120,
                                    disable_rfi=True)
Пример #17
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1f", "1h"]#, "1k", "5c"]
    #freqs =    [950, 1600]#, 1600, 950]

    #ant_list = ["1a",    "4j",    "1k"]
    #freqs = [950] + [1600] + [2250]
    ant_list = ["1f", "5c", "1a",   "1c", "2a", "4j",    "2h", "1k", "1h"]
    antlo_list = ["1aA", "1fA", "2aA", "2hA", "3dA", "4gA", "1kA", "5cA", "1hA", "2bA",
            "1cB", "1eB", "1gB", #rfsoc1
#            "2cB", #rfsoc2
            "2eB", "2jB", #"2kB", #rfsoc3
            "2mB", "3cB", #rfsoc4
            "3lB", "5bB", "4jB"  #rfsoc5
            ]

    freq = 1500
    ant_list = [antlo[:-1] for antlo in antlo_list]


    #ant_list = ["1f", "1k"]
    #freqs = [950, 1600]
    ata_control.reserve_antennas(ant_list)
    atexit.register(ata_control.release_antennas, ant_list, False)

    source = "j0534+2200"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)

    #snap_dada.set_freq_auto(freqs, ant_list)
    ata_control.set_freq([freq]*len(ant_list), ant_list, lo='a')
    time.sleep(20)
    ata_control.set_freq([freq]*len(ant_list), ant_list, lo='b')

    #snap_if.tune_if_ants(ant_list)
    snap_if.tune_if_antslo(antlo_list)
    obs_time = 1200

    #for i in range(3):
    utc = snap_dada.start_recording(antlo_list, obs_time, 
            npolout=1, acclen=120, disable_rfi=True)
    
    mv_utc_antlo_to_ant(utc)
Пример #18
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

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

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


    antlo_list = [ant+lo.upper() for ant in ant_list for lo in ['b','c']]


    #freqs_list = np.arange(1500,10000,500)[11:]
    freqs_list = [3000,6000,9000]
    source = "3c84"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    obs_time = 3760

    for freq in freqs_list:
        freqs   = [freq]*len(ant_list)
        freqs_c = [freq]*len(ant_list)

        ata_control.set_freq(freqs, ant_list, lo='b', nofocus=True)
        ata_control.set_freq(freqs_c, ant_list, lo='c')
        time.sleep(30)

        #snap_if.tune_if_antslo(antlo_list)

        print("="*79)
        print("Starting new obs at obsfreq: %f" %freq)
        print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %obs_time)
        os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %obs_time)

        print("Recording for %i seconds..." %obs_time)
        time.sleep(obs_time+20)

        print("="*79)
        print("Obs completed")
def main():

    alist = ['1a', '1c', '2h']  #define antennas list (alist)
    src = 'moon'  #define target source
    #az_off = 5 #define azimuth offset for on-off scan
    #el_off = 5 #define elevation offset for on-off scan
    freq = 1400  #set center frequency in MHz
    duration = 30  #duration of tracking

    #lock out the antennas you will be using
    ac.reserve_antennas(alist)

    #turn on the LNAs if they're not already on
    ac.try_on_lnas(alist)

    #set up with Autotune
    ac.autotune(alist)

    #display starting coordinates so
    #you can verify antennas have moved
    start_radec = ac.getRaDec(alist)
    print("The current coordinates are: ", start_radec)

    #create ephemeris file that tells the antenna
    #where it should be pointing at each timestamp
    ac.make_and_track_ephems(src, alist)

    #set the center frequency
    ac.set_freq(freq, alist)

    #print the coordinates after the antennas have
    #been given the point and track command to ensure
    #that they moved.
    src_radec = ac.getRaDec(alist)
    print("The source coordinates are: ", src_radec)

    #stay on source for the given duration
    time.sleep(duration)

    #unlock the antennas once you're done
    ac.release_antennas(alist, True)
Пример #20
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

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

    obs_time = 300

    antlo_list = [ant + lo.upper() for ant in ant_list for lo in ['b', 'c']]

    freqs = [2200] * len(ant_list)
    freqs_c = [3000] * len(ant_list)

    ata_control.set_freq(freqs, ant_list, lo='b', nofocus=True)
    ata_control.set_freq(freqs_c, ant_list, lo='c')
    time.sleep(30)

    source = "3c295"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)

    snap_if.tune_if_antslo(antlo_list)

    obs_time = 650

    print("=" * 79)
    print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
    os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)

    print("Recording for %i seconds..." % obs_time)
    time.sleep(obs_time + 20)

    for i in range(10):
        source = "3c345"
        ata_control.make_and_track_ephems(source, ant_list)
        time.sleep(20)  #make sure delay engine is updated
        print("=" * 79)
        print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
        os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %
                  obs_time)

        print("Recording for %i seconds..." % obs_time)
        time.sleep(obs_time + 20)

        source = "3c295"
        ata_control.make_and_track_ephems(source, ant_list)
        time.sleep(20)  #make sure delay engine is updated
        print("=" * 79)
        print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" % obs_time)
        os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %
                  obs_time)

        print("Recording for %i seconds..." % obs_time)
        time.sleep(obs_time + 20)
Пример #21
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation

    ant_list = ["3c"]

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

    source = "J1935+1616"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    snap_if.tune_if_ants(ant_list)

    obs_time = 600

    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    npolout=1,
                                    acclen=120,
                                    disable_rfi=True)
Пример #22
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

    #freqs = [950]*3 + [1600]*3 + [2250]*3
    #ant_list = ["1f"]
    freqs = [1500] * len(ant_list)
    #freqs = [750]*len(ant_list)

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

    #ata_control.set_freq(freqs, ant_list)
    snap_dada.set_freq_auto(freqs, ant_list)
    print("Done")
    time.sleep(30)

    source = "J0332+5434"
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list, power_level=-15)
    snap_if.tune_if_ants(ant_list)
    obs_time = 1200

    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    disable_rfi=True,
                                    npolout=1,
                                    acclen=120)
Пример #23
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

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

    lo = "b"
    antlo_list = [ant + lo.upper() 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 = [4000] * 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(20)
    #ata_control.set_freq(freqs_c, ant_list, lo='c')
    #time.sleep(30)

    cal_source = '3c273'
    source = "virgo"

    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list)
    snap_if.tune_if_antslo(antlo_list)

    os.system("start_record_in_x.py -H 1 2 3 4 -i 5 -n 3600")
    time.sleep(3600)

    ata_control.make_and_track_ephems(cal_source, ant_list)
    os.system("start_record_in_x.py -H 1 2 3 4 -i 5 -n 180")
    time.sleep(180)

    for i in range(10):
        ata_control.make_and_track_ephems(source, ant_list)
        os.system("start_record_in_x.py -H 1 2 3 4 -i 5 -n 1800")
        time.sleep(1800)

        ata_control.make_and_track_ephems(cal_source, ant_list)
        os.system("start_record_in_x.py -H 1 2 3 4 -i 5 -n 180")
        time.sleep(180)
Пример #24
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    ant_list = ["1a", "1f", "1h", "1c", "2a", "2h", "1k", "5c", "4j", "4g"]
    freqs = [950, 950, 1600, 1600, 1600, 1600, 1600, 950, 1600, 950]

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

    source = "J0008+6829"
    ata_control.make_and_track_ephems(source, ant_list)

    snap_dada.set_freq_auto(freqs, ant_list)
    ata_control.autotune(ant_list)
    os.system(ATTEMP_SCRIPT)
    obs_time = 1200
    nhours = 3

    for i in range(int(nhours * 3)):
        utc = snap_dada.start_recording(ant_list,
                                        obs_time,
                                        npolout=1,
                                        acclen=120,
                                        disable_rfi=True)
Пример #25
0
def theMainFunction(various_options):
    #ant_list = ['1a','2b']
    logger = logger_defaults.getModuleLogger(__name__)
    try:
        ata_control.reserve_antennas(ant_list)
    except:
        logger.exception("can't reserve antennas")
        raise

    try:
        #there is no guarantee that the antenna LNA's are on. Check it and if needed turn them on
        ata_control.try_on_lnas(ant_list)

        #point the antenna to the source after generation the ephemeris. This function may be 
        #insufficient for some non-standard targets. notify me (J.S. Kulpa) if it needs expanding
        ata_control.make_and_track_ephems(source, ant_list );

        #autotune the pam values
        ata_control.autotune(ant_list)

        #set LO A and feed focus
        ata_control.set_freq(freq, full_ant_str)

        #snap0-2 only:
        #if using RFSwitch, switch to those antennas. In general, using RFswitch means that you should use also 
        #ant_groups = ata_control.get_snap_dictionary(ant_list)
        #so you know which antennas are hooked up where andin general use only one ant from each group at a time
        #and build cirrent_ant_list based on ant_groups
        #ata_control.rf_switch_thread(current_ant_list)
        #also if using snaps, you should probably call
        #attendict = snap_observations.setRMS(ant_dict,fpga_file,default_rms)
        #cobsid = snap_observations.record_same(...)
        #obs_db.updateAttenVals(cobsid,attendict)
        #obs_db.markRecordingsOK([cobsid])
        #and that's it
        #but let's get away from snap0-2 from now on, so you are free to ignore it completely

        #grouping recordings into observation set
        #if you want to create new observation set, call:
        #obs_set_id = obs_db.getNewObsSetID("THIS IS MY OBS SET DESCRIPTION!")
        #if you already have an exiting observation set, make sure it does exist:
        #obs_db.getSetData(obs_set_id)
        #if it is a single-shot, leave it as none
        #obs_set_id=None

        #initializing the new recording for backend and type see:
        #ATAobs.obs_common.getRecType and ATAobs.obs_common.getRecBackend
        recid = obs_db.initRecording(freq,obstype,backend,desc,obsuser,obs_set_id)
        #now, we populate the second table with each antenna pointing
        #most likely az_ and el_offset should be set to 0
        #the last one is set to True to fetch pam settings to the db
        obs_db.initAntennasTable(recid,ant_list,source,az_offset,el_offset,True)
        #we are about to start the recordings, let's note what the starting time is
        obs_db.startRecording(recid)
        #here you should put your function call to do the recording and wait for it to be complete
        #if you are calculating the signal power, in the meantime of afterwards tou can you can call:
        obs_db.updateRMSVals(recid,rmsDict)
        #where rmsdict looks like that:
        #rmsDict={'1a':{'rmsx': 15.2,'rmsy':16.231}}
        #or
        #rmsDict={'1a':{'rmsx': 15.2,'rmsy':16.231},'2b':{'rmsx': 15.2,'rmsy':16.231}}
        #ok, measurements are done, so:
        obs_db.stopRecording(recid)
        #now, if it was a single shot or measurements in the set are independent from each other, call
        obs_db.markRecordingsOK([recid])
        #but if this is a set of recordings (e.g. On-Off where a you need several recordings close in time
        #to finish successfully, you should wait and populate a list of recordings, then call
        #obs_db.markRecordingsOK(all_that_recids)

    except:
        #do whatever you want if something crashed, Yes, some functions can raise the exception
    finally:
        #does not matter if that succeeded or not, you should always release the antennas
        # the do_park bool determines if the antennas should go back do default position
        # for the debugging process, it's better to let them be, because you won't waste time
        # to re-acquire the source, but in normal operation you should by default part the antennas
        ata_control.release_antennas(ant_list, do_park)
Пример #26
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    """
    # moon observation
    az_offset = 0
    el_offset = 20
    freqs = np.arange(1000, 11000, 500)
    ant_list = ['1a', '1c', '1f', '2a', '2b', '2h', '4g', '5c']
    ata_control.reserve_antennas(ant_list)
    obs_time = 30
    source = "moon"
    ata_control.create_ephems2(source, az_offset, el_offset)
    for i in range(1):
        for freq in freqs:
            print (freq)
            ata_control.set_freq(freq, ant_list)
            os.system(ATTEMP_SCRIPT)

            # record on
            ata_control.point_ants2(source, "on", ant_list)
            ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time, 
                    acclen=160*80)
            ant_list.remove('rfi')

            # record off
            ata_control.point_ants2(source, "off", ant_list)
            ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time,
                    acclen=160*80)
            ant_list.remove('rfi')
    """

    # Casa observation
    az_offset = 0
    el_offset = 10
    freqs = np.arange(1000, 11000, 500)
    ant_list = ['1a', '1c', '2a', '2b', '2h', '4g']
    ata_control.reserve_antennas(ant_list)
    """
    obs_time = 30
    source = "casa"
    ata_control.create_ephems2(source, az_offset, el_offset)
    for i in range(1):
        for freq in freqs:
            print (freq)
            ata_control.set_freq(freq, ant_list)
            os.system(ATTEMP_SCRIPT)

            # record on
            ata_control.point_ants2(source, "on", ant_list)
            #ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time, 
                    acclen=160*80)
            #ant_list.remove('rfi')

            # record off
            ata_control.point_ants2(source, "off", ant_list)
            #ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time,
                    acclen=160*80)
            #ant_list.remove('rfi')
    """

    
    # Magnetar observation
    ant_list = ["1c", "2a", "2b", "2h"]
    freq = 1600
    ata_control.set_freq(freq, ant_list)

    source = "J1934+2153"
    ata_control.make_and_track_ephems(source, ant_list)
    obs_time = 3600
    os.system(ATTEMP_SCRIPT)

    for i in range(7):
        ata_control.make_and_track_ephems(source, ant_list)
        utc = snap_dada.start_recording(ant_list, obs_time)
        print (utc)


    # casa observation
    az_offset = 0
    el_offset = 10
    freqs = np.arange(1000, 11000, 500)
    ant_list = ['1a',  '1c', '2a', '2b', '2h', '4g']
    obs_time = 30
    source = "casa"
    ata_control.create_ephems2(source, az_offset, el_offset)
    for i in range(1):
        for freq in freqs:
            print (freq)
            ata_control.set_freq(freq, ant_list)
            os.system(ATTEMP_SCRIPT)

            # record on
            ata_control.point_ants2(source, "on", ant_list)
            #ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time, 
                    acclen=160*80)
            #ant_list.remove('rfi')

            # record off
            ata_control.point_ants2(source, "off", ant_list)
            #ant_list.append('rfi')
            utc = snap_dada.start_recording(ant_list, obs_time,
                    acclen=160*80)
            #ant_list.remove('rfi')
    ant_list = ['1a',  '1c', '2a', '2b', '2h', '4g']
    ata_control.release_antennas(ant_list, True)
Пример #27
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1a",  "1c", "2a",
    #        "2h",  "4g", "1k", "5c"]

    # 4g and 1h for GNURADIO
    #ant_list = ["1a", "1f", "1c", "1h", "2a",  "1k", "5c", "4g"]
    #freqs = [950, 950, 1600, 1600, 1600, 1600, 950, 950]

    # LO b
    #sub1  = ["1f", "5c"]
    #freq1 = [950]

    # LO c
    #sub2  = ["2h", "1k", "1h"]
    #freq2 = [1300]

    # LO a
    #sub3  = ["1c", "2a", "4j"]
    #freq3 = [1650]

    #ant_list = sub1 + sub2 + sub3
    #freqs = freq1*len(sub1) + freq2*len(sub2) + freq3*len(sub3)

    #ant_list = ["1f", "5c", "1a",    "1c", "2a", "4j",    "2h", "1k", "1h"]
    #freqs = [950]*3 + [1600]*3 + [2250]*3

    ant_list = ["1f", "5c", "1a", "1c", "2a", "4j", "2h", "1k", "1h"]
    freqs = [950] * 3 + [1600] * 3 + [2250] * 3

    #ant_list = ["1f", "2a", "1k", "5c"]
    #freqs = [950, 1600, 1600, 950]

    snap_dada.set_freq_auto(freqs, ant_list)

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

    source = "J1935+1616"
    ata_control.make_and_track_ephems(source, ant_list)

    ata_control.autotune(ant_list)
    snap_if.tune_if_ants(ant_list)
    utc = snap_dada.start_recording(ant_list,
                                    600,
                                    npolout=1,
                                    acclen=120,
                                    disable_rfi=True)

    source = "J1934+2153"
    ata_control.make_and_track_ephems(source, ant_list)

    obs_time = 1200
    nhours = 3

    for i in range(2):
        for i in range(int(nhours * 3)):
            snap_if.tune_if_ants(ant_list)
            utc = snap_dada.start_recording(ant_list,
                                            obs_time,
                                            npolout=1,
                                            acclen=120,
                                            disable_rfi=True)
            snap_dada.mark_obs_for_heimdall(utc)
        print("Now sleeping for 20 minutes")
        time.sleep(1200)
Пример #28
0
def main():
    logger = logger_defaults.getProgramLogger("observe", loglevel=logging.INFO)

    # pulsar observation
    #ant_list = ["1a",  "1c", "2a",
    #        "2h",  "4g", "1k", "5c"]

    # 4g and 1h for GNURADIO
    #ant_list = ["1a", "1f", "1c", "1h", "2a",  "1k", "5c", "4g"]
    #freqs = [950, 950, 1600, 1600, 1600, 1600, 950, 950]

    # LO b
    #sub1  = ["1f", "5c"]
    #freq1 = [950]

    # LO c
    #sub2  = ["2h", "1k", "1h"]
    #freq2 = [1300]

    # LO a
    #sub3  = ["1c", "2a", "4j"]
    #freq3 = [1650]

    #ant_list = sub1 + sub2 + sub3
    #freqs = freq1*len(sub1) + freq2*len(sub2) + freq3*len(sub3)

    #ant_list = ["1f", "5c", "1a",    "1c", "2a", "4j",    "2h", "1k", "1h"]
    #freqs = [950]*3 + [1600]*3 + [2250]*3

    #ant_list = ["1a", "1k", "5c", "1h", "4j", "3d", "4g", "2h", "2a", "1c", "2b"]
    ant_list = [
        "1a", "1f", "1c", "2a", "2h", "3d", "1k", "5c", "2b", "4g", "4j"
    ]
    freqs = [1500] * len(ant_list)

    #ant_list = ["1f", "2a", "1k", "5c"]
    #freqs = [950, 1600, 1600, 950]

    snap_dada.set_freq_auto(freqs, ant_list)

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

    #source = "J1935+1616"
    #ata_control.make_and_track_ephems(source, ant_list)

    #ata_control.autotune(ant_list)
    #snap_if.tune_if_ants(ant_list)
    #utc = snap_dada.start_recording(ant_list, 600,
    #                    npolout=1, acclen=120, disable_rfi=True)

    source = "J0534+2200"
    ata_control.make_and_track_ephems(source, ant_list)
    ata_control.autotune(ant_list, power_level=-15)

    obs_time = 1200

    snap_if.tune_if_ants(ant_list)
    utc = snap_dada.start_recording(ant_list,
                                    obs_time,
                                    npolout=1,
                                    acclen=120,
                                    disable_rfi=True)
    snap_dada.mark_obs_for_heimdall(utc)
    Path('/mnt/buf0/obs/%s/obs.sumall' % utc).touch()
Пример #29
0
def do_snap_waterfall(ant_str,freq, source, fpga_file, waterfalllen, do_park = False):

    logger = logger_defaults.getModuleLogger(__name__)

    ant_list = snap_array_helpers.string_to_array(ant_str);
    full_ant_str = snap_array_helpers.array_to_string(ant_list)

    if waterfalllen < 2:
        logger.error('waterfall len too short')
        raise RuntimeError('waterfall len too short')

    try:
        ant_groups = ata_control.get_snap_dictionary(ant_list)
    except:
        logstr = "unable to match antennas with snaps"
        logger.exception(logstr)
        raise
    
    if len(ant_list) != 1:
        logger.error('only 1 antenna allowed')
        raise RuntimeError('only 1 antenna allowed')

    if len(ant_groups) != 1:
        logger.error('only 1 antenna allowed')
        raise RuntimeError('only 1 antenna allowed')

    ant_dict = {}
    for csnap in ant_groups:
        if len(ant_groups[csnap]) != 1:
            logger.error('only one antenna per snap allowed, got {}: {}'.format(csnap,",".join(ant_groups[csnap])))
            raise RuntimeError("only 1 antenna per snap allowed")

        snaphost = csnap
        currAnt = ant_groups[csnap][0]
    
    logger.info("Reserving antennas %s in bfa antgroup" % full_ant_str)
    try:
        ata_control.reserve_antennas(ant_list)
    except:
        logstr = "unable to reserve the antennas"
        logger.exception(logstr)
        raise

    logger.info("starting plotting")
    try:
        ata_control.try_on_lna(currAnt)
        source_status = ata_positions.ATAPositions.getFirstInListThatIsUp([source])
        if not source_status:
            errormsg = 'source {} is not up (or too close to sun/moon)... terminating observation set {}'.format(source,obs_set_id)
            logger.error(errormsg)
            raise RuntimeError(errormsg)
        if source_status['status'] != 'up':
            if source_status['status'] == 'next_up':
                errormsg = 'source {} is not up (or too close to sun/moon). Will be up in {} minutes. Terminating observation set {}'.format(source,source_status['minutes'],obs_set_id)
            else:
                errormsg = 'source {} is not up (or too close to sun/moon)... terminating observation set {}'.format(source,obs_set_id)
            logger.error(errormsg)
            raise RuntimeError(errormsg)


        logger.info("pointing the antennas")
        ata_control.make_and_track_ephems(source, currAnt );
        logger.info("autotuning")
        ata_control.autotune(currAnt)
        ata_control.rf_switch_thread([currAnt])

        logger.info("changing to frequency {}".format(freq))
        ata_control.set_freq(freq, currAnt)
        snap_recorder.setSnapRMS(snaphost,currAnt,fpga_file,default_rms)
        snap_plot.plotWaterfall(snaphost, waterfalllen, freq,fpga_file)

    except KeyboardInterrupt:
        logger.info("Keyboard interuption")
    except Exception as e:
        logger.exception("something went wrong")
        errmsg = "Finishing recording - failed: {}".format(e)
        raise
    finally: 
        logger.info("shutting down")
        ata_control.release_antennas(ant_list, do_park)
Пример #30
0
def main():
    logger = logger_defaults.getProgramLogger("observe", 
            loglevel=logging.INFO)

    # multiple source observation
    ant_list = ["1c", "1e", "1g", "1h", "1k", "2a", "2b", "2c",
                "2e", "2h", "2j", "2l", "2k", "2m", "3c", "3d",
                "3l", "4j", "5b", "4g"] 
                                        
    antlo_list = [ant+lo for ant in ant_list for lo in ['B', 'C']]
    
    
    freqs = [6000]*len(ant_list)
    freqs_c = [3000]*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')
    ata_control.set_freq(freqs_c, ant_list, lo='c', nofocus=True)

    #time.sleep(30)
    
    print("Aquiring source list")
    
    lista = []
    
    with open("source_radec_ant_cal.txt") as f:
        source_list = f.readlines()[1:]

        for x in source_list:
            lista.append(x.split(' ')[0])

    source_name = lista

    print(source_name)

    do_autotune = True
    
    while True:
        for i, source in enumerate(source_name):
            print(i, source)

            if 85 > ata_sources.check_source(source)['el'] > 21:
      
                ata_control.make_and_track_ephems(source, ant_list)

                if do_autotune:
                    ata_control.autotune(ant_list)
                    snap_if.tune_if_antslo(antlo_list)
                    do_autotune = False
                

                print("Tuning complete")

                #time.sleep(20)

                obs_time = 930 #610 #925 #seconds

                print("="*79)
                print("Starting new obs")
                print("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %obs_time)
                os.system("start_record_in_x.py -H 1 2 3 4 5 6 7 8 -i 15 -n %i" %obs_time)
                print("Recording on sky source %s..." %source)
                time.sleep(obs_time+15+20)

                print("="*79)
                print("Obs completed")
            
            else:
                print(str(source) + " is not high (or low) enough to observe, trying again once all others are targeted")