def load_hdu(self, hdu, dstobj=None, **kwargs): from ginga import AstroImage # Put here to avoid circular import hduinfo = hdu.get_info() hdutype = hduinfo.get('hdutype', None) ahdr = AstroImage.AstroHeader() self.fromHDU(hdu, ahdr) metadata = dict(header=ahdr) data = hdu.read() if hdutype == fitsio.IMAGE_HDU: # <-- data is an image if dstobj is None: # get model class for this type of object obj_class = self.factory_dict.get('image', None) if obj_class is None: raise FITSError( "I don't know how to load objects of kind 'image'") dstobj = obj_class(logger=self.logger) dstobj.load_data(data, metadata=metadata) elif hdutype in (fitsio.ASCII_TBL, fitsio.BINARY_TBL): # <-- data is a table raise FITSError( "FITS tables are not yet readable using ginga/fitsio") return dstobj
def load_hdu(self, hdu, dstobj=None, **kwargs): from ginga import AstroImage # Put here to avoid circular import typ = self.get_hdu_type(hdu) if typ == 'image': # <-- data is an image ahdr = AstroImage.AstroHeader() self.fromHDU(hdu, ahdr) metadata = dict(header=ahdr) data = hdu.read() if dstobj is None: # get model class for this type of object obj_class = self.factory_dict.get('image', None) if obj_class is None: raise FITSError( "I don't know how to load objects of kind 'image'") dstobj = obj_class(logger=self.logger) dstobj.load_data(data, metadata=metadata) elif typ == 'table': # <-- data is a table raise FITSError( "FITS tables are not yet readable using ginga/fitsio") return dstobj
def _data_to_image(data): ids = data.component_ids() data_np = data[ids[0]] data_meta = {} if hasattr(data.coords, 'header'): h = AstroImage.AstroHeader() h.update(data.coords.header) data_meta['header'] = h image = AstroImage.AstroImage(data_np=data_np, metadata=data_meta) if hasattr(data.coords, 'wcs'): image.wcs.load_header(data.coords.wcs.to_header()) return image
def load_hdu(self, hdu, dstobj=None, **kwargs): from ginga import AstroImage # Put here to avoid circular import if dstobj is None: # get model class for this type of object obj_class = self.factory_dict.get('image', None) if obj_class is None: raise FITSError( "I don't know how to load objects of kind 'image'") dstobj = obj_class(logger=self.logger) data = hdu.read() ahdr = AstroImage.AstroHeader() self.fromHDU(hdu, ahdr) metadata = dict(header=ahdr) dstobj.set_data(data, metadata=metadata) return dstobj