Communitygithub.com

astropy

Librería principal de Python para astronomía y astrofísica que utiliza las APIs de Astropy, incluyendo unidades/cantidades, coordenadas, E/S de FITS, tablas, sistemas de tiempo, WCS y cosmología. Úsalo al implementar o depurar código de análisis de datos astronómicos con Astropy.

¿Qué es astropy?

Este skill proporciona acceso completo a las capacidades de la biblioteca Astropy, el paquete central de Python para astronomía y astrofísica. Es esencial para tareas como transformaciones de coordenadas celestes (ICRS, Galáctico, FK5, AltAz), manejo de unidades y cantidades físicas (conversiones entre Jy y mJy, pársecs a km, etc.), operaciones con archivos FITS (imágenes y tablas), cálculos cosmológicos (distancia de luminosidad, tiempo de retroceso, parámetro de Hubble), y manejo preciso del tiempo en diferentes escalas (UTC, TAI, TT, TDB). Soporta todas las plataformas donde se ejecuta Python, incluyendo Claude Code, Cursor, Codex, y entornos de notebooks como Jupyter. El skill guía al agente en la implementación de flujos de trabajo comunes como la lectura y análisis de archivos FITS, el emparejamiento de catálogos, la conversión de coordenadas, y el uso de tablas con unidades, todo siguiendo las mejores prácticas de la comunidad astropy, como el uso consistente de unidades y el manejo de datos faltantes. Incluye notas detalladas sobre la versión actual (Astropy 7.2.0) y cambios próximos en la versión 8.0, así como recomendaciones para entornos reproducibles.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/astropy

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace astropy?

Visión General

Astropy es el paquete principal de Python para astronomía, que proporciona funcionalidades esenciales para la investigación astronómica y el análisis de datos. Usa astropy para transformaciones de coordenadas, cálculos de unidades y cantidades, operaciones con archivos FITS, cálculos cosmológicos, manejo preciso del tiempo, manipulación de datos tabulares y procesamiento de imágenes astronómicas.

Cuándo Usar Este Skill

Usa astropy cuando las tareas involucren:

  • Convertir entre sistemas de coordenadas celestes (ICRS, Galáctico, FK5, AltAz, etc.)
  • Trabajar con unidades y cantidades físicas (convertir Jy a mJy, pársecs a km, etc.)
  • Leer, escribir o manipular archivos FITS (imágenes o tablas)
  • Cálculos cosmológicos (distancia de luminosidad, tiempo de retroceso, parámetro de Hubble)
  • Manejo preciso del tiempo con diferentes escalas (UTC, TAI, TT, TDB) y formatos (JD, MJD, ISO)
  • Operaciones con tablas (lectura de catálogos, emparejamiento, filtrado, uniones)
  • Transformaciones WCS entre coordenadas de píxel y coordenadas del mundo
  • Constantes y cálculos astronómicos

Inicio Rápido

import astropy.units as u
from astropy.coordinates import SkyCoord
from astropy.time import Time
from astropy.io import fits
from astropy.table import Table
from astropy.cosmology import Planck18

# Unidades y cantidades
distancia = 100 * u.pc
distancia_km = distancia.to(u.km)

# Coordenadas
coord = SkyCoord(ra=10.5*u.degree, dec=41.2*u.degree, frame='icrs')
coord_galactico = coord.galactic

# Tiempo
t = Time('2023-01-15 12:30:00')
jd = t.jd  # Fecha Juliana

# Archivos FITS
datos = fits.getdata('imagen.fits')
cabecera = fits.getheader('imagen.fits')

# Tablas
tabla = Table.read('catalogo.fits')

# Cosmología
d_L = Planck18.luminosity_distance(z=1.0)

Capacidades Principales

1. Unidades y Cantidades (astropy.units)

Maneja cantidades físicas con unidades, realiza conversiones de unidades y asegura la consistencia dimensional en los cálculos.

Operaciones clave:

  • Crear cantidades multiplicando valores con unidades
  • Convertir entre unidades usando el método .to()
  • Realizar aritmética con manejo automático de unidades
  • Usar equivalencias para conversiones específicas de dominio (espectral, doppler, paralaje)
  • Trabajar con unidades logarítmicas (magnitudes, decibelios)

Ver: references/units.md para documentación completa sobre sistemas de unidades, equivalencias, optimización de rendimiento y aritmética de unidades.

2. Sistemas de Coordenadas (astropy.coordinates)

Representa posiciones celestes y transforma entre diferentes marcos de coordenadas.

