Astroquery

This is the documentation for the Astroquery coordinated package of astropy.

Code and issue tracker are on GitHub.

If you use astroquery, please cite the paper Ginsburg, Sipőcz, Brasseur et al 2019.

Introduction

Astroquery is a set of tools for querying astronomical web forms and databases.

There are two other packages with complimentary functionality as Astroquery: pyvo is an Astropy affiliated package, and Simple-Cone-Search-Creator to generate a cone search service complying with the IVOA standard. They are more oriented to general virtual observatory discovery and queries, whereas Astroquery has web service specific interfaces.

Installation

Uniquely in the Astropy ecosystem, Astroquery is operating with a continuous deployment model. It means that a release is instantaneously available after a pull request has been merged. These releases are automatically uploaded to PyPI, and therefore the latest version of astroquery can be pip installed. The version number of these automated releases contain the 'dev' tag, thus pip needs to be told to look for these releases during an upgrade, using the --pre install option. If astroquery is already installed, please make sure you use the --upgrade install option as well.

$ pip install --pre astroquery

To install all the mandatory and optional dependencies add the [all] identifyer to the pip command above (or use [docs] or [test] for the dependencies required to build the documentation or run the tests):

$ pip install --pre astroquery[all]

In addition to the automated releases, we also keep doing regular, tagged version for maintenance and packaging purposes. These can be pip installed without the --pre option and are also available from the conda-forge conda channel.

$ conda install -c conda-forge astroquery

To review recent changes and fixes, please have a look at the changelog:

Building from source

The development version can be obtained and installed from github:

$ # If you have a github account:
$ git clone git@github.com:astropy/astroquery.git
$ # If you do not:
$ git clone https://github.com/astropy/astroquery.git
$ cd astroquery
$ python setup.py install

Requirements

Astroquery works with Python 3.7 or later.

The following packages are required for astroquery installation & use:

and for running the tests:

The following packages are optional dependencies and are required for the full functionality of the cds module:

The following packages are optional dependencies and are required for the full functionality of the mast module:

Using astroquery

All astroquery modules are supposed to follow the same API. In its simplest form, the API involves queries based on coordinates or object names. Some simple examples, using SIMBAD:

>>> from astroquery.simbad import Simbad
>>> result_table = Simbad.query_object("m1")
>>> result_table.pprint()
MAIN_ID    RA      DEC    ... COO_WAVELENGTH COO_BIBCODE SCRIPT_NUMBER_ID
        "h:m:s"  "d:m:s"  ...
------- -------- -------- ... -------------- ----------- ----------------
  M   1 05 34 32 +22 00.8 ...              R                            1

All query tools allow coordinate-based queries:

>>> from astropy import coordinates
>>> import astropy.units as u
>>> # works only for ICRS coordinates:
>>> c = coordinates.SkyCoord("05h35m17.3s -05d23m28s", frame='icrs')
>>> r = 5 * u.arcminute
>>> result_table = Simbad.query_region(c, radius=r)
>>> result_table.pprint(show_unit=True, max_width=80, max_lines=5)
        MAIN_ID               RA      ...     COO_BIBCODE     SCRIPT_NUMBER_ID
                           "h:m:s"    ...
----------------------- ------------- ... ------------------- ----------------
        NAME Ori Region   05 35 17.30 ...                                    1
                    ...           ... ...                 ...              ...
2MASS J05353573-0525256 05 35 35.7755 ... 2020yCat.1350....0G                1
           V* V2114 Ori 05 35 01.6720 ... 2020yCat.1350....0G                1
Length = 3273 rows

For additional guidance and examples, read the documentation for the individual services below.

Default configuration file

To customize this, copy the default configuration to $HOME/.astropy/config/astroquery.cfg, uncomment the relevant configuration item(s), and insert your desired value(s).

Caching

By default Astroquery employs query caching with a timeout of 1 week. The user can clear their cache at any time, as well as suspend cache usage, and change the cache location. Caching persists between Astroquery sessions. If you know the service you are using has released new data recently, or if you believe you are not recieving the newest data, try clearing the cache.

The Astroquery cache location is divided by service, so each service’s cache should be managed invidually, however whether the cache is active and the expiration time are controlled centrally through the astroquery cache_conf module. Astroquery uses the Astropy configuration infrastructure, information about temporarily or permanently changing configuration values can be found here.

Shown here are the cache properties, using Simbad as an example:

>>> from astroquery import cache_conf
>>> from astroquery.simbad import Simbad
...
>>> # Is the cache active?
>>> print(cache_conf.cache_active)
True
>>> # Cache timout in seconds
>>> print(cache_conf.cache_timeout)
604800
>>> # Cache location
>>> print(Simbad.cache_location)   
/Users/username/.astropy/cache/astroquery/Simbad

To clear the cache:

>>> Simbad.clear_cache()

Available Services

The following modules have been completed using a common API:

These others are functional, but do not follow a common & consistent API:

There are also subpackages that serve as the basis of others.

Catalog, Archive, and Other

A second index of the services by the type of data they serve. Some services perform many tasks and are listed more than once.

Catalogs

The first serve catalogs, which generally return one row of information for each source (though they may return many catalogs that each have one row for each source)

Archives

Archive services provide data, usually in FITS images or spectra. They will generally return a table listing the available data first.

Simulations

These services query databases of simulated or synthetic data:

Line List Services

There are several web services that provide atomic or molecular line lists, as well as cross section and collision rates. Those services are:

Other

There are other astronomically significant services, that don’t fit the above categories. Those services are here:

Topical Collections

Some services focusing on similar topics are also collected in topical submodules:

Developer documentation

The modules and their maintainers are listed on the Maintainers wiki page.

The Astroquery API Specification is intended to be kept as consistent as possible, such that any web service can be used with a minimal learning curve imposed on the user.

The following Astroquery modules are mostly meant for internal use of services in Astroquery, you can use them for your scripts, but we don’t guarantee API stability.

To debug astroquery, logging level can be configured with the following:

>>> from astroquery import log
>>> log.setLevel(level)

If level is set to "DEBUG", then HTTP requests are logged. If level is set to "TRACE", then HTTP requests and responses are logged.

License

Astroquery is licensed under a 3-clause BSD style license - see Licenses.