def __init__(self, logger, fig): self.logger = logger # create a ginga object and tell it about the figure fi = FitsImageCanvas(logger) fi.enable_autocuts('on') fi.set_autocut_params('zscale') fi.add_callback('key-press', self.key_press_ginga) fi.set_figure(fig) self.fitsimage = fi # enable all interactive features fi.get_bindings().enable_all(True) canvas = DrawingCanvas() canvas.enable_draw(True) canvas.set_callback('button-press', self.btn_down) #canvas.set_callback('motion', self.drag) canvas.set_callback('button-release', self.btn_up) canvas.set_drawtype('point', color='cyan') canvas.set_callback('draw-event', self.draw_event) canvas.add_callback('key-press', self.key_press) canvas.setSurface(self.fitsimage) canvas.ui_setActive(True) self.canvas = canvas
def __init__(self, logger): super(FitsViewer, self).__init__() self.logger = logger self.drawcolors = colors.get_colors() fig = Figure() w = FigureCanvas(fig) fi = FitsImageCanvas(logger) fi.enable_autocuts('on') fi.set_autocut_params('zscale') fi.enable_autozoom('on') fi.enable_draw(True) fi.set_drawtype('ruler') fi.set_drawcolor('blue') fi.set_callback('drag-drop', self.drop_file) fi.set_callback('none-move', self.motion) fi.set_bg(0.2, 0.2, 0.2) fi.ui_setActive(True) self.fitsimage = fi fi.set_figure(fig) fi.get_bindings().enable_all(True) w.resize(512, 512) vbox = QtGui.QVBoxLayout() vbox.setContentsMargins(QtCore.QMargins(2, 2, 2, 2)) vbox.setSpacing(1) vbox.addWidget(w, stretch=1) self.readout = QtGui.QLabel("") vbox.addWidget(self.readout, stretch=0, alignment=QtCore.Qt.AlignCenter) hbox = QtGui.QHBoxLayout() hbox.setContentsMargins(QtCore.QMargins(4, 2, 4, 2)) wdrawtype = QtGui.QComboBox() self.drawtypes = fi.get_drawtypes() for name in self.drawtypes: wdrawtype.addItem(name) index = self.drawtypes.index('ruler') wdrawtype.setCurrentIndex(index) wdrawtype.activated.connect(self.set_drawparams) self.wdrawtype = wdrawtype wdrawcolor = QtGui.QComboBox() for name in self.drawcolors: wdrawcolor.addItem(name) index = self.drawcolors.index('blue') wdrawcolor.setCurrentIndex(index) wdrawcolor.activated.connect(self.set_drawparams) self.wdrawcolor = wdrawcolor wclear = QtGui.QPushButton("Clear Canvas") wclear.clicked.connect(self.clear_canvas) wopen = QtGui.QPushButton("Open File") wopen.clicked.connect(self.open_file) wquit = QtGui.QPushButton("Quit") wquit.clicked.connect(self.close) hbox.addStretch(1) for w in (wopen, wdrawtype, wdrawcolor, wclear, wquit): hbox.addWidget(w, stretch=0) hw = QtGui.QWidget() hw.setLayout(hbox) vbox.addWidget(hw, stretch=0) vw = QtGui.QWidget() self.setCentralWidget(vw) vw.setLayout(vbox)
from ginga.misc import log from ginga.AstroImage import AstroImage from ginga import cmap # add matplotlib colormaps to ginga's own set cmap.add_matplotlib_cmaps() # Set to True to get diagnostic logging output use_logger = False logger = log.get_logger(null=not use_logger, log_stderr=True) # create a regular matplotlib figure fig = plt.figure() # create a ginga object, initialize some defaults and # tell it about the figure fi = FitsImageCanvas(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])