Operaciones clave:

  • Crear coordenadas con SkyCoord en cualquier marco (ICRS, Galáctico, FK5, AltAz, etc.)
  • Transformar entre sistemas de coordenadas
  • Calcular separaciones angulares y ángulos de posición
  • Emparejar coordenadas con catálogos
  • Incluir distancia para operaciones de coordenadas 3D
  • Manejar movimientos propios y velocidades radiales
  • Consultar objetos nombrados de bases de datos en línea

Ver: references/coordinates.md para descripciones detalladas de marcos de coordenadas, transformaciones, marcos dependientes del observador (AltAz), emparejamiento de catálogos y consejos de rendimiento.

3. Cálculos Cosmológicos (astropy.cosmology)

Realiza cálculos cosmológicos usando modelos cosmológicos estándar.

Operaciones clave:

  • Usar cosmologías integradas (Planck18, WMAP9, etc.)
  • Crear modelos cosmológicos personalizados
  • Calcular distancias (luminosidad, comóvil, diámetro angular)
  • Calcular edades y tiempos de retroceso
  • Determinar el parámetro de Hubble en cualquier corrimiento al rojo
  • Calcular parámetros de densidad y volúmenes
  • Realizar cálculos inversos (encontrar z para una distancia dada)

Ver: references/cosmology.md para modelos disponibles, cálculos de distancia, cálculos de tiempo, parámetros de densidad y efectos de neutrinos.

4. Manejo de Archivos FITS (astropy.io.fits)

Lee, escribe y manipula archivos FITS (Sistema de Transporte de Imágenes Flexibles).

Operaciones clave:

  • Abrir archivos FITS con administradores de contexto
  • Acceder a HDUs (Unidades de Datos de Cabecera) por índice o nombre
  • Leer y modificar cabeceras (palabras clave, comentarios, historial)
  • Trabajar con datos de imagen (arreglos NumPy)
  • Manejar datos de tabla (tablas binarias y ASCII)
  • Crear nuevos archivos FITS (de extensión única o múltiple)
  • Usar mapeo de memoria para archivos grandes
  • Acceder a archivos FITS remotos (S3, HTTP)

Ver: references/fits.md para operaciones completas de archivos, manipulación de cabeceras, manejo de imágenes y tablas, archivos multi-extensión y consideraciones de rendimiento.

5. Operaciones con Tablas (astropy.table)

Trabaja con datos tabulares con soporte para unidades, metadatos y varios formatos de archivo.

Operaciones clave:

  • Crear tablas a partir de arreglos, listas o diccionarios
  • Leer/escribir tablas en múltiples formatos (FITS, CSV, HDF5, VOTable)
  • Acceder y modificar columnas y filas
  • Ordenar, filtrar e indexar tablas
  • Realizar operaciones estilo base de datos (unir, agrupar, agregar)
  • Apilar y concatenar tablas
  • Trabajar con columnas conscientes de unidades (QTable)
  • Manejar datos faltantes con enmascaramiento

Ver: references/tables.md para creación de tablas, operaciones de E/S, manipulación de datos, ordenamiento, filtrado, uniones, agrupación y consejos de rendimiento.

6. Manejo del Tiempo (astropy.time)

Representación precisa del tiempo y conversión entre escalas y formatos de tiempo.

Operaciones clave:

  • Crear objetos Time en varios formatos (ISO, JD, MJD, Unix, etc.)
  • Convertir entre escalas de tiempo (UTC, TAI, TT, TDB, etc.)
  • Realizar aritmética de tiempo con TimeDelta
  • Calcular tiempo sidéreo para observadores
  • Calcular correcciones de tiempo de viaje de la luz (baricéntrico, heliocéntrico)
  • Trabajar con arreglos de tiempo de manera eficiente
  • Manejar tiempos enmascarados (faltantes)

Ver: references/time.md para formatos de tiempo, escalas de tiempo, conversiones, aritmética, características de observación y manejo de precisión.

7. Sistema de Coordenadas Mundial (astropy.wcs)

Transforma entre coordenadas de píxel en imágenes y coordenadas del mundo.

Operaciones clave:

  • Leer WCS de cabeceras FITS
  • Convertir coordenadas de píxel a coordenadas del mundo (y viceversa)
  • Calcular huellas de imágenes
  • Acceder a parámetros WCS (píxel de referencia, proyección, escala)
  • Crear objetos WCS personalizados

Ver: references/wcs_and_other_modules.md para operaciones y transformaciones WCS.

Capacidades Adicionales

El archivo references/wcs_and_other_modules.md también cubre:

NDData y CCDData

Contenedores para conjuntos de datos n-dimensionales con metadatos, incertidumbre, enmascaramiento e información WCS.

Modelado

Marco de trabajo para crear y ajustar modelos matemáticos a datos astronómicos.

Visualización

