Skip to content

Commit dd98591

Browse files
authored
Merge pull request #59 from AssessingSolar/avoid-loading-skyfield
Avoid loading skyfield empheris when importing package
2 parents 38080fa + 37d83b9 commit dd98591

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

src/solposx/solarposition/skyfield.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,8 @@
22

33
import pandas as pd
44

5-
try:
6-
# Try loading optional package
7-
from skyfield.api import load
8-
DE440 = load('de440.bsp')
9-
TS = load.timescale()
10-
except ImportError: # pragma: no cover
11-
pass # pragma: no cover
12-
135

14-
def skyfield(times, latitude, longitude, de=None):
6+
def skyfield(times, latitude, longitude, de='de440.bsp'):
157
"""
168
Calculate solar position using the Skyfield Python package.
179
@@ -31,8 +23,8 @@ def skyfield(times, latitude, longitude, de=None):
3123
longitude : float
3224
Longitude in decimal degrees. Positive east of prime meridian,
3325
negative to west. [degrees]
34-
de : Skyfield SpiceKernel, optional, default DE440
35-
Empheris of choice.
26+
de : str or Skyfield SpiceKernel, optional, default : 'de440.bsp'
27+
Ephemeris of choice.
3628
3729
Returns
3830
-------
@@ -52,15 +44,17 @@ def skyfield(times, latitude, longitude, de=None):
5244
"""
5345
try:
5446
# Try loading optional package
55-
from skyfield.api import wgs84
47+
from skyfield.api import load, wgs84
5648
except ImportError: # pragma: no cover
5749
# Raise an error if package is not available
5850
raise ImportError(
5951
'The skyfield function requires the skyfield Python package.'
6052
) # pragma: no cover
6153

62-
if de is None:
63-
de = DE440
54+
if isinstance(de, str):
55+
de = load(de)
56+
57+
TS = load.timescale()
6458

6559
earth = de['Earth']
6660
sun = de['Sun']

0 commit comments

Comments
 (0)