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
© Copyright 2024