debian-skyfield/skyfield/documentation/index.rst

127 lines
3.0 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==========
Skyfield
==========
.. raw:: html
<img class="logo" src="_static/logo.png">
.. rst-class:: motto
*Elegant Astronomy for Python*
Skyfield computes positions for the stars, planets,
and satellites in orbit around the Earth.
Its results should agree
with the positions generated by the United States Naval Observatory
and their *Astronomical Almanac*
to within 0.0005 arcseconds (half a “mas” or milliarcsecond).
* Written in pure Python and installs without any compilation.
* Supports Python 2.62.7 and Python 3.33.5.
* Has NumPy as its only binary dependency,
the fundamental package for scientific computing with Python,
whose vector operations make Skyfield efficient.
Computing the position of Mars in the sky is as easy as:
.. testsetup::
__import__('skyfield.tests.fixes').tests.fixes.setup()
.. testcode::
from skyfield.api import load
planets = load('de421.bsp')
earth, mars = planets['earth'], planets['mars']
ts = load.timescale(builtin=True)
t = ts.now()
astrometric = earth.at(t).observe(mars)
ra, dec, distance = astrometric.radec()
print(ra)
print(dec)
print(distance)
.. testoutput::
10h 47m 56.24s
+09deg 03' 23.1"
2.33251 au
Skyfield can compute geocentric coordinates,
as shown in the example above,
or topocentric coordinates specific to your location
on the Earths surface:
.. testcode::
from skyfield.api import Topos
boston = earth + Topos('42.3583 N', '71.0636 W')
astrometric = boston.at(t).observe(mars)
alt, az, d = astrometric.apparent().altaz()
print(alt)
print(az)
.. testoutput::
25deg 27' 54.0"
101deg 33' 44.0"
Skyfield does not depend on the `AstroPy`_ project
or its compiled libraries.
But it accepts AstroPy time objects as input,
and can return results in native AstroPy units:
.. testcode::
from astropy import units as u
xyz = astrometric.position.to(u.au)
altitude = alt.to(u.deg)
print(xyz)
print('{0:0.03f}'.format(altitude))
.. testoutput::
[-2.19049548 0.71236701 0.36712443] AU
25.465 deg
Academics can cite Skyfield as
`ascl:1907.024 <https://ascl.net/1907.024>`_
or
`2019ascl.soft07024R <https://ui.adsabs.harvard.edu/abs/2019ascl.soft07024R/abstract>`_
:ref:`(more…) <citing-skyfield>`
Documentation
=============
Skyfields documentation lives here at the main Skyfield web site:
* :doc:`toc`
* :doc:`installation`
* :doc:`api`
* :ref:`changelog`
But the source code and issue tracker live on other web sites:
* `Skyfield on the Python Package Index <https://pypi.python.org/pypi/skyfield>`_
* `GitHub repository <https://github.com/skyfielders/python-skyfield/>`_
* `GitHub issue tracker <https://github.com/skyfielders/python-skyfield/issues>`_
See the :ref:`changelog` for the current versions release notes —
and also for the updates that landed with each previous version!
.. testcleanup::
__import__('skyfield.tests.fixes').tests.fixes.teardown()
.. _astropy: http://docs.astropy.org/en/stable/