Functions and classes to access online astronomical data resources
npx @tessl/cli install tessl/pypi-astroquery@0.4.0A comprehensive Python library providing unified access to astronomical data resources and web services. Astroquery contains a collection of tools organized into sub-modules, each designed to interface with specific astronomical databases and web services such as SIMBAD, ALMA, ESO, CDS, and many others, enabling astronomers and researchers to programmatically retrieve data from dozens of astronomical archives and catalogs.
pip install astroqueryimport astroqueryCommon service imports:
from astroquery.simbad import Simbad
from astroquery.vizier import Vizier
from astroquery.gaia import Gaia
from astroquery.alma import Alma
from astroquery.mast import Observations, Catalogsfrom astroquery.simbad import Simbad
from astroquery.vizier import Vizier
import astropy.units as u
from astropy.coordinates import SkyCoord
# Query SIMBAD for object information
result = Simbad.query_object('M1')
print(result['main_id', 'ra', 'dec'])
# Query VizieR catalogs around a position
coords = SkyCoord('05h35m17.3s -05h23m28s', frame='icrs')
result = Vizier.query_region(coords, radius=2*u.arcmin)
# Query Gaia for sources in a region
result = Gaia.query_object(coords, radius=1*u.deg)
print(f"Found {len(result)} sources")Astroquery follows a consistent architecture across all service modules:
BaseQuery for standard HTTP queries, BaseVOQuery for Virtual Observatory services, QueryWithLogin for authenticated servicesquery_object() and query_region() methods with both synchronous and asynchronous variants@async_to_sync automatically creates synchronous methods from asynchronous implementationsCore astronomical data services including object catalogs, stellar databases, and multi-wavelength surveys that form the foundation of astronomical research.
# SIMBAD - Astronomical object database
from astroquery.simbad import Simbad
result = Simbad.query_object(object_name: str, **kwargs)
result = Simbad.query_region(coordinates, radius=None, **kwargs)
# VizieR - Catalog access service
from astroquery.vizier import Vizier
result = Vizier.query_object(object_name: str, radius=None, catalog=None, **kwargs)
result = Vizier.query_region(coordinates, radius=None, catalog=None, **kwargs)
# Gaia - European Space Agency's Gaia mission data
from astroquery.gaia import Gaia
result = Gaia.query_object(coordinate, radius=None, **kwargs)
result = Gaia.cone_search(coordinate, radius=None, **kwargs)Data archives from major ground-based and space-based observatories providing access to processed observations, raw data, and metadata.
# ALMA - Atacama Large Millimeter Array
from astroquery.alma import Alma
result = Alma.query_object(object_name: str, public=True, **kwargs)
result = Alma.query_region(coordinates, radius=None, public=True, **kwargs)
# MAST - Space Telescope Science Institute archives
from astroquery.mast import Observations, Catalogs
result = Observations.query_object(objectname: str, radius=None, **kwargs)
result = Catalogs.query_object(objectname: str, radius=None, catalog="Gsc", **kwargs)
# ESO - European Southern Observatory
from astroquery.eso import Eso
result = Eso.query_object(name: str, **kwargs)
result = Eso.query_region(coordinates, radius=None, **kwargs)Archives from space missions and satellites providing specialized astronomical data including gamma-ray, X-ray, infrared, and ultraviolet observations.
# ESA - European Space Agency missions
from astroquery.esa.jwst import Jwst
from astroquery.esa.hubble import Hubble
result = Jwst.query_object(name: str, **kwargs)
result = Hubble.query_object(name: str, **kwargs)
# Fermi - Fermi Gamma-ray Space Telescope
from astroquery.fermi import Fermi
result = Fermi.query_object(object_name: str, energyrange_MeV=(100, 100000), **kwargs)Services provided by the Infrared Processing and Analysis Center including infrared surveys, extragalactic databases, and exoplanet archives.
# IRSA - Infrared Science Archive
from astroquery.ipac.irsa import Irsa
result = Irsa.query_region(coordinates, catalog=None, spatial="Cone", radius=None, **kwargs)
# NED - NASA Extragalactic Database
from astroquery.ipac.ned import Ned
result = Ned.query_object(object_name: str, **kwargs)
result = Ned.query_region(coordinates, radius=None, **kwargs)
# NASA Exoplanet Archive
from astroquery.ipac.nexsci.nasa_exoplanet_archive import NasaExoplanetArchive
result = NasaExoplanetArchive.query_object(object_name: str, table="pscomppars", **kwargs)Specialized databases for atomic, molecular, and spectroscopic data used in astronomical spectroscopy and laboratory astrophysics.
# Splatalogue - Spectroscopy database
from astroquery.splatalogue import Splatalogue
result = Splatalogue.query_lines(min_frequency, max_frequency, **kwargs)
# LAMDA - Leiden Atomic and Molecular Database
from astroquery.lamda import Lamda
result = Lamda.query(molecule=None, **kwargs)
# NIST - Atomic spectral lines
from astroquery.nist import Nist
result = Nist.query(linename: str, **kwargs)
# Hitran - Molecular absorption database
from astroquery.hitran import Hitran
result = Hitran.query_lines(molecule_number: int, isotopologue_number: int, **kwargs)Services providing ephemerides, orbital elements, and physical data for solar system objects including planets, asteroids, comets, and spacecraft.
# JPL Horizons - Ephemerides service
from astroquery.jplhorizons import Horizons
horizons = Horizons(id='Ceres', location='500', epochs='2023-01-01')
result = horizons.ephemerides(**kwargs)
result = horizons.elements(**kwargs)
# JPL Small Body Database
from astroquery.jplsbdb import SBDB
result = SBDB.query(targetname: str, **kwargs)
# Minor Planet Center
from astroquery.mpc import MPC
result = MPC.query_object(target: str, **kwargs)Services for accessing astronomical survey data, image cutouts, and all-sky survey information across multiple wavelengths.
# SkyView - All-sky survey images
from astroquery.skyview import SkyView
result = SkyView.get_images(position, survey: str, **kwargs)
# HiPS2FITS - Hierarchical Progressive Survey conversion
from astroquery.hips2fits import Hips2fitsClass
result = Hips2fitsClass.query_with_wcs(hips: str, wcs, **kwargs)
result = Hips2fitsClass.query_with_circle(hips: str, center, radius, **kwargs)Services implementing Virtual Observatory standards for interoperability, cross-matching, and standardized data access protocols.
# VO Cone Search
from astroquery.vo_conesearch import conesearch
result = conesearch(center, radius, **kwargs)
# Cross-match service
from astroquery.xmatch import XMatch
result = XMatch.query(cat1, cat2, max_distance, **kwargs)# Global cache configuration
from astroquery import cache_conf
cache_conf.cache_timeout = 3600 # seconds
cache_conf.cache_active = True
# Service-specific configuration
from astroquery.simbad import conf
conf.server = 'simbad.cds.unistra.fr'
conf.timeout = 60
conf.row_limit = 1000# Common parameter types used across services
from typing import Union, Optional, List, Dict, Any
from astropy.coordinates import SkyCoord
from astropy.units import Quantity
from astropy.table import Table
# Coordinate types
coordinates: Union[SkyCoord, str] # Sky position
radius: Union[Quantity, str, None] # Search radius
# Common parameters
get_query_payload: bool = False # Return query parameters instead of executing
cache: bool = True # Enable result caching
verbose: bool = False # Show detailed output
# Common return types
query_result: Table # Structured tabular data
image_result: List # FITS image data or file handles# Common exceptions
from astroquery.exceptions import (
InvalidQueryError, # Invalid query parameters
TimeoutError, # Request timeout
LoginError, # Authentication failure
NoResultsWarning, # Query returned no results
TableParseError, # Data parsing error
RemoteServiceError # Service unavailable
)
# Usage example
try:
result = Simbad.query_object('invalid_object_name')
except InvalidQueryError as e:
print(f"Query error: {e}")
except TimeoutError as e:
print(f"Request timed out: {e}")