Astronomía

¿Qué almacena BinTableHDU?

¿Qué almacena BinTableHDU?



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Recién estoy comenzando con un análisis muy primitivo de datos FITS, y tengo un archivo FITS 'sin procesar' del cual no sé cómo obtener diferentes bandas de ondas de datos (si es que esto es posible).

Nombre de archivo: casa_raw.fits No. Nombre Tipo Tarjetas Dimensiones Formato 0 PRIMARY PrimaryHDU 33 () 1 EVENTS BinTableHDU 793 14621280R x 19C [1D, 1I, 1I, 1J, 1I, 1I, 1I, 1I, 1E, 1E, 1E, 1E, 1J, 1J, 1E, 1J, 1I, 1I, 32X] 2 GTI BinTableHDU 28 2R x 2C [1D, 1D]

¿Alguien podría explicar qué transmite exactamente esta información?


Esto muestra que el archivo contiene 3 unidades de datos de encabezado (HDU; puede leer más sobre esto aquí). Los encabezados contienen metadatos. La HDU primaria (0) tiene algunas 'tarjetas' (básicamente pares de palabras clave / valor la mayor parte del tiempo, o comentarios) pero no datos. La siguiente HDU (1, llamada 'EVENTOS' en su archivo) es una tabla binaria que contiene 19 columnas. Finalmente, la última HDU (2, también llamada GTI) contiene otra tabla con 2 columnas. Puede acceder a los datos en una de las columnas de la tabla EVENTOS usando, por ejemplo:

de astropy.io la importación se ajusta a hdulist = cabe.open ('myfile.fits') hdulist ['EVENTOS']. data ['colname']

dóndecolnamees el nombre de una de las columnas. Puede averiguar los nombres de las columnas mirando:

hdulist ['EVENTOS']. data.names

Por encima del mundo tan arriba

La sección de observación proporciona a los científicos recursos, incluido el acceso al área de inicio de sesión del observador y al horario del telescopio.

El Observatorio W. M. Keck se toma muy en serio su responsabilidad por la buena administración de Maunakea. Por eso estamos profundamente comprometidos con la transparencia total.

Nuestra misión es hacer avanzar las fronteras de la astronomía, inspirando la imaginación de todos. Aprende cómo puedes involucrarte.


Parámetros de holografía OOF¶

La holografía OOF hace uso de varias constantes, distribuciones y funciones, y algunas de ellas están relacionadas entre sí. Tenga en cuenta sus símbolos matemáticos y lo que representan.

Distribución de apertura: ( subrayado(x, y) ) (apertura) ¶

Colección de subfunciones y distribuciones. Es el punto de conexión entre los datos de observación y el modelo teórico. Ver ec. (1). Se define como,

Distribución de la fase de apertura (error de fase): ( varphi (x, y) ) (fase) ¶

La distribución de la fase de apertura representa las aberraciones de un sistema óptico, medidas en radianes. También está relacionada con la distribución del frente de onda (aberración) (consulte la ecuación (2)), (W (x, y) ), que es la función clásica utilizada en óptica para definir aberraciones.

Distribución de bloqueo: (B (x, y) ) (block_manual) ¶

Es el truncamiento o bloqueo que la estructura del telescopio (o un efecto de sombra) hace al plano de apertura. Por lo general, se representa mejor como una función escalonada de Heaviside modificada en dos dimensiones. Dado que depende de la geometría, dependerá del telescopio. El paquete pyoof incluye la opción de introducir una nueva distribución de bloqueo.

(Campo) patrón de radiación: (F (u, v) ) (radiación_patrón) ¶

El patrón de radiación (de campo) (o patrón de recepción de voltaje) es una distribución compleja, es la Transformada de Fourier directa (en dos dimensiones) de la distribución de apertura, (F (u, v) = mathcal[subrayar(x, y)] ). Representa la variación angular de la radiación alrededor de la antena.

Función de iluminación: (E_ text (x, y) ) (illum_parabolic o illum_gauss) ¶

La función de iluminación es una característica de un receptor y se utiliza para reducir el nivel de los lóbulos laterales del haz. Se puede modelar con diferentes tipos de funciones, como una gaussiana o un coseno. El predeterminado utilizado por el paquete pyoof es el cono parabólico en un parabólico (orden (1 leq q leq 2 )),

el paquete pyoof incluye la opción de introducir una nueva función de iluminación.

Coeficientes de iluminación (I_coeff) ¶

De estos coeficientes, el más relevante de ellos es el cono de iluminación. Da una medida de la intensidad de la señal desde el centro del plano de apertura con respecto a sus bordes.

