Imágenes de los archivos SDSS y HST

Transcripción

Imágenes de los archivos SDSS y HST
Imágenes de los archivos
SDSS y HST
L. Gutiérrez
Instituto de Astronomía, UNAM
Imágenes del HST
Tercera Parte (cont.) y otros
tópicos
Imágenes de la WFPC2.
Trabajando con los waiver
FITS
Estos son los archivos _c0f, _c1f.
Consideremos la imagen
ub960601m_c0f.fits La comparemos con la imagen
ub960601m_c0m.fits
ecl> catfits ub960601m_c0f.fits
ecl> catfits ub960601m_c0m.fits
ecl> catfits ub960601m_c0f.fits
0 ub960601m_c0f ub960601m_cvt.c0h 800x800x4 ­32F 1 TABLE ub960601m_cvt.c0h.tab 56Fx4R Imágenes de la WFPC2.
Trabajando con los waiver
FITS
Podemos ver el contenido de la tabla con
ecl> tprint ub960601m_c0f.fits[1] ecl> catfits ub960601m_c0m.fits
0 ub960601m_c0m ub960601m_c0f.fits 16 1 IMAGE SCI 1 800x800 ­32 2 IMAGE SCI 2 800x800 ­32 3 IMAGE SCI 3 800x800 ­32 4 IMAGE SCI 4 800x800 ­32 Imágenes de la WFPC2.
Trabajando con los waiver
FITS
Para desplegarlas:
ecl> disp ub960601m_c0m.fits[4] ecl> disp ub960601m_c0f.fits[0][*,*,4] Debemos recrear el archivo GEIS multigrupo. Para recrear el archivo GEIS
ecl> set imtype=hhh
Esto indica al IRAF que escriba los archivos en formato GEIS:
ecl> strfits *c0f.fits “” xdim=yes oldiraf=yes
Esto genera los archivos .hhh y hhd.
Podemos desplegar los nuevos archivos GEIS:
ecl> disp u39s0405r.c0h[1]
Imágenes de la WFPC2.
Trabajando con los waiver
FITS
Para generar un mosaico:
ecl> wmosaic ub960601m.c0h ub960601m_c0h_mos
Para desplegar el mosaico:
ecl> disp ub960601m_c0h_mos.hhh 1
El WMOSAIC hace el mosaico corrigiendo por distorsión y por offset y rotación de la cámara usando los coeficientes de R. Gilmozzi y S. Ewald.
Para armar el mosaico también es posible usar la tarea WFPC2_CLEAN (requiere, además, del paquete XDIMSUM).
ecl> wfpc2_clean ub960601m_c0f.fits ub960601m_c0f_mos.fits
Para desplegarlo:
ecl> disp ub960601m_c0f_mos.fits 1
Imágenes de la WFPC2.
Trabajando con los waiver
FITS
Usando la tarea MULTIDRIZZLE (se requiere instalar el PYRAF) es posible corregir también el ligero desplazamiento ”térmico” de los chips (aunque algunas veces no queda bien) usando los archivos más actualizados con los mapas de corrección de distorsión En este caso, habrá que actualizar los keywords IDCTAB y OFFTAB en el encabezado de las imágenes
Para afinar la corrección, puede usarse la tarea WFPC2_SHIFT.
ecl> wfpc2_shift nombre ccd xshift yshift
Ver para el multidrizzle:
http://www.stsci.edu/hst/wfpc2/analysis/WFPC2_drizzle_crsplitPC.html
Imágenes de la WFPC2. Un
ejemplo
Con imágenes de muy bajo brillo superficial, habrá que tener cuidado con el fringing.
Imágenes de la WFPC2. Un
ejemplo
Con imágenes de muy bajo brillo superficial, habrá que tener cuidado con el fringing.
Otros tópicos de interés
Para combinar un conjunto de imágenes es necesario alinearlas primero correctamente. Una tarea que simplifica el proceso es “alinea.cl”.
­ Declarar la tarea externamente:
task alinea = ”directorio_donde_esta/alinea.cl”
­ Alineemos las imágenes fpC­001332­g4­0066.fit, fpC­
001332­r4­0066.fit y fpC­001332­i4­0066.fit
Primero las despleguemos en frames diferentes del DS9.
Usando el ”blink” observemos que estan desalineadas
Escojamos tres estrellas bien definidas y no saturadas.
Tecleemos en IRAF ”alinea” y sigamos las instrucciones
Otros tópicos de interés
Algo que puede ser de mucho interés es la confección de un perfil de brillo superficial.
Hagamos un ejemplo:
Vamos a usar la tarea ELLIPSE de IRAF.
Calculemos primero el fondo del cielo y restemoslo de la imagen. Pongamos ahora los parámetros adecuados a ELLIPSE con
ecl> epar ellipse
Otros tópicos de interés
Image Reduction and Analysis Facility
PACKAGE = isophote
TASK = ellipse
input = input image name
output = output table name
(dqf = .c1h) data quality file name or extension (inellip= ) table with input ellipses for no­fit mode
(geompar= ) geometric parameters (pset)
(control= ) algorithm control parameters (pset)
(samplep= ) sampling control parameters (pset)
(magpar = ) magnitude scale parameters (pset)
(interac= no) interactive ?
(device = stdgraph) graphics output device
(icomman= ) image cursor
(gcomman= ) graphics cursor
(masksz = 5) pixel square mask size (`m' cursor key)
(region = yes) region masking mode ?
(memory = yes) memory­intensive (versus disk­intensive) ?
(verbose= yes) list summary at STDOUT ?
(mode = al)
Otros tópicos de interés
Image Reduction and Analysis Facility
PACKAGE = isophote
TASK = geompar
(x0 = 1703) initial isophote center X
(y0 = 457.35) initial isophote center Y
(ellip0 = 0.32) initial ellipticity
(pa0 = 64.9) initial position angle (degrees)
(sma0 = 100.) initial semi­major axis lenght
(minsma = 3.) minimum semi­major axis lenght
(maxsma = 1200.) maximum semi­major axis lenght
(step = 0.05) sma step between successive ellipses
(linear = no) linear sma step ?
(maxrit = INDEF) maximum sma lenght for iterative mode
(recente= no) allows finding routine to re­center x0­y0 ?
(xylearn= no) updates pset with new x0­y0 ?
(physica= no) physical coordinate system ?
(mode = al)
Otros tópicos de interés
Image Reduction and Analysis Facility
PACKAGE = isophote
TASK = controlpar
(conver = 0.05) convergency criterion (maximum harmonic amplitud
(minit = 10) minimun no. of iterations at each sma
(maxit = 100) maximun no. of iterations at each sma
(hcenter= yes) hold center fixed ?
(hellip = yes) hold ellipticity fixed ?
(hpa = yes) hold position angle fixed ?
(wander = INDEF) maximum wander in successive isophote centers
(maxgerr= 0.5) maximum acceptable gradient relative error
(olthres= 0.5) object locator's k­sigma threshold
(soft = no) soft stop ?
(mode = al)
Otros tópicos de interés
Image Reduction and Analysis Facility
PACKAGE = isophote
TASK = samplepar
(integrm= median) area integration mode
(usclip = 3.) sigma­clip criterion for upper deviant points
(lsclip = 3.) sigma­clip criterion for lower deviant points
(nclip = 3) number of sigma­clip iterations
(fflag = 0.75) acceptable fraction of flagged data points (sdevice= none) graphics device for ploting intensity samples
(tsample= none) tables with intensity samples
(absangl= yes) sample angles refer to image coord. system ? (harmoni= none) optional harmonic numbers to fit
(mode = al)
Otros tópicos de interés
Image Reduction and Analysis Facility
PACKAGE = isophote
TASK = magpar
(mag0 = 0.) magnitude of reference source
(refer = 1.) intensity of reference source (zerolev= 0.) intensity of zero (bias) level (mode = al)
Otros tópicos de interés
Ahora en IRAF:
ecl> ellipse n4531rss.fit el_n4531rss.tab
ecl> tprint el_n4531rss.tab el_n4531rss.txt
Ahora corregimos los INDEF de la tabla y podemos graficar:
Para calcular el punto cero:
t_exp = 53.907456
zp = ­aa ­ kk*airmass + 2.5*alog10(t_exp*(0.396^2))
Otros tópicos de interés
Ahora en IRAF:
ecl> ellipse n4531rss.fit el_n4531rss.tab
ecl> tprint el_n4531rss.tab el_n4531rss.txt
Ahora corregimos los INDEF de la tabla y podemos graficar:
Otros tópicos de interés
Para inferir el nivel de confianza:
Sea mu_c el brillo superficial donde al sumar una sigma la diferencia en brillo superficial sea 0.2 mag.
mu_c = ­2.5 log(I_c) + zp
mu_c^+ = ­2.5 log(I_c + sigma) +zp
I_c = k*sigma
mu_c ­ mu_c^+ = ­2.5 log(k/(k+1)) = 0.2
==> log(k/(k+1)) = ­0.2/2.5 = ­0.08
==> 1+1/k = 10^0.08
==> k = 1/((10^0.08) ­1 ) = 4.94
Otros tópicos de interés
Algunos filtros simples:
­ Filtro de mediana:
ecl> median n1068rss.fit n1068rss_median.fit 9 9
­ Filtro de Laplace:
ecl> laplace ngc2985_acs_f814w_sm.fits ngc2985_acs_f814w_sm_lap.fits
­ Filtro gaussiano:
ecl> gauss ngc2985_acs_f814w_sm.fits ngc2985_acs_f814w_sm_gauss.fits 8
­ Unsharp mask:
ecl> umask.cl # Instalarlo o usarlo como una tarea externa
Otros tópicos de interés
­ Filtro de Butterworth:
butterfilter.pro
function butterfilter, image, cutoff=cutoff, orden=orden
; image = Es el arreglo bidimensional donde esta la imagen.
; cutoff = Es la frecuencia de corte del filtro
; Usa el algorithmo BUTTERWORTH de IDL 7.0
if (NOT keyword_set(cutoff)) then cuttoff=9
if (NOT keyword_set(orden)) then orden=1
filtro = BUTTERWORTH (SIZE(image, /dim), cutoff=cutoff)
freqImage = FFT(image, ­1)
filtrada = FFT (freqImage * filtro, 1)
return, real_part(filtrada)
Otros tópicos de interés
­ Filtro de Hanning (f_hanning.pro)
function f_hanning, image
tam = size(image, /dimensions)
freqImage = shift(FFT(image, ­1), tam(0)/2, tam(1)/2)
; Usa una mascara de Hanning para filtrar el ruido
mask = HANNING(tam[0], tam[1])
maskedImage = freqImage*mask
filtrada = real_part(FFT(SHIFT(maskedImage, (tam[0]/2), (tam[1]/2)), /INVERSE))
return, filtrada
end
Otros tópicos de interés
­ Filtro de Butterworth (freqfilter.pro)
function freqfilter, image, perc=perc, display=display, orden=orden
; autor: Leonel Gutierrez
; Este es un filtro pasa­bajos (low­pass) de Butterworth, de uso general ; image = Es el arreglo bidimensional donde esta la imagen.
; perc = Es el porcentaje que dejaremos pasar de las ; frecuencias referido al
; intervalo total de frecuencias en la imagen. ; La formula general es = 1 / [1 + C(R/Ro)^2n], donde ; C es 1.0 o 0.414; define la magnitud del filtro donde ; R = Ro; R es la imagen de frecuencias y Ro es la frecuencia de corte
; nominal del filtro representado en pixeles; ; n es el orden del filtro (aquí usaremos 1)
Otros tópicos de interés
­ Filtro de Butterworth (cont.)
if (NOT keyword_set(perc)) then perc=10
if (NOT keyword_set(orden)) then orden=1
C = 1.0d n = orden tam = size(image, /dimensions)
Ro = float(tam(0)) * perc/100.0
end
freqImage = FFT(image, ­1)
filtro = 1.0 / ( 1.0d + C*((DIST(tam(0))/Ro)^(2*n)) )
filtrada = real_part(FFT(freqImage * filtro, 1)) return, filtrada
Otros tópicos de interés
Otro filtro pasa­bajos: Filtro coseno function filtro_coseno, imi, r1, r2
m=mean(imi)
im=imi­m
n=size(im,/dimension)
tam=n(0)/2
kkkk = make_array(tam,/float,value=1.0)
if(r2 gt r1) then begin
kkkk[r1:*] = 0.0
kk = indgen(r2­r1)*!pi/(r2­r1)
kkk = 0.5*cos(kk)+0.5
kkkk[r1:r2­1]=kkk[0:*]
endif
Otros tópicos de interés
Otro filtro pasa­bajos: Filtro coseno (cont.)
filtro = hace_funcion_2d(kkkk)
filtro = SHIFT(filtro, tam, tam)
tr=fft(im,­1)
tr=tr*filtro
nim=real_part(fft(tr,1))+m
return, nim
end
Otros tópicos de interés
Para hacer binning por software:
pro binning, ifile,ofile, binx, biny
; Hace el binning de la imagen ifile y escribe el resultado en ofile
a = readfits(ifile+".fits")
imsize = size(a, /dimensions)
imsize(0) = imsize(0) / binx
imsize(1) = imsize(1) / biny
print, "Nuevo tama&o: ", imsize(0), " x ",imsize(1)
b= frebin(a,imsize(0),imsize(1), /total)
writefits, ofile+".fits", b
end
Otros tópicos de interés
Para calcular el espectro de potencias de una imagen
function espectro_potencias_prom, aa, apod = apod a=aa­mean(aa) ; resta la media
n=size(a) ; print, "tamanio: ", n(1)
if (keyword_set(apod)) then begin wincos = win_cos(n(1), n(1), apod) t=fft(a*wincos,­1) ; calcula la TF endif else begin t=fft(a,­1) ; calcula la TF endelse s=abs(t)^2. ; calcula el modulo cuadrado s = shift(s, n(1)/2, n(1)/2) ; y lo desplaza vect = findgen(n(1)*10)/(20.0) ; un vector con 20 veces el radio
espectro = fltarr(n(1)*10)
Otros tópicos de interés
Para calcular el espectro de potencias de una imagen (cont.)
for j=0,(n(1)*10 ­1) do begin ; para todo el vector de distancia
val = 0.0
for i=0,359 do begin ; hara un barrido de 360 grados
x = vect(j) * cos(i*!pi/180.0) + (n(1)/2.0)
y = vect(j) * sin(i*!pi/180.0) + (n(1)/2.0)
xp = round(x) & yp = round(y) ; solo valores enteros
if(xp lt 0) then xp = 0 ; positivos
if(yp lt 0) then yp = 0
if(xp ge n(1)) then xp = n(1) ­1 ; no mas grandes que n
if(yp ge n(1)) then yp = n(1) ­1
val = val + s(xp,yp) ; acumula los valores que endfor
; corresponden a esa distancia
Otros tópicos de interés
Para calcular el espectro de potencias de una imagen (cont.)
espectro(j) = val
endfor
return,[[vect],[espectro]]
end

Documentos relacionados