Esempio n. 1
0
    def load_hdu(self, hdu, dstobj=None, **kwargs):
        typ = self.get_hdu_type(hdu)

        if typ == 'image':
            # <-- data is an image
            ahdr = AstroHeader()
            self.fromHDU(hdu, ahdr)

            metadata = dict(header=ahdr)

            data = hdu.read()

            if dstobj is None:
                dstobj = AstroImage(logger=self.logger)
                dstobj.load_data(data, metadata=metadata)

            else:
                dstobj.load_data(data, metadata=metadata)

        elif typ == 'table':
            # <-- data is a table
            raise FITSError(
                "FITS tables are not yet readable using ginga/fitsio")

        dstobj.io = self

        return dstobj
Esempio n. 2
0
    def load_hdu(self, hdu, dstobj=None, **kwargs):

        typ = self.get_hdu_type(hdu)
        if typ == 'image':

            if dstobj is None:
                dstobj = AstroImage(logger=self.logger)
                dstobj.load_hdu(hdu, **kwargs)

            else:
                # TODO: migrate code from AstroImage to here
                dstobj.load_hdu(hdu, **kwargs)

        elif typ == 'table':
            # <-- data may be a table

            if hdu.name == 'ASDF':
                if dstobj is not None:
                    raise ValueError(
                        "It is not supported to load ASDF HDU with dstobj != None"
                    )

                self.logger.debug('Attempting to load {} extension from '
                                  'FITS'.format(hdu.name))
                from ginga.util.io import io_asdf
                opener = io_asdf.ASDFFileHandler(self.logger)
                return opener.load_asdf_hdu_in_fits(self.fits_f, hdu, **kwargs)

            if dstobj is None:
                dstobj = AstroTable(logger=self.logger)

            self.logger.debug('Attempting to load table from FITS')

            # TODO: migrate code from AstroTable to here
            dstobj.load_hdu(hdu, **kwargs)

        else:
            raise FITSError("I don't know how to read this HDU")

        dstobj.io = self

        return dstobj