Sdss sample spectra
From MediaWiki
(Difference between revisions)
m (→Rebinovanje spektara) |
m (→Rebinovanje spektara) |
||
(2 intermediate revisions not shown) | |||
Line 9: | Line 9: | ||
step=(lambda[n-1] - lambda[0])/(n-1) | step=(lambda[n-1] - lambda[0])/(n-1) | ||
lim = (lamRange + [-0.5d,0.5d]*step ; Prvi i poslednji pixel moraju isto da se interp pa se produzavaju za pola | lim = (lamRange + [-0.5d,0.5d]*step ; Prvi i poslednji pixel moraju isto da se interp pa se produzavaju za pola | ||
- | newLambda = range(lim[0],lim[1],n+1) | + | newLambda = range(lim[0],lim[1],n+1) ; !!! Kljucni korak koji daje tacan rezultat |
logLim = alog(lamRange + [-0.5d,0.5d]*step) | logLim = alog(lamRange + [-0.5d,0.5d]*step) | ||
- | 'ili se skracuje za velicinu velScale:' | + | '''ili se skracuje za velicinu velScale:''' |
- | + | '' if n_elements(velScale) gt 0 then begin '' | |
- | + | '' logScale = velScale/c'' | |
- | + | '' m = floor((logLim[1]-logLim[0])/logScale) '' | |
- | + | '' logLim[1] = logLim[0] + m*logScale'' | |
- | + | '' endif else $'' | |
- | + | '' velScale = (logLim[1]-logLim[0])/m*c ; Only for output'' | |
newLimits = exp(range(logLim[0],logLim[1],m+1)) ; Ovim logaritamske granice vracamo na normalne | newLimits = exp(range(logLim[0],logLim[1],m+1)) ; Ovim logaritamske granice vracamo na normalne |
Latest revision as of 12:50, 15 January 2013
SDSS spektri
Rebinovanje spektara
Napisala sam proceduru koja rebinuje u ln skali spektre u zadatim granicama. U svom najprostijem obliku nalazi se u File:Ppxf example ngc3325 sdssdr8.tgz kao myrebin.pro. Daje identicne rezultate Kapelarijevoj log_rebin proceduri. Treba otpakovati tgz, snimiti u ppxf dir i pokrenuti ppxf_example_ngc3325_sdssdr8.tgz. Inace, galaksija u primeru je NGC 3325. Prosto, treba odrediti nove granice i izvrsiti linearnu interpolaciju izmedju novih i starih tacaka. Posto se skala menja iz linearne u logaritamsku, nove logaritamske granice moraju se vratiti na linearne:
lamRange = sxpar(head,'CRVAL1') + [0d,sxpar(head,'CDELT1')*(sxpar(head,'NAXIS1')-1d)] lambda=exp(range(alog(lamRange[0]),alog(lamRange[1]),n+1)) step=(lambda[n-1] - lambda[0])/(n-1) lim = (lamRange + [-0.5d,0.5d]*step ; Prvi i poslednji pixel moraju isto da se interp pa se produzavaju za pola newLambda = range(lim[0],lim[1],n+1) ; !!! Kljucni korak koji daje tacan rezultat logLim = alog(lamRange + [-0.5d,0.5d]*step) ili se skracuje za velicinu velScale: if n_elements(velScale) gt 0 then begin logScale = velScale/c m = floor((logLim[1]-logLim[0])/logScale) logLim[1] = logLim[0] + m*logScale endif else $ velScale = (logLim[1]-logLim[0])/m*c ; Only for output newLimits = exp(range(logLim[0],logLim[1],m+1)) ; Ovim logaritamske granice vracamo na normalne