def _load_cube_from_file(self, data=None):
"""Initialises a cube from a file."""
if data is not None:
assert isinstance(data, fits.HDUList), 'data is not an HDUList object'
else:
try:
self.data = fits.open(self.filename)
except IOError as err:
raise IOError('filename {0} cannot be found: {1}'.format(self.filename, err))
self.header = self.data[1].header
self.shape = self.data['FLUX'].data.shape[1:]
self.wcs = WCS(self.header)
self.wavelength = self.data['WAVE'].data
self.plateifu = self.header['PLATEIFU']
# Checks and populates the release.
file_drpver = self.header['VERSDRP3']
file_drpver = 'v1_5_1' if file_drpver == 'v1_5_0' else file_drpver
file_ver = marvin.config.lookUpRelease(file_drpver)
assert file_ver is not None, 'cannot find file version.'
if file_ver != self._release:
warnings.warn('mismatch between file release={0} and object release={1}. '
'Setting object release to {0}'.format(file_ver, self._release),
MarvinUserWarning)
self._release = file_ver
# Reload NSA data from file version of drpall file
self._drpver, self._dapver = marvin.config.lookUpVersions(release=self._release)
self._drpall = marvin.config._getDrpAllPath(file_drpver)
self.mangaid = self.header['MANGAID']
nsa_source = 'drpall' if self.nsa_source == 'auto' else self.nsa_source
self._nsa = None
self._nsa = get_nsa_data(self.mangaid, mode='auto', source=nsa_source,
drpver=self._drpver, drpall=self._drpall)
self._drpver, self._dapver = marvin.config.lookUpVersions(release=self._release)
评论列表
文章目录