Пример #1
0
sf_qu1.frame_col_cut([0,1,1465])
sf_qu1.contrast_cut(80)
sf_qu1.set_continua("segments")

## Select subset
lowNiIcut = -0.511135 # Read off from Ni I vel
qu1sel = np.arange(0,3107) # Givin pretty pure cut

qu1 = sf_qu1.make_spectra()
qu1.modify(lambda x : x[qu1sel,:]) # Cutting
qu1.meta.cont = (qu1.meta.cont[0][qu1sel], qu1.meta.cont[1][qu1sel]) # Updating continua

qu1m = qu1[:,:].mean(axis=0) 
qu1con = qu1.meta.cont[0]*qu1.lmbd.mean() + qu1.meta.cont[1] # Define continua for qu1 series

qu1NiI  = spc.splineline(wNiI,  NiI,  qu1.meta);qu1NiI.recenter(qu1m)
qu1CI   = spc.splineline(wCI,   CI,   qu1.meta);qu1CI.recenter(qu1m)
qu1C2   = spc.splineline(wC2,   C2,   qu1.meta);qu1C2.recenter(qu1m)
qu1TiI  = spc.splineline(wTiI,  TiI,  qu1.meta);qu1TiI.recenter(qu1m)
qu1Myst = spc.splineline(wMyst, Myst, qu1.meta);qu1Myst.recenter(qu1m)
qu1FeI  = spc.splineline(wFeI,  FeI,  qu1.meta);qu1FeI.recenter(qu1m)
qu1FeI2 = spc.splineline(wFeI2, FeI2, qu1.meta);qu1FeI2.recenter(qu1m)
qu1lines = [qu1NiI,qu1CI,qu1C2,qu1TiI,qu1Myst,qu1FeI,qu1FeI2]


wNiI  = [1065,1099]
wCI   = [732,764]; 
wC2   = [693,705]; 
wTiI  = [669,679]; 
wMyst = [588,622]; 
wFeI  = [485,505]; 
Пример #2
0
wMyst = [652, 721];
wSiI  = [478, 518];
wFeI2 = [377, 438];
wSiI2 = [310, 340];

sf_qu1 = spc.SpectraFactory("data/6405_aS1",framerows=800,framecols=1472)
sf_qu1.frame_col_cut([0,1471])
sf_qu1.frame_row_cut([0]+list(range(668,677))+[799])
sf_qu1.contrast_cut(50)
sf_qu1.set_continua("segments")

qu1 = sf_qu1.make_spectra()
qu1m = qu1[:,:].mean(axis=0) 
qu1con = qu1.meta.cont[0]*qu1.lmbd.mean() + qu1.meta.cont[1]

qu1FeI  = spc.splineline(wFeI,  FeI,  qu1.meta);qu1FeI.recenter(qu1m)
qu1Myst = spc.splineline(wMyst, Myst, qu1.meta);qu1Myst.recenter(qu1m)
qu1SiI  = spc.splineline(wSiI,  SiI,  qu1.meta);qu1SiI.recenter(qu1m)
qu1FeI2 = spc.splineline(wFeI2, FeI2, qu1.meta);qu1FeI2.recenter(qu1m)
qu1SiI2 = spc.splineline(wSiI2, SiI2, qu1.meta);qu1SiI2.recenter(qu1m)
qu1lines = [qu1FeI,qu1Myst,qu1SiI,qu1FeI2,qu1SiI2] # ... and save in this list for qu1 

sf_qu2 = spc.SpectraFactory("data/6405_bS1",framerows=756,framecols=1472)
sf_qu2.frame_col_cut([0,1,1471])
sf_qu2.frame_row_cut([0]+list(range(663,670))+[799])
sf_qu2.contrast_cut(50)
sf_qu2.set_continua("segments")
qu2 = sf_qu2.make_spectra()
qu2con = qu2.meta.cont[0]*qu2.lmbd.mean() + qu2.meta.cont[1]

qu2FeI  = spc.splineline(wFeI,  FeI,  qu2.meta)
Пример #3
0
sf.set_continua("segments")
sp = sf.make_spectra()

# Hand picked flat area
wFlat = [1179,1239]; cFlat = sp.lmbd[range(wFlat[0],wFlat[1]+1)].mean()

def mystmutant(x,dist):
    x[:,wFlat[0]:wFlat[1]] = x[:,wFlat[0]:wFlat[1]]*dist
    return x

# Range of line bottoms and variance.
botrange = np.linspace(0.1,0.9,14)
varrange = np.linspace(0.6,2.5,14)

