Esempio n. 1
0
    def load_fits(self, fitsorfn, numhdu=None, memmap=None):
        """
        Load a FITS file into the viewer.

        Parameters
        ----------
        fitsorfn : str or HDU
            Either a file name or an HDU (*not* an HDUList).
            If file name is given, WCS in primary header is automatically
            inherited. If a single HDU is given, WCS must be in the HDU
            header.

        numhdu : int or `None`
            Extension number of the desired HDU.
            If `None`, it is determined automatically.

        memmap : bool or `None`
            Memory mapping.
            If `None, it is determined automatically.

        """
        if isinstance(fitsorfn, str):
            image = AstroImage(logger=self.logger, inherit_primary_header=True)
            image.load_file(fitsorfn, numhdu=numhdu, memmap=memmap)
            self._viewer.set_image(image)

        elif isinstance(fitsorfn,
                        (fits.ImageHDU, fits.CompImageHDU, fits.PrimaryHDU)):
            self._viewer.load_hdu(fitsorfn)
Esempio n. 2
0
 def load(self, fitspath):
     
     # clear plotting area    
     self.chartDev.fig.gca().cla()
     # load an image
     image = AstroImage(self.logger)
     image.load_file(fitspath)
     self.fitsimage.set_image(image)
     self.fitsimage.add_axes()
Esempio n. 3
0
    def load(self, fitspath):

        # clear plotting area
        self.chartDev.fig.gca().cla()
        # load an image
        image = AstroImage(self.logger)
        image.load_file(fitspath)
        self.fitsimage.set_image(image)
        self.fitsimage.add_axes()
Esempio n. 4
0
 def load_fits(self, fitsfile):
     """
     Load a FITS image into the viewer.
     """
     image = AstroImage(logger=self.logger)
     image.load_file(fitsfile)
     self.viewer.set_image(image)
     panimage = AstroImage(logger=self.logger)
     panimage.load_file(fitsfile)
     self.panviewer.set_image(panimage)
Esempio n. 5
0
 def load(self, fitspath):
     self.etc.log("fplot is loading image.")
     try:
         # clear plotting area
         self.chartDev.fig.gca().cla()
         # load an image
         image = AstroImage()
         image.load_file(fitspath)
         self.fitsimage.set_image(image)
         self.fitsimage.add_axes()
     except Exception as e:
         self.etc.log(e)
Esempio n. 6
0
def convert(filepath, outfilepath):
    """Convert FITS image to PDF."""

    logger = logging.getLogger("example1")
    logger.setLevel(logging.INFO)
    fmt = logging.Formatter(STD_FORMAT)
    stderrHdlr = logging.StreamHandler()
    stderrHdlr.setFormatter(fmt)
    logger.addHandler(stderrHdlr)

    fi = ImageViewCairo(logger)
    fi.configure(500, 1000)

    # Load fits file
    image = AstroImage(logger=logger)
    image.load_file(filepath)

    # Make any adjustments to the image that we want
    fi.set_bg(1.0, 1.0, 1.0)
    fi.set_image(image)
    fi.auto_levels()
    fi.zoom_fit()
    fi.center_image()

    ht_pts = 11.0 / point_in
    wd_pts = 8.5 / point_in
    off_x, off_y = 0, 0

    out_f = open(outfilepath, 'w')
    surface = cairo.PDFSurface(out_f, wd_pts, ht_pts)
    # set pixels per inch
    surface.set_fallback_resolution(300, 300)
    surface.set_device_offset(off_x, off_y)
    try:
        fi.save_image_as_surface(surface)
        surface.show_page()
        surface.flush()
        surface.finish()
    finally:
        out_f.close()
Esempio n. 7
0
fi = ImageViewCanvas(logger)
fi.enable_autocuts('on')
fi.set_autocut_params('zscale')
#fi.set_cmap(cmap.get_cmap('rainbow3'))
fi.set_figure(fig)

# enable all interactive ginga features
fi.get_bindings().enable_all(True)

# load an image
if len(sys.argv) < 2:
    print("Please provide a FITS file on the command line")
    sys.exit(1)

image = AstroImage(logger)
image.load_file(sys.argv[1])
fi.set_image(image)
#fi.rotate(45)

# plot some example graphics via matplotlib

# Note adding axis from ginga (mpl backend) object
ax = fi.add_axes()
ax.hold(True)

wd, ht = image.get_size()

