class astropy.coordinates.Distance(value=None, unit=None, z=None, cosmology=None, distmod=None, parallax=None, dtype=<class 'numpy.inexact'>, copy=True, order=None, subok=False, ndmin=0, allow_negative=False)[source]#

Bases: SpecificTypeQuantity

A one-dimensional distance.

This can be initialized by providing one of the following:

  • Distance value (array or float) and a unit

  • Quantity object with dimensionality of length

  • Redshift and (optionally) a Cosmology

  • Distance modulus

  • Parallax

valuescalar or Quantity [:ref: ‘length’]

The value of this distance.

unitUnitBase [:ref: ‘length’]

The unit for this distance.


A redshift for this distance. It will be converted to a distance by computing the luminosity distance for this redshift given the cosmology specified by cosmology. Must be given as a keyword argument.

cosmologyCosmology or None

A cosmology that will be used to compute the distance from z. If None, the current cosmology will be used (see astropy.cosmology for details).

distmodfloat or Quantity

The distance modulus for this distance. Note that if unit is not provided, a guess will be made at the unit between AU, pc, kpc, and Mpc.


The parallax in angular units.

dtypedtype, optional

See Quantity.

copybool, optional

See Quantity.

order{‘C’, ‘F’, ‘A’}, optional

See Quantity.

subokbool, optional

See Quantity.

ndminint, optional

See Quantity.

allow_negativebool, optional

Whether to allow negative distances (which are possible in some cosmologies). Default: False.


If the unit is not a length unit.


If value specified is less than 0 and allow_negative=False.

If cosmology is provided when z is not given.

If either none or more than one of value, z, distmod, or parallax were given.


>>> from astropy import units as u
>>> from astropy.cosmology import WMAP5
>>> Distance(10, u.Mpc)
<Distance 10. Mpc>
>>> Distance(40*u.pc, unit=u.kpc)
<Distance 0.04 kpc>
>>> Distance(z=0.23)                      
<Distance 1184.01657566 Mpc>
>>> Distance(z=0.23, cosmology=WMAP5)     
<Distance 1147.78831918 Mpc>
>>> Distance(distmod=24.47*u.mag)         
<Distance 783.42964277 kpc>
>>> Distance(parallax=21.34*u.mas)        
<Distance 46.86035614 pc>

Attributes Summary


The distance modulus as a Quantity.


The parallax angle as an Angle object.


Short for self.compute_z().

Methods Summary


The redshift for this distance assuming its physical distance is a luminosity distance.

Attributes Documentation


The distance modulus as a Quantity.


The parallax angle as an Angle object.


Short for self.compute_z().

Methods Documentation

compute_z(cosmology=None, **atzkw)[source]#

The redshift for this distance assuming its physical distance is a luminosity distance.

cosmologyCosmology or None

The cosmology to assume for this calculation, or None to use the current cosmology (see astropy.cosmology for details).


keyword arguments for z_at_value()


The redshift of this distance given the provided cosmology.


This method can be slow for large arrays. The redshift is determined using astropy.cosmology.z_at_value(), which handles vector inputs (e.g. an array of distances) by element-wise calling of scipy.optimize.minimize_scalar(). For faster results consider using an interpolation table; astropy.cosmology.z_at_value() provides details.