errors = []
#bot = 0.8
var = 1.5
for bot in botrange:
    norm = st.norm.pdf(np.linspace(-6,6,60),scale=var); norm = norm/norm.max()
    line = 1-bot*norm
    my = copy.deepcopy(sp) 
    my.modify(lambda x: mystmutant(x,line))
    print("Estimating errors for {}".format(bot))
    Flat = spc.splineline(wFlat,cFlat,my.meta)
    mesFlat =  Flat.measure(my)
    errors.append( er.err_spline_mes(mesFlat) )

errors = np.array(errors)

intervalplot(errors,1-botrange,fwhm,"Line bottom","Equivalent width")
Пример #4
0
sf_qu1.frame_row_cut([0]+list(range(666,679))+[791])
sf_qu1.frame_col_cut([0,1,1465])
sf_qu1.contrast_cut(80)
sf_qu1.set_continua("segments")
lowNiIcut = -0.511135 # Read off from Ni I vel
qu1sel = np.arange(0,3107) # Givin pretty pure cut

qu1 = sf_qu1.make_spectra()
qu1.modify(lambda x : x[qu1sel,:]) # Cutting
qu1.meta.cont = (qu1.meta.cont[0][qu1sel], qu1.meta.cont[1][qu1sel]) # Updating continua

qu1m = qu1[:,:].mean(axis=0) 
qu1con = qu1.meta.cont[0]*qu1.lmbd.mean() + qu1.meta.cont[1] # Define continua for qu1 series


qu1NiI  = spc.splineline(wNiI,  NiI,  qu1.meta);qu1NiI.recenter(qu1m)
qu1CI   = spc.splineline(wCI,   CI,   qu1.meta);qu1CI.recenter(qu1m)
qu1C2   = spc.splineline(wC2,   C2,   qu1.meta);qu1C2.recenter(qu1m)
qu1TiI  = spc.splineline(wTiI,  TiI,  qu1.meta);qu1TiI.recenter(qu1m)
qu1Myst = spc.splineline(wMyst, Myst, qu1.meta);qu1Myst.recenter(qu1m)
qu1FeI  = spc.splineline(wFeI,  FeI,  qu1.meta);qu1FeI.recenter(qu1m)
qu1FeI2 = spc.splineline(wFeI2, FeI2, qu1.meta);qu1FeI2.recenter(qu1m)
qu1lines = [qu1NiI,qu1CI,qu1C2,qu1TiI,qu1Myst,qu1FeI,qu1FeI2]

regname = "6449"
res = {} 
for i,line in enumerate(qu1lines):
    name ="{}_{}".format(line.name.split()[0],int(line.cent*10))
    try:
        res[name] = line.measure(qu1)
    except Exception as err:
Пример #5
0
wSiI = [842, 867]
wVI = [567, 595]
wScII = [512, 548]
wFeI2 = [136, 165]

sf_qu1 = spc.SpectraFactory("data/5654_aS2", framerows=756, framecols=1480)
sf_qu1.frame_row_cut([0] + list(range(653, 660)) + [755])
sf_qu1.frame_col_cut([0, 1479])
sf_qu1.contrast_cut(20)
sf_qu1.set_continua("segments")

qu1 = sf_qu1.make_spectra()  # Do this before defining lines
qu1m = qu1[:, :].mean(axis=0)
qu1con = qu1.meta.cont[0] * qu1.lmbd.mean() + qu1.meta.cont[1]  # Define continua for qu1 series

qu1FeI = spc.splineline(wFeI, FeI, qu1.meta)
qu1FeI.recenter(qu1m)  # Define lines for qu1 series...
qu1Myst = spc.splineline(wMyst, Myst, qu1.meta)
qu1Myst.recenter(qu1m)
qu1SiI = spc.splineline(wSiI, SiI, qu1.meta)
qu1SiI.recenter(qu1m)
qu1VI = spc.splineline(wVI, VI, qu1.meta)
qu1VI.recenter(qu1m)
qu1ScII = spc.splineline(wScII, ScII, qu1.meta)
qu1ScII.recenter(qu1m)
qu1FeI2 = spc.splineline(wFeI2, FeI2, qu1.meta)
qu1FeI2.recenter(qu1m)
qu1lines = [qu1FeI, qu1Myst, qu1SiI, qu1VI, qu1ScII, qu1FeI2]  # ... and save in this list for qu1


sf_qu2 = spc.SpectraFactory("data/5654_cS2", framerows=756, framecols=1480)
Пример #6
0
wSiI = [839, 879]
wH2O = [613, 637]
wCo = [493, 534]
wH2O2 = [8, 34]

sf_qu1 = spc.SpectraFactory("data/6449_aS1", framerows=802, framecols=1514)
sf_qu1.frame_row_cut([0] + list(range(668, 674)) + [801])
sf_qu1.frame_col_cut([0, 1513])
sf_qu1.contrast_cut(50)
sf_qu1.set_continua("segments")

