File: formatting.rst

package info (click to toggle)
python-astropy 1.3-8~bpo8%2B2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 44,292 kB
  • sloc: ansic: 160,360; python: 137,322; sh: 11,493; lex: 7,638; yacc: 4,956; xml: 1,796; makefile: 474; cpp: 364
file content (35 lines) | stat: -rw-r--r-- 1,478 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Formatting Coordinate Strings
-----------------------------

.. todo: @taldcroft should change this to start with a discussion of SkyCoord's capabilities

Getting a string representation of a coordinate is most powerfully
approached by treating the components (e.g., RA and Dec) separately.
For example::

  >>> from astropy.coordinates import ICRS
  >>> from astropy import units as u
  >>> c = ICRS(187.70592*u.degree, 12.39112*u.degree)
  >>> str(c.ra) + ' ' + str(c.dec)
  '187d42m21.312s 12d23m28.032s'

To get better control over the formatting, you can use the angles'
:meth:`~astropy.coordinates.Angle.to_string` method (see :doc:`angles` for
more).  For example::

  >>> rahmsstr = c.ra.to_string(u.hour)
  >>> str(rahmsstr)
  '12h30m49.4208s'
  >>> decdmsstr = c.dec.to_string(u.degree, alwayssign=True)
  >>> str(decdmsstr)
  '+12d23m28.032s'
  >>> rahmsstr + ' ' + decdmsstr
  u'12h30m49.4208s +12d23m28.032s'

You can also use python's `format` string method to create more complex
string expressions, such as IAU-style coordinates or even full sentences::

  >>> 'SDSS J{0}{1}'.format(c.ra.to_string(unit=u.hourangle, sep='', precision=2, pad=True), c.dec.to_string(sep='', precision=2, alwayssign=True, pad=True))
  'SDSS J123049.42+122328.03'
  >>> 'The galaxy M87, at an RA of {0.ra.hour:.2f} hours and Dec of {0.dec.deg:.1f} degrees, has an impressive jet.'.format(c)
  'The galaxy M87, at an RA of 12.51 hours and Dec of 12.4 degrees, has an impressive jet.'