aboutsummaryrefslogtreecommitdiff
path: root/astro
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2021-02-27 18:28:18 +0000
committerThierry Thomas <thierry@FreeBSD.org>2021-02-27 18:28:18 +0000
commitec8caa80c93ea306d0613c884fe8bec1b8b21b74 (patch)
treea2514082275e230a15c78d10d54119766596cb68 /astro
parent94dbf3b119a7fc3832364cfb53f3cdad777aa0b6 (diff)
downloadports-ec8caa80c93ea306d0613c884fe8bec1b8b21b74.tar.gz
ports-ec8caa80c93ea306d0613c884fe8bec1b8b21b74.zip
Adding skyfield, a Python program for ephemerides computation and skyfield-data,
a minimal set of data files to work with py-skyfield.
Notes
Notes: svn path=/head/; revision=566727
Diffstat (limited to 'astro')
-rw-r--r--astro/Makefile2
-rw-r--r--astro/py-skyfield-data/Makefile28
-rw-r--r--astro/py-skyfield-data/distinfo3
-rw-r--r--astro/py-skyfield-data/pkg-descr23
-rw-r--r--astro/py-skyfield-data/pkg-plist11
-rw-r--r--astro/py-skyfield/Makefile58
-rw-r--r--astro/py-skyfield/distinfo3
-rw-r--r--astro/py-skyfield/files/test-skyfield.py13
-rw-r--r--astro/py-skyfield/pkg-descr4
-rw-r--r--astro/py-skyfield/pkg-plist284
10 files changed, 429 insertions, 0 deletions
diff --git a/astro/Makefile b/astro/Makefile
index 3280350de3d8..d74b831817f7 100644
--- a/astro/Makefile
+++ b/astro/Makefile
@@ -95,6 +95,8 @@
SUBDIR += py-spacetrack
SUBDIR += py-spktype01
SUBDIR += py-spktype21
+ SUBDIR += py-skyfield
+ SUBDIR += py-skyfield-data
SUBDIR += pyweather
SUBDIR += qmapshack
SUBDIR += readosm
diff --git a/astro/py-skyfield-data/Makefile b/astro/py-skyfield-data/Makefile
new file mode 100644
index 000000000000..08db9b6cf112
--- /dev/null
+++ b/astro/py-skyfield-data/Makefile
@@ -0,0 +1,28 @@
+# Created by: thierry@pompo.net
+# $FreeBSD$
+
+PORTNAME= skyfield-data
+PORTVERSION= 3.0.0
+CATEGORIES= astro python
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= thierry@FreeBSD.org
+COMMENT= Minimal data files to work with py-skyfield
+
+LICENSE= MIT
+
+RON_DEPENDS= ${PYTHON_PKGNAMEPREFIX}skyfield>0:astro/py-skyfield@${PY_FLAVOR}
+TEST_DEPENDS= py.test:devel/py-pytest@${PY_FLAVOR}
+
+USE_GITHUB= yes
+GH_ACCOUNT= brunobord
+
+USES= python:3.7+
+USE_PYTHON= distutils
+
+NO_ARCH= yes
+
+do-test: install
+ (cd ${WRKSRC} && py.test)
+
+.include <bsd.port.mk>
diff --git a/astro/py-skyfield-data/distinfo b/astro/py-skyfield-data/distinfo
new file mode 100644
index 000000000000..3a8a3174e78a
--- /dev/null
+++ b/astro/py-skyfield-data/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1613939122
+SHA256 (brunobord-skyfield-data-3.0.0_GH0.tar.gz) = 99c9c307aa854a05108f28308f18848d69fe0e1e81beff5c886a00e9a6d651a5
+SIZE (brunobord-skyfield-data-3.0.0_GH0.tar.gz) = 16900568
diff --git a/astro/py-skyfield-data/pkg-descr b/astro/py-skyfield-data/pkg-descr
new file mode 100644
index 000000000000..aff28efafe51
--- /dev/null
+++ b/astro/py-skyfield-data/pkg-descr
@@ -0,0 +1,23 @@
+Skyfield (astro/py-skyfield) is a Python library for astronomical computations.
+It depends on various data files to accurately compute moon phases, planet
+positions, etc. Several issues are raised by these data files:
+
+ - If they're not found in the path of the Loader, they're downloaded at
+ runtime. Depending on the archive you're requesting, some files might be very
+ large, causing a long delay (directly related to your network bandwidth). In
+ the case of a web server app, you'd cause a timeout on client's end.
+
+ - They come mainly from 2 sources: NASA's JPL, and the IERS. If one of them is
+ temporarily unavailable, you couldn't perform any computation.
+
+ - In some countries, or behind some filtering proxies, some hosts may be
+ blocked.
+
+ - These files have an expiration date (in a more or less distant future). As a
+ consequence, even if the files are already downloaded in the right path, at
+ each runtime you could possibly have to download one or more files before
+ making any computation using them.
+
+This package provides at least the most common of these assets.
+
+WWW: https://github.com/brunobord/skyfield-data
diff --git a/astro/py-skyfield-data/pkg-plist b/astro/py-skyfield-data/pkg-plist
new file mode 100644
index 000000000000..96ccd3b96875
--- /dev/null
+++ b/astro/py-skyfield-data/pkg-plist
@@ -0,0 +1,11 @@
+%%PYTHON_SITELIBDIR%%/skyfield_data/__init__.py
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/expiration_data.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/expiration_data.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/expirations.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/__pycache__/expirations.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield_data/data/de421.bsp
+%%PYTHON_SITELIBDIR%%/skyfield_data/data/finals2000A.all
+%%PYTHON_SITELIBDIR%%/skyfield_data/expiration_data.py
+%%PYTHON_SITELIBDIR%%/skyfield_data/expirations.py
diff --git a/astro/py-skyfield/Makefile b/astro/py-skyfield/Makefile
new file mode 100644
index 000000000000..f56a70d714fb
--- /dev/null
+++ b/astro/py-skyfield/Makefile
@@ -0,0 +1,58 @@
+# Created by: thierry@pompo.net
+# $FreeBSD$
+
+PORTNAME= skyfield
+PORTVERSION= 1.37
+CATEGORIES= astro python
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= thierry@FreeBSD.org
+COMMENT= Ephemerides computation
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}sgp4>0:astro/py-sgp4@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}jplephem>0:astro/py-jplephem@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR}
+RUN_DEPENDS= ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}mock>0:devel/py-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytz>0:devel/py-pytz@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sgp4>0:astro/py-sgp4@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pandas>0:math/py-pandas@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}astropy>0:astro/py-astropy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}html5lib>0:www/py-html5lib@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tabulate>0:devel/py-tabulate@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}jplephem>0:astro/py-jplephem@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}dateutil>0:devel/py-dateutil@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}pyflakes>0:devel/py-pyflakes@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}certifi>0:security/py-certifi@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}spktype21>0:astro/py-spktype21@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}termcolor>0:devel/py-termcolor@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR}\
+ ${PYTHON_PKGNAMEPREFIX}beautifulsoup>0:www/py-beautifulsoup@${PY_FLAVOR}
+
+USE_GITHUB= yes
+GH_ACCOUNT= skyfielders
+GH_PROJECT= python-skyfield
+
+USES= python:3.7+ shebangfix
+USE_PYTHON= distutils
+SHEBANG_FILES= test-code.sh test-docs.sh
+NO_ARCH= yes
+
+OPTIONS_DEFINE= EXAMPLES
+PORTEXAMPLES= *
+
+post-install-EXAMPLES-on:
+ @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+ ${CP} -R ${WRKSRC}/examples/ ${STAGEDIR}${EXAMPLESDIR}
+
+do-test: install
+ ${CP} ${FILESDIR}/test-skyfield.py ${WRKSRC}
+ (cd ${WRKSRC} && ${PYTHON_CMD} test-skyfield.py)
+
+.include <bsd.port.mk>
diff --git a/astro/py-skyfield/distinfo b/astro/py-skyfield/distinfo
new file mode 100644
index 000000000000..4b1254e985c1
--- /dev/null
+++ b/astro/py-skyfield/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1613674880
+SHA256 (skyfielders-python-skyfield-1.37_GH0.tar.gz) = 91fdc2c6aab4bd2ebf68b6362088ecaeda6656158a6b319aacb49038db7266c0
+SIZE (skyfielders-python-skyfield-1.37_GH0.tar.gz) = 85264483
diff --git a/astro/py-skyfield/files/test-skyfield.py b/astro/py-skyfield/files/test-skyfield.py
new file mode 100644
index 000000000000..a0dea3dcb621
--- /dev/null
+++ b/astro/py-skyfield/files/test-skyfield.py
@@ -0,0 +1,13 @@
+from skyfield.api import load
+
+planets = load('de421.bsp')
+earth, mars = planets['earth'], planets['mars']
+
+ts = load.timescale()
+t = ts.now()
+position = earth.at(t).observe(mars)
+ra, dec, distance = position.radec()
+
+print(ra)
+print(dec)
+print(distance)
diff --git a/astro/py-skyfield/pkg-descr b/astro/py-skyfield/pkg-descr
new file mode 100644
index 000000000000..f30cbd859053
--- /dev/null
+++ b/astro/py-skyfield/pkg-descr
@@ -0,0 +1,4 @@
+Skyfield is a pure-Python astronomy package that makes it easy to generate high
+precision research-grade positions for planets and Earth satellites.
+
+WWW: https://rhodesmill.org/skyfield/
diff --git a/astro/py-skyfield/pkg-plist b/astro/py-skyfield/pkg-plist
new file mode 100644
index 000000000000..03c64c1e32d5
--- /dev/null
+++ b/astro/py-skyfield/pkg-plist
@@ -0,0 +1,284 @@
+%%PYTHON_SITELIBDIR%%/skyfield/__init__.py
+%%PYTHON_SITELIBDIR%%/skyfield/__main__.py
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/__main__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/__main__.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/almanac.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/almanac.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/almanac_east_asia.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/almanac_east_asia.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/api.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/api.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/charting.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/charting.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/constants.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/constants.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/constellationlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/constellationlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/descriptorlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/descriptorlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/earthlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/earthlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/eclipselib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/eclipselib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/elementslib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/elementslib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/errors.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/errors.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/framelib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/framelib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/functions.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/functions.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/geometry.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/geometry.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/io_timescale.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/io_timescale.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/iokit.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/iokit.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/jpllib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/jpllib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/keplerlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/keplerlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/magnitudelib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/magnitudelib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/naifcodes.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/naifcodes.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/named_stars.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/named_stars.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/nutationlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/nutationlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/planetarylib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/planetarylib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/positionlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/positionlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/precessionlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/precessionlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/projections.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/projections.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/relativity.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/relativity.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/searchlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/searchlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/sgp4lib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/sgp4lib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/starlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/starlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/timelib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/timelib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/toposlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/toposlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/trigonometry.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/trigonometry.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/units.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/units.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/vectorlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/__pycache__/vectorlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/almanac.py
+%%PYTHON_SITELIBDIR%%/skyfield/almanac_east_asia.py
+%%PYTHON_SITELIBDIR%%/skyfield/api.py
+%%PYTHON_SITELIBDIR%%/skyfield/charting.py
+%%PYTHON_SITELIBDIR%%/skyfield/constants.py
+%%PYTHON_SITELIBDIR%%/skyfield/constellationlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/Leap_Second.dat
+%%PYTHON_SITELIBDIR%%/skyfield/data/__init__.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/earth_orientation.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/earth_orientation.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/gravitational_parameters.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/gravitational_parameters.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/hipparcos.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/hipparcos.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/horizons.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/horizons.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/iers.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/iers.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/mpc.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/mpc.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/spice.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/spice.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/stellarium.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/__pycache__/stellarium.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/data/constellations.gz
+%%PYTHON_SITELIBDIR%%/skyfield/data/constellations.npz
+%%PYTHON_SITELIBDIR%%/skyfield/data/deltat.data
+%%PYTHON_SITELIBDIR%%/skyfield/data/deltat.preds
+%%PYTHON_SITELIBDIR%%/skyfield/data/earth_orientation.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/gravitational_parameters.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/hipparcos.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/historic_deltat.npy
+%%PYTHON_SITELIBDIR%%/skyfield/data/horizons.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/iers.npz
+%%PYTHON_SITELIBDIR%%/skyfield/data/iers.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/morrison_stephenson_deltat.npy
+%%PYTHON_SITELIBDIR%%/skyfield/data/mpc.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/nutation.npz
+%%PYTHON_SITELIBDIR%%/skyfield/data/spice.py
+%%PYTHON_SITELIBDIR%%/skyfield/data/stellarium.py
+%%PYTHON_SITELIBDIR%%/skyfield/descriptorlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/accuracy-efficiency.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/almanac.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-almanac.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-elements.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-ephemeris.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-framelib.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-iokit.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-planetary.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-position.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-satellites.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-stars.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-time.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-topos.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-trigonometry.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-units.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api-vectors.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/api.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/astropy.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/bibliography.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/design.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/earth-satellites.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/elements.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/example-plots.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/examples.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/files.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/index.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/installation.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/kepler-orbits.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/planetary.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/planets.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/positions.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/searches.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/stars.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/time.rst
+%%PYTHON_SITELIBDIR%%/skyfield/documentation/toc.rst
+%%PYTHON_SITELIBDIR%%/skyfield/earthlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/eclipselib.py
+%%PYTHON_SITELIBDIR%%/skyfield/elementslib.py
+%%PYTHON_SITELIBDIR%%/skyfield/errors.py
+%%PYTHON_SITELIBDIR%%/skyfield/framelib.py
+%%PYTHON_SITELIBDIR%%/skyfield/functions.py
+%%PYTHON_SITELIBDIR%%/skyfield/geometry.py
+%%PYTHON_SITELIBDIR%%/skyfield/io_timescale.py
+%%PYTHON_SITELIBDIR%%/skyfield/iokit.py
+%%PYTHON_SITELIBDIR%%/skyfield/jpllib.py
+%%PYTHON_SITELIBDIR%%/skyfield/keplerlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/magnitudelib.py
+%%PYTHON_SITELIBDIR%%/skyfield/naifcodes.py
+%%PYTHON_SITELIBDIR%%/skyfield/named_stars.py
+%%PYTHON_SITELIBDIR%%/skyfield/nutationlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/planetarylib.py
+%%PYTHON_SITELIBDIR%%/skyfield/positionlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/precessionlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/projections.py
+%%PYTHON_SITELIBDIR%%/skyfield/relativity.py
+%%PYTHON_SITELIBDIR%%/skyfield/searchlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/sgp4lib.py
+%%PYTHON_SITELIBDIR%%/skyfield/starlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__init__.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/__init__.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/deprecations.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/deprecations.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/fixes.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/fixes.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_against_horizons.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_against_horizons.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_against_novas.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_against_novas.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac_east_asia.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac_east_asia.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac_searches.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_almanac_searches.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_api.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_api.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_broadcastability.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_broadcastability.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_constellations.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_constellations.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earth_deflection.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earth_deflection.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earth_satellites.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earth_satellites.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earthlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_earthlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_elementslib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_elementslib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_frames.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_frames.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_functions.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_functions.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_geometry.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_geometry.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_io.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_io.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_io_parsing.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_io_parsing.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_keplerlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_keplerlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_magnitudes_raw.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_magnitudes_raw.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_planetarylib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_planetarylib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_positions.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_positions.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_satellite_events.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_satellite_events.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_searchlib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_searchlib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_stars.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_stars.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_strs_and_reprs.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_strs_and_reprs.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_timelib.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_timelib.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_topos.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_topos.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_trigonometry.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_trigonometry.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_units.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_units.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_vectors.cpython-%%PYTHON_SUFFIX%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/__pycache__/test_vectors.cpython-%%PYTHON_SUFFIX%%.pyc
+%%PYTHON_SITELIBDIR%%/skyfield/tests/data/de430-2015-03-02.bsp
+%%PYTHON_SITELIBDIR%%/skyfield/tests/data/jup310-2015-03-02.bsp
+%%PYTHON_SITELIBDIR%%/skyfield/tests/data/jup310-2053-10-08.bsp
+%%PYTHON_SITELIBDIR%%/skyfield/tests/deprecations.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/fixes.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_against_horizons.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_against_novas.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_almanac.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_almanac_east_asia.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_almanac_searches.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_api.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_broadcastability.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_constellations.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_earth_deflection.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_earth_satellites.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_earthlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_elementslib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_frames.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_functions.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_geometry.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_io.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_io_parsing.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_keplerlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_magnitudes_raw.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_planetarylib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_positions.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_satellite_events.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_searchlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_stars.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_strs_and_reprs.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_timelib.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_topos.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_trigonometry.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_units.py
+%%PYTHON_SITELIBDIR%%/skyfield/tests/test_vectors.py
+%%PYTHON_SITELIBDIR%%/skyfield/timelib.py
+%%PYTHON_SITELIBDIR%%/skyfield/toposlib.py
+%%PYTHON_SITELIBDIR%%/skyfield/trigonometry.py
+%%PYTHON_SITELIBDIR%%/skyfield/units.py
+%%PYTHON_SITELIBDIR%%/skyfield/vectorlib.py