Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/source/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Development - |version|
:class:`~bsk_rl.sim.dyn.DynModelABC`, instead of from :class:`~bsk_rl.sim.fsw.BasicFSWModel`
or :class:`~bsk_rl.sim.dyn.BasicDynModel`. These are lighter-weight base classes that lack
some functionality that was not always wanted.
* Update support data import paths to allow compatibility with Basilisk's new dataFetcher API.

.. warning::

Expand Down
23 changes: 17 additions & 6 deletions src/bsk_rl/sim/world.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,15 @@
if TYPE_CHECKING: # pragma: no cover
from bsk_rl.sim import Simulator

logger = logging.getLogger(__name__)
try:
from Basilisk.utilities.supportDataTools.dataFetcher import DataFile, get_path

_DATA_FETCHER_API = True
except ImportError:
bskPath = __path__[0]
_DATA_FETCHER_API = False

bsk_path = __path__[0]
logger = logging.getLogger(__name__)


class WorldModelABC(ABC, Resetable):
Expand Down Expand Up @@ -169,14 +175,19 @@ def setup_gravity_bodies(
self.planet.isCentralBody = (
True # ensure this is the central gravitational body
)
self.planet.useSphericalHarmonicsGravityModel(
bsk_path + "/supportData/LocalGravData/GGM03S.txt", 10
)
if _DATA_FETCHER_API:
path_grav_data = str(get_path(DataFile.LocalGravData.GGM03S))
path_ephem_data = str(get_path(DataFile.EphemerisData.de430).parent)
else:
path_grav_data = bsk_path + "/supportData/LocalGravData/GGM03S.txt"
path_ephem_data = bsk_path + "/supportData/EphemerisData/"

self.planet.useSphericalHarmonicsGravityModel(path_grav_data, 10)

# setup Spice interface for some solar system bodies
timeInitString = utc_init
self.gravFactory.createSpiceInterface(
bsk_path + "/supportData/EphemerisData/", timeInitString, epochInMsg=True
path_ephem_data, timeInitString, epochInMsg=True
)
self.gravFactory.spiceObject.zeroBase = "earth"

Expand Down
22 changes: 15 additions & 7 deletions src/bsk_rl/utils/orbital.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,13 @@
from Basilisk.utilities.orbitalMotion import ClassicElements, elem2rv, rv2elem
from scipy.interpolate import interp1d

bskPath = __path__[0]
try:
from Basilisk.utilities.supportDataTools.dataFetcher import DataFile, get_path

_DATA_FETCHER_API = True
except ImportError:
bskPath = __path__[0]
_DATA_FETCHER_API = False

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -412,13 +418,15 @@ def _init_simulator(self) -> None:
planet = self.gravFactory.createEarth()
self.gravFactory.createSun()
planet.isCentralBody = True
planet.useSphericalHarmonicsGravityModel(
bskPath + "/supportData/LocalGravData/GGM03S.txt", 10
)
if _DATA_FETCHER_API:
path_grav_data = str(get_path(DataFile.LocalGravData.GGM03S))
path_ephem_data = str(get_path(DataFile.EphemerisData.de430).parent)
else:
path_grav_data = bskPath + "/supportData/LocalGravData/GGM03S.txt"
path_ephem_data = bskPath + "/supportData/EphemerisData/"
planet.useSphericalHarmonicsGravityModel(path_grav_data, 10)
UTCInit = self.utc_init
self.gravFactory.createSpiceInterface(
bskPath + "/supportData/EphemerisData/", UTCInit
)
self.gravFactory.createSpiceInterface(path_ephem_data, UTCInit)
self.gravFactory.spiceObject.zeroBase = "earth"
self.AddModelToTask(simTaskName, self.gravFactory.spiceObject)
scObject.gravField.gravBodies = spacecraft.GravBodyVector(
Expand Down