Skip to content

Commit b735603

Browse files
committed
[#330] Compatible with new Basilisk support data path
1 parent f3dc764 commit b735603

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed

src/bsk_rl/sim/world.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,15 @@
4444
if TYPE_CHECKING: # pragma: no cover
4545
from bsk_rl.sim import Simulator
4646

47-
logger = logging.getLogger(__name__)
47+
try:
48+
from Basilisk.utilities.supportDataTools.dataFetcher import DataFile, get_path
49+
50+
_DATA_FETCHER_API = True
51+
except ImportError:
52+
bskPath = __path__[0]
53+
_DATA_FETCHER_API = False
4854

49-
bsk_path = __path__[0]
55+
logger = logging.getLogger(__name__)
5056

5157

5258
class WorldModelABC(ABC, Resetable):
@@ -169,14 +175,19 @@ def setup_gravity_bodies(
169175
self.planet.isCentralBody = (
170176
True # ensure this is the central gravitational body
171177
)
172-
self.planet.useSphericalHarmonicsGravityModel(
173-
bsk_path + "/supportData/LocalGravData/GGM03S.txt", 10
174-
)
178+
if _DATA_FETCHER_API:
179+
path_grav_data = str(get_path(DataFile.LocalGravData.GGM03S))
180+
path_ephem_data = str(get_path(DataFile.EphemerisData.de430).parent)
181+
else:
182+
path_grav_data = bsk_path + "/supportData/LocalGravData/GGM03S.txt"
183+
path_ephem_data = bsk_path + "/supportData/EphemerisData/"
184+
185+
self.planet.useSphericalHarmonicsGravityModel(path_grav_data, 10)
175186

176187
# setup Spice interface for some solar system bodies
177188
timeInitString = utc_init
178189
self.gravFactory.createSpiceInterface(
179-
bsk_path + "/supportData/EphemerisData/", timeInitString, epochInMsg=True
190+
path_ephem_data, timeInitString, epochInMsg=True
180191
)
181192
self.gravFactory.spiceObject.zeroBase = "earth"
182193

src/bsk_rl/utils/orbital.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@
1515
from Basilisk.utilities.orbitalMotion import ClassicElements, elem2rv, rv2elem
1616
from scipy.interpolate import interp1d
1717

18-
bskPath = __path__[0]
18+
try:
19+
from Basilisk.utilities.supportDataTools.dataFetcher import DataFile, get_path
20+
21+
_DATA_FETCHER_API = True
22+
except ImportError:
23+
bskPath = __path__[0]
24+
_DATA_FETCHER_API = False
1925

2026
logger = logging.getLogger(__name__)
2127

@@ -412,13 +418,15 @@ def _init_simulator(self) -> None:
412418
planet = self.gravFactory.createEarth()
413419
self.gravFactory.createSun()
414420
planet.isCentralBody = True
415-
planet.useSphericalHarmonicsGravityModel(
416-
bskPath + "/supportData/LocalGravData/GGM03S.txt", 10
417-
)
421+
if _DATA_FETCHER_API:
422+
path_grav_data = str(get_path(DataFile.LocalGravData.GGM03S))
423+
path_ephem_data = str(get_path(DataFile.EphemerisData.de430).parent)
424+
else:
425+
path_grav_data = bskPath + "/supportData/LocalGravData/GGM03S.txt"
426+
path_ephem_data = bskPath + "/supportData/EphemerisData/"
427+
planet.useSphericalHarmonicsGravityModel(path_grav_data, 10)
418428
UTCInit = self.utc_init
419-
self.gravFactory.createSpiceInterface(
420-
bskPath + "/supportData/EphemerisData/", UTCInit
421-
)
429+
self.gravFactory.createSpiceInterface(path_ephem_data, UTCInit)
422430
self.gravFactory.spiceObject.zeroBase = "earth"
423431
self.AddModelToTask(simTaskName, self.gravFactory.spiceObject)
424432
scObject.gravField.gravBodies = spacecraft.GravBodyVector(

0 commit comments

Comments
 (0)