Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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