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)
Exemple #3
0
#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()
Exemple #4
0
#        '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"]
Exemple #6
0
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)