Longitud de onda de observación: ( lambda ) (wavel) ¶

Para una observación de holografía OOF, se requiere realizar dos de los escaneos continuos desenfocados y uno enfocado. Todos ellos deben ser observados con el mismo receptor en un determinado ( lambda ). La longitud de onda establece la precisión de las correcciones a realizar en la superficie del teslecopio.

Función de diferencia de ruta óptica (OPD): ( delta (x, yd_z) ) (opd_manual) ¶

La función OPD es la ruta adicional que la luz tiene que recorrer cada vez que se agrega un desplazamiento radial, (d_z ), (conocido a priori) al subreflector (para hacer observaciones de holografía OOF). La función OPD depende estrictamente de la geometría del telescopio.

Patrón de potencia (mapa de haces): (P (u, v) ) (patrón_de_potencia) ¶

El patrón de potencia o mapa de haces se modela y se observa la cantidad. Para una observación de holografía OOF, se requiere realizar dos de los escaneos continuos desenfocados y uno enfocado (mapeo sobre la marcha). Esto producirá dos mapas de haz con un patrón de interferencia claro y uno con el tamaño de haz enfocado común. Antes de la minimización de mínimos cuadrados, los patrones de potencia observados y modelados se normalizan como,

donde (P (u, v) ) es el patrón de potencia observado o modelado. Este preprocesamiento facilita el ajuste polinomial.

Desplazamiento radial: (d_z ) (d_z) ¶

El desplazamiento radial es el término desenfocado agregado al subreflector. Suele ser del orden de centímetros (utilizando un

receptor mm). Un valor pequeño de (d_z ) puede no agregar suficiente cambio al haz fuera de foco con respecto al haz enfocado, aumentando la degeneración en la minimización de mínimos cuadrados. Por el contrario, un valor grande de (d_z ) disminuirá la relación señal-ruido en la fuente, haciendo que los coeficientes del polinomio del círculo de Zernike tengan una alta incertidumbre en el ajuste del polinomio. Para cada geometría de avance y telescopio, este valor cambiará. En el telescopio Effelsberg (d_z = pm 2.2 ) cm mientras se usa una alimentación de (9 ) - y (7 ) -mm

Distribución del frente de onda (aberración): (W (x, y) ) (frente de onda) ¶

La distribución del frente de onda (aberración) es el enfoque clásico utilizado para representar un frente de onda aberrado. De la física óptica se sabe que (W (x, y) ) se puede expresar como una suma de un conjunto conveniente de polinomios ortonormales. Los polinomios del círculo de Zernike, (U ^ ell_n ( varrho, vartheta) ), cumplen las condiciones matemáticas requeridas, vea la Ec. (2).

Polinomio del círculo de Zernike: (U ^ ell_n ( varrho, vartheta) ) (R y U) ¶

Frits Zernike introdujo los polinomios circulares de Zernike para probar su método de contraste de fase en figuras de espejos circulares. Ben Nijboer utilizó los polinomios para estudiar los efectos de pequeñas aberraciones en imágenes difractadas con un origen rotacionalmente simétrico en pupilas circulares.

Los polinomios se pueden separar en términos de sus componentes radiales y angulares y sus índices respectivos son: orden (n ) y su dependencia angular ( ell ). La parte radial de los polinomios, está dada por,

Con (m = | ell | ). Los polinomios del círculo de Zernike completos son:

Para obtener más información sobre los polinomios del círculo de Zernike y el paquete pyoof, consulte los ejemplos de zernike.ipynb del cuaderno de Jupyter del repositorio.

No existe una forma estándar de ordenar los polinomios del círculo de Zernike, tenga en cuenta que al crear su propia secuencia, los coeficientes de los polinomios de Zernike cambiarán.

Coeficiente del polinomio del círculo de Zernike: (K_) (K_coeff) ¶

Los coeficientes polinomiales del círculo de Zernike, K_coeff, son los parámetros finales que se encontrarán mediante la minimización de mínimos cuadrados (así como I_coeff). Al encontrarlos, es posible reconstruir la distribución de la fase de apertura, ( varphi (x, y) ), ver Eq. (2). Dependiendo del orden de los polinomios, (n ), habrá un número diferente de polinomios. En general, se recopilan de la siguiente manera,


Astromatic_wrapper.pipeline¶

Clase y funciones para definir una tubería de astronomía

