Distance¶
- class astropy.coordinates.Distance(value=None, unit=None, z=None, cosmology=None, distmod=None, parallax=None, dtype=None, copy=True, order=None, subok=False, ndmin=0, allow_negative=False)[source]¶
Bases:
astropy.units.quantity.SpecificTypeQuantity
A one-dimensional distance.
This can be initialized in one of five ways:
A distance
value
(array or float) and aunit
A
Quantity
objectA redshift and (optionally) a cosmology.
Providing a distance modulus
Providing a parallax
- Parameters
- valuescalar or
Quantity
[:ref: ‘length’] The value of this distance.
- unit
UnitBase
[:ref: ‘length’] The units for this distance, if
value
is not aQuantity
. Must have dimensions of distance.- z
python: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.- cosmology
Cosmology
orpython:None
A cosmology that will be used to compute the distance from
z
. IfNone
, the current cosmology will be used (seeastropy.cosmology
for details).- distmod
python:float
orQuantity
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.- parallax
Quantity
orAngle
The parallax in angular units.
- dtype
dtype
, optional See
Quantity
.- copybool, optional
See
Quantity
.- order{‘C’, ‘F’, ‘A’}, optional
See
Quantity
.- subokbool, optional
See
Quantity
.- ndmin
python:int
, optional See
Quantity
.- allow_negativebool, optional
Whether to allow negative distances (which are possible is some cosmologies). Default:
False
.
- valuescalar or
- Raises
UnitsError
If the
unit
is not a distance.ValueError
If value specified is less than 0 and
allow_negative=False
.If
z
is provided with aunit
orcosmology
is provided whenz
is not given, orvalue
is given as well asz
.If none of
value
,z
,distmod
, orparallax
were given.
Examples
>>> from astropy import units as u >>> from astropy.cosmology import WMAP5, WMAP7 >>> d1 = Distance(10, u.Mpc) >>> d2 = Distance(40, unit=u.au) >>> d3 = Distance(value=5, unit=u.kpc) >>> d4 = Distance(z=0.23) >>> d5 = Distance(z=0.23, cosmology=WMAP5) >>> d6 = Distance(distmod=24.47) >>> d7 = Distance(Distance(10 * u.Mpc)) >>> d8 = Distance(parallax=21.34*u.mas)
Attributes Summary
The distance modulus as a
Quantity
The parallax angle as an
Angle
objectShort for
self.compute_z()
Methods Summary
compute_z
([cosmology])The redshift for this distance assuming its physical distance is a luminosity distance.
Attributes Documentation
- 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
- cosmology
Cosmology
orpython:None
The cosmology to assume for this calculation, or
None
to use the current cosmology (seeastropy.cosmology
for details).- **atzkw
keyword arguments for
z_at_value()
- cosmology
- Returns
- z
Quantity
The redshift of this distance given the provided
cosmology
.
- z
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 ofscipy.optimize.minimize_scalar()
. For faster results consider using an interpolation table;astropy.cosmology.z_at_value()
provides details.See also
astropy.cosmology.z_at_value()
Find the redshift corresponding to a
astropy.cosmology.FLRW.luminosity_distance()
.