Astropy
Overview
Astropy is the core Python package for astronomy, providing essential functionality for astronomical research and data analysis. Use astropy for coordinate transformations, unit and quantity calculations, FITS file operations, cosmological calculations, precise time handling, tabular data manipulation, and astronomical image processing.
When to Use This Skill
Use astropy when tasks involve:
- Converting between celestial coordinate systems (ICRS, Galactic, FK5, AltAz, etc.)
- Working with physical units and quantities (converting Jy to mJy, parsecs to km, etc.)
- Reading, writing, or manipulating FITS files (images or tables)
- Cosmological calculations (luminosity distance, lookback time, Hubble parameter)
- Precise time handling with different time scales (UTC, TAI, TT, TDB) and formats (JD, MJD, ISO)
- Table operations (reading catalogs, cross-matching, filtering, joining)
- WCS transformations between pixel and world coordinates
- Astronomical constants and calculations
Quick Start
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
# Units and quantities
distance = 100 * u.pc
distance_km = distance.to(u.km)
# Coordinates
coord = SkyCoord(ra=10.5*u.degree, dec=41.2*u.degree, frame='icrs')
coord_galactic = coord.galactic
# Time
t = Time('2023-01-15 12:30:00')
jd = t.jd # Julian Date
# FITS files
data = fits.getdata('image.fits')
header = fits.getheader('image.fits')
# Tables
table = Table.read('catalog.fits')
# Cosmology
d_L = Planck18.luminosity_distance(z=1.0)
Core Capabilities
1. Units and Quantities (astropy.units)
Handle physical quantities with units, perform unit conversions, and ensure dimensional consistency in calculations.
Key operations:
- Create quantities by multiplying values with units
- Convert between units using
.to() method
- Perform arithmetic with automatic unit handling
- Use equivalencies for domain-specific conversions (spectral, doppler, parallax)
- Work with logarithmic units (magnitudes, decibels)
See: references/units.md for comprehensive documentation, unit systems, equivalencies, performance optimization, and unit arithmetic.
2. Coordinate Systems (astropy.coordinates)
Represent celestial positions and transform between different coordinate frames.
Key operations:
- Create coordinates with
SkyCoord in any frame (ICRS, Galactic, FK5, AltAz, etc.)
- Transform between coordinate systems
- Calculate angular separations and position angles
- Match coordinates to catalogs
- Include distance for 3D coordinate operations
- Handle proper motions and radial velocities
- Query named objects from online databases
See: references/coordinates.md for detailed coordinate frame descriptions, transformations, observer-dependent frames (AltAz), catalog matching, and performance tips.
3. Cosmological Calculations (astropy.cosmology)
Perform cosmological calculations using standard cosmological models.
Key operations:
- Use built-in cosmologies (Planck18, WMAP9, etc.)
- Create custom cosmological models
- Calculate distances (luminosity, comoving, angular diameter)
- Compute ages and lookback times
- Determine Hubble parameter at any redshift
- Calculate density parameters and volumes
- Perform inverse calculations (find z for given distance)
See: references/cosmology.md for available models, distance calculations, time calculations, density parameters, and neutrino effects.
4. FITS File Handling (astropy.io.fits)
Read, write, and manipulate FITS (Flexible Image Transport System) files.
Key operations:
- Open FITS files with context managers
- Access HDUs (Header Data Units) by index or name
- Read and modify headers (keywords, comments, history)
- Work with image data (NumPy arrays)
- Handle table data (binary and ASCII tables)
- Create new FITS files (single or multi-extension)
- Use memory mapping for large files
- Access remote FITS files (S3, HTTP)
See: references/fits.md for comprehensive file operations, header manipulation, image and table handling, multi-extension files, and performance considerations.
5. Table Operations (astropy.table)
Work with tabular data with support for units, metadata, and various file formats.
Key operations:
- Create tables from arrays, lists, or dictionaries
- Read/write tables in multiple formats (FITS, CSV, HDF5, VOTable)
- Access and modify columns and rows
- Sort, filter, and index tables
- Perform database-style operations (join, group, aggregate)
- Stack and concatenate tables
- Work with unit-aware columns (QTable)
- Handle missing data with masking
See: references/tables.md for table creation, I/O operations, data manipulation, sorting, filtering, joins, grouping, and performance tips.
6. Time Handling (astropy.time)
Precise time representa
1---2name: astropy3description: Astropy is the core Python package for astronomy, providing essential functionality for astronomical research and data analysis.4---567# Astropy89## Overview1011Astropy is the core Python package for astronomy, providing essential functionality for astronomical research and data analysis. Use astropy for coordinate transformations, unit and quantity calculations, FITS file operations, cosmological calculations, precise time handling, tabular data manipulation, and astronomical image processing.1213## When to Use This Skill1415Use astropy when tasks involve:16- Converting between celestial coordinate systems (ICRS, Galactic, FK5, AltAz, etc.)17- Working with physical units and quantities (converting Jy to mJy, parsecs to km, etc.)18- Reading, writing, or manipulating FITS files (images or tables)19- Cosmological calculations (luminosity distance, lookback time, Hubble parameter)20- Precise time handling with different time scales (UTC, TAI, TT, TDB) and formats (JD, MJD, ISO)21- Table operations (reading catalogs, cross-matching, filtering, joining)22- WCS transformations between pixel and world coordinates23- Astronomical constants and calculations2425## Quick Start2627```python28import astropy.units as u29from astropy.coordinates import SkyCoord30from astropy.time import Time31from astropy.io import fits32from astropy.table import Table33from astropy.cosmology import Planck183435# Units and quantities36distance = 100 * u.pc37distance_km = distance.to(u.km)3839# Coordinates40coord = SkyCoord(ra=10.5*u.degree, dec=41.2*u.degree, frame='icrs')41coord_galactic = coord.galactic4243# Time44t = Time('2023-01-15 12:30:00')45jd = t.jd # Julian Date4647# FITS files48data = fits.getdata('image.fits')49header = fits.getheader('image.fits')5051# Tables52table = Table.read('catalog.fits')5354# Cosmology55d_L = Planck18.luminosity_distance(z=1.0)56```5758## Core Capabilities5960### 1. Units and Quantities (`astropy.units`)6162Handle physical quantities with units, perform unit conversions, and ensure dimensional consistency in calculations.6364**Key operations:**65- Create quantities by multiplying values with units66- Convert between units using `.to()` method67- Perform arithmetic with automatic unit handling68- Use equivalencies for domain-specific conversions (spectral, doppler, parallax)69- Work with logarithmic units (magnitudes, decibels)7071**See:** `references/units.md` for comprehensive documentation, unit systems, equivalencies, performance optimization, and unit arithmetic.7273### 2. Coordinate Systems (`astropy.coordinates`)7475Represent celestial positions and transform between different coordinate frames.7677**Key operations:**78- Create coordinates with `SkyCoord` in any frame (ICRS, Galactic, FK5, AltAz, etc.)79- Transform between coordinate systems80- Calculate angular separations and position angles81- Match coordinates to catalogs82- Include distance for 3D coordinate operations83- Handle proper motions and radial velocities84- Query named objects from online databases8586**See:** `references/coordinates.md` for detailed coordinate frame descriptions, transformations, observer-dependent frames (AltAz), catalog matching, and performance tips.8788### 3. Cosmological Calculations (`astropy.cosmology`)8990Perform cosmological calculations using standard cosmological models.9192**Key operations:**93- Use built-in cosmologies (Planck18, WMAP9, etc.)94- Create custom cosmological models95- Calculate distances (luminosity, comoving, angular diameter)96- Compute ages and lookback times97- Determine Hubble parameter at any redshift98- Calculate density parameters and volumes99- Perform inverse calculations (find z for given distance)100101**See:** `references/cosmology.md` for available models, distance calculations, time calculations, density parameters, and neutrino effects.102103### 4. FITS File Handling (`astropy.io.fits`)104105Read, write, and manipulate FITS (Flexible Image Transport System) files.106107**Key operations:**108- Open FITS files with context managers109- Access HDUs (Header Data Units) by index or name110- Read and modify headers (keywords, comments, history)111- Work with image data (NumPy arrays)112- Handle table data (binary and ASCII tables)113- Create new FITS files (single or multi-extension)114- Use memory mapping for large files115- Access remote FITS files (S3, HTTP)116117**See:** `references/fits.md` for comprehensive file operations, header manipulation, image and table handling, multi-extension files, and performance considerations.118119### 5. Table Operations (`astropy.table`)120121Work with tabular data with support for units, metadata, and various file formats.122123**Key operations:**124- Create tables from arrays, lists, or dictionaries125- Read/write tables in multiple formats (FITS, CSV, HDF5, VOTable)126- Access and modify columns and rows127- Sort, filter, and index tables128- Perform database-style operations (join, group, aggregate)129- Stack and concatenate tables130- Work with unit-aware columns (QTable)131- Handle missing data with masking132133**See:** `references/tables.md` for table creation, I/O operations, data manipulation, sorting, filtering, joins, grouping, and performance tips.134135### 6. Time Handling (`astropy.time`)136137Precise time representa