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)
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')
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)
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()
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?")
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)
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
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)
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)
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)
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)
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)
def stop(self): print("The session has ended. Stowing antenna(s)") ac.set_az_el(self.my_ants, 0.00, 18.00) return True
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")
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)
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)
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