Galactocentric¶
-
class
astropy.coordinates.
Galactocentric
(*args, **kwargs)[source] [edit on github]¶ Bases:
astropy.coordinates.BaseCoordinateFrame
A coordinate or frame in the Galactocentric system. This frame requires specifying the Sun-Galactic center distance, and optionally the height of the Sun above the Galactic midplane.
The position of the Sun is assumed to be on the x axis of the final, right-handed system. That is, the x axis points from the position of the Sun projected to the Galactic midplane to the Galactic center – roughly towards \((l,b) = (0^\circ,0^\circ)\). For the default transformation (\({\rm roll}=0^\circ\)), the y axis points roughly towards Galactic longitude \(l=90^\circ\), and the z axis points roughly towards the North Galactic Pole (\(b=90^\circ\)).
The default position of the Galactic Center in ICRS coordinates is taken from Reid et al. 2004, http://adsabs.harvard.edu/abs/2004ApJ...616..872R.
\[\begin{split}{\rm RA} = 17:45:37.224~{\rm hr}\\ {\rm Dec} = -28:56:10.23~{\rm deg}\end{split}\]The default distance to the Galactic Center is 8.3 kpc, e.g., Gillessen et al. 2009, http://adsabs.harvard.edu/abs/2009ApJ...692.1075G.
The default height of the Sun above the Galactic midplane is taken to be 27 pc, as measured by http://adsabs.harvard.edu/abs/2001ApJ...553..184C.
For a more detailed look at the math behind this transformation, see the document Description of Galactocentric coordinates transformation.
Parameters: representation :
BaseRepresentation
or NoneA representation object or None to have no data (or use the other keywords)
galcen_distance :
Quantity
, optional, must be keywordThe distance from the Sun to the Galactic center.
galcen_ra :
Angle
, optional, must be keywordThe Right Ascension (RA) of the Galactic center in the ICRS frame.
galcen_dec :
Angle
, optional, must be keywordThe Declination (Dec) of the Galactic center in the ICRS frame.
z_sun :
Quantity
, optional, must be keywordThe distance from the Sun to the Galactic midplane.
roll :
Angle
, optional, must be keywordThe angle to rotate about the final x-axis, relative to the orientation for Galactic. For example, if this roll angle is 0, the final x-z plane will align with the Galactic coordinates x-z plane. Unless you really know what this means, you probably should not change this!
copy : bool, optional
If
True
(default), make copies of the input coordinate arrays. Can only be passed in as a keyword argument.Examples
To transform to the Galactocentric frame with the default frame attributes, pass the uninstantiated class name to the
transform_to()
method of a coordinate frame orSkyCoord
object:>>> import astropy.units as u >>> import astropy.coordinates as coord >>> c = coord.ICRS(ra=[158.3122, 24.5] * u.degree, ... dec=[-17.3, 81.52] * u.degree, ... distance=[11.5, 24.12] * u.kpc) >>> c.transform_to(coord.Galactocentric) <Galactocentric Coordinate (galcen_distance=8.3 kpc, galcen_ra=266d24m18.36s, galcen_dec=-28d56m10.23s, z_sun=27.0 pc, roll=0.0 deg): (x, y, z) in kpc [(-9.6083818980977, -9.400621883358546, 6.520560663896347), (-21.283023068029138, 18.763340128812384, 7.846938548636718)]>
To specify a custom set of parameters, you have to include extra keyword arguments when initializing the Galactocentric frame object:
>>> c.transform_to(coord.Galactocentric(galcen_distance=8.1*u.kpc)) <Galactocentric Coordinate (galcen_distance=8.1 kpc, galcen_ra=266d24m18.36s, galcen_dec=-28d56m10.23s, z_sun=27.0 pc, roll=0.0 deg): (x, y, z) in kpc [(-9.407859235565343, -9.400621883358546, 6.520665737962164), (-21.08239383088295, 18.763340128812384, 7.84798134569032)]>
Similarly, transforming from the Galactocentric frame to another coordinate frame:
>>> c = coord.Galactocentric(x=[-8.3, 4.5] * u.kpc, ... y=[0., 81.52] * u.kpc, ... z=[0.027, 24.12] * u.kpc) >>> c.transform_to(coord.ICRS) <ICRS Coordinate: (ra, dec, distance) in (deg, deg, kpc) [(86.22349058727241, 28.8389413808627, 4.391577882957292e-05), (289.6680265194508, 49.88763881149547, 85.96407345372828)]>
Or, with custom specification of the Galactic center:
>>> c = coord.Galactocentric(x=[-8.0, 4.5] * u.kpc, ... y=[0., 81.52] * u.kpc, ... z=[21.0, 24120.0] * u.pc, ... z_sun=21 * u.pc, galcen_distance=8. * u.kpc) >>> c.transform_to(coord.ICRS) <ICRS Coordinate: (ra, dec, distance) in (deg, deg, kpc) [(86.25852490164378, 28.85773187391088, 2.7562547481200286e-05), (289.77285254989323, 50.062904565432014, 85.92160096237191)]>
Attributes Summary
default_representation
frame_attributes
frame_specific_representation_info
galcen_dec
galcen_distance
galcen_ra
name
roll
z_sun
Methods Summary
get_roll0
()The additional roll angle (about the final x axis) necessary to align the final z axis to match the Galactic yz-plane. Attributes Documentation
-
default_representation
¶
-
frame_attributes
= OrderedDict([('galcen_distance', <astropy.coordinates.baseframe.FrameAttribute object at 0x7f2fca9f2f10>), ('galcen_ra', <astropy.coordinates.baseframe.FrameAttribute object at 0x7f2fca9f2f50>), ('galcen_dec', <astropy.coordinates.baseframe.FrameAttribute object at 0x7f2fca9ff0d0>), ('z_sun', <astropy.coordinates.baseframe.FrameAttribute object at 0x7f2fca9ff210>), ('roll', <astropy.coordinates.baseframe.FrameAttribute object at 0x7f2fca9ff350>)])¶
-
frame_specific_representation_info
¶
-
galcen_dec
= <Angle -28.936175 deg>¶
-
galcen_distance
= <Quantity 8.3 kpc>¶
-
galcen_ra
= <Angle 266.4051 deg>¶
-
name
= 'galactocentric'¶
-
roll
= <Quantity 0.0 deg>¶
-
z_sun
= <Quantity 27.0 pc>¶
Methods Documentation
-
classmethod
get_roll0
()[source] [edit on github]¶ The additional roll angle (about the final x axis) necessary to align the final z axis to match the Galactic yz-plane. Setting the
roll
frame attribute to -this method’s return value removes this rotation, allowing the use of theGalactocentric
frame in more general contexts.
-