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)
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)
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)
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)
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)
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)
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)
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)
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" )
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
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")
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")
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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")