def kernels(self): if not hasattr(self, '_kernels'): if 'kernels' in self._props.keys(): try: self._kernels = util.get_kernels_from_isis_pvl( self._props['kernels']) except Exception as e: self._kernels = self._props['kernels'] else: if not ale.spice_root: raise EnvironmentError( f'ale.spice_root is not set, cannot search for metakernels. ale.spice_root = "{ale.spice_root}"' ) search_results = util.get_metakernels( ale.spice_root, missions=self.short_mission_name, years=self.utc_start_time.year, versions='latest') if search_results['count'] == 0: raise ValueError( f'Failed to find metakernels. mission: {self.short_mission_name}, year:{self.utc_start_time.year}, versions="latest" spice root = "{ale.spice_root}"' ) self._kernels = [search_results['data'][0]['path']] return self._kernels
def kernels(self): """ Get the NAIF SPICE Kernels to furnish There are two ways to specify which kernels a driver will use: 1. Passing the 'kernels' property into load(s) or at instantiation. This can be either a straight iterable or a dictionary that specifies the kernels in ISIS style ('TargetPosition', 'InstrumentPosition', etc). 2. Set the ALESPICEROOT environment variable. This variable should be the path to a directory that contains directories whose naming convention matches the PDS Kernel Archives format, `shortMissionName-versionInfo`. The directory corresponding to the driver's mission will be searched for the approriate meta kernel to load. See Also -------- ale.util.get_kernels_from_isis_pvl : Function used to parse ISIS style dict ale.util.get_metakernels : Function that searches ALESPICEROOT for meta kernels ale.util.generate_kernels_from_cube : Helper function to get an ISIS style dict from an ISIS cube that has been through spiceinit """ if not hasattr(self, '_kernels'): if 'kernels' in self._props.keys(): try: self._kernels = util.get_kernels_from_isis_pvl( self._props['kernels']) except Exception as e: self._kernels = self._props['kernels'] else: if not ale.spice_root: raise EnvironmentError( f'ale.spice_root is not set, cannot search for metakernels. ale.spice_root = "{ale.spice_root}"' ) search_results = util.get_metakernels( ale.spice_root, missions=self.short_mission_name, years=self.utc_start_time.year, versions='latest') if search_results['count'] == 0: raise ValueError( f'Failed to find metakernels. mission: {self.short_mission_name}, year:{self.utc_start_time.year}, versions="latest" spice root = "{ale.spice_root}"' ) self._kernels = [search_results['data'][0]['path']] return self._kernels