edit · print · PDF

Please note that all the SIEpedia's articles address specific issues or questions raised by IAC users, so they do not attempt to be rigorous or exhaustive, and may or may not be useful or applicable in different or more general contexts.

IRAF



Pasar de .imh a .fits

Pasar de .imh (y .pix) a una .fits.

WFITS

Lista.imh: lista de imágenes .imh
Lista.fits: lista de imágenes.fits

No olvides como se leen las listas:

@Lista.imh

@Lista.fits

Héctor Vázquez


Extensión de una imágen múltiple

Llamar a una extensión de una imagen múltiple (tipo fits __.fits[0],___.fits[1],...)

Cuando tienes una imagen que está formada por varias subimágenes (extensiones) puedes usar una única lista:

@Imagenes.lis: Imagen1.fit, Imagen2.fit,...

Si quieres llamar a la extensión 1 de estas imágenes tienes que poner:

@Imagenes.lis//\[1] (@Imagenes.lis//[1] no lo entiende)

Además, el paquete "mscred" sirve para tratar imágenes de este tipo...

Héctor Vázquez


Máscaras

Necesito que me vuelva a escribir la cabecera en la imagen con las mascaras pero no se como hacerlo, al final de todo cuando se escribe la imagen es de esta forma:
imexpr "(a==0) ? b : c*1.e-16" new1.fits a=fileco1.pl b=Halpha_sNII.fits c=maskval1.fits

¿se le puede añadir algo para que tambien copie la cabecera?

Una opcion interesante es usar la tarea mkheader en noao.artdata, o moveheader en stsdas.toolbox.imgtools. Si esto no funcionara como esperado o no hiciera lo que pedias, otra opcion, menos elegante pero no por ello despreciable, es hacer algo como:
imarith Halpha_sNII.fits * 0.0 ima1    # ima1 vale todo 0.0 y tiene el header de Halpha_sNII.fits
imarith ima1 + new1 new2    # new2 deberia tener el header de ima1 pero los pixeles de new1

Nicola Caon


Cambio de extensiones

O cambias todas las extensiones .fts a fits con un rename o redefines la variable imextn:
reset imextn = "oif:imh fxf:fits,fit,fts plf:pl qpf:qp stf:hhh,??h"
(le añade la nueva extension). Puede que necesite un par de flpr para que lo coja.

Con un simple imhea no reconoce las imagenes (sin embargo sí con un imhea *.fts).

Nicola Caon


Mosaico

How to do mosaic from single exposures?

Mosaic a set of 9 images convering a ~ 1 degree field into a single image centered at 12:32:53.1 +43:13:03. Set the output image scale to 0.5 arc-seconds / pixel which is close the detector scale of 0.51 arc-seconds per pixel. Set the orientation to be north up and east to the left. The 9 images all have accurate world coordinate information in their headers.
mkpattern refimage ncols=4500 nlines=4500
ccsetwcs refimage "" xref=2250.5 yref=2250.5 xmag=0.1 ymag=0.1 lngref=334.3946605486 latref=0.2503412220435

(Note: When I tried it some years ago, lngref had to be given in hours, by writing: lngref=(334.3946605486/15.). Please check the ccsetwcs task to assess what formats it accepts now. - NC)

Register the images using constant boundary extension and set uservalue to some reasonable value outside the good data range. Note that it may be possible to improve performance by increasing nxblock and nyblock.

delete already existing output images before creating new copies:
imdel @outlist veri-

perform image registration
wregister @f.l refimage @outlist boundary=constant constant=-99 nxblock=4600 nyblock=4600

Combine the images using imcombine
imcombine @outlist mosaic lthreshold=0


...seguimos con el mosaico

The tasks in MSCRED could make an image mosaic from single exposures though you would need to put the exposures into a multiextension FITS file. This is easy to do:
ms> imcopy image1 mef[a,append]
ms> imcopy image2 mef[b,append]
etc.

If you already have accurate WCS in the images you would use MSCIMAGE to make a single image. Note however that there are currently some significant constraints. The images must be non-overlapping and they cannot have any significant relative rotation.

The general package is IMMATCH. The task IMCOMBINE can make mosaics using the WCS when you set the "offset" parameter to WCS. However what this does is determine only integer x and y shifts before stacking the images. It does handle overlaps and intensity scaling with its many parameters. If the images are aligned in pixel size and x and y and you just want to include subpixel shifts for registration then you can use IMSHIFT to shift the images by the fraction of a pixel and then let IMCOMBINE do the integer shifting and stacking. If you need to handle different pixel sizes and rotations then the steps are to use WREGISTER to resample the images to a reference system (one of the images or a dummy image you create) and then use IMCOMBINE with no offsets to stack. WREGISTER makes all the images to the same pixel grid as the reference so for large shift between the images you may use alot of disk space. You would also have to make the outputs have special values for the output of bounds regions so that you can tell IMCOMBINE where there is no data.

