def ds9display(filename): targs = ds9.ds9_targets() if targs is None: # Open a new ds9 window d = ds9.ds9(start=True) else: # Default grab the first ds9 instance d = ds9.ds9(targs[0]) d.set('file ' + filename) d.set('zoom to fit') d.set('zscale') d.set("zscale contrast 0.1")
def show_image(controller): filename = "tmp.fits" print("Generating fits...") print("Getting data...") arr = controller.dc.get_image_data() print("Generating fits with keys...") controller.gen_fits_with_keys(arr, filename) print("Displaying {}".format(filename)) d = ds9() d.set("file {}".format(filename))
def __init__(self, debug=False, dataSxtr=None, logger=None): super(Ds9DisplayThread, self).__init__() self.debug = debug self.dataSxtr = dataSxtr self.logger = logger self.stoprequest = threading.Event() self.display=None try: self.display = ds9() except Exception, e: self.logger.warn('__init__: forking ds9 failed:\n{0}'.format(e))
def show_ds9(fits_coo, solve_coo): d = ds9.ds9() d.set("file "+str(event_handler.file_to_open).split(".")[0]+".new") d.set('scale zscale') d.set('zoom to fit') d.set('match frame wcs') d.set('regions', 'fk5; line(' + str(solve_coo.ra.deg) + ',' + str(solve_coo.dec.deg) + ',' + str(fits_coo.ra.deg) + ',' + str(fits_coo.dec.deg) + ')') d.set('regions', 'fk5; circle(' + str(fits_coo.ra.deg) + ',' + str(fits_coo.dec.deg) + ',7")')
def __init__(self, debug=False, dataSxtr=None, logger=None): super(Ds9DisplayThread, self).__init__() self.debug = debug self.dataSxtr = dataSxtr self.logger = logger self.stoprequest = threading.Event() self.display = None try: self.display = ds9() except Exception, e: self.logger.warn('__init__: forking ds9 failed:\n{0}'.format(e))
def show(self): ''' Display image of the CCD data with overplotted regions. :return: ''' import pyds9 as ds9 d = ds9.ds9() # print self._ccdsections[0].parallel_scans[1] d.set_np2arr(self.ccd.data[self._ccdsections[0].parallel_scans[1]])
def __init__(self, target='ImageDisplay:*'): self.ds9 = ds9.ds9()
def regions(catname, d=None, rformat='xy'): if d is None: d=ds9.ds9() cmd='regions %s -format %s' % (catname, rformat) d.set(cmd)
def display(filename, target='saltfirst', catname=None, rformat='xy'): d=ds9.ds9() cmd='file %s' % filename d.set(cmd) if catname is not None: regions(catname, d=d, rformat=rformat)
def regions(catname, d=None, rformat='xy'): if d is None: d = ds9.ds9() cmd = 'regions %s -format %s' % (catname, rformat) d.set(cmd)
def display(filename, target='saltfirst', catname=None, rformat='xy'): d = ds9.ds9() cmd = 'file %s' % filename d.set(cmd) if catname is not None: regions(catname, d=d, rformat=rformat)
#!/usr/bin/env python """ PV extract a ds9 image with regions on it """ import sys import pyds9 #import pyregion from astropy import wcs import pvextractor from pvextractor.pvregions import load_regions_stringlist, paths_from_regions from astropy.io import fits import tempfile xpa = sys.argv[1] dd = pyds9.ds9(xpa) pf = dd.get_pyfits() # Have to get the raw header; ds9 processes it to drop length-1 axes header = fits.Header.fromstring(dd.get('fits header'),sep="\n") if len(sys.argv) > 2: regionid = int(sys.argv[2]) else: regionid = 0 mywcs = wcs.WCS(pf[0].header) #rp = pyregion.RegionParser() # have to check for ds9 dropping degenerate axes if pf[0].data.ndim != mywcs.wcs.naxis: naxes = ['NAXIS%i' % ii for ii in range(1,mywcs.wcs.naxis+1)] # WCS is 1-indexed
#!/usr/bin/env python """ PV extract a ds9 image with regions on it """ import sys import pyds9 #import pyregion from astropy import wcs import pvextractor from pvextractor.pvregions import load_regions_stringlist, paths_from_regions from astropy.io import fits import tempfile xpa = sys.argv[1] dd = pyds9.ds9(xpa) pf = dd.get_pyfits() # Have to get the raw header; ds9 processes it to drop length-1 axes header = fits.Header.fromstring(dd.get('fits header'), sep="\n") if len(sys.argv) > 2: regionid = int(sys.argv[2]) else: regionid = 0 mywcs = wcs.WCS(pf[0].header) #rp = pyregion.RegionParser() # have to check for ds9 dropping degenerate axes if pf[0].data.ndim != mywcs.wcs.naxis: naxes = ['NAXIS%i' % ii for ii in range(1, mywcs.wcs.naxis + 1)] # WCS is 1-indexed
def display_results(self): print '%%%%%%%%%%%%%%%%%%' print 'inside display_results' print 'self.galfit_flag = ',self.galfit_flag if (self.galfit_flag < 0.1): print 'GALFIT did not complete - can not display results' return subcomp_image=self.galname+'-'+str(self.ncomp)+'Comp'+'-subcomps.fits' s='galfit -o3 '+self.galfit_out os.system(s) os.rename('subcomps.fits',subcomp_image) # - display results (like ds9 multiextension data cube -> use xpa) # try: d.set('frame delete all') except NameError: d=pyds9.ds9() d.set('frame delete all') #print 'file to display = ',self.output_image s='file new multiframe '+self.output_image #print s d.set(s) d.set('frame delete 1') for k in range(2,5): s='frame '+str(k) d.set(s) d.set('zoom to fit') #print k if k == 2: d.set('regions command {text 30 10 #text="Image" font="times 18 bold" color="red"}') if k == 3: d.set('regions command {text 30 10 #text="Model" font="times 18 bold" color="red"}') if k == 4: d.set('regions command {text 30 10 #text="Residual" font="times 18 bold" color="red"}') d.set('frame match wcs') galfit_outimage=self.galname+'-'+'1Comp-galfit-out.fits[2]' self.print_galfit_results(galfit_outimage) print 'file to display = ',subcomp_image s='file new multiframe '+subcomp_image d.set(s) if self.ncomp == 1: endframe=8 if self.ncomp == 2: endframe=9 if self.ncomp == 3: endframe=10 s='frame delete '+str(endframe) print s try: d.set(s) except ValueError: print "couldn't execute the following ds9 command : ",s try: d.set('frame delete 5') except: print "couldn't delete frame 5" try: d.set('frame delete 6') except: print "couldn't delete frame 6" d.set('frame 7') d.set('file '+self.mask_image) for k in range(2,endframe): if k == 5: continue if k == 6: continue s='frame '+str(k) d.set(s) d.set('scale log') d.set('zoom to fit') d.set('frame match wcs')