Skyfield

Latest version: v1.52

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 11

1.29

------------------------

* Fix: the new Julian calendar feature was raising an exception in the
calendar methods like :meth:`~skyfield.timelib.Time.tt_calendar()` if
the time object was in fact an array of times.
`450 <https://github.com/skyfielders/python-skyfield/issues/450>`_

* Fix: trying to iterate over a time object would raise an exception if
the time was created through :meth:`~skyfield.timelib.Timescale.ut1()`.

1.28

------------------------

* **Broken URL:** Because the VizieR archive apparently decided to
uncompress their copy of the ``hip_main.dat.gz`` Hipparcos catalog
file, the old URL now returns a 404 error. As an emergency fix, this
version of Skyfield switches to their uncompressed ``hip_main.dat``.
Hopefully they don’t compress it again and break the new URL! A more
permanent solution is discussed at:
`454 <https://github.com/skyfielders/python-skyfield/issues/454>`_

* To unblock this release, removed a few deprecated pre-1.0 experiments
from April 2015 in ``skyfield.hipparcos`` and ``skyfield.named_stars``
that broke because the Hipparcos catalog is no longer compressed;
hopefully no one was using them.

* In a sweeping internal change, the :meth:`~skyfield.timelib.Timescale`
and :meth:`~skyfield.timelib.Time` objects now offer support for the
Julian calendar that’s used by historians for dates preceding the
adoption of the Gregorian calendar in 1582. See `choice of calendars`
if you want to turn on Julian dates in your application.
`450 <https://github.com/skyfielders/python-skyfield/issues/450>`_

1.27

------------------------

* The printed appearance of both vectors and of vector functions like
Earth locations and Earth satellites have been rewritten to be more
informative and consistent.

* Added :func:`~skyfield.timelib.compute_calendar_date()` which lets the
caller choose the Julian calendar for ancient dates instead of always
using the proleptic Gregorian calendar. This should be particularly
useful for historians.

* Added :meth:`~skyfield.timelib.Timescale.J()` that builds a time array
from an array of floating point years.
`436 <https://github.com/skyfielders/python-skyfield/issues/436>`_

* Added four new ``strftime`` methods for the non-UTC timescales
`(443). <https://github.com/skyfielders/python-skyfield/issues/443>`_
All four of them support ``%f`` for microseconds,
and provide a reasonable default format string
for callers who don’t wish to concoct their own:

* :meth:`~skyfield.timelib.Time.tai_strftime()`
* :meth:`~skyfield.timelib.Time.tt_strftime()`
* :meth:`~skyfield.timelib.Time.tdb_strftime()`
* :meth:`~skyfield.timelib.Time.ut1_strftime()`

* Thanks to several fixes, comets and asteroids with parabolic and
hyperbolic orbits should now raise fewer errors.

* The prototype :func:`~skyfield.magnitudelib.planetary_magnitude()` can
now return magnitudes for Uranus without raising an exception. The
routine does not yet take into account whether the observer is facing
the equator or poles of Uranus, so the magnitude predicted for the
planet will only be accurate to within about 0.1 magnitudes.

1.26

--------------------

* The official ∆T files on NASA’s FTP server have stopped receiving
updates — they have no new data beyond February, the start of the
global pandemic. Unless they are updated by next February, older
versions of Skyfield will unfortunately download the files all over
again every time :meth:`~skyfield.iokit.Loader.timescale()` is called
(unless the ``builtin=True`` parameter is provided). To make Skyfield
less fragile going forward:

1. The loader’s :meth:`~skyfield.iokit.Loader.timescale()` method now
defaults to ``builtin=True``, telling it to use the ∆T and leap
second files that ship with Skyfield internally. To download new
∆T files from NASA and the leap second file from the International
Earth Rotation Service, specify ``builtin=False``.

2. The concept of an “expired” file has been removed from ``load()``.
Skyfield is now much simpler: if a file with the correct name
exists, Skyfield uses it. See :ref:`downloading-timescale-files`
if you still want your application to check the age of your
timescale files and automatically download new ones.

* The `ICRF.separation_from()` method now officially supports the
combination of an array of positions with a single reference position!
Its previous support for that combination was, alas, accidental, and
was broken with the 1.23 release.
`414 <https://github.com/skyfielders/python-skyfield/issues/414>`_
`424 <https://github.com/skyfielders/python-skyfield/issues/424>`_

* A prototype :func:`~skyfield.magnitudelib.planetary_magnitude()`
routine has been added with support for several planets.
`210 <https://github.com/skyfielders/python-skyfield/issues/210>`_

* The ``utc`` timezone that Skyfield returns in Python datetimes is now
either the Python Standard Library’s own UTC object, if it supplies
one, or else is defined by Skyfield itself. Skyfield no longer
silently tries importing the whole ``pytz`` package merely to use its
UTC object — which also means that the timezone returned by Skyfield
longer offers the non-standard ``localize()`` method.
`413 <https://github.com/skyfielders/python-skyfield/issues/413>`_

1.25

-------------------

* Added :func:`~skyfield.data.stellarium.parse_constellations()`
and :func:`~skyfield.data.stellarium.parse_star_names()`
to load Stellarium star names and constellation lines.
Constellation lines are featured in a new example script
:ref:`neowise-chart` that produces a finder chart
for comet C/2020 F3 NEOWISE.

* The Hipparcos star catalog should now load faster, having switched
behind the scenes to a higher performance Pandas import routine.

* Fixed the ability of :meth:`~skyfield.timelib.Timescale.utc()` to
accept a Python ``datetime.date`` object as its argument.
`409 <https://github.com/skyfielders/python-skyfield/issues/409>`_

* Slightly lowered the precision of two tests when they detect that
Python is compiled for a 32-bit processor, so the test suite can
succeed when contributors package Skyfield for 32-bit Linux.
`411 <https://github.com/skyfielders/python-skyfield/issues/411>`_

1.24

-------------------

* Added methods :meth:`~skyfield.timelib.Timescale.from_datetime()` and
:meth:`~skyfield.timelib.Timescale.from_datetimes()` to the
:class:`~skyfield.timelib.Timescale` class, to better advertise the
ability to build a Skyfield time from a Python ``datetime`` — an ability
that was previously overloaded into the ``year`` parameter of the
:meth:`~skyfield.timelib.Timescale.utc()` method (where it is still
supported for backwards compatibility, but no longer documented).

* Fix: improved the accuracy with which velocity is converted between
the Earth-fixed ITRF frame that rotates with the Earth and the
inertial GCRS frame that does not. In particular, this should make
Earth satellite velocities more accurate.

Page 5 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.