# plot a line
l = ax.plot((wd*0.33, wd*0.75), (ht*0.5, ht*0.75), 'go-',
            c="g",
            label='line1')
Esempio n. 8
0
    def load(self, filepath):
        image = AstroImage(logger=self.logger)
        image.load_file(filepath)

        self.set_image(image)
Esempio n. 9
0
 def load_file(path):
     image = AstroImage(logger)
     image.load_file(path)
     viewer.set_image(image)
Esempio n. 10
0
 def load(self, fitspath):
     # load an image
     image = AstroImage(logger=self.logger)
     image.load_file(fitspath)
     self.fitsimage.set_image(image)
Esempio n. 11
0
fi = ImageViewCanvas(logger=logger)
fi.enable_autocuts('on')
fi.set_autocut_params('zscale')
#fi.set_cmap(cmap.get_cmap('rainbow3'))
fi.set_figure(fig)

# enable all interactive ginga features
fi.get_bindings().enable_all(True)

# load an image
if len(sys.argv) < 2:
    print("Please provide a FITS file on the command line")
    sys.exit(1)

image = AstroImage(logger=logger)
image.load_file(sys.argv[1])
fi.set_image(image)
#fi.rotate(45)

# plot some example graphics via matplotlib

# Note adding axis from ginga (mpl backend) object
ax = fi.add_axes()
ax.hold(True)

wd, ht = image.get_size()

# plot a line
l = ax.plot((wd * 0.33, wd * 0.75), (ht * 0.5, ht * 0.75),
            'go-',
            c="g",
Esempio n. 12
0
class FitsPlot:
    def __init__(self, chartDev, logger):
        self.logger = logger
        self.chartDev = chartDev
        self.fig = self.chartDev.fig
        self.logger.info("fplot is doing something.")
        self.images = []
        try:
            # create a ginga object and tell it about the figure
            self.chartDev.fig.clf()
            fi = ImageViewCanvas(self.logger)
            fi.enable_autocuts('on')
            fi.set_autocut_params('zscale')

            fi.set_figure(self.chartDev.fig)

            fi.ui_setActive(True)
            self.fitsimage = fi
            setup_Qt(chartDev, fi)

            # enable all interactive features
            fi.get_bindings().enable_all(True)
            self.fitsimage = fi
        except Exception as e:
            self.logger.error(e)

    def get_xy(self):
        return self.fitsimage.get_last_data_xy()

    def get_data_size(self):
        return self.fitsimage.get_data_size()

    def get_data(self, point=True):
        try:
            if point:
                x, y = self.get_xy()
                w, h = self.get_data_size()
                if 0 < x < w and 0 < y < h:
                    return self.fitsimage.get_data(int(x), int(y))
                else:
                    return None
            else:
                return self.fitsimage.get_data()
        except Exception as e:
            self.logger.error(e)

    def get_image_data(self):
        return self.fitsimage.get_data()

    def clear(self):
        try:
            self.fitsimage.clear()
        except Exception as e:
            self.logger.error(e)

    def load(self, fitspath):
        self.logger.info("fplot is loading image.")
        try:
            # clear plotting area
            self.chartDev.fig.gca().cla()
            # load an image
            self.image = AstroImage(logger=self.logger)
            self.image.load_file(fitspath)
            self.fitsimage.set_image(self.image)
            self.fitsimage.add_axes()
        except Exception as e:
            self.logger.error(e)

    def load_array(self, fitspath):
        self.chartDev.fig.gca().cla()
        self.images = []
        for file in fitspath:
            self.images.append(AstroImage())
            self.images[-1].load_file(file)

    def show_from_all(self, number):
        if self.images is not None:
            if 0 <= number < len(self.images):
                self.fitsimage.set_image(self.images[number])
                self.fitsimage.add_axes()
Esempio n. 13
0
 def load_file(path):
     image = AstroImage(logger)
     image.load_file(path)
     viewer.set_image(image)
Esempio n. 14
0
 def load(self, fitspath):
     # load an image
     image = AstroImage(self.logger)
     image.load_file(fitspath)
     self.fitsimage.set_image(image)
Esempio n. 15
0
    def load(self, filepath):
        image = AstroImage(logger=self.logger)
        image.load_file(filepath)

        self.set_image(image)
Esempio n. 16
0
 def load_file(self, filepath):
     from ginga.AstroImage import AstroImage
     image = AstroImage(ioclass=PDS4LabelHandler)
     image.load_file(filepath)
     self.pds4image.set_image(image)
     self.setWindowTitle(filepath)