You can also use MSCIMAGE in the MSCRED package on a multiextension file with just one image. You make that with:
ms> imcopy image1 mef1[im1]
ms> imcopy image2 mef2[im1]
etc.

Then use MSCIMAGE with one of the mef files as a reference (if you leave it blank it will chose one for you)
mscimage mef1,mef2,... out1,out2,...

This will produce single images resampled to a common pixel grid. Because you are only dealing with resampling one image at a time the concern I mentioned about rotations and overlaps does not matter.

You would then use IMCOMBINE with offset=WCS. This is basically the same idea as using WREGISTER except that the output images will only be as large as they need to be and IMCOMBINE takes care of the registration. Also with MSCIMAGE you can have it produce a mask for each input that is used with IMCOMBINE to tell it where the out of bounds regions are in each image.

Frank Valdes


Plcreate

  1. cd to your iraf home directory.
  2. cp -r /home/invsoft1/iraf-2.12.2a/plcreate_redhat/ (the new directory will contain files plcreate.par and x_ximages.e)
  3. In your login.cl or loginuser.cl files, insert:
    reset plcreate = home$plcreate/
    task plcreate = plcreate$x_ximages.e
    (or just type them from your iraf command line).

Then apparently plcreate works. No help file is available, though, for now at least.

Nicola Caon


RGB color images

Hay varias maneras de formar una imagen de color a partir de tres imágenes. Una de las más fáciles es usando la tarea EXPORT de IRAF. Esta tarea tiene varias opciones y sería bueno que le dieras una mirada, pero aquí te pongo un par de ejemplos para que empieces.

Supongo que tus imágenes están en formato "FITS". Así, si las imágenes se llaman "ima_i.fits", "ima_v.fits" e "ima_b.fits", para asociar cada una de ellas a la paleta de colores RGB (rojo, verde, azul; es el estándar que maneja la mayoría de los formatos gráficos) para formar la imagen "ima_color.ppm", puedes usar la tarea EXPORT de la siguiente manera:

export ima_i,ima_v,ima_b ima_color ppm outba="zscale(i1),zscale(i2),zscale(i3)"
export ima_i,ima_v,ima_b ima_color ppm outba="zscale(i1,0.05,3.5),zscale(i2,0.05,3.5),zscale(i3,0.08,3.2)"

En el primer caso se hace un mapeo de toda la escala de intensidades en las tres imágenes; en el segundo tú defines los intervalos de intensidades que quieres usar para definir tu escala. Se supone que esta tarea funciona bien para los formatos gráficos EPS, GIF, PGM, PPM y otros menos comunes. Yo sólo lo he usado con el formato PPM, que puedes ver con cuasi cualquier visor gráfico como kuickshow, gimp, etc. y puede convertirse muy fácilmente a otros formatos como JPG y PNG.

La otra manera fácil es usando directament el DS9: En el menú FRAME del DS9 eliges "New Frame RGB". Va a aparecer una ventana con el título RGB. En esta ventana, en la columna "Current", tienes que elegir el color al que vas a asociar la primera imagen. Supongamos que eliges "Red". Entonces, ahora usando FILE -> Open abres la imagen "ima_i.fits". Repites ahora el procedimiento para "Green" con "ima_v.fits" y para "Blue" con "ima_b.fits". Una vez que has cargado las tres imágenes, ya deberías tener una imagen en color.

Si lo que sale no te gusta, puedes ajustar las escalas de la siguiente manera: En la columna View de la ventana RGB, selecciona sólo el color que quieres ajustar. Ahora, sobre la ventana gráfica ajusta la escala con el Mouse a la manera de IRAF. Puedes ayudarte con el Menú "Scale"; una escala logarítmica, por ejemplo, a veces ayuda. Repite esto para cada color. La imagen que obtienes la puedes salvar con File --> "Save image as". Ahí puedes elegir el formato que más te guste. Un inconveniente con este segundo método es que es más difícil obtener exactamente el mismo resultado en una ocasión posterior, a menos que apuntes todos los parámetros que usaste; en particular, registra lo que hay en la ventana que aparece con la opción Scale --> "Scale Parameters ...".

Section: Users' Tips

edit · print · PDF
Page last modified on June 22, 2009, at 04:25 PM