Cursillo de Introducción al Iraf
Andrea Sosa - Dpto. de Astronomía (IFFC ) y OALM
Documentación:
- IRAF es un paquete de herramientas para el procesamiento de imágenes astronómicas (reducción, fotometría, astrometría, espectroscopía)
- Es un producto de NOAO (National Optical Astronomy Observatories) distribuido libremente en internet : http://iraf.noao.edu/iraf-homepage.html
Contenido:
- A beginner's Guide to Using Iraf - J. Barnes
1 Nociones Básicas
1. Comenzando con Iraf2 El verdadero comienzo: trabajando con Iraf
2. Personalizando el entorno de Iraf
3. Explorando archivos y directorios
4. Estructura básica de Iraf1. Paquetes y tareas3 Trabajando con imágenes
2. Consiguiendo ayuda
3. Funcionamiento de las tareas
4. Abortando tareas
5. File and Image Templates
6. CL como calculadora1.Obteniendo información sobre una imagen4. Algunas aplicaciones:
2. Visualizando las imágenes
3. Comandos para manipular imágenes
4. Herramientas gráficas1. Estimación del Seeing
2. Evaluación del foco de una imagen
3. Estimación de la relación señal -ruido y de la magnitud límite
1 Comenzando con Iraf...Supongamos al usuario andy en un ambiente de ventanas bajo un sistema unix o linux, y situado en el directorio /fisica1/users/andy/iraf . Ejecuto el comando mkiraf que creará el archivo login.cl y el subdirectorio uparm:
(los caracteres en color azul indican lo que escribe el usuario)>mkiraf
-- creating a new uparm directory
Terminal types: xgterm,xterm,gterm,vt640,vt100,etc.
Enter terminal type: xgterm
A new LOGIN.CL file has been created in the current directory.
You may wish to review and edit this file to change the defaults.
>El login.cl es un archivo de configuración ejecutado en cada inicio de sesión iraf. El directorio uparm contiene los archivos de parámetros para comandos modificados por el usuario. El siguiente es un ejemplo del archivo login.cl:
# LOGIN.CL -- User login file for the IRAF command language.
# Identify login.cl version (checked in images.cl).
if (defpar ("logver"))
logver = "IRAF V2.11 May 1997"set home = "/fisica1/users/andy/iraf/"
set imdir = "/usr/tmp/andy/"
set uparm = "home$uparm/"
set userid = "andy"# Set the terminal type.
if (envget("TERM") == "sun") {
if (!access (".hushiraf"))
print "setting terminal type to gterm..."
stty gterm
} else {
if (!access (".hushiraf"))
print "setting terminal type to xgterm..."
stty xgterm
}# Uncomment and edit to change the defaults.
#set editor = vi#set printer = lw
#set stdimage = imt800
#set stdimcur = stdimage
#set stdplot = lw
#set clobber = no
#set filewait = yes
#set cmbuflen = 512000
#set min_lenuserarea = 64000
#set imtype = "imh"
# List any packages you want loaded at login time, ONE PER LINE.
images # general image operators
plot # graphics tasks
dataio # data conversions, import export
lists # list processing# The if(deftask...) is needed for V2.9 compatibility.
if (deftask ("proto"))
proto # prototype or ad hoc taskstv # image display
utilities # miscellaneous utilities
noao # optical astronomy packageskeep
Se puede editar el login.cl para modificar algunas variables de ambiente como HOME, IMDIR, etc...
Iraf requiere un programa externo para desplegar imágenes. Las opciones son:
SAOImage
Ximtool
SAOtngAdvertencias:
Para iniciar el Ximtool:
- No utilizar dos o más displays simultáneamente.
- Iniciar el Ximtool antes de iniciar la sesión iraf.
En cualquier ventana ejecuto:
> ximtool &
Antes iniciar la sesión iraf, llamo a una terminal xgterm:
> xgterm &
Luego desde esa xgterm ,y situado en el directorio home del iraf (o sea el directorio que contiene
el archivo login.cl y el directorio uparm) inicio iraf:> cl
NOAO PC-IRAF Revision 2.11.3 EXPORT Tue Oct 26 21:01:12 MST 1999
This is the EXPORT version of PC-IRAF V2.11 supporting most PC systems.Welcome to IRAF. To list the available commands, type ? or ??. To get
detailed information about a command, type `help command'. To run a
command or load a package, type its name. Type `bye' to exit a
package, or `logout' to get out of the CL. Type `news' to find out
what is new in the version of the system you are using. The following
commands or packages are currently defined:dataio. dbms. images. language. lists. noao. obsolete. plot
cl>
Si llamo al iraf desde otro directorio, saldrá un mensaje de advertencia:
> cl
Warning: no login.cl found in login directory
dataio images lists obsolete proto system
dbms language noao plot softools utilitiesEntonces salgo de iraf, me sitúo en el directorio correcto y lo llamo de nuevo.
cl> logout
> pwd
/fisica1/users/andy
> cd iraf
> cl
1.2 Personalizando el entorno de Iraf...
Iraf mantiene una serie de variables de ambiente que afectan la operación de muchos comandos (tasks) Por ej., para ver la lista de las variables definidas ejecuto:
cl> show|page
Tabla 1 : Variables importantes
variable ejemplo definición terminal xgterm le dice al Iraf que tipo de terminal estoy usando printer lp le indica cual impresora usar stdplot lp le indica donde mandar los gráficos para imprimir stdimage imt800 fija el tamaño del buffer de la imagen (no el tamaño del display) stdgraph xgterm le indica al Iraf donde desplegar los gráficos imtype imh, fits fija el formato de imagen por defecto imdir /usr/tmp/andy/ define el directorio donde serán guardados los archivos .pix uparm home$uparm/ define el directorio donde se guardan los archivos de parámetros modificados por el usuario tmp /tmp/ define el directorio donde estarán los archivos temporales clobber yes/no determina si los archivos pueden sobreescribirse o no imclobber yes/no determina si las imágenes pueden sobreescribirse o no Para ver el valor de una variable en ptcar., por ej. imdir:
cl> show imdir
/usr/tmp/andyPara cambiar el valor de una variable de ambiente, puedo editar el login.cl, o puedo cambiarlo desde la propia línea de comandos:
cl> set imdir = "/fisica1/users/andy/iraf/impix/"
cl> show imdir
/fisica1/users/andy/iraf/impixAclaración: set cambia el valor de la variable temporalmente; al salir del paquete actual (ver más adelante), la variable retorna al valor previo. El comando reset tambien cambia el valor de la variable pero manteniendolo por toda la sesión.
Por ejemplo, para seleccionar la impresora:
cl> reset printer = lp
El comando set sin argumentos me muestra todas las variables con sus valores actuales:
cl> set
Otro ejemplo:
cl> show editor
viPara cambiarlo:
cl> set editor = ed
Otra variable que posiblemente deseemos modificar a nuestro gusto es la dimensión de la terminal donde estamos corriendo iraf:
cl> stty # muestra el tipo de terminal
xgterm ncols=94 nlines=29Para modificarlo:
cl> stty ncolumns=20 nlines=55
1.3 Explorando archivos y directorios...
cl> dir # lista directorio actual (idem ls)
cl> dir uparm # lista archivos del subdirectorio uparm
cl> dir *cl* # lista archivos con "cl" en el nombre
cl> dir login.?? # lista archivos que empiecen con "login."
# y tengan solo dos caracteres al final
cl> dir *.imh # lista todas las imágenes en formato iraf
# en el directorio actual
cl> typearchivo #idem cat
cl> page archivo #idem more
cl> edit archivo
cl> del archivo #idem rm
cl> path #idem pwd
cl> cd ../noches/990608 # me muevo al directorio iraf/noches/990608
cl> cd # retorno al home directory de iraf
cl> copy ../noches/990608/*.fits . # creo un link
cl> diskspace # idem dfFilesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda1 2028098 1539777 383499 80% /
/dev/hda3 5839334 5015781 521130 91% /fisica10
/dev/hdc1 8105079 4100522 3752417 52% /fisica1
heavy:/fisica 4053171 3701877 141556 96% /fisicacl> rename arch_vi arch_new # idem mv
cl> lprint archivo # idem lpr
cl> mkdir dir1Para borrar el directorio dir1:
cl> cd dir1 # me muevo al directorio dir1
cl> imdel *.imh # borro las imágenes en formato iraf
cl> del * # borro el resto de los archivos
cl> cd .. # subo un nivel
cl> !rmdir dir1 # borro el directorio (ya vacío) (*)(*) Algunos comandos de unix no son reconocidos por iraf, y en tal caso
hay que anteponer el signo ! delante del comando
1.4 Estructura básica de Iraf: Packages & Tasks
El elemento básico es la tarea (task) o comando iraf: es un programa usado para realizar una función específica. Las tareas que cumplen funciones similares y/o están relacionadas lógicamente se agrupan juntas en un paquete (pagkage). A su vez, los paquetes relacionados entre si pueden ser agrupados a un nivel superior:
Tabla 2 : Ejemplo de la estructura jerárquica de los paquetes en Iraf
paquete pcal. subpaquete sub-subpaquete tarea noao
imred
artdata
astrometry
astutil
digiphot
focas
mtlocal
nobsolete
nproto
observatory
onedspec
rv
surphot
twodspec
ccdred
argus
bias
ctioslit
dtoi
echelle
generic
hydra
iids
ired
irs
kpnocoude
kpnoslit
specred
vtel
badpiximage
ccdhedit
ccdlist
ccdgroups
ccdinstrument
ccdproc
combine
zerocombine
darkcombine
flatcombine
cosmicray(etc... )
2 El verdadero comienzo: trabajando con Iraf...
NOAO PC-IRAF Revision 2.11.3 EXPORT Tue Oct 26 21:01:12 MST 1999
This is the EXPORT version of PC-IRAF V2.11 supporting most PC systems.Welcome to IRAF. To list the available commands, type ? or ??. To get
detailed information about a command, type `help command'. To run a
command or load a package, type its name. Type `bye' to exit a
package, or `logout' to get out of the CL. Type `news' to find out
what is new in the version of the system you are using. The following
commands or packages are currently defined:dataio. images. lists. obsolete. proto. system.
dbms. language. noao. plot. softools. utilities.
cl>2.1 Paquetes y Tareas...
Los nombres seguidos por un punto son los paquetes cargados. Los nombres sin punto al final son tareas. El prompt son las dos primeras letras del último paquete cargado (clpackge)
Para cargar un paquete dado (por ej. el noao):
cl> noao
artdata. digiphot. mtlocal. observatory surfphot.
astrometry. focas. nobsolete. onedspec. twodspec.
astutil. imred. nproto. rv.Dentro del noao cargo el imred:
no> imred
argus. ctioslit. generic. irred. kpnoslit.
bias. dtoi. hydra. irs. specred.
ccdred. echelle. iids. kpnocoude. vtel.y dentro del imred cargo el ccdred:
im> ccdred
badpiximage ccdlist combine mkfringecor mkskyflat
ccdgroups ccdmask cosmicrays mkillumcor setinstrument
ccdhedit ccdproc darkcombine mkillumflat zerocombine
ccdinstrument ccdtest flatcombine mkskycor
cc>Tales serían los paquetes necesarios para reducir imágenes, por ej.
Para salir de un paquete:
cc> bye
argus. ctioslit. generic. irred. kpnoslit.
bias. dtoi. hydra. irs. specred.
ccdred. echelle. iids. kpnocoude. vtel.
im>Si se desea que cargue ciertos paquetes automáticamente al iniciarse la sesión iraf, basta editar el login.cl y agregarlos allí.
Para obtener información sobre los paquetes:
cl> ? # lista los paquetes cargados. Si estoy en un paquete particular
# lista las tareas o subpaquetes de ese paquete.
cl> ?? # lista las tareas o subpaquetes de todos los paquetes
cl> package # lista todos los paquetes cargados
2.2 Consiguiendo ayuda...
El comando help puede utilizarse con diversas opciones:
Tabla 3 : Consiguiendo ayuda sobre comandos o paquetes
comando descripción help task muestra todo el texto de la página de ayuda sobre el comando (task) help package describe (uno por línea) los subpaquetes o tareas del paquete phelp task muestra el help por página (= help | page) example task muestra solamente la sección de ejemplos del help describe task muestra solamente la sección de descripción help task > task.txt salvo la salida del help en un archivo Ejemplos:
cl> help rfits sec=examples # me muestra sólo la sección de ejemplos
# de la descripción del comando rfits
cl> help help | lpr # imprimo la descripción del helpEn el caso en que no sepa cual es la tarea que necesito:
cl> apropos <keyword> # Muestra todas las tareas que contienen
# la palabra keyword en su descripción
cl> references <keyword> # Idem aproposEjemplo:
cl> references display
searching the help database...
cursors - Graphics and image display cursors [language]
cv - Control image device, display "snapshot" [iis]
cvl - Load image display (newer version of 'display') [iis]
display - Load an image or image section into the display [tv]
frame - Select the frame to be displayed [iis]
history - Display commands previously executed [language]
iis - IIS image display control package [tv]
imdkern - Image display device (IMD) graphics kernel [plot]
imexamine - Examine images using image display, graphics, and text [tv]
jobs - Display status of background jobs [language]
odisplay - Display images (tv V2.10.4) [obsolete]
rimcursor - Read the image display cursor (makes a list) [lists]
tv - Image display utilities package [images]
tvmark - Mark objects on the image display [tv]
wcslab - Overlay a displayed image with a world coordinate grid [tv]
cl>2.3 Funcionamiento de las tareas...
La forma en que opera una tarea o comando está determinada por sus parámetros .
Existen dos tipos de parámetros:requeridos (query or required parameters): deben ser especificados al llamar la tarea. De lo contrario aparecerá un prompt requiriendo su ingreso. Son "aprendidos" (learned) por la tarea, transformándose en default para la próxima corrida del comando. Deben ser proporcionados en el orden correcto en la línea de comandos.
ocultos (hidden parameters): no es necesario especificarlos, la tarea usa valores default. Pueden especificarse en la línea de comandos, en cualquier orden, pero siempre despues
de los parámetros requeridos.cl> lpar task # me muestra los parámetros de la tarea task
cl> epar task # edito los parámetros. Para salir y salvar escribo "q:"
# para salir descartando cambios escribo " q:!"
# con "go:" salgo ejecutando.
cl> unlearn task # vuelvo los parámetros de task a sus valores defaultEjemplo:
cl> epar imarith
I R A F
Image Reduction and Analysis FacilityPACKAGE = imutil
TASK = imarithoperand1= Operand image or numerical constant
op = + Operator
operand2= Operand image or numerical constant
result = Resultant image
(title = ) Title for resultant image
(divzero= 0.) Replacement value for division by zero
(hparams= ) List of header parameters
(pixtype= ) Pixel type for resultant image
(calctyp= ) Calculation data type
(verbose= no) Print operations?
(noact = no) Print operations without performing them?
(mode = ql)
Esta tarea me permite realizar operaciones aritméticas con imágenes. Por ej., para sumar la imagen imag1 con la imagen imag2, y llamarle imag3 a la imagen resultante:
I R A F
Image Reduction and Analysis Facility
PACKAGE = imutil
TASK = imarithoperand1= imag1 Operand image or numerical constant
op = + Operator
operand2= imag2 Operand image or numerical constant
result = imag3 Resultant image
(title = ) Title for resultant image
(divzero= 0.) Replacement value for division by zero
(hparams= ) List of header parameters
(pixtype= ) Pixel type for resultant image
(calctyp= ) Calculation data type
(verbose= no) Print operations?
(noact = no) Print operations without performing them?
(mode = ql)Los parámetros requeridos son los cuatro primeros, mientras el resto (entre parentésis) son los ocultos.
La alternativa es especificar los parámetros en la línea de comandos:
cl> imarith imag1 + imag2 imag3
Los parámetros ocultos también se pueden modificar en la línea de comandos:
cl> imarith imag1 + imag2 imag3 verbose=yes
Pero en este caso no son "aprendidos", para esto hay que modificarlos con epar
Cuando iraf va a ejecutar una tarea, primero se fija en el archivo de parámetros en el directorio uparm. Si no lo encuentra, usa valores default.
En resumen, tenemos tres formas distintas de ejecutar una tarea dada. Veamos otro ejemplo con imstatistic ( para análisis estadístico de una imagen):
1º)
cl> imstat
Images ( ): LAN1057
# IMAGE NPIX MEAN STDDEV MIN MAX
LAN1057 98304 6133. 175. 4861. 13936.
cl>2º) En este caso especifico en la línea de comandos el parámetro requerido (image) y a continuación los ocultos que me interesan:
cl> imstat LAN1057 fields="image,mean,stddev"
# IMAGE MEAN STDDEV
LAN1057 6133. 175.
cl>3º) Edito el archivo de parámetros, modifico lo que corresponda y salgo con ":go"
cl> epar imstat
I R A F
Image Reduction and Analysis FacilityPACKAGE = imutil
TASK = imstatisticsimages = LAN1057 Images
(fields = image,mean,stddev) Fields to be printed
(lower = INDEF) Lower cutoff for pixel values
(upper = INDEF) Upper cutoff for pixel values
(binwidt= 0.1) Bin width of histogram in sigma
(format = yes) Format output and print column labels?
(mode = ql):go
# IMAGE MEAN STDDEV
LAN1057 6133. 175.
cl>Para redireccionar la salida de una tarea:
cl> imstat LAN1057> stat.txt
La salida de una tarea puede ser usado como entrada a otra:
cl> imhead LAN1057 long+ | page # me muestra el header de la imagen
# LAN1057 en formato largo, por páginaTambién se pueden escribir dos o más comandos en la misma línea, separados por ";"
cl> time;dir;show printer
Wed 17:42:12 12-Apr-2000
LAN1057.FIT LAN1057.imh
lp
cl>Para correr una tarea en background:
cl> task <argumentos requeridos> &
2.4 Abortando tareas...
Una tarea en ejecución se puede abortar con "ctrl+C". A continuación conviene ejecutar:
cl> flpr
Si esto no alcanza para que iraf siga funcionando normalmente, entonces conviene reiniciar iraf.
Para detener procesos que están corriendo en background:
cl> ps | page # me muestra en la primera columna el ID de cada proceso, y en la quinta el nombre del proceso
Para matar un proceso dado entonces hago:
cl> kill <ID>
2.5 File and Image Templates
Iraf da la posibilidad de ejecutar tareas con listas de imágenes. Por ejemplo, usando una sintaxis similar a la de Unix:
cl> imhead obj*.imh # me muestra los headers de todas las imágenes
# cuyo nombre empiece con objcl> imstat obj00?.imh # realiza estadística sobre las
# imágenes obj001.imh, obj002.imh,...,obj009.imho creando una lista de imágenes:
cl> files obj*.imh > lista # idem ls obj*.imh>lista
cl> imstat @lista
El archivo lista puede editarse para eliminar o borrar alguna imagen que no se quiera procesar, etc...
Iraf guarda los comandos ejecutados más recientemente en la memoria, y pueden recuperarse:
cl> e # vuelvo al comando previo
cl> ^ # ejecuto el comando previo
cl> e imst # vuelvo al comando previo que empieza con "imst"
cl> history 40 # despliega los últimos 40 comandos
cl> keeplog=yes # todos los comandos son guardados en un archivo
cl> logfile="home$cllogfile.cl" # nombre del archivo donde se guardan
# los comandos cl
cl> type logfile | page # me muestra los comandos que estuve ejecutandoPara correr un comando exclusivamente unix:
cl> ! <comando>
2.6 CL como calculadora
cl> help mathfcns
MATHFCNS (Feb86) language MATHFCNS (Feb86)
NAME
mathfcns -- math functions available in the CL
SYNOPSIS
Function Return value Description
sin(x) real sine
cos(x) real cosine
tan(x) real tangent
atan2(x,y) real arc-tangent
exp(x) real e**x
log(x) real natural logarithm
log10(x) real common logarithm
frac(x) real fractional part
abs(x) type of argument absolute value
min(a,b,...) type of min. arg minimum of a list of values
max(a,b,...) type of max. arg maximum of a list of values
real(x) real convert to real
int(x) integer integer part
DESCRIPTION
cl>Los cálculos deben empezar por el signo "=" Por ejemplo:
cl> =tan(1.5)/sin(20)*log10(11.5)
16.383617387749
cl> x=12.5;y=log(x)*24.2/sqrt(3.0);print("x=",x,"y=",y)
x=12.5 y=35.2891687271
cl>También existe una calculadora astronómica (que se encuentra en el paquete astutil):
cl> refer astcalc
searching the help database...
astcalc - Astronomical calculator [astutil]
cl> astutil
airmass asthedit asttimes galactic keywpars@ precess setairmass
astcalc astradius ccdtime gratings pdm rvcorrect setjd
as>Con esta tarea puede calcularse el día juliano, tiempo sidéreo, precesionar coordenadas, etc...
3 Trabajando con imágenes
Formatos:
FITS: Flexible Image Transport System. Es el formato "universal"
OIF (.imh + .pix): Old Iraf Format. Es el formato iraf "standard". El archivo
image.imh contiene el header de la imagen . El archivo image.pix contiene los datos (pixeles)Los datos correspondientes a los pixeles a su vez pueden guardarse en distintos formatos, desde formato SHORT (enteros de 16 bits con signo), hasta DOUBLE (pto. flotante de 64 bits) En gral. se usa el formato REAL (pto. flotante de 32 bits).
IMPORTANTE: No se puede hacer procesamiento de imágenes en datos enteros; si la imagen tiene formato entero entonces hay que transformarla a formato real.
Para cambiar el formato de pixel de una imagen puede usarse el comando chpixtype. El tipo de pixel puede determinarse con el comando imheader:
cl> imheader LAN1057
LAN1057[384,256][short]:
cl> chpixtype
Input images: LAN1057
Output images: LAN1057r
Output pixel type (|ushort|short|int|long|real|double|complex|): real
Image: LAN1057 (short) -> Image: LAN1057r (real)
cl> imhead LAN1057r
LAN1057r[384,256][real]:
cl>3.1 Obteniendo información sobre una imagen...
Para ver el header completo de la imagen:
cl>imhead LAN1057 l+
LAN1057[384,256][short]:
No bad pixels, min=4861., max=13936.
Line storage mode, physdim [512,256], length of user area 730 s.u.
Created Mon 16:44:06 10-Apr-2000, Last modified Mon 16:44:06 10-Apr-2000
Pixel file "cometin!/usr/tmp/andsosa/LAN1057.pix" [ok]
'02/06/99'
DATE-OBS= '02/06/99'
UT-START= '02:28:06.83'
UT-END = '02:29:06.86'
TELESCOP= '0.35 m f/6.4 reflector '
INSTRUME= 'Hi-SIS22 CCD'
OBSERVER= 'A. Sosa '
EXPTIME = 60.000000
DETECTOR= 'Hi-SIS22'
RELEASE = 'QMiPS32 V1.0'
MIPS-HI = 6700
MIPS-LO = 5400
MIPS-X1 = 1
MIPS-Y1 = 1
MIPS-X2 = 768
MIPS-Y2 = 512
MIPS-BIX= 2
MIPS-BIY= 2
MIPS-CCD= 2
Mediante el comando hedit puedo modificar o agregar una keyword al header. Por ejemplo, agreguemos a este header la keyword FILTER (que puede ser obligatoria para correr algunos programas de iraf):
cl> hedit LAN1057 FILTER add+
value expression ():
add LAN1057,FILTER = v
update LAN1057 ? (yes):
LAN1057 updated
cl>imhead LAN1057 l+
LAN1057[384,256][short]:
No bad pixels, min=4861., max=13936.
Line storage mode, physdim [512,256], length of user area 770 s.u.
Created Mon 16:44:06 10-Apr-2000, Last modified Mon 16:44:06 10-Apr-2000
Pixel file "cometin!/usr/tmp/andsosa/LAN1057.pix" [ok]
'02/06/99'
DATE-OBS= '02/06/99'
UT-START= '02:28:06.83'
UT-END = '02:29:06.86'
TELESCOP= '0.35 m f/6.4 reflector '
INSTRUME= 'Hi-SIS22 CCD'
OBSERVER= 'A. Sosa '
EXPTIME = 60.000000
DETECTOR= 'Hi-SIS22'
RELEASE = 'QMiPS32 V1.0'
MIPS-HI = 6700
MIPS-LO = 5400
MIPS-X1 = 1
MIPS-Y1 = 1
MIPS-X2 = 768
MIPS-Y2 = 512
MIPS-BIX= 2
MIPS-BIY= 2
MIPS-CCD= 2
FILTER = 'v 'Para corregir el valor de un mismo parámetro en una lista de imágenes:
cl> hedit @lista UT-START
value expression (v): 02:28:06.83
cl>Otros comandos útiles: ccdlist, hselect
3.2 Visualizando las imágenes...
Previamente se debe tener abierto el Ximtool (o el SAOImage). Luego con el comando display cargamos la imagen:
cl>disp LAN1057 1 # indico al programa que despliegue la imagen en el
# frame 1 (el Ximtool dispone de 4 frames)LAN1057.FITS
cl> disp LAN1057 1 zrange- zscale- z1=30 z2=1000 # Desactivo el cálculo automático del rango dinámico y lo seteo "a mano"
cl> disp LAN1057 1 ztran=log # aplico una transformación logarítmica al mapeo de intensidades
cl> disp LAN1057 1 xmag=3.0 ymag=3.0 # hago zoom por un factor 3
cl> disp LAN1057 1 fill+ # redimensiono la imagen para que ocupe todo el buffer
cl> disp imag1 1 bpm=badpix.imh bpdisp=overlay # superpone en el display el mapa de pixeles malos
3.3 Comandos para manipular imágenes
cl> imcopy imag1 imag2 # hace una copia de imag1 con el nombre imag2
cl> imrename imag1 imag2 # renombra imag1 en imag2
cl> imdel imag1 # borra imag1IMPORTANTE: Jamás borrar una imagen con "rm"! (siempre con "imdel")
También se puede trabajar con una sección de la imagen en lugar de la sección total, donde la sección está definida de la forma: [Xstart:Xend,Ystart:Yend]. Por ejemplo:
cl> disp imag1[200:300,200:300] 1 xmag=4 ymag=4
cl> imstat imag1[*,200:300] # En este caso aplico imstat solo al sector formado
# por las filas comprendidas entre y=200 e y=300cl> imcopy imag1[200:300,200:300] imag1_small
También pueden hacerse mosaicos de imágenes en una misma ventana:
cl> imcopy imag1[201:300,201:300] mosaic[1:100,1:100]
imcopy también permite hacer transformaciones de coordenadas.
3.4 Herramientas gráficas(ejemplos tomados del help)
1. Plot column 128 of image crab.5009 with default parameters:
cl> pcol crab.5009 128
2. Annotate the axes of a column plot:
cl> pcol crab.5009 64 xlabel="Row Number" ylabel=Intensity
3. Plot the average of columns 64 through 128 of image crab.5009 with default
parameters:cl> pcols crab.5009 64 128
4. Plot row 128 of image crab.5009 with default parameters:
cl> prow crab.5009 128
5. Plot the average of rows 128 through 150 of image crab.5009 with default
parameters:cl> prows crab.5009 128 150
6. Plot from the lower left to upper right of 512 square image of crab.5009.
cl> pvector crab.5009 1. 1. 512. 512.
7. Plot the same vector but with the sampling width = 3.
cl> pvector crab.5009 1. 1. 512. 512. width=3
8. Plot a vector in same image with center position 256, 256, and a
position angle of 45 degrees which extends from one edge of the
frame to the other (the default length is to plot the vector from one edge of
the frame to another).cl> pvector crab.5009 xc=256. xc=256. theta=45.
9. Plot the histogram of an image
cl> imhist LAN1057
![]()
figura 1: histograma de LAN1057.fit
10. Output the histogram of an image to a file.
cl> imhist M51.imh li+ nbins=100 > fits1.hst
11. Plot the histogram of another image between the values 0 and 2000.
cl> imhist M31.imh nbins=100 z1=0. z2=2000.
12. Plot the cumulative histogram. This is most useful for images
with fairly flat "normal" histograms.cl> imhist R50.imh hist=cum
Otro comando para graficar líneas y columnas de una imagen, en forma más interactiva y dinámica, es implot.
Si se aborta o cuelga una tarea gráfica, ejecutar el comando gflush.
El comando imexamine es ideal para analizar una imagen:
IMEXAMINE (Mar96) images.tv IMEXAMINE (Mar96)
NAME
imexamine -- examine images using image display, plots, and text
USAGE
imexamine [input [frame]]
COMMANDS
Cursor Keys
? Print help (
a Aperture sum, moment parameters, and profile fit
b Box coordinates for two cursor positions - c1 c2 l1 l2
c Column plot
d Load the image display
e Contour plot
f Redraw the last graph
g Graphics cursor
h Histogram plot
i Image cursor
j Fit 1D gaussian to image lines
k Fit 1D gaussian to image columns
l Line plot
m Statistics
image[section] npixels mean median stddev min max
n Next frame or image
o Overplot
p Previous frame or image
q Quit
r Radial profile plot with fit and aperture sum values
s Surface plot
u Centered vector plot from two cursor positions
v Vector plot between two cursor positions
w Toggle write to logfile
x Print coordinates
col line pixval [xorign yorigin dx dy r theta]
y Set origin for relative positions
z Print grid of pixel values - 10 x 10 grid
, Quick Gaussian/Moffat photometry
. Quick Gaussian/Moffat radial profile plot and fitPor ejemplo, ejecuto:
cl > imexam LAN1057
Me paro con el cursor sobre la imagen . Selecciono una estrella y apretando la tecla r obtengo
su perfil radial (fig.2), apretando la tecla e obtengo un gráfico de contornos (fig.3), y apretando
la tecla s obtengo un gráfico en 3D (fig.4)
![]()
figura 2: perfil radial de la estrella de coordenadas xc =123.68 e yc=187.56 (coord. del centroide)
![]()
figura 3: mapa de contornos (isofotas). El centro del diagrama corresponde a x=123.68 e y=187.56
![]()
figura 4: gráfico en 2D del sector [ 114 :134, 178 :198 ] de LAN1057
Para salir de imexamine apreto la tecla q sobre la imagen.
La tarea análoga a imexamine para analizar espectros es splot.
4 Algunas aplicaciones
4.1 Estimación del seeing
Para medir el FWHM en una imagen estelar, tengo varios métodos:
a) Mediante imexamine:
cl> imexam LAN1057
Me paro con el cursor sobre la estrella y pulso la tecla "a":
# COL LINE COORDINATES
# R MAG FLUX SKY PEAK E PA BETA ENCLOSED MOFFAT DIRECT
123.68 187.56 123.68 187.56
6.58 14.45 16562. 6150. 2323. 0.36 51 41.8 2.18 2.29 2.20En este caso el FWHM sería aproximadamente 2.2 pixeles.
b) Mediante prow o pvector:
cl> pvector LAN1057 xi yi xf yf
donde xi yi xf yf definen un segmento que corta a la estrella.
Ejemplo:
cl> pvector LAN1057 114 178 134 198
![]()
figura 5: gráfica de las intensidades a lo largo del segmento definido por
xi=114 , yi= 178, xf=134 , yf= 198, a intervalos de 1 pixel.
![]()
c) Utilizando la tarea phot (paquete phot.digiphot para fotometría de apertura):
ap> phot LAN1057
4.2 Evaluación del foco de una imagen
Supongamos que disponemos de varias imágenes de un mismo campo estelar, tomadas con distintos focos.
Se trata de determinar cual es la imagen mejor enfocada para ajustar el valor del foco de la cámara CCD.
Para ello selecciono un mismo conjunto de estrellas en cada imagen, y mediante imexamine
comparo el perfil radial (r), el flujo luminoso (a) y el contorno (e) de una misma estrella, en todas las imágenes.
4.3 Estimación de la relación señal-ruido y de la magnitud límite
En una imagen de un campo de estándares, selecciono un sector de la imagen correspondiente a una estrella débil,
y mediante imstat determino el valor medio del flujo (mean_obj), y el nro. de pixeles (n_pix). Análogamente
determino el valor medio de background (mean_sky) y la desviación estándar (std_sky )para un sector de cielo
cercano al objeto.
La relación señal-ruido estará dada aproximadamente por:
S/R = (mean_obj-mean_sky) / std_sky . npix