import AstroUtils fig = pyplot.figure(0) fig.clear() ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) baseName = sys.argv[1] arcturusConfig = AstroUtils.parse_config(baseName + "_Solar.cfg") solarConfig = AstroUtils.parse_config(baseName + "_Arcturus.cfg") originalConfig = arcturusConfig.copy() arcturusConfig["applyCorrections"] = True solarConfig["applyCorrections"] = True arcturus = MoogTools.LineList(None, arcturusConfig) solar = MoogTools.LineList(None, solarConfig) original = MoogTools.LineList(None, originalConfig) orig = [] sol = [] arc = [] diff = [] dsol = [] darc = [] species = [] expot = [] wl = [] for i in range(original.nStrong): orig.append(original.strongLines[i].loggf)
fig = pyplot.figure(0) ax = fig.add_axes([0.1, 0.1, 0.8, 0.8]) ax.plot(S) hdu = pyfits.PrimaryHDU(CM) hdu.writeto('CommandMatrix.fits', clobber=True) hdu = pyfits.PrimaryHDU(factor) hdu.writeto('scalingfactor.fits', clobber=True) configFile = 'CMStudent.cfg' #diffplot = True diffplot = False Synth = MoogTools.Moog(configFile) Synth.lineList.writeLineLists() Synth.parameterFile.writeParFile() solarWave = Synth.solarSpectrum.wave + 0.1 solarFlux = Synth.solarSpectrum.flux + 0.001 + numpy.random.randn( len(solarWave)) * 0.001 continuum = 0.0 wlOffset = 0.0 resolution = 45000 nominalWavelength, nominalSpectrum = Synth.run() wave, spectrum = SpectralTools.resample(nominalWavelength, nominalSpectrum, resolution)
#solar = Moog960.ObservedMelody.fromFile(filename='SolarSpectrum.fits') #solar.loadData() solar = Moog960.Score(observed='SolarSpectrum.fits') arcturus = Moog960.Score(observed='ArcturusSpectrum.fits') wlStart = 17000 wlStop = 17100 observed = solar.getLabels(keySignature='OBSERVED') for obs in observed: obs.Spectrum.plot(ax=ax, color='g') observed = arcturus.getLabels(keySignature='OBSERVED') for obs in observed: obs.Spectrum.plot(ax=ax, color='b') ArcSynth = MoogTools.MoogStokes('Arcturus.cfg', wlStart=wlStart, wlStop=wlStop) SolarSynth = MoogTools.MoogStokes('Solar.cfg', wlStart=wlStart, wlStop=wlStop) SolarSynth.run() ArcSynth.run() SolarSynth.Spectra[0].plot(ax=ax, color='r') SolarSynth.Spectra[1].plot(ax=ax, color='m') ax.set_xbound(wlStart, wlStop) ax.set_ybound(0.0, 1.0) fig.show()
# 'India', 'Juliett', 'Kilo', 'Lima', 'Mike', 'November', 'Oscar'] baseNames = ['Charlie'] arcGfDiff = [] solGfDiff = [] arcEWs = [] arcEWDiffSelf = [] arcEWDiffOther = [] solEWs = [] solEWDiffSelf = [] solEWDiffOther = [] for baseName in baseNames: #Original arcturus = MoogTools.MoogStokes(baseName + "_Arcturus.cfg", moogInstance='ALPHA', fileBase="arcold") solar = MoogTools.MoogStokes(baseName + "_Solar.cfg", moogInstance='BRAVO', fileBase="solold") #New gfs determined by self arcturusNew = MoogTools.MoogStokes(baseName + "_Arcturus.cfg", moogInstance='CHARLIE', fileBase="arcnew") solarNew = MoogTools.MoogStokes(baseName + "_Solar.cfg", moogInstance='DELTA', fileBase="solnew") #New gfs determined by other #arcSol = MoogTools.MoogStokes(baseName+"_Arcturus.cfg", moogInstance = 'CHARLIE', fileBase="arcsol") #solArc = MoogTools.MoogStokes(baseName+"_Solar.cfg", moogInstance = 'DELTA', fileBase="solarc")
contFloat = bool(sys.argv[4]== 'True') except: contFloat = False try: rotFloat = bool(sys.argv[5] == 'True') except: rotFloat = False f1 = pyplot.figure(0) f1.clear() ax1 = f1.add_axes([0.1, 0.1, 0.8, 0.8]) diffplot = True diffplot = False Synth = MoogTools.MoogStokes(configFile, moogInstance=moogInstance, fileBase=''.join(random.choice(string.ascii_letters) for _ in range(3))) #Synth.lineList.writeLineLists() #Synth.parameterFile.writeParFile() outFile = Synth.config["outputDir"] + Synth.config["baseName"]+'_results.dat' inFile = Synth.config["inFile"] solarSpectrum = Moog960.ObservedMelody.fromFile(filename=inFile) solarSpectrum.loadData() wlRange = [Synth.config["wlStart"], Synth.config["wlStop"]] solarSpectrum.selectPhrases(wlRange=wlRange) observed, labels = solarSpectrum.perform() continuum = 0.00 wlOffset = Synth.config["wlShift"]
import AstroUtils fig1 = pyplot.figure(0) fig1.clear() ax1 = fig1.add_axes([0.1, 0.1, 0.8, 0.8]) fig2 = pyplot.figure(1) fig2.clear() ax2 = fig2.add_axes([0.1, 0.1, 0.8, 0.8]) baseName = sys.argv[1] arcConfig = baseName + ".arcturus.cfg" solConfig = baseName + ".solar.cfg" arcturus = MoogTools.MoogStokes(arcConfig, moogInstance="ALPHA") solar = MoogTools.MoogStokes(solConfig, moogInstance="BRAVO") solarSpectrum = Moog960.ObservedMelody.fromFile( filename=solar.config["inFile"]) arcturusSpectrum = Moog960.ObservedMelody.fromFile( filename=arcturus.config["inFile"]) solarSpectrum.loadData() arcturusSpectrum.loadData() wlRange = [solar.config["wlStart"], solar.config["wlStop"]] solarSpectrum.selectPhrases(wlRange=wlRange) obsSol, labels = solarSpectrum.perform() arcturusSpectrum.selectPhrases(wlRange=wlRange) obsArc, labels = arcturusSpectrum.perform()
import MoogTools baseNames = ['Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot', 'Golf', 'Hotel', 'India', 'Juliett', 'Kilo', 'Lima', 'Mike', 'November', 'Oscar'] outName = '/home/deen/MoogPyData/AbsorptionLines/corrections/compositeCorrected.dat' inDir = './Output/' solar = [] arcturus = [] for baseName in baseNames: inFile = inDir+baseName+'_Solar_results.dat' for line in open(inFile, 'r'): solar.append(MoogTools.MOOG_Line(line)) inFile = inDir+baseName+'_Arcturus_results.dat' for line in open(inFile, 'r'): arcturus.append(MoogTools.MOOG_Line(line)) for arc in arcturus: if arc in solar: if arc.expot_lo < 3.0: index = solar.index(arc) solar[index].loggf = arc.loggf solar[index].VdW = arc.VdW else: solar.append(arc)
import numpy import scipy import matplotlib.pyplot as pyplot import AstroUtils import MoogTools import Moog960 import SpectralTools import pyfits configFile = 'CMTeacher.cfg' Synth = MoogTools.MoogStokes(configFile, moogInstance='ALPHA') Synth.lineList.writeLineLists() Synth.parameterFile.writeParFile() Synth.run() nominal = Synth.Spectra[0] smoothed = nominal.resample(R=80000) resampled = nominal.resample(R=80000, nyquist=True) phrases = [] parameters = {} parameters["LABEL"] = "CM Teacher" parameters["TEFF"] = 5770 parameters["LOGG"] = 4.43 parameters["BFIELD"] = 0.0 parameters["SELECTED"] = False parameters["WLSTART"] = resampled.wl[0] parameters["WLSTOP"] = resampled.wl[-1] header = resampled.header
def generateLineList(b_dir, prefix, wl_start, wl_stop, Bfield, **kwargs): ''' This subroutine generates Zeeman-split MOOG line lists (both strong and weak) ''' staging_dir = 'stage_'+prefix+'/' print "Feature : ", prefix, ' ', b_dir try: os.makedirs(os.path.join(staging_dir,'Parfiles',b_dir)) os.makedirs(os.path.join(staging_dir,'Output', b_dir)) os.makedirs(os.path.join(staging_dir,'Linelists', b_dir)) except: pass MoogTools.write_par_file(wl_start, wl_stop, staging_dir, b_dir, prefix, mode='gridstokes', strongLines=True, **kwargs) # Load in configuration file config = AstroUtils.parse_config('counterpoint.cfg') weak_file = config['weak_file'] strong_file = config['strong_file'] molecules = config['molecules'] VALD_list = config['VALD_file'] gf_corrections = config['gf_file'] strongLines, weakLines = MoogTools.parse_VALD(VALD_list, strong_file, wl_start, wl_stop, Bfield, gf_corrections) # CO weakLines = numpy.append(weakLines, MoogTools.parse_HITRAN( molecules+'05_HITEMP2010new.par', wl_start, wl_stop, Bfield, gf_corrections, weedout=2.5)) # OH weakLines = numpy.append(weakLines, MoogTools.parse_HITRAN( molecules+'13_HITEMP2010.par', wl_start, wl_stop, Bfield, gf_corrections)) # CN weakLines = numpy.append(weakLines, MoogTools.parse_Plez_CN( molecules+'CN_Plez_linelist.dat', wl_start, wl_stop, Bfield, gf_corrections)) sfn = os.path.join(staging_dir, 'Linelists', b_dir, prefix+'_strong_linelist.stokes') outfile = open(sfn, 'w') for strongLine in strongLines: strongLine.dump(out=outfile, mode='MOOGSTOKES') outfile.close() sort_file(sfn) wfn = os.path.join(staging_dir, 'Linelists', b_dir, prefix+'_weak_linelist.stokes') weakfile = open(wfn, 'w') for weakLine in weakLines: weakLine.dump(out=weakfile, mode='MOOGSTOKES') weakfile.close() sort_file(wfn, weak=True) if Bfield==0.0: MoogTools.write_par_file(wl_start, wl_stop, staging_dir, b_dir, prefix, mode='gridsyn', strongLines=True, **kwargs) sfn = os.path.join(staging_dir, 'Linelists', b_dir, prefix+'_strong_linelist.scalar') outfile = open(sfn, 'w') for strongLine in strongLines: strongLine.dump(out=outfile, mode='MOOGSCALAR') outfile.close() sort_file(sfn) wfn = os.path.join(staging_dir, 'Linelists', b_dir, prefix+'_weak_linelist.scalar') outfile = open(wfn, 'w') for weakLine in weakLines: weakLine.dump(out=outfile, mode='MOOGSCALAR') outfile.close() sort_file(wfn, weak=True)