示例#1
0
    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
示例#2
0
    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