APLPy - Curso de Python Astron[PleaseinsertPrerenderUnicode{ó

APLPy
Curso de Python Astronómico
César Husillos Rodrı́guez
IAA-CSIC
Mayo de 2015
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
1 / 75
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
2 / 75
¿Qué es APLPy?
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
3 / 75
¿Qué es APLPy?
¿Qué es y para qué sirve?
APLPy (Astronomical Plotting Library in Python) es un
módulo orientado a la generación de plots a partir de imágenes
contenidas en ficheros en formato FITS1 .
Usa
Matplotlib
Genera ficheros en múltiples formatos (EPS, PDF, PS, PNG, y
SVG).
1
Flexible Image Transport System
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
4 / 75
Antes de empezar...
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
5 / 75
Antes de empezar...
Requisitos previos
Software y versiones
La versión estable de APLPy a fecha de hoy es la 1.0.
Para instalar en LINUX, se recomienda ejecutar el comando
sudo pip install aplpy
Si no tiene instalado el comando pip, puede hacerlo
ejecutando la instrucción
sudo apt-get install python-pip
En versiones de Python 2.7.9 y posteriores, y en Python
3.4, pip ya viene preinstalado.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
6 / 75
Antes de empezar...
Requisitos previos
Software y versiones
Para conseguir la máxima funcionalidad de APLPy se recomienda
instalar
PyRegion
PyAVM
PIL
montage-wrapper
, que depende de
Montage
Pruebe a ejecutar
pip install pyregion pyavm montage - wrapper
Para que montage-wrapper funcione, debe instalar montage.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
7 / 75
Una pasada rápida
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
8 / 75
Una pasada rápida
Ejemplo1
Generar una imagen PNG a partir de un FITS
Disponemos de un fichero FITS (descargado de SLOAN). Queremos
ver qué contienen esos datos.
>>>
>>>
>>>
>>>
>>>
import aplpy
gc = aplpy . FITSFigure ( ’ frame -z -006122 -1 -0013. fits ’)
gc . show_grayscale ()
gc . save ( ’ frame -z -006122 -1 -0013. png ’)
gc . close ()
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
9 / 75
Una pasada rápida
Ejemplo1
Generar una imagen PNG a partir de un FITS
Resultado
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
10 / 75
Una pasada rápida
Ejemplo1
Generar una imagen PNG a partir de un FITS
¡No está mal!. ¿Qué más podemos hacer?
Podemos:
Usar diferentes paletas de colores.
Agregar barras de colores.
Podemos agregar una malla a la imagen.
Centrar la imagen en un punto y seleccionar área a su
alrededor.
Modificar etiquetas de ejes.
Personalizar las divisiones de los ejes.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
11 / 75
Una pasada rápida
Ejemplo1
Generar una imagen PNG a partir de un FITS
También podemos:
Insertar texto dentro del plot.
Poner una barra para indicar la escala espacial de la imagen.
Superponer el contorno de otra imagen que representa el
mismo área de cielo.
Crear imágenes a color.
Generar varios plots en una misma figura.
...
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
12 / 75
Una pasada rápida
Ejemplo más completo
plot
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
13 / 75
Una pasada rápida
Ejemplo más completo
código
import aplpy
import numpy
fitsfile = ’ ../ fits / frame -z -006122 -1 -0013. fits ’
gc = aplpy . FITSFigure ( fitsfile , north = True )
# paleta de colores para la imagen
gc . show_grayscale ()
# tamanyo de fuente para los ejes
gc . tick_labels . set_font ( size = ’ small ’)
gc . axis_labels . set_xtext ( ’ Right Ascension ( J2000 ) ’)
gc . axis_labels . set_ytext ( ’ Declination ( J2000 ) ’)
gc . axis_labels . set_xposition ( ’ top ’)
# posicion de los marcadores de ejes
gc . tick_labels . set_xposition ( ’ top ’)
# carga de contorno de otra imagen
gc . show_contour ( ’ ../ fits / frame -u -006122 -1 -0013. fits ’ , \
colors = ’ magenta ’ , levels =2)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
14 / 75
Una pasada rápida
Ejemplo más completo
código
# seleccion de un area concreta de la imagen
gc . recenter (226.62221 , 55.763108 , radius =240 / 3600.)
# barra de color
gc . add_colorbar ()
gc . colorbar . se t _ ax i s _ la b e l_ t e xt ( ’ Flux ( Jy / beam ) ’)
# grid de coordenadas
gc . add_grid ()
gc . grid . set_alpha (0.5)
# gestion del marco de la imagen
gc . frame . set_linewidth (2) # points
gc . frame . set_color ( ’ orange ’)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
15 / 75
Una pasada rápida
Ejemplo más completo
código
# carga de un fichero de texto
data = numpy . loadtxt ( ’ ../ fits / possible - galaxies . txt ’)
ra , dec = data [: , 0] , data [: , 1]
# destacar pixeles de la imagen
gc . show_markers ( ra , dec , layer = ’ marker_set_1 ’ , \
edgecolor = ’ red ’ , facecolor = ’ none ’ , \
marker = ’o ’ , s =10 , alpha =0.5)
# mostrar regiones creadas con ds9
gc . show_regions ( ’ ../ fits / ds9 . reg ’)
# agregar texto a la imagen
gc . add_label (0.1 , 0.9 , ’( a ) ’ , relative = True , \
color = ’ white ’ , weight = ’ extra bold ’ , \
fontsize = ’xx - large ’)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
16 / 75
Una pasada rápida
Ejemplo más completo
código
# barra de escala
gc . add_scalebar (60. / 3600) # degrees
gc . scalebar . set_corner ( ’ bottom right ’)
gc . scalebar . set_label ( ’1 arcmin ’)
gc . scalebar . set_color ( ’ black ’)
gc . scalebar . set_font_size (10)
# guardar ficheros
gc . save ( ’ ejemplo - completo . png ’)
gc . close ()
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
17 / 75
API APLPy
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
18 / 75
API APLPy
API APLPy
Para esta sección haremos uso del siguiente código
import aplpy
imagen = ’ ../ fits / frame -z -006122 -1 -0013. fits ’
gc = aplpy . FITSFigure ( imagen )
Vamos a explicar cómo usar la API2 de APLPy disponibles en relación a las
diferentes áreas de la imagen.
2
Application Programming Interface. Es el conjunto de clases,
módulos, funciones, variables y constantes que definen lo que se puede
hacer con un paquete software.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
19 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
20 / 75
API APLPy
API APLPy
FitsFigure
Representa a la figura en su conjunto.
Se crea usando la función aplpy.FITSfigure
>>> import aplpy
>>> imagen = ’ ../ fits / frame -z -006122 -1 -0013. fits ’
>>> gc = aplpy . FITSFigure ( imagen )
En el código anterior gc es el nombre del objeto
FITSFigure que hemos creado. Ahora, podemos
controlar la figura mediante la sintaxis
>>> gc . f un ci on _c ua lq ui er a ([ parametro1 , parametro2 ,...])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
21 / 75
API APLPy
API APLPy
FitsFigure
add colorbar(*args, **kwargs)
Agrega una barra de color a la imagen.
add grid(*args, **kwargs)
Agrega una malla a la figura.
add label(x, y, text[, relative, color, ...])
Agrega una etiqueta de texto a la figura en las posiciones x e y.
Coordenadas absolutas si relative=False.
add scalebar(length, *args, **kwargs)
Agrega una barra de escala a la figura. La longitud se pasa en grados.
close()
Cierra la figura y libera memoria.
hide colorscale()
Oculta la escala de color (sólo si se ha creado).
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
22 / 75
API APLPy
API APLPy
FitsFigure
hide grayscale(*args, **kwargs)
Oculta la figura mostrada en escala de grises.
pixel2world(xp, yp)
Devuelve las coordenadas WCS asociadas al pixel dado por (xp, yp).
recenter(x, y[, radius, width, height])
Centra la imagen en la posición (x, y). Puede darse un radio (en grados)
y obtendremos una figura cuadrada. O puede darse la anchura y altura
(en grados) para obtener una imagen rectangular.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
23 / 75
API APLPy
API APLPy
FitsFigure
remove colorbar()
Elimina la barra de color de la figura (si se ha creado antes).
remove grid()
Elimina la malla de coordenadas de la figura (si se ha creado antes).
remove scalebar()
Elimina la barra de escala de la figura (si se ha creado antes).
save(filename[, dpi, transparent, ...])
Guarda la figura en un fichero.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
24 / 75
API APLPy
API APLPy
FitsFigure
set title(title, **kwargs)
Establece el tı́tulo de la figura.
set xaxis coord type(coord type)
Establece el tipo de coordenada para el eje x. Valores posibles: ’latitude’,
’longitude’ o ’scalar’.
set yaxis coord type(coord type)
Establece el tipo de coordenada para el eje y. Valores posibles: ’latitude’,
’longitude’ o ’scalar’.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
25 / 75
API APLPy
API APLPy
FitsFigure
show arrows(x, y, dx, dy[, width, ...])
Muestra flechas en la figura. Origen en (x, y) y desplazamiento en (dx,
dy).
show circles(xw, yw, radius[, layer, zorder])
Pinta cı́rculos en la imagen. Centro en (xw, yw). Radio en grados.
Nombre de capa (layer=), y orden de inserción (zorder=0 es el que
está más abajo).
show colorscale([vmin, vmid, vmax, pmin, ...])
Muestra la escala de color de la imagen (valor mı́nimo = vmin, percentil
mı́nimo = pmin, ...).
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
26 / 75
API APLPy
API APLPy
FitsFigure
show contour([data, hdu, layer, levels, ...])
Muestra contornos superpuesto a la figura. Pueden ser de la misma
imagen o de otra. Levels es el número de niveles de contorno.
show ellipses(xw, yw, width, height[, ...])
Pinta elipses en la figura.
show grayscale([vmin, vmid, vmax, pmin, ...])
Muestra en escala de grises la figura dada en el fichero FITS.
show lines(line list[, layer, zorder])
Pinta lı́neas en la figura.
show markers(xw, yw[, layer])
Pinta marcas sobre las coordenadas (xw, yw). Pueden ser arrays de
coordenadas.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
27 / 75
API APLPy
API APLPy
FitsFigure
show rectangles(xw, yw, width, height[, ...])
Pinta rectángulos sobre la figura.
show rgb([filename, interpolation, ...])
world2pixel(xw, yw)
Devuelve el pixel (x, y) que tiene esas coordenadas WCS (xw, yw) en la
figura.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
28 / 75
API APLPy
API APLPy
scalebar
Muestra la escala espacial de nuestra figura.
Existe a partir del momento en el que se ejecuta la función
add scalebar sobre la figura.
>>> gc . add_scalebar ( lon gi tu d_ en _g ra do s )
A partir de entonces el objeto scalebar está disponible
>>> gc . scalebar
Se pueden modificar las propiedades mediante la sintaxis
>>> gc . scalebar . metodo ([ parametro1 , ... , parametroN ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
29 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
30 / 75
API APLPy
API APLPy
scalebar
hide()
Oculta la barra de escala.
set alpha(alpha)
Establece el valor de transparencia de la barra de escala (alpha=0
transparente, alpha=1 opaca)
set color(color)
Determina el color del texto y de la barra de la escala.
set corner(corner)
Especifica dónde se muestra la escala.
set font([family, style, variant, stretch, ...])
Establece las propiedades de las etiquetas de los marcadores. Otros
parámetros: weight, size, fontproperties ...
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
31 / 75
API APLPy
API APLPy
scalebar
Valores para los parámetros de la función set font([family, style,
variant, stretch, ...])
family (’serif’, ’sans-serif’, ’cursive’, ’fantasy, ’monospace’,...),
style (’normal’, ’italic’ o ’oblique’), stretch (str, int o float de 0 a 1000, o
’ultra-condensed’, ’extra-condensed’, ’condensed’, ’semi-condensed’,
’normal’, ’semi-expanded’, ’expanded’, ’extra-expanded’ o
’ultra-expanded’)
weight (número entre 0 y 1000, o ’ultralight’, ’light’, ’normal’, ’regular’,
’book’, ’medium’, ’roman’, ’semibold’, ’demibold’, ’demi’, ’bold’, ’heavy’,
’extra bold’, ’black’)
size (tamaño en puntos, o ’xx-small’, ’x-small’, ’small’, ’medium’, ’large’,
’x-large’, o ’xx-large’)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
32 / 75
API APLPy
API APLPy
scalebar
set font family(family)
Fija la familia de fuente.
set font size(size)
Fija el tamaño de la fuente.
set font style(style)
Determina el estilo de la fuente.
set font weight(weight)
Establece la anchura de la fuente.
set frame(frame)
Permite mostrar un marco alrededor de la barra de escala.
set label(label)
Establece la etiqueta que se muestra con la barra de la escala.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
33 / 75
API APLPy
API APLPy
scalebar
set length(length)
Fija la longitud de la barra de la escala (en grados).
set linestyle(linestyle)
Fija el estilo de la lı́nea de la barra de la escala. Valores posibles: ’solid’,
’dashed’, ’dashdot’, o ’dotted’.
set linewidth(linewidth)
Permite cambiar la anchura de la lı́nea de la barra de escala. Se da en
puntos.
show(length[, label, corner, frame, ...])
Pinta la barra de escala sobre la imagen.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
34 / 75
API APLPy
API APLPy
frame
Se refiere al marco de la figura.
Disponible a través del objeto
>>> gc . frame
Se pueden cambiar sus propiedades mediante la sintaxis
>>> gc . frame . metodo_de_frame ([ param1 , ... , paramN ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
35 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
36 / 75
API APLPy
API APLPy
frame
set color(color)
Cambia el color del marco.
set linewidth(linewidth)
Cambia la anchura del marco (en puntos).
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
37 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
38 / 75
API APLPy
API APLPy
grid
Es la malla que facilita la localización espacial de objetos en la
figura.
Disponible a través del objeto
>>> gc . grid
Se pueden cambiar sus propiedades mediante la sintaxis
>>> gc . grid . metodo_de_grid ([ param1 , ... , paramN ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
39 / 75
API APLPy
API APLPy
grid
hide()
Oculta la malla.
set alpha(alpha)
Cambia la trasparencia de la lı́neas de la malla.
set color(color)
Cambia el color de las lı́neas de la malla.
set linestyle(linestyle)
Cambia el estilo de la lı́nea de la malla.
set linewidth(linewidth)
Cambia la anchura de las lı́neas (en puntos).
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
40 / 75
API APLPy
API APLPy
grid
set xspacing(xspacing)
Determina el espaciado en el eje x entre dos lı́neas de la malla. xspacing
puede ser float (en grados) o str (si vale ’ticks’ la malla tiene los
mismos espacios que las marcas de los ejes).
set yspacing(yspacing)
Determina el espaciado en el eje y entre dos lı́neas de la malla (yspacing :
float, str ).
show()
Muestra la malla sobre la figura.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
41 / 75
API APLPy
API APLPy
colorbar
Sirve para mostrar el valor de cada pı́xel en la figura.
Existe desde que se ejecuta sobre la figura el método
>>> gc . add_colorbar ()
sobre la figura.
A partir de entonces es accesible a través de
>>> gc . colorbar
Sus propiedades cambian ejecutando métodos del objeto.
>>> gc . colorbar . m et od o_ de _c ol or ba r ([ parametros ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
42 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
43 / 75
API APLPy
API APLPy
colorbar
hide()
Oculta la barra de colores.
set axis label font([family, style, ...])
Modifica las propiedades de la fuente de los valores que se representan en
los ejes.
set axis label pad(axis label pad)
Separa la barra de colores de la figura. axis label pad en puntos.
set axis label rotation(axis label rotation)
Rota la etiqueta de la barra.
set axis label text(axis label text)
Mofifica el texto de la etiqueta de la barra.
set box(box[, box orientation])
Configura la caja donde está la barra de colores. Más en
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Doc set box
Mayo de 2015
44 / 75
API APLPy
API APLPy
colorbar
set font([family, style, variant, stretch, ...])
Modifica la fuente de los marcadores de la barra.
set frame color(color)
Establece el color del marco de la barra.
set frame linewidth(linewidth)
Determina la anchura (en puntos) del marco.
set label properties(*args, **kwargs)
Cambia las propiedades de la etiqueta de la barra.
set labels(labels)
Muestra determinados valores (labels) en la barra.
set location(location)
Establece la ubicación de la barra.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
45 / 75
API APLPy
API APLPy
colorbar
set pad(pad)
Concreta el espacio entre la barra y la imagen. Valor [0, 1], relativo al
tamaño de la figura.
set ticks(ticks)
Dice en qué posición van las marcas de la barra.
set width(width)
Anchura relativa de la barra de colores respecto al tamaño de la figura.
show([location, width, pad, ticks, labels, ...])
Muestra la barra al lado de la figura.
update()
Actualiza cambios en la barra de colores.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
46 / 75
API APLPy
API APLPy
axislabel
Se refiere al texto que especifica las magnitudes representadas
en los ejes.
Disponible en el objeto
>>> gc . axis_labels
Se puede modificar llamando a sus métodos
>>> gc . axis_labels . m e t o d o _ d e _ a x i s _ l a b e ls ([ parametros ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
47 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
48 / 75
API APLPy
API APLPy
axislabel
hide()
Oculta las leyendas en ambos ejes.
hide x()
Oculta la leyenda del eje x.
hide y()
Oculta la leyenda del eje y.
set font([family, style, variant, stretch, ...])
Establece las propiedades de la fuente de las leyendas.
set xpad(pad)
Marca la distancia entre el eje x y su leyenda.
set xposition(position)
Concreta la posición de la leyenda del eje x. Valores posibles: ’top’ o
’bottom’.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
49 / 75
API APLPy
API APLPy
axislabel
set xtext(label)
Establece el texto de la leyenda del eje x.
set ypad(pad)
Marca la distancia entre el eje x y su leyenda.
set yposition(position)
Concreta la posición de la leyenda del eje xy. Valores posibles: ’left’ o
’right’.
set ytext(label)
Establece el texto de la leyenda del eje y.
show()
Muestra las leyendas de ambos ejes.
show x()
Muestra la leyenda del eje x.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
50 / 75
API APLPy
API APLPy
axislabel
show y()
Muestra la leyenda del eje y.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
51 / 75
API APLPy
API APLPy
ticklabels
Son los valores numéricos (o coordenadas) que se muestran en
los ejes.
Disponible en el objeto
>>> gc . tick_labels
Se puede modificar llamando a sus métodos
>>> gc . tick_labels . m e t o d o _ d e _ t i c k _ l a b e ls ([ parametros ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
52 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
53 / 75
API APLPy
API APLPy
ticklabels
hide()
Oculta los valores correspondientes a las marcas en ambos ejes.
hide x()
Oculta los valores correspondientes a las marcas en el eje x.
hide y()
Oculta los valores correspondientes a las marcas en el eje y.
set font([family, style, variant, stretch, ...])
Cambia las propiedades de la fuente.
set style(style)
Determina el estilo de las leyendas de las marcas sobre los ejes.
set xformat(format)
Describe el formato3 de las etiquetas en el eje x.
3
Se detalla más adelante.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
54 / 75
API APLPy
API APLPy
ticklabels
set xposition(position)
Establece la posición de las leyendas de las marcas en el eje x. Valores
posibles: ’top’ o ’bottom’.
set yformat(format)
Describe el formato de las etiquetas en el eje y.
set yposition(position)
Establece la posición de las leyendas de las marcas en el eje y. Valores
posibles: ’left’ o ’right’.
show()
Muestra los valores asociados a las marcas en los ejes.
show x()
Muestra los valores asociados a las marcas en el eje x.
show y()
Muestra los valores asociados a las marcas en el eje y.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
55 / 75
API APLPy
API APLPy
Formato de las etiquetas
ddd.ddddd
Para medidas en grados. El número de decimales puede cambiarse
variando las ’d’ tras el punto decimal.
hh o dd
Para horas o grados, respectivamente.
hh:mm o dd:mm
Para horas y minutos, o grados y minutos.
hh:mm:ss o dd:mm:ss
Para horas, minutos y segundos, o grados, minutos de arco y segundos de
arco.
hh:mm:ss.ss o dd:mm:ss.ss
El formato más completo. El número de decimales puede cambiarse.
Si el tipo de coordenada es scalar, se puede especificar cualquier formato válido
en Python. Por defecto es %10.3f.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
56 / 75
API APLPy
API APLPy
ticks
Son las marcas que se muestran sobre los ejes.
Disponibles en el objeto
>>> gc . ticks
Se pueden modificar llamando a sus métodos
>>> gc . ticks . metodo_de_ticks ([ parametros ])
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
57 / 75
API APLPy
API APLPy
Elementos de una figura
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
58 / 75
API APLPy
API APLPy
ticks
hide()
OCulta las marcas en ambos ejes.
hide x()
Oculta las marcas en el eje x.
hide y()
Oculta las marcas en el eje y.
set color(color)
Cambia el color de las marcas.
set length(length[, minor factor])
Cambia la longitud las marcas (en puntos).
set linewidth(linewidth)
Establece la anchura (en puntos) de las marcas.
set minor frequency(frequency)
Número de submarcas entre dos marcas principales.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
59 / 75
API APLPy
API APLPy
ticks
set xspacing(spacing)
Establece la distancia (en grados) entre marcas principales en el eje x.
set yspacing(spacing)
Establece la distancia (en grados) entre marcas principales en el eje y.
show()
Muestra las marcas en ambos ejes.
show x()
Muestra las marcas en el eje x.
show y()
Muestra las marcas en el eje y.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
60 / 75
Imágenes RGB
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
61 / 75
Imágenes RGB
Crear imágenes a color
Es suficiente el uso de dos funciones:
aplpy.make rgb cube(files, output, north=False,
system=None, equinox=None)
Crea un cubo RGB a partir de una lista de tres imágenes FITS.
aplpy.make rgb image(data, output, indices=(0, 1, 2),
vmin r=None, vmax r=None, pmin r=0.25, pmax r=99.75,
stretch r=’linear’, vmid r=None, exponent r=2, vmin g=None,
vmax g=None, pmin g=0.25, pmax g=99.75, stretch g=’linear’,
vmid g=None, exponent g=2, vmin b=None, vmax b=None,
pmin b=0.25, pmax b=99.75, stretch b=’linear’, vmid b=None,
exponent b=2, make nans transparent=False,
embed avm tags=True)
Crea una image (PNG, JPG, ...) a partir de un cubo RGB con formato
FITS (generado con la función anterior). Más información
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
62 / 75
Imágenes RGB
Crear imágenes a color
ejemplo
>>> import aplpy
>>> r = ’ frame -z -006122 -1 -0013. fits ’
>>> g = ’ frame -r -006122 -1 -0013. fits ’
>>> b = ’ frame -u -006122 -1 -0013. fits ’
>>> aplpy . make_rgb_cube ([ r , g , b ] , ’ cubo_north . fits ’ , \
north = True )
>>> aplpy . make_rgb_image ( ’ cubo_north . fits ’ , \
’ cubo_north . png ’)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
63 / 75
Imágenes RGB
Crear imágenes a color
ejemplo
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
64 / 75
Imágenes RGB
Trabajo con imagen a color (RGB)
Puedo trabajar sobre la imagen a color como lo he hecho con
los FITS.
La dificualtad está en que no hay info WCS en la imagen RGB.
Puedo obviar el problema si uso un fichero con información
WCS.
aplpy.make rgb cube genera un fichero adicional con
extensión 2d.fits (output 2d.fits). Contiene la información de
astrometrı́a necesaria para el trabajo con la imagen RGB.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
65 / 75
Imágenes RGB
Trabajo con imagen a color (RGB)
ejemplo
>>> fig = aplpy . FITSFigure ( ’ cubo_north_2d . fits ’ , \
north = True )
>>> fig . show_rgb ( ’ cubo_north . png ’)
>>> fig . add_grid ()
>>> fig . save ( ’ c u b o _ n o r t h _ m o d i f i c a d o . png ’)
>>> fig . close ()
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
66 / 75
Imágenes RGB
Trabajo con imagen a color (RGB)
ejemplo
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
67 / 75
Múltiples gráficas
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
68 / 75
Múltiples gráficas
Varias gráficas en la misma figura
Sólo un poco más complicado que trabajar con una gráfica.
Debemos generar una figura matplolib
fig = pyplot.figure()
Usar el parámetro subplot de la función aplpy.FITSFigure,
para delimitar el área de cada subfigura (relativa al área total
de la imagen).
El formato de subplot es: (x, y, dx, dy) donde
(x, y) son las coordenadas de la esquina inferior
izquierda del subplot.
(dx, dy) es el tamaño en x e y del subplot.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
69 / 75
Múltiples gráficas
Varias gráficas en la misma figura
ejemplo
import aplpy
import pylab
fig = pylab . figure ( figsize =(10 , 6))
f1 = aplpy . FITSFigure ( ’ cubo_north_2d . fits ’ , \
north = True , figure = fig , subplot =[0.2 ,0.1 ,0.35 ,0.8])
f1 . show_rgb ( ’ cubo_north . png ’)
f1 . add_grid ()
f1 . tick_labels . set_font ( size = ’xx - small ’)
f2 = aplpy . FITSFigure ( ’ frame -g -006122 -1 -0013. fits ’ , \
north = True , figure = fig , subplot =[0.55 ,0.1 ,0.35 ,0.8])
f2 . show_grayscale ()
f2 . add_grid ()
f2 . tick_labels . set_font ( size = ’xx - small ’)
f2 . axis_labels . hide_y ()
f2 . tick_labels . hide_y ()
fig . savefig ( ’ subplots2 . png ’)
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
70 / 75
Múltiples gráficas
Trabajo con imagen a color (RGB)
ejemplo
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
71 / 75
Referencias
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
72 / 75
Referencias
Referencias
Toda la información ha sido resumida de las fuentes oficiales
del paquete APLPy
Desde allı́, se puede acceder a la extensa documentación
Docs
que contiene multitud de ejemplos de código para hacerse una
idea clara y precisa de la funcionalidad del paquete.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
73 / 75
Ejercicios
Índice
1
2
3
4
5
6
7
8
César Husillos Rodrı́guez (IAA-CSIC)
¿Qué es APLPy?
Antes de empezar...
Una pasada rápida
API APLPy
Imágenes RGB
Múltiples gráficas
Referencias
Ejercicios
APLPy
Mayo de 2015
74 / 75
Ejercicios
Ejercicios
1
Genere una imagen PNG a partir de la imagen en filtro u SLOAN
frame-u-006122-1-0013.fits. Muestre con marcadores de color
amarillo las coordenadas dadas en el fichero possible-galaxies.txt.
2
Abra con DS9 la imagen del filtro i. Cree un fichero de regiones marcando
6 de las estrellas más brillantes. Usando APLPy, genere la imagen JPG
del filtro i con las regiones almacenadas en ese fichero.
3
Obtenga las coordenadas (x, y) de cada punto de la región del fichero
anterior.
4
Genere una figura en escala logartı́mica del filtro z. Ponga una barra de
color a la derecha de la imagen. Pinte una malla. Formato de salida: PNG.
5
Cree un mosaico (2x2) con las figuras de los filtros u, g, r y z. Ponga en
las imágenes el texto ’Filter u SLOAN’, ’Filter g SLOAN’, ’Filter r
SLOAN’ y ’Filter z SLOAN’ (según corresponda). Agrege una malla a
cada imagen. Agrege una barra de escala a la imagen inferior derecha.
6
Cree una figura en formato PNG a color. El color rojo viene del filtro i, el
verde del filtro r y el azul del filtro u. Pinte malla y barra de escala.
César Husillos Rodrı́guez (IAA-CSIC)
APLPy
Mayo de 2015
75 / 75