Herramientas para mostrar imágenes astronómicas con estiramiento y escalado apropiados.

Constantes

Constantes físicas y astronómicas con unidades adecuadas (velocidad de la luz, masa solar, constante de Planck, etc.).

Convolución

Kernels de procesamiento de imágenes para suavizado y filtrado.

Estadísticas

Funciones estadísticas robustas que incluyen recorte sigma y rechazo de valores atípicos.

Instalación

# Instalación reproducible contra la versión estable actual
uv pip install "astropy==7.2.0"

# Dependencias opcionales recomendadas para trazado y flujos de trabajo comunes
uv pip install "astropy[recommended]==7.2.0"

# Conjunto completo de dependencias opcionales para flujos de trabajo astronómicos amplios
uv pip install "astropy[all]==7.2.0"

Astropy 7.2.0 requiere Python 3.11+ y depende de NumPy, PyERFA, PyYAML y packaging. Usa un entorno virtual aislado; no instales Astropy con privilegios elevados.

Ten en cuenta que los extras [recommended] y [all] incorporan dependencias transitivas (matplotlib, scipy, etc.) en versiones no fijadas. Para entornos de producción reproducibles, fija el árbol completo de dependencias con un archivo de bloqueo (uv lock en un proyecto, o uv pip compile para archivos de requisitos) y revisa las versiones resueltas antes de implementar.

Flujos de Trabajo Comunes

Conversión de Coordenadas entre Sistemas

from astropy.coordinates import SkyCoord
import astropy.units as u

# Crear coordenada
c = SkyCoord(ra='05h23m34.5s', dec='-69d45m22s', frame='icrs')

# Transformar a galáctico
c_gal = c.galactic
print(f"l={c_gal.l.deg}, b={c_gal.b.deg}")

# Transformar a alt-az (requiere tiempo y ubicación)
from astropy.time import Time
from astropy.coordinates import EarthLocation, AltAz

tiempo_observacion = Time('2023-06-15 23:00:00')
ubicacion_observacion = EarthLocation(lat=40*u.deg, lon=-120*u.deg)
aa_frame = AltAz(obstime=tiempo_observacion, location=ubicacion_observacion)
c_altaz = c.transform_to(aa_frame)
print(f"Alt={c_altaz.alt.deg}, Az={c_altaz.az.deg}")

Lectura y Análisis de Archivos FITS

from astropy.io import fits
import numpy as np

# Abrir archivo FITS
with fits.open('observacion.fits') as hdul:
    # Mostrar estructura
    hdul.info()

    # Obtener datos de imagen y cabecera
    datos = hdul[1].data
    cabecera = hdul[1].header

    # Acceder a valores de cabecera
    tiempo_exposicion = cabecera['EXPTIME']
    nombre_filtro = cabecera['FILTER']

    # Analizar datos
    media = np.mean(datos)
    mediana = np.median(datos)
    print(f"Media: {media}, Mediana: {mediana}")

Cálculos de Distancia Cosmológica

from astropy.cosmology import Planck18
import astropy.units as u
import numpy as np

# Calcular distancias en z=1.5
z = 1.5
d_L = Planck18.luminosity_distance(z)
d_A = Planck18.angular_diameter_distance(z)

print(f"Distancia de luminosidad: {d_L}")
print(f"Distancia de diámetro angular: {d_A}")

# Edad del universo en ese corrimiento al rojo
edad = Planck18.age(z)
print(f"Edad en z={z}: {edad.to(u.Gyr)}")

# Tiempo de retroceso
t_retroceso = Planck18.lookback_time(z)
print(f"Tiempo de retroceso: {t_retroceso.to(u.Gyr)}")

Emparejamiento de Catálogos

from astropy.table import Table
from astropy.coordinates import SkyCoord, match_coordinates_sky
import astropy.units as u

# Leer catálogos
cat1 = Table.read('catalogo1.fits')
cat2 = Table.read('catalogo2.fits')

# Crear objetos de coordenadas
coords1 = SkyCoord(ra=cat1['RA']*u.degree, dec=cat1['DEC']*u.degree)
coords2 = SkyCoord(ra=cat2['RA']*u.degree, dec=cat2['DEC']*u.degree)

# Encontrar coincidencias
idx, sep, _ = coords1.match_to_catalog_sky(coords2)

# Filtrar por umbral de separación
sep_max = 1 * u.arcsec
coincidencias = sep < sep_max

# Crear catálogos emparejados
cat1_emparejado = cat1[coincidencias]
cat2_emparejado = cat2[idx[coincidencias]]
print(f"Se encontraron {len(cat1_emparejado)} coincidencias")