clase astromatic_wrapper.utils.pipeline. Pipeline ( caminos = <>, pipeline_name = Ninguno, next_id = 0, create_paths = Falso, ** kwargs ) [fuente] [editar en github] ¶

caminos: dict (opcional)

Rutas utilizadas para archivos generados por la canalización. Cada clave se agregará a la clase Pipeline como el nombre de una ruta, y su valor correspondiente es la ruta que se utilizará. Si create_paths == True, la ruta se creará automáticamente en el disco si no existe; de ​​lo contrario, se le preguntará al usuario si debe crear o no la ruta. Como mínimo, se recomienda definir un temp_path, que se utiliza para almacenar archivos temporales generados por la canalización y un log_path, que se utiliza para guardar los archivos de registro creados por la canalización y la propia canalización después de cada paso.

pipeline_name: str (opcional)

Nombre de la canalización (se usa al guardar la canalización). El valor predeterminado es Ninguno, lo que da como resultado que se utilice la fecha actual para el nombre de la canalización en el formato & # 8216year-month-day_hours-minutes-seconds & # 8217.

pasos: lista de `astromatic.utils.pipeline.PipelineStep` (opcional)

Si el usuario ya tiene una lista de pasos para ejecutar, se pueden configurar cuando se inicializa la canalización

next_id: int (opcional)

Número siguiente que se utilizará para un ID de paso de canalización. El valor predeterminado es 0.

create_paths: bool (opcional)

Si create_paths == True, se crea cualquier ruta en rutas que no exista. De lo contrario, se le preguntará al usuario si no existe una ruta. El valor predeterminado es preguntar al usuario (create_paths == False).

kwargs: dict

Argumentos de palabras clave adicionales que podrían usarse en una canalización personalizada.

Agregar un nuevo PipelineStep a la tubería

func: función

Una función que se ejecutará en la canalización. Todas las funciones deben devolver un diccionario con (como mínimo) una clave de estado cuyo valor sea éxito o error. También es común devolver una clave de advertencias cuyo valor es una tabla de astropía que contiene una lista de advertencias que pueden haber ocurrido durante el paso. El diccionario de resultados completo devuelto por la función se guarda en el archivo de registro de canalización & # 8217s.

etiquetas: lista (opcional)

Una lista de etiquetas utilizadas para identificar el paso. Al ejecutar la canalización, el usuario puede especificar un conjunto de condiciones que filtrarán qué pasos se ejecutan (o no) en función de un conjunto de etiquetas especificadas.

ignore_errors: bool (opcional)

Si ignore_errors == False, la canalización generará una excepción si se produce un error durante este paso en la canalización (lo que significa que devolvió un resultado con el resultado ['estado'] == 'error'). El valor predeterminado es falso .

ignore_exceptions: bool (opcional)

Si ignore_exceptions == True, la canalización establecerá el resultado ['status'] == 'error' para el paso que generó una excepción y continuará ejecutándose. El valor predeterminado es ignore_exceptions == False, que detendrá la canalización y generará una excepción.

kwargs: dict

Argumentos de palabras clave pasados ​​a la función cuando se ejecuta la canalización

Obtenga una clave específica de los resultados de cada paso en una canalización que ya se ha ejecutado. Esta función espera que el resultado de la clave dada sea una tabla de astropía que se puede apilar con los resultados de los pasos anteriores.

Nombre de la clave en el diccionario de resultados para cada paso a extraer. Por ejemplo, key = 'warnings' devolverá una tabla con las advertencias generadas por cada paso de la canalización.

meta_fields: list (opcional)

Lista de campos de metadatos para incluir en cada registro. Por ejemplo, las tablas de advertencia astromatic_wrapper tienen un campo de metadatos & # 8216filename & # 8217, que da el nombre del archivo XML generado por el código AstrOmatic.

Una tabla con los resultados de

Ejecute la canalización dada una lista de PipelineSteps

run_tags: list (opcional)

Ejecute todos los pasos que tengan una etiqueta en run_tags y no en ignore_tags. Si len (run_tags) == 0, se ejecutan todos los pasos que no se enumeran en las etiquetas ignorar.

ignore_tags: list (opcional)

Ignore todos los pasos que contienen una de las etiquetas en ignore_tags.

run_steps: lista de `PipelineStep` (opcional)

En lugar de ejecutar los pasos asociados con una canalización, el usuario puede especificar un conjunto de pasos para ejecutar. Esto puede ser útil si (por ejemplo) se utilizan varios criterios para seleccionar los pasos a ejecutar y el usuario desea realizar estos cortes en alguna otra función para generar los pasos necesarios para ejecutar.