qu1 = sf_qu1.make_spectra()
qu1m = qu1[:, :].mean(axis=0)
qu1con = qu1.meta.cont[0] * qu1.lmbd.mean() + qu1.meta.cont[1]  # Define continua for qu1 series

qu1Myst = spc.splineline(wMyst, Myst, qu1.meta)
qu1Myst.recenter(qu1m)  # Define lines for qu1 series...
qu1Ca = spc.splineline(wCa, Ca, qu1.meta)
qu1Ca.recenter(qu1m)
qu1Blnd = spc.splineline(wBlnd, Blnd, qu1.meta)
qu1Blnd.recenter(qu1m)
qu1SiI = spc.splineline(wSiI, SiI, qu1.meta)
qu1SiI.recenter(qu1m)
qu1H2O = spc.splineline(wH2O, H2O, qu1.meta)
qu1H2O.recenter(qu1m)
qu1Co = spc.splineline(wCo, Co, qu1.meta)
qu1Co.recenter(qu1m)
qu1H2O2 = spc.splineline(wH2O2, H2O2, qu1.meta)
qu1H2O2.recenter(qu1m)
qu1lines = [qu1Myst, qu1Ca, qu1Blnd, qu1SiI, qu1H2O, qu1Co, qu1H2O2]
Пример #7
0

k = 0
newlines = []
regnames = ["5053", "5215", "5654", "6405", "6449"]
for regname in regnames:
    rg = __import__(regname)
    for lin in rg.qu1lines:
        rawlin = rg.qu1m[lin.idx]
        leng = len(rawlin)
        sli = slice(k, leng + k)
        bak[:, sli] = bak[:, sli] * rawlin
        win, mlin, mspec = lin.deconstruct()
        mspec.lmbd = blmbd
        win[0], win[1] = sli.start, sli.stop
        newlines.append(spc.splineline(win, mlin, mspec))
        k += leng + 1
bmean = bak.mean(axis=0)
bspec = spc.Spectra("Background+lines", blmbd, bak, bmet)

if False:
    rnds = np.random.randint(789, size=3)
    col = cm.YlGnBu([0.9, 0.4, 0.3])
    for i, rnd in enumerate(rnds):
        pl.plot(bak[rnd, :], color=col[i], alpha=0.8)

    pl.xlim(349.79627678567999, 748.14957715358037)
    pl.ylim(0.5779066796740211, 1.1268191169272317)
    pl.ylabel("Relative intensity")
    pl.tick_params(
        axis="x",  # changes apply to the x-axis
Пример #8
0
wCoI  = [888,921]; 
wMyst = [591,623]; 
wCuI  = [321,352]; 
wTiI  = [170,199]; 

sf_qu1 = spc.SpectraFactory("data/5215_aS1",framerows=802,framecols=1476)
sf_qu1.frame_row_cut([0]+list(range(671,679))+[801])
sf_qu1.frame_col_cut([0,1474,1475])
sf_qu1.contrast_cut(70)
sf_qu1.set_continua("segments")

qu1 = sf_qu1.make_spectra()
qu1m = qu1[:,:].mean(axis=0) 
qu1con = qu1.meta.cont[0]*qu1.lmbd.mean() + qu1.meta.cont[1] # Define continua for qu1 series

qu1FeI  = spc.splineline(wFeI,  FeI,  qu1.meta);qu1FeI.recenter(qu1m) # Define lines for qu1 series...
qu1TiII = spc.splineline(wTiII, TiII, qu1.meta);qu1TiII.recenter(qu1m)
#qu1Blnd  = spc.splineline(wBlnd,Blnd, qu1.meta);qu1Blnd.recenter(qu1m)
qu1CoI  = spc.splineline(wCoI,  CoI,  qu1.meta);qu1CoI.recenter(qu1m)
qu1Myst = spc.splineline(wMyst, Myst, qu1.meta);qu1Myst.recenter(qu1m)
qu1CuI  = spc.splineline(wCuI,  CuI,  qu1.meta);qu1CuI.recenter(qu1m)
qu1TiI  = spc.splineline(wTiI,  TiI,  qu1.meta);qu1TiI.recenter(qu1m)
#qu1lines = [qu1FeI,qu1TiII,qu1CoI,qu1Blnd,qu1Myst,qu1CuI,qu1TiI]
qu1lines = [qu1FeI,qu1TiII,qu1CoI,qu1Myst,qu1CuI,qu1TiI]


sf_qu2 = spc.SpectraFactory("data/5215_bS1",framerows=802,framecols=1476)
sf_qu2.frame_row_cut([0]+list(range(669,674))+[801])
sf_qu2.frame_col_cut([0,1475])
sf_qu2.contrast_cut(50)
sf_qu2.set_continua("segments")