Mejores Prácticas

  1. Usa siempre unidades: Adjunta unidades a las cantidades para evitar errores y asegurar consistencia dimensional
  2. Usa administradores de contexto para archivos FITS: Asegura el cierre adecuado de los archivos
  3. Prefiere arreglos sobre bucles: Procesa múltiples coordenadas/tiempos como arreglos para un mejor rendimiento
  4. Verifica los marcos de coordenadas: Comprueba el marco antes de las transformaciones
  5. Usa la cosmología adecuada: Elige el modelo cosmológico correcto para tu análisis
  6. Maneja datos faltantes: Usa columnas enmascaradas para tablas con valores faltantes
  7. Especifica escalas de tiempo: Sé explícito sobre las escalas de tiempo (UTC, TT, TDB) para tiempos precisos
  8. Usa QTable para tablas con unidades: Cuando las columnas de la tabla tengan unidades
  9. Verifica la validez del WCS: Comprueba el WCS antes de usar las transformaciones
  10. Almacena en caché valores usados frecuentemente: Los cálculos costosos (ej., distancias cosmológicas) se pueden almacenar en caché
  11. Sé explícito sobre el acceso a la red: SkyCoord.from_name(), EarthLocation.of_site(refresh_cache=True), EarthLocation.of_address(), download_file(), lecturas FITS remotas, y algunas transformaciones de tiempo/coordenadas IERS pueden contactar servicios externos o actualizar cachés locales. Evita enviar nombres de objetivos sensibles, direcciones, URL o ubicaciones de archivos propietarios a servicios de terceros. Cuando trabajes con objetivos o ubicaciones de datos potencialmente sensibles, confirma con el usuario antes de realizar estas llamadas de red.
  12. Fija versiones para reproducibilidad: Usa versiones fijadas como astropy==7.2.0 para entornos compartidos; actualiza las fijaciones intencionadamente después de revisar las notas de la versión.

Notas de la Versión Actual

  • Versión estable actual investigada: Astropy 7.2.0 (publicada el 2025-11-25; verificada como actual al 2026-06-10)
  • Requisito de Python: 3.11+
  • Astropy 8.0 está en etapa de candidato a versión (8.0.0rc1, 2026-05-26). Cambios clave a anticipar:
    • Los shims del submódulo astropy.cosmology obsoletos (astropy.cosmology.flrw, .core, .funcs, .connect, .parameter) se eliminan — importa todo directamente desde astropy.cosmology (ej., from astropy.cosmology import FlatLambdaCDM, z_at_value)
    • Los valores predeterminados de astropy.constants cambian de CODATA 2018 a CODATA 2022; fija una versión de constantes a través de los estados científicos astropyconst si la reproducibilidad es importante
    • NumPy 2.0 se convierte en la versión mínima compatible; la rama LTS 7.2.x mantiene compatibilidad con NumPy 1.x durante seis meses después del lanzamiento de 8.0
    • El ejecutor de pruebas integrado (astropy.test(), TestRunner) queda formalmente obsoleto — invoca pytest directamente
  • Obsolecencias recientes de 7.x a evitar en código nuevo: pasar un identificador de índice de tabla como primer elemento .loc (t.loc["b", 2]) — usa t.loc.with_index("b")[2] en su lugar (eliminación planificada para 9.0); astropy.utils.isiterable() — usa numpy.iterable()
  • Eliminaciones recientes en 7.0: APIs FITS obsoletas como (Bin)Table.update, _ExtensionHDU, _NonstandardExtHDU, y el argumento tile_size para CompImageHDU; CompImageHeader está obsoleto. Evita esos patrones heredados en ejemplos nuevos.
  • Los extras opcionales recomendados son recommended para dependencias comunes de trazado/científicas y all solo cuando se necesita un conjunto amplio de características opcionales.

Documentación y Recursos

Archivos de Referencia

Para información detallada sobre módulos específicos:

  • references/units.md - Unidades, cantidades, conversiones y equivalencias
  • references/coordinates.md - Sistemas de coordenadas, transformaciones y emparejamiento de catálogos
  • references/cosmology.md - Modelos y cálculos cosmológicos
  • references/fits.md - Operaciones y manipulación de archivos FITS
  • references/tables.md - Creación de tablas, E/S y operaciones
  • references/time.md - Formatos de tiempo, escalas y cálculos
  • references/wcs_and_other_modules.md - WCS, NDData, modelado, visualización, constantes y utilidades

Cómo Citar Skills de Agentes Científicos

Este skill es parte de Scientific Agent Skills

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

cobrapy

Constraint-based metabolic modeling (COBRA). FBA, FVA, gene knockouts, flux sampling, SBML models, for systems biology and metabolic engineering analysis.

Skills relacionados