if False: fg,ax = pl.subplots(1) idx = range(655,745) rndrow = 177 # Chosen by looking for nasty examples x, y = d.qu1.lmbd[idx],d.qu1[rndrow,idx] ax.step(x,y) ax.xaxis.set_major_formatter(ticker.StrMethodFormatter("{x:3.1f}")) ax.set_xlabel("Wavelength [nm]") ax.set_ylabel("Relative intensity") fg.savefig("../thesis/presentation/noise_spectra.png") fg.show() d = __import__("6405") rndrow = 177 con = spc.continua(d.qu1m,d.qu1.lmbd,"top N") scon = spc.continua(d.qu1m,d.qu1.lmbd,"segments") pl.plot(d.qu1.lmbd,d.qu1m) pl.plot(d.qu1.lmbd[con.idx],d.qu1m[con.idx],'rx') pl.plot(d.qu1.lmbd[scon.idx],d.qu1m[scon.idx],'ko') pl.show() n_con = spc.continua(d.qu1[rndrow,:],d.qu1.lmbd,"top N") n_scon = spc.continua(d.qu1[rndrow,:],d.qu1.lmbd,"segments") pl.plot(d.qu1.lmbd,d.qu1[rndrow,:]) pl.plot(d.qu1.lmbd[n_con.idx],d.qu1[rndrow,n_con.idx],'rx') pl.plot(d.qu1.lmbd[n_scon.idx],d.qu1[rndrow,n_scon.idx],'ko') pl.show()
ax.set_ylabel("Number of spectra") ax.set_title("Distribution of continuum value") ax.figure.show() def selected(cont,spec): mnspec = spec[:,:].mean(axis=0) pl.plot(spec.lmbd,mnspec) pl.plot(cont.lmbd,mnspec[cont.idx],'ro') pl.show() def normalize(block,lmbd,continua): return block/continua(lmbd,block) # Defining as1_const = copy.deepcopy(as1) as1_manual = copy.deepcopy(as1); con_as1_const = spc.continua(np.array(as1flat),as1.lmbd,"manual") as1_top20 = copy.deepcopy(as1); con_as1_top20 = spc.continua(as1[:,:].mean(axis=0),as1.lmbd,"top 20") as1_segment = copy.deepcopy(as1); con_as1_segment = spc.continua(as1[:,:].mean(axis=0),as1.lmbd,"segments") # Normalize as1_const.modify(lambda x: x/cont_as1.reshape(-1,1)) as1_manual.modify(lambda x: normalize(x,as1.lmbd,con_as1_const)) as1_top20.modify(lambda x: normalize(x,as1.lmbd,con_as1_top20)) as1_segment.modify(lambda x: normalize(x,as1.lmbd,con_as1_segment)) # Evaluate, special windows to not evaluate on training set cas1_const = as1_const[:,list(range(584,622))].mean(axis=1) cas1_manua = as1_manual[:,list(range(584,622))].mean(axis=1) cas1_top20 = as1_top20[:,list(range(584,622))].mean(axis=1) cas1_segme = as1_segment[:,list(range(584,622))].mean(axis=1) cas1_orig = as1[:,list(range(584,622))].mean(axis=1)