Distance

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

Parameters:
valuescalar or Quantity [:ref: ‘length’]

The value of this distance.

unitUnitBase [:ref: ‘length’]

The unit for this distance.

zpython:float

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 python: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).

distmodpython:float 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.

parallaxQuantity or Angle

The parallax in angular units.

dtypedtype, optional

See Quantity.

copybool, optional

See Quantity.

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

See Quantity.

subokbool, optional

See Quantity.

ndminpython:int, optional

See Quantity.

allow_negativebool, optional

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

Raises:
UnitsError

If the unit is not a length unit.

ValueError

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.

Examples

>>> 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

distmod

The distance modulus as a Quantity

parallax

The parallax angle as an Angle object

z

Short for self.compute_z()

Methods Summary

compute_z([cosmology])

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

Attributes Documentation

distmod

The distance modulus as a Quantity

parallax

The parallax angle as an Angle object

z

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.

Parameters:
cosmologyCosmology or python:None

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

**atzkw

keyword arguments for z_at_value()

Returns:
zQuantity

The redshift of this distance given the provided cosmology.

Warning

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.