def main(): usage = "Usage: %prog [options]\n" usage += "\tCreates an image of the 408 MHz sky (annoted with sources) that includes contours for the MWA primary beam\n" usage += "\tThe beam is monochromatic, and is the sum of the XX and YY beams\n" usage += "\tThe date/time (UT) and beamformer delays must be specified\n" usage += "\tBeamformer delays should be separated by commas\n" usage += "\tFrequency is in MHz, or a coarse channel number (can also be comma-separated list)\n" usage += "\tDefault is to plot centered on RA=0, but if -r/--racenter, will center on LST\n" usage += "\tContours will be plotted at %s of the peak\n" % contourlevels usage += "\tExample:\tpython primarybeammap.py -c 98 --beamformer=1,0,0,0,3,3,3,3,6,6,6,6,9,9,9,8 \n\n" parser = OptionParser(usage=usage) parser.add_option('-c', '--channel', dest='channel', default=None, help='Center channel(s) of observation') parser.add_option('-f', '--frequency', dest='frequency', default=None, help='Center frequency(s) of observation [MHz]') parser.add_option('-b', '--beamformer', dest='delays', default="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", help='16 beamformer delays separated by commas') parser.add_option('-D', '--date', dest='date', default=None, help='UT Date') parser.add_option('-t', '--time', dest='time', default=None, help='UT Time') parser.add_option('-g', '--gps', dest='gps', default=None, help='GPS time') parser.add_option( '-m', '--model', dest='model', default='analytic', help='beam model: analytic, advanced, full_EE, full_EE_AAVS05') parser.add_option( '-p', '--plottype', dest='plottype', default='beamsky', help='Type of plot: all, beam, sky, beamsky, beamsky_scaled') parser.add_option('--title', dest='title', default=None, help='Plot title') parser.add_option('-e', '--ext', dest='extension', default='png', help='Plot extension [default=%default]') parser.add_option('-r', '--racenter', action="store_true", dest="center", default=False, help="Center on LST?") parser.add_option('-s', '--sunline', dest="sunline", default="1", choices=['0', '1'], help="Plot sun [default=%default]") parser.add_option('--tle', dest='tle', default=None, help='Satellite TLE file') parser.add_option('--duration', dest='duration', default=300, type=int, help='Duration for plotting satellite track') parser.add_option('--size', dest='size', default=1000, type=int, help='Resolution of created beam file') parser.add_option('--dir', dest='dir', default=None, help='output directory') parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Increase verbosity of output") (options, args) = parser.parse_args() if options.dir is not None: mkdir_p(options.dir) if options.frequency is not None: if (',' in options.frequency): try: frequency = list(map(float, options.frequency.split(','))) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: try: frequency = float(options.frequency) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: frequency = options.frequency if options.channel is not None: if (',' in options.channel): try: channel = list(map(float, options.channel.split(','))) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: try: channel = float(options.channel) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: channel = options.channel if options.delays is not None: try: if (',' in options.delays): delays = list(map(int, options.delays.split(','))) else: delays = 16 * [int(options.delays)] except ValueError: logger.error("Could not parse beamformer delays %s\n" % options.delays) sys.exit(1) else: delays = options.delays extension = options.extension plottype = options.plottype model = options.model if model not in [ 'analytic', 'advanced', 'full_EE', 'full_EE_AAVS05', '2016', '2015', '2014' ]: logger.error("Model %s not found\n" % model) sys.exit(1) if plottype not in ['all', 'beam', 'sky', 'beamsky', 'beamsky_scaled']: logger.error("Plot type %s not found\n" % plottype) sys.exit(1) gpsstring = options.gps gps = int(gpsstring) if (len(delays) < 16): logger.error("Must supply 1 or 16 delays\n") sys.exit(1) if (frequency is None): if (channel is not None): if (isinstance(channel, list)): frequency = list( 1.28 * numpy.array(channel) ) # multiplication by 1e6 is done later at line Convert to Hz else: frequency = 1.28 * channel # multiplication by 1e6 is done later at line Convert to Hz if frequency is None: logger.error("Must supply frequency or channel\n") sys.exit(1) if (isinstance(frequency, int) or isinstance(frequency, float)): frequency = [frequency] frequency = numpy.array(frequency) * 1e6 # Convert to Hz for freq in frequency: print('frequency', freq) result = make_primarybeammap(gps, delays, freq, model=model, plottype=plottype, extension=extension, resolution=options.size, directory=options.dir) if (result is not None): print("Wrote %s" % result)
# options.delays=[int(x) for x in options.delays.split(',')] print "delays from metafits file %s are %s" % (options.metafits, options.delays) except Exception, e: logger.error('Unable to parse beamformer delays %s: %s' % (options.delays, e)) sys.exit(1) if options.delays is not None: try: if (',' in options.delays): delays = map(int, options.delays.split(',')) else: delays = 16 * [int(options.delays)] except ValueError: logger.error("Could not parse beamformer delays %s\n" % options.delays) sys.exit(1) else: delays = options.delays if options.gps != 0: try: gps = int(options.gps) except ValueError: logger.error('Invalid gps parameter %s, must be integer seconds' % options.gps) sys.exit(1) else: if options.metafits is not None: logger.warning( "Will try to use first 10 digits of the metafits file name %s"
def main(): usage = "Usage: %prog [options]\n" usage += "\tCalculates MWA sensitivity for given observing parameters\n" usage += "\tCreates an image of the 408 MHz sky (annoted with sources) that includes contours for the MWA primary beam\n" usage += "\tThe beam is monochromatic, and is the sum of the XX and YY beams\n" usage += "\tThe beamformer delays must be specified\n" usage += "\tBeamformer delays should be separated by commas\n" usage += "\tFrequency is in MHz, or a coarse channel number (can also be comma-separated list)\n" usage += "\tDefault is to plot centered on RA=0, but if -r/--racenter, will center on LST\n" usage += "\tContours will be plotted at %s of the peak\n" % contourlevels usage += "\tExample:\tpython ./mwa_sensitivity.py -c 145 --model 2016 --pointing_za_deg 5 --pointing_az_deg 0 --antnum=60 --inttime=120 --trcv_type=trcv_from_skymodel_with_err -p all --gridpoint=0\n\n" parser = OptionParser(usage=usage) # parser.add_option('-d', '--datetimestring', dest="datetimestring", default=None, # help="Compute for <DATETIMESTRING> (YYYYMMDDhhmmss)", # metavar="DATETIMESTRING") parser.add_option('-c', '--channel', '--freq_cc', dest='channel', default=None, help='Center channel(s) of observation') parser.add_option('-f', '--frequency', '--freq_mhz', dest='frequency', default=None, help='Center frequency(s) of observation [MHz]') parser.add_option( '-b', '--beamformer', '--delays', dest='delays', default="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", # default zenith pointing help='16 beamformer delays separated by commas') parser.add_option('--metafits', dest='metafits', default=None, help="FITS file to get delays from (can be metafits)") # parser.add_option('-D', '--date', dest='date', default=None, help='UT Date') # parser.add_option('-t', '--time', dest='time', default=None, help='UT Time') parser.add_option('-g', '--gps', '--obsid', dest='gps', default=0, help='GPS time') parser.add_option( '-m', '--model', dest='model', default='analytic', help= 'beam model: analytic (2014), advanced (2015), full_EE (2016), full_EE_AAVS05' ) parser.add_option( '-p', '--plottype', dest='plottype', default='beamsky', help='Type of plot: all, beam, sky, beamsky, beamsky_scaled') parser.add_option('--title', dest='title', default=None, help='Plot title') parser.add_option('-e', '--ext', dest='extension', default='png', help='Plot extension [default=%default]') # parser.add_option('-r','--racenter',action="store_true",dest="center",default=False,help="Center on LST?") parser.add_option('-n', '--no_zenith_norm', action="store_false", dest="zenithnorm", default=True, help="Normalise to zenith (default True)") parser.add_option('--size', dest='size', default=1000, type=int, help='Resolution of created beam file') parser.add_option('--dir', dest='dir', default=None, help='output directory') parser.add_option('--pointing_za_deg', '--za', dest='pointing_za_deg', default=0.00, help='Pointing za [deg]', type=float) parser.add_option('--pointing_az_deg', '--az', dest='pointing_az_deg', default=0.00, help='Pointing az [deg]', type=float) parser.add_option('--pointing_elev_deg', '--elev', dest='pointing_elev_deg', default=90.00, help='Pointing elevation [deg]', type=float) parser.add_option('-r', '--t_rcv', dest='t_rcv', default=0, help='Receiver noise temperature', type=float) parser.add_option('--gridpoint', dest='gridpoint', default=-1, help='Gridpoint number', type=int) # types : # trcv_angelica_data_vs_time : Use T_rcv from lightcurve fits see RED curve in Ill.25 haslam_vs_angelica.odt for details # trcv_angelica_data_vs_time_powerlawfit : Use T_rcv from lightcurve fit and fit of power law to T_rcv(freq) see RED curve in Ill.24 haslam_vs_angelica.odt for d # trcv_haslam_data_vs_model : Use T_rcv from data vs. model see GREEN in Ill.25 haslam_vs_angelica.odt for details # trcv_from_skymodel_with_err : Use T_rcv as calculated with errors fitted with curve see eda_lightcurve_and_trcv.odt Ill. 13 parser.add_option( '--trcv_type', dest='trcv_type', default='trcv_from_skymodel_with_err', help= "Source of T_rcv possible values = value, lightcurve201612 (default), lightcurve_20160703_cubic, lightcurve_20160703_polfit, budi, data_vs_model_201612, trcv_angelica_data_vs_time, trcv_angelica_data_vs_time_powerlawfit, trcv_from_skymodel_with_err" ) # parser.add_option('--trcv_type',dest='trcv_type',default='value',help="Source of T_rcv possible values = value, lightcurve201612 (default), lightcurve_20160703_cubic, lightcurve_20160703_polfit, budi, data_vs_model_201612, trcv_angelica_data_vs_time, trcv_angelica_data_vs_time_powerlawfit, trcv_from_skymodel_with_err") parser.add_option( '--db', action="store_true", dest="use_db", default=False, help="Use MWA database to get gridpoint of a given obsID ?") parser.add_option('--add_sources', action="store_true", dest="add_sources", default=False, help="Overplot sources on the beam image") parser.add_option('-x', '--outsens_file', dest='out_sensitivity_file', default='eda_sensitivity', help='Output filename for sensitivity') parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Increase verbosity of output") # parameters for sensitivity calculations : parser.add_option( '-i', '--inttime', dest='inttime', default=120, type=float, help='Integration time to calculate sensitivity for [default % sec]') parser.add_option( '--bandwidth', dest='bandwidth', default=1280000.00, type=float, help='Bandwidth to calculate sensitivity for [default % Hz]') parser.add_option('-a', '--antnum', dest='antnum', default=128, type=int, help='Number of tiles [default %]') (options, args) = parser.parse_args() # datetimestring = options.datetimestring if options.pointing_elev_deg != 90: options.pointing_za_deg = 90 - options.pointing_elev_deg if options.dir is not None: mkdir_p(options.dir) if options.frequency is not None: if (',' in options.frequency): try: frequency = map(float, options.frequency.split(',')) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: try: frequency = float(options.frequency) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: frequency = options.frequency if options.channel is not None: if (',' in options.channel): try: channel = map(float, options.channel.split(',')) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: try: channel = float(options.channel) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: channel = options.channel if options.metafits is not None: try: f = pyfits.open(options.metafits) except Exception, e: logger.error('Unable to open FITS file %s: %s' % (options.metafits, e)) sys.exit(1) if 'DELAYS' not in f[0].header.keys(): logger.error('Cannot find DELAYS in %s' % options.metafits) sys.exit(1) options.delays = f[0].header['DELAYS'] try: # options.delays=[int(x) for x in options.delays.split(',')] print "delays from metafits file %s are %s" % (options.metafits, options.delays) except Exception, e: logger.error('Unable to parse beamformer delays %s: %s' % (options.delays, e)) sys.exit(1)
def main(): usage = "Usage: %prog [options]\n" usage += "\tCalculates MWA sensitivity for given observing parameters\n" usage += "\tCreates an image of the 408 MHz sky (annoted with sources) that includes contours for the MWA primary beam\n" usage += "\tThe beam is monochromatic, and is the sum of the XX and YY beams\n" usage += "\tThe beamformer delays must be specified\n" usage += "\tBeamformer delays should be separated by commas\n" usage += "\tFrequency is in MHz, or a coarse channel number (can also be comma-separated list)\n" usage += "\tDefault is to plot centered on RA=0, but if -r/--racenter, will center on LST\n" usage += "\tContours will be plotted at %s of the peak\n" % contourlevels usage += "\tExample:\tpython ./mwa_sensitivity.py -c 145 --model 2016 --pointing_za_deg 5 --pointing_az_deg 0 --antnum=60 --inttime=120 --trcv_type=trcv_from_skymodel_with_err -p all --gridpoint=0\n\n" parser = OptionParser(usage=usage) # parser.add_option('-d', '--datetimestring', dest="datetimestring", default=None, # help="Compute for <DATETIMESTRING> (YYYYMMDDhhmmss)", # metavar="DATETIMESTRING") parser.add_option('-c', '--channel', '--freq_cc', dest='channel', default=None, help='Center channel(s) of observation') parser.add_option('-f', '--frequency', '--freq_mhz', dest='frequency', default=None, help='Center frequency(s) of observation [MHz]') parser.add_option( '-b', '--beamformer', '--delays', dest='delays', default="0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", # default zenith pointing help='16 beamformer delays separated by commas') parser.add_option('--metafits', dest='metafits', default=None, help="FITS file to get delays from (can be metafits)") # parser.add_option('-D', '--date', dest='date', default=None, help='UT Date') # parser.add_option('-t', '--time', dest='time', default=None, help='UT Time') parser.add_option('-g', '--gps', '--obsid', dest='gps', default=0, help='GPS time') parser.add_option( '-m', '--model', dest='model', default='analytic', help= 'beam model: analytic (2014), advanced (2015), full_EE (2016), full_EE_AAVS05' ) parser.add_option( '-p', '--plottype', dest='plottype', default='beamsky', help='Type of plot: all, beam, sky, beamsky, beamsky_scaled') parser.add_option('--title', dest='title', default=None, help='Plot title') parser.add_option('-e', '--ext', dest='extension', default='png', help='Plot extension [default=%default]') # parser.add_option('-r','--racenter',action="store_true",dest="center",default=False,help="Center on LST?") parser.add_option('-n', '--no_zenith_norm', action="store_false", dest="zenithnorm", default=True, help="Normalise to zenith (default True)") parser.add_option('--size', dest='size', default=1000, type=int, help='Resolution of created beam file') parser.add_option('--dir', dest='dir', default=None, help='output directory') parser.add_option('--pointing_za_deg', '--za', dest='pointing_za_deg', default=0.00, help='Pointing za [deg]', type=float) parser.add_option('--pointing_az_deg', '--az', dest='pointing_az_deg', default=0.00, help='Pointing az [deg]', type=float) parser.add_option('--pointing_elev_deg', '--elev', dest='pointing_elev_deg', default=90.00, help='Pointing elevation [deg]', type=float) parser.add_option('-r', '--t_rcv', dest='t_rcv', default=0, help='Receiver noise temperature', type=float) parser.add_option('--gridpoint', dest='gridpoint', default=-1, help='Gridpoint number', type=int) # types : # trcv_angelica_data_vs_time : Use T_rcv from lightcurve fits see RED curve in Ill.25 haslam_vs_angelica.odt for details # trcv_angelica_data_vs_time_powerlawfit : Use T_rcv from lightcurve fit and fit of power law to T_rcv(freq) see RED curve in Ill.24 haslam_vs_angelica.odt for d # trcv_haslam_data_vs_model : Use T_rcv from data vs. model see GREEN in Ill.25 haslam_vs_angelica.odt for details # trcv_from_skymodel_with_err : Use T_rcv as calculated with errors fitted with curve see eda_lightcurve_and_trcv.odt Ill. 13 parser.add_option( '--trcv_type', dest='trcv_type', default='trcv_from_skymodel_with_err', help= "Source of T_rcv possible values = value, lightcurve201612 (default), lightcurve_20160703_cubic, lightcurve_20160703_polfit, budi, data_vs_model_201612, trcv_angelica_data_vs_time, trcv_angelica_data_vs_time_powerlawfit, trcv_from_skymodel_with_err" ) # parser.add_option('--trcv_type',dest='trcv_type',default='value',help="Source of T_rcv possible values = value, lightcurve201612 (default), lightcurve_20160703_cubic, lightcurve_20160703_polfit, budi, data_vs_model_201612, trcv_angelica_data_vs_time, trcv_angelica_data_vs_time_powerlawfit, trcv_from_skymodel_with_err") parser.add_option( '--db', action="store_true", dest="use_db", default=False, help="Use MWA database to get gridpoint of a given obsID ?") parser.add_option('--add_sources', action="store_true", dest="add_sources", default=False, help="Overplot sources on the beam image") parser.add_option('-x', '--outsens_file', dest='out_sensitivity_file', default='eda_sensitivity', help='Output filename for sensitivity') parser.add_option('-v', '--verbose', action="store_true", dest="verbose", default=False, help="Increase verbosity of output") # parameters for sensitivity calculations : parser.add_option( '-i', '--inttime', dest='inttime', default=120, type=float, help='Integration time to calculate sensitivity for [default % sec]') parser.add_option( '--bandwidth', dest='bandwidth', default=1280000.00, type=float, help='Bandwidth to calculate sensitivity for [default % Hz]') parser.add_option('-a', '--antnum', dest='antnum', default=128, type=int, help='Number of tiles [default %]') (options, args) = parser.parse_args() # datetimestring = options.datetimestring if options.pointing_elev_deg != 90: options.pointing_za_deg = 90 - options.pointing_elev_deg if options.dir is not None: mkdir_p(options.dir) if options.frequency is not None: if (',' in options.frequency): try: frequency = list(map(float, options.frequency.split(','))) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: try: frequency = float(options.frequency) except ValueError: logger.error("Could not parse frequency %s\n" % options.frequency) sys.exit(1) else: frequency = options.frequency if options.channel is not None: if (',' in options.channel): try: channel = list(map(float, options.channel.split(','))) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: try: channel = float(options.channel) except ValueError: logger.error("Could not parse channel %s\n" % options.channel) sys.exit(1) else: channel = options.channel if options.metafits is not None: try: f = pyfits.open(options.metafits) except Exception as e: logger.error('Unable to open FITS file %s: %s' % (options.metafits, e)) sys.exit(1) if 'DELAYS' not in list(f[0].header.keys()): logger.error('Cannot find DELAYS in %s' % options.metafits) sys.exit(1) options.delays = f[0].header['DELAYS'] try: # options.delays=[int(x) for x in options.delays.split(',')] print("delays from metafits file %s are %s" % (options.metafits, options.delays)) except Exception as e: logger.error('Unable to parse beamformer delays %s: %s' % (options.delays, e)) sys.exit(1) if options.delays is not None: try: if (',' in options.delays): delays = list(map(int, options.delays.split(','))) else: delays = 16 * [int(options.delays)] except ValueError: logger.error("Could not parse beamformer delays %s\n" % options.delays) sys.exit(1) else: delays = options.delays if options.gps != 0: try: gps = int(options.gps) except ValueError: logger.error('Invalid gps parameter %s, must be integer seconds' % options.gps) sys.exit(1) else: if options.metafits is not None: logger.warning( "Will try to use first 10 digits of the metafits file name %s" % options.metafits) try: gps = int(options.metafits[0:10]) except ValueError: logger.error("Can't parse obsid from metafits file name: %s" % options.metafits) sys.exit(1) else: logger.error( "gps seconds not passed as argument, and metafits file not specified, exiting." ) sys.exit(1) extension = options.extension plottype = options.plottype model = options.model if model not in [ 'analytic', 'advanced', 'full_EE', 'full_EE_AAVS05', 'FEE', 'Full_EE', '2016', '2015', '2014' ]: logger.error("Model %s not found\n" % model) sys.exit(1) if plottype not in [ 'all', 'beam', 'sky', 'beamsky', 'beamsky_scaled', 'None' ]: logger.error("Plot type %s not found\n" % plottype) sys.exit(1) print("########################################") print("PARAMETERS :") print("########################################") print("gridpoint = %d" % (options.gridpoint)) print("use db = %s" % (options.use_db)) print("T_rcv type = %s" % (options.trcv_type)) print("########################################") # if (datetimestring is None): # if (datestring is not None and timestring is not None): # datetimestring=datestring.replace('-','') + timestring.replace(':','') # if gpsstring is not None: # try: # mjd,ut=ephem_utils.calcUTGPSseconds(int(gpsstring)) # except: # logger.error('Cannot convert gpsstring %s to a date/time' % gpsstring) # sys.exit(1) # yr,mn,dy=ephem_utils.mjd_cal(mjd) # datetimestring=('%04d%02d%02d' % (yr,mn,dy))+ ephem_utils.dec2sexstring(ut,digits=0,roundseconds=1).replace(':','') # if (datetimestring is None): # logger.error("Must supply a date/time\n") # sys.exit(1) # if len(datetimestring) != 14: # logger.error('Format of date/time is YYYYMMDDhhmmss; %s is not valid\n' % datetimestring) # sys.exit(1) gridpoint = -1 if options.use_db: if options.gps > 0: print( "INFO : Reading information from MWA metadata web service ...") obs = metadata.get_observation(obsid=options.gps) delays = obs['rfstreams']['0']['delays'] gridpoint = obs['metadata']['gridpoint_number'] else: if options.gridpoint >= 0: gridpoint = options.gridpoint delays_xy = mwa_sweet_spots.get_delays(gridpoint) delays = delays_xy[0] print("Using of MWA database is not required") print("Pointing information for obsid=%d" % (int(options.gps))) print("gridpoint = %d" % (gridpoint)) print("delays = %s" % (delays)) print("Pointing direction to source = (az,za) = (%.8f,%.8f) [deg]" % (options.pointing_az_deg, options.pointing_za_deg)) print("T_rcv = %.2f K" % (options.t_rcv)) if (len(delays) < 16): logger.error("Must supply 1 or 16 delays\n") sys.exit(1) if (frequency is None): if (channel is not None): if (isinstance(channel, list)): frequency = list( 1.28 * np.array(channel) ) # multiplication by 1e6 is done later at line Convert to Hz else: frequency = 1.28 * channel # multiplication by 1e6 is done later at line Convert to Hz if frequency is None: logger.error("Must supply frequency or channel\n") sys.exit(1) if (isinstance(frequency, int) or isinstance(frequency, float)): frequency = [frequency] frequency = np.array(frequency) * 1e6 # Convert to Hz outfile_sens_XX = options.out_sensitivity_file + "_XX.txt" outfile_sens_YY = options.out_sensitivity_file + "_YY.txt" f_out_XX = open(outfile_sens_XX, "w") f_out_YY = open(outfile_sens_YY, "w") # receiver temperature : T_rcv = options.t_rcv for freq in frequency: # ef calculate_sensitivity( freq, delays, trcv_type, T_rcv, size, dir, pointing_az_deg=0, pointing_za_deg=0, add_source=False, zenithnorm=True, antnum=128, inttime=120, bandwidth=1280000 ) : # (T_sys_XX,sens_XX,sefd_XX,noise_XX,T_sys_YY,sens_YY,sefd_YY,noise_YY) freq_mhz = freq / 1e6 (aeff_XX, T_sys_XX, sens_XX, sefd_XX, noise_XX, aeff_YY, T_sys_YY, sens_YY, sefd_YY, noise_YY) = calculate_sensitivity( freq, delays, gps, options.trcv_type, T_rcv, options.size, options.dir, model=model, plottype=plottype, extension=extension, pointing_az_deg=options.pointing_az_deg, pointing_za_deg=options.pointing_za_deg, add_sources=options.add_sources, zenithnorm=options.zenithnorm, antnum=options.antnum, inttime=options.inttime, bandwidth=options.bandwidth) out_line_XX = "%.8f %.8f %.2f %.8f %.8f\n" % (freq_mhz, sens_XX, T_sys_XX, aeff_XX, T_rcv) out_line_YY = "%.8f %.8f %.2f %.8f %.8f\n" % (freq_mhz, sens_YY, T_sys_YY, aeff_YY, T_rcv) f_out_XX.write(out_line_XX) f_out_YY.write(out_line_YY) f_out_XX.close() f_out_YY.close()