run_name: str (opcional)

Nombre de la ejecución actual. Cuando se ejecuta una canalización, si se ha especificado una ruta de registro, se guarda una copia de la ruta de acceso con un registro de todas las advertencias y pasos ejecutados en el directorio de ruta de registro. Se puede especificar un run_name para distinguir entre diferentes ejecuciones de la misma canalización con la misma ruta de registro.

resume: bool (opcional)

Si resume == True y start_idx es None, la canalización continuará donde se quedó. Si resume == False y start_idx es None, la canalización comenzará en el primer paso (Pipeline.run_step_idx = 0). El valor predeterminado es resume = False.

ignore_errors: bool (opcional)

Si ignore_errors == False, la canalización generará una excepción si ocurrió un error durante cualquier paso de la canalización que devolvió un resultado con el resultado ['estado'] == 'error'. El valor predeterminado es Ninguno, que utilizará el parámetro ignore_errors para cada paso individual para decidir si lanzar o no una excepción.

ignore_exceptions: bool (opcional)

Si ignore_exceptions == True, la canalización establecerá el resultado ['status'] == 'error' para el paso que generó una excepción y continuará ejecutándose. El valor predeterminado es Ninguno, que utilizará el parámetro ignore_exception para cada paso individual para decidir si lanzar o no una excepción.

start_idx: int (opcional)

Índice de Pipeline.run_steps para comenzar a ejecutar la canalización. Todos los pasos de Pipeline.run_steps después de start_idx se ejecutarán en orden. El valor predeterminado es Ninguno, que no cambiará el Pipeline.run_step_idx actual.

Errores generados al ejecutar Pipeline

args ¶ mensaje ¶ clase astromatic_wrapper.utils.pipeline. PipelineStep ( func, step_id, etiquetas = [], ignore_errors = Falso, ignore_exceptions = Falso, func_kwargs = <> ) [fuente] [editar en github] ¶

Un solo paso en la tubería. Esto toma una función y un conjunto de etiquetas y kwargs asociados con ella y los almacena en la canalización.

Inicializar un objeto PipelineStep

func: función

La función que se ejecutará. Todas las funciones deben devolver un diccionario con como mínimo una clave de estado cuyo valor sea éxito o error.

Identificador único del paso

etiquetas: lista (opcional)

Una lista de etiquetas utilizadas para identificar el paso. Al ejecutar la canalización, el usuario puede especificar un conjunto de condiciones que filtrarán qué pasos se ejecutan (o no) en función de un conjunto de etiquetas especificadas.

ignore_errors: bool (opcional)

Si ignore_errors == False, la canalización generará una excepción si se produjo un error durante este paso en la canalización, que devolvió un resultado con el resultado ['estado'] == 'error'. El valor predeterminado es falso .

ignore_exceptions: bool (opcional)

Si ignore_exceptions == True, la canalización establecerá el resultado ['status'] == 'error' para el paso que generó una excepción y continuará ejecutándose. El valor predeterminado es ignore_exceptions == False, que detendrá la canalización y generará una excepción.

func_kwargs: dict

Argumentos de palabras clave pasados ​​a la función cuando se ejecuta la canalización

Compruebe si existe una ruta y, si no existe, déle al usuario la opción de crearla.

Nombre de la ruta a verificar

auto_create: bool (opcional)

Si la ruta no existe y auto_create == True, la ruta se creará automáticamente; de ​​lo contrario, se le pedirá al usuario que cree la ruta.

Busque rutas en el servidor. Si no existe una ruta, cree los directorios necesarios. Por ejemplo, si rutas = ['

/ Documents / images / 2014-6-5_data / '] y solo la ruta

/ Documentos / images / 2014-6-5_data / & # 8217 son creados.

rutas: str o lista de cadenas

Si rutas es una cadena, esta es la ruta para buscar y crear. Si rutas es una lista, cada una es una ruta para buscar y crear

Solicite al usuario una expresión booleana y repita hasta que se haya ingresado un booleano válido.

El texto que se le pedirá al usuario.

Función independiente de mayúsculas y minúsculas para convertir una representación de cadena de un booleano ('verdadero' / 'falso', 'sí' / 'no') en un bool. Esto no distingue entre mayúsculas y minúsculas y también acepta parte de una cadena booleana ('t' / 'f', 'y' / 'n').


0.4.2 (2014-09-23)¶

Corrección de errores¶

    Ángulo acepta inicializadores de horas: minutos o grados: minutos (sin

segundos). En estos casos también se aceptan minutos flotantes.

La repr para los marcos de coordenadas ahora muestra los atributos del marco (por ejemplo, ra, dec) en un orden coherente. Cabe señalar que, como parte de esta solución, el BaseCoordinateFrame.get_frame_attr_names () el método ahora devuelve un OrderedDict en lugar de solo un dictar . [#2845]

  • Se corrigió un bloqueo al leer datos flotantes escalados de un archivo FITS que se cargó desde una cadena (usando HDUList.fromfile ) en lugar de un archivo. [# 2710]
  • Se corrigió un bloqueo al leer datos de una HDU cuyo encabezado contenía un valor no válido para la palabra clave BLANK (por ejemplo, un valor de cadena en lugar de un número entero como lo requiere el estándar FITS). Ahora se advierte sobre las palabras clave en BLANCO no válidas, pero de lo contrario se ignoran. [# 2711]
  • Se corrigió un bloqueo al leer el encabezado de una HDU comprimida en mosaico si ese encabezado contenía palabras clave duplicadas no válidas que resultaban en una KeyError [#2750]
  • Se corrigió el bloqueo al leer tablas FITS comprimidas con gzip a través de Astropy Mesa interfaz. [# 2783]
  • Se corrigió la corrupción al escribir nuevos archivos FITS en archivos comprimidos con gzip. [# 2794]
  • Se corrigió la falla al escribir HDU hechas con matrices de datos no contiguas en objetos similares a archivos. [# 2794]
  • Ahora es posible crear astropy.io.fits.BinTableHDU objetos con una tabla con cero filas. [# 2916]
  • Se corrigió un error que impedía que h5py Conjunto de datos los objetos sean reconocidos automáticamente por Table.read . [#2831]
  • Ciclo de referencia fijo en tablas que podría evitar Mesa objetos de ser liberados de la memoria. [# 2879]
  • Se solucionó un problema donde Table.pprint () no imprimí el encabezado a stdout Cuándo stdout se redirige (por ejemplo, a un archivo). [# 2878]
  • Impresión fija de valores enmascarados cuando se especifica un formato. [# 1026]
  • Se aseguró de que los ufuncs numpy que devuelven booleanos regresen sin formato ndarray instancias, al igual que los operadores de comparación. [# 2963]

Otros cambios y adiciones¶

  • Se corrigieron un par de problemas con archivos que se incluían o excluían de manera inapropiada de las distribuciones de archivos de origen de Astropy. [# 2843, # 2854]
  • Como parte de corregir el hecho de que los elementos enmascarados de las columnas de la tabla no se podían imprimir cuando se especificaba un formato, las opciones de cadena de formato de columna se expandieron para permitir especificadores simples como '5.2f' . [#2898]
  • Asegúrese de que numpy 1.9 sea compatible. [# 2917]
  • Asegúrese de que numpy master sea compatible, haciendo np.cbrt trabajar con cantidades. [# 2937]

3.5. Crear nuevos archivos MEF¶

Se puede crear un nuevo archivo MEF a partir de un archivo existente, tal vez modificado, o se puede crear desde cero. Discutimos ambos casos aquí.

3.5.1. Crear nueva copia de archivos MEF¶

Para crear una nueva copia de un archivo MEF, modificado o no, el usuario ya ha recibido la mayoría de las herramientas en las secciones anteriores. Sin embargo, arrojemos un par de ejemplos para completar.

3.5.1.1. Ejemplo básico¶

Como se vio anteriormente, un archivo MEF se puede abrir con astrodata, el objeto AstroData se puede modificar (o no) y luego volver a escribir en el disco con un nuevo nombre.

3.5.1.2. Necesitando copias verdaderas en la memoria¶

A veces se necesita una copia real en la memoria. Esto no es específico de MEF. En Python, hacer algo como adnew = ad no crea una nueva copia del objeto AstrodData, solo le da un nuevo nombre. Si modifica un anuncio nuevo, también lo modificará. Apuntan al mismo bloque de memoria.

Para crear una copia verdaderamente independiente, es necesario utilizar la utilidad deepcopy.

Tenga cuidado con el uso de deepcopy, su memoria podría dispararse muy rápido. Úselo solo cuando sea realmente necesario.

3.5.2. Crear nuevos archivos MEF desde cero¶

Antes de crear un nuevo archivo MEF en el disco, uno tiene que crear el objeto AstroData que eventualmente se escribirá en el disco. El objeto AstroData creado también necesita saber que deberá escribirse usando el formato MEF. Afortunadamente, esto se maneja de manera bastante transparente mediante astrodatos.

La clave para asociar el proveedor de datos FITS al objeto AstroData es simplemente crear el objeto AstroData a partir de objetos de encabezado astropy.io.fits. Aquellos serán reconocidos por astrodata como FITS y se utilizará el constructor de FITS. El usuario no necesita hacer nada más especial. Así es como se hace.

3.5.2.1. Cree un MEF con encabezado básico y matriz de datos establecidos en ceros¶

Entonces es solo cuestión de llamar ad.write ('somename.fits') en ese nuevo objeto Astrodata.

3.5.2.2. Representar una tabla como una tabla binaria FITS en un objeto AstroData¶

Primero se necesita crear una tabla, ya sea astropy.table.Table o BinTableHDU. Consulte la documentación de astropía sobre tablas y la sección de este manual dedicada a las tablas para obtener más información.

En el primer ejemplo, asumimos que my_astropy_table es una tabla lista para adjuntarse a un objeto AstroData. (Advertencia: no hemos creado my_astropy_table, por lo tanto, el ejemplo siguiente no se ejecutará, aunque así es como se haría).

En el segundo ejemplo, comenzamos con un FITS BinTableHDU y lo adjuntamos a un nuevo objeto AstroData. (Nuevamente, no hemos creado my_fits_table, por lo que el ejemplo no se ejecutará).

Como antes, una vez que se construye el objeto AstroData, se puede usar el método ad.write () para escribirlo en el disco como un archivo MEF.

& copy Copyright 2020, Asociación de Universidades para la Investigación en Astronomía Revisión f4061ec0.


Tutorial 7: Tasas de recuento para múltiples aperturas¶

En este tutorial, aprenderá a calcular las tasas de conteo para observaciones de la misma fuente y paso de banda, pero con diferentes aperturas. Tenga en cuenta que esta función solo está disponible para los modos de observación que permiten la especificación del radio de energía rodeada (EE) (consulte el Apéndice B: Palabras clave OBSMODE).

Cree dos observaciones de Vega (renormalizadas a 20 stmag en Johnson V) con paso de banda HST / ACS WFC1 F555W, con radios EE de 0,3 y 1,0 segundos de arco, respectivamente:

Calcule las tasas de recuento de ambos y muestre los resultados:


Catálogo con Astropy¶

Se ajusta al contenido del archivo¶

Comencemos por abrir hgps_catalog_v1.fits.gz y mirar el contenido.

Tenga en cuenta que astropy.io.fits.open aún no funciona con los objetos Path, por lo que debe llamar a str (path) y pasar una cadena.

Hay seis mesas. Cada tabla y columna se describe en detalle en el documento de HGPS.

Acceder a los datos de la tabla¶

Podríamos trabajar con los objetos astropy.io.fits.HDUList y astropy.io.fits.BinTable. Sin embargo, en Astropy se ha desarrollado una clase más agradable para trabajar con tablas: astropy.table.Table.

Solo usaremos Table, así que convierta los datos tabulares FITS en un objeto Table:

Índice de fila = 0
Nombre de la fuenteAnalysis_ReferenceSource_ClassObjeto_identificadoGamma_Cat_Source_ID
str16str6str10str20str7
HESS J0835-455HGPSPWNVela X37
& ltColumn name = & aposSource_Name & apos dtype = & aposstr16 & apos length = 5 & gt
HESS J0835-455
HESS J0852-463
HESS J1018-589 A
HESS J1018-589 B
HESS J1023-575

Convertir formatos¶

El catálogo de HGPS solo se publica en formato FITS.

No proporcionamos varios formatos (DS9, CSV, XML, VOTABLE, ...) porque todos necesitan algo un poco diferente (en términos de formato o contenido). En cambio, aquí mostramos cómo puede convertir a cualquier formato / contenido que desee con unas pocas líneas de Python.

Formato de región DS9¶

En la página web de Fermi-LAT 3FGL, vemos que también proporcionan archivos de región DS9 que se ven así:

porque mucha gente usa DS9 para ver imágenes astronómicas y para sobretrazar los datos del catálogo.

Convirtamos el catálogo de HGPS a este formato. (para evitar una salida de texto muy larga, usamos la tabla [: 3] para usar solo las primeras tres filas)

Tenga en cuenta que hay un paquete adicional astropy-region que tiene clases para representar objetos de región y es compatible con el formato DS9. Podríamos haberlo usado para generar las cadenas de la región DS9, o podríamos usarlo para leer el archivo de la región DS9 a través de:

No mostraremos ejemplos de cómo trabajar con regiones o cómo hacer análisis basados ​​en regiones aquí, pero si desea hacer algo como, por ejemplo, medir el flujo total en una región determinada en los mapas HGPS, el paquete de regiones sería útil.

Formato CSV¶

Hagamos un ejemplo más, convirtiendo parte de la información de la tabla de catálogo de HGPS a CSV, es decir, formato separado por comas. Este es un formato que puede ser leído por cualquier herramienta para datos tabulares, p. Ej. Si está utilizando Excel o ROOT para su análisis de datos de rayos gamma, ¡esta sección es para usted!

Por lo general, puede usar el escritor CSV en Astropy de esta manera:

Sin embargo, esto no funciona aquí por dos razones:

  1. esta tabla contiene metadatos que hacen tropezar al escritor CSV de Astropy (presenté un problema con Astropy)
  2. esta tabla contiene columnas con valores de matriz para los puntos espectrales y CSV solo puede tener valores escalares.

Volvamos a nuestro objetivo real de convertir parte de los datos de la tabla del catálogo HGPS al formato CSV. El siguiente código hace una copia de la tabla que contiene solo las columnas escalares, luego elimina la metainformación (la mayoría de las variantes / lectores de CSV no admiten metadatos de todos modos) y escribe un archivo CSV.

El escritor y lector Astropy ASCII admite muchas variantes. Hagamos un ejemplo más, usando el formato ascii.fixed_width, que es un poco más fácil de leer para los humanos. Solo seleccionaremos algunas columnas y filas para imprimir aquí.

Ahora sabe cómo trabajar con el catálogo de HGPS con Python y Astropy. Para las otras tablas (por ejemplo, HGPS_GAUSS_COMPONENTS) es lo mismo: debe leer la descripción en el documento de HGPS, luego acceder a la información que necesita o convertirla al formato que desee como se muestra para HGPS_SOURCES aquí). Sigamos adelante y echemos un vistazo a los mapas de HGPS.


Imreplace¶

Por favor revise el Notas sección anterior antes de ejecutar cualquier ejemplo en este cuaderno

Imreplace se usa para reemplazar secciones de matriz con una constante. Podemos usar una simple manipulación de matrices numpy para replicar imreplace. Para obtener detalles sobre cómo hacer crecer la matriz booleana para reemplazarla, consulte crgrow o la documentación de skimage.dilation.

Longitud de la mesa = 1
Ruta localEstadoMensajeURL
str47str5str87str93
./mastDownload/HST/ICZGS3YGQ/iczgs3ygq_flt.fitsERROREl archivo descargado es 16531200, pero debería ser 16534080, el archivo puede ser parcial o estar dañado.https://mast.stsci.edu/api/v0/download/file?uri=mast:HST/product/iczgs3ygq/iczgs3ygq_flt.fits

0.2.1 (2013-04-03)¶

Corrección de errores¶

  • coordenadas de astropía
    • Se corrigieron los errores de codificación que podían ocurrir al formatear objetos de coordenadas en el código usando from __future__ import unicode_literals. [# 817]
    • Se corrigió un error por el cual se soltaba el signo menos cuando la cadena formateaba las coordenadas dms con -0 grados. [# 875]
    • Admite correctamente la palabra clave ZQUANTIZ utilizada para admitir el nivel de cuantificación & # 8211; esto incluye compatibilidad funcional para la compresión GZIP de imágenes sin pérdidas.
    • Soporte fijo para abrir archivos FITS con gzip en un modo de escritura. [# 256]
    • Se agregó un mensaje de excepción más útil al intentar leer valores no válidos de una tabla cuando falta la palabra clave TNULLn requerida. [# 309]
    • Más refactorización del manejo de la compresión de mosaicos para evitar una posible violación de acceso a la memoria que era particularmente frecuente en Windows. [# 507]
    • Se corrigió una falta de coincidencia de tamaño entero en el módulo de compresión que podría afectar a los sistemas de 32 bits. [# 786]
    • Se corrigió el mal formato de las palabras clave TFORMn al escribir tablas de imágenes comprimidas (omitieron el parámetro de longitud máxima de la matriz del formato de matriz de longitud variable).
    • Se corrigió un bloqueo que podía ocurrir al escribir una tabla que contiene columnas de matriz multidimensionales de un archivo existente en un archivo nuevo.
    • Se corrigió un error en fitdiff que informaba que dos palabras clave de encabezado que contenían NaN tenían valores diferentes.
    • Se corrigieron los enlaces a la documentación de astropy.io.votable en la salida del validador de VOTable. [# 806]
    • Cuando lea VOTables que contengan números enteros que estén fuera del rango para su tipo de columna, muestre una advertencia en lugar de generar una excepción. [# 825]
    • Se modificó el formato de cadena predeterminado para valores de punto flotante para un mejor recorrido de ida y vuelta. [# 856]
    • Se corrigió la apertura de VOTables a través de la interfaz Table.read () para tablas que no tienen nombre. [# 927]
    • Se corrigió la creación de VOTables a partir de una tabla Astropy que no tiene una máscara de datos. [# 928]
    • Correcciones menores de documentación. [# 932]
    • Se agregó un mejor manejo de los valores inf a la familia de funciones convolve_fft. [# 893]
    • Se corrigió la falla silenciosa para asignar valores a una fila en múltiples columnas. [# 764]
    • Se corrigieron varios comportamientos con errores al ver una tabla después de ordenar por una de sus columnas. [# 829]
    • Se corrigió el uso de numpy.where () con indexación de tablas. [# 838]
    • Se corrigió un error por el cual abrir una tabla remota con Table.read () podía hacer que toda la tabla se descargara dos veces. [# 845]
    • Se corrigió un error por el cual MaskedColumn ya no funcionaba si se cambiaba el nombre de la columna que se estaba enmascarando. [# 916]
    • Se agregó la capacidad faltante para que la cantidad de matrices se pueda inicializar mediante una lista de cantidades. [# 835]
    • Se corrigió la definición de año y año luz en términos de año juliano según la definición de IAU. [# 861]
    • & # 8220degree & # 8221 fue eliminado de la lista de unidades base SI. [# 863]
    • Se corrigió TypeError al llamar a WCS.to_header_string (). [# 822]
    • Se agregó un nuevo método WCS.all_world2pix para convertir de coordenadas mundiales al espacio de píxeles, incluida la inversión de la corrección de distorsión astrométrica. [# 1066, # 1281]
    • Se solucionó un problema menor al instalar con ./setup.py desarrollado en un clon de git nuevo. Es probable que esto solo sea de interés para los desarrolladores de Astropy. [# 725]
    • Corrige un bloqueo con ImportError: ningún módulo llamado 'astropy.version' cuando se ejecuta setup.py desde una verificación de origen por primera vez en OSX con Python 3.3. [# 820]
    • Se corrigió un problema de instalación donde se ejecuta ./setup.py install o cuando se instala con pip, el directorio .astropy se crea en el directorio de inicio del usuario que ejecuta el comando. El directorio de usuario & # 8217s .astropy solo debe crearse cuando usan Astropy, no cuando lo instalan. [# 867]
    • Se corrigió una excepción al crear una barra de progreso con un & # 8220total & # 8221 de 0. [# 752]
    • Se agregó una mejor documentación del comportamiento que puede ocurrir al intentar importar el paquete astropy desde dentro de una verificación de origen sin construir primero los módulos de extensión. [# 795, # 864]
    • Se agregó un enlace a las instrucciones de instalación en el archivo README. [# 797]
    • Detecta segfaults en xmllint que pueden ocurrir a veces y que, de lo contrario, están fuera de nuestro control. [# 803]
    • Cambios menores en la plantilla de documentación. [# 805]
    • Se corrigió un error menor de manejo de excepciones en download_file (). [# 808]
    • Se agregó la limpieza de cualquier archivo temporal si ocurre un error en download_file (). [# 857]
    • Se comprueba el espacio libre del sistema de archivos antes de intentar descargar un archivo con download_file (). [# 858]
    • Se corrigió la ubicación de los datos del paquete para trabajar a través de enlaces simbólicos & # 8211 requerido para trabajar con algunos diseños de empaquetado del sistema operativo. [# 827]
    • Se corrigió un error al crear extensiones de Cython donde los archivos ocultos que contienen extensiones .pyx podían hacer que la compilación fallara. Esto puede ser un problema con el software y los sistemas de archivos que generan automáticamente archivos ocultos. [# 834]
    • Se corrigió un error que podía causar que se instalara un & # 8220script & # 8221 llamado README.rst en un directorio bin. [# 852]
    • Se corrigieron algunas fugas de referencia diversas y en su mayoría raras detectadas por cpychecker. [# 914]

    Otros cambios y adiciones¶

    • Se agregó el logotipo y la marca para los instaladores binarios de Windows. [# 741]
    • Se actualizó la versión incluida libexpat a 2.1.0. [# 781]