예제 #1
0
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")
예제 #2
0
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))
예제 #3
0
파일: ds9region.py 프로젝트: RTS2/rts2
 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))
예제 #4
0
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")')
예제 #5
0
 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))
예제 #6
0
    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]])
예제 #7
0
    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]])
예제 #8
0
 def __init__(self, target='ImageDisplay:*'):
     self.ds9 = ds9.ds9()
예제 #9
0
def regions(catname, d=None, rformat='xy'):
   if d is None: d=ds9.ds9()
   cmd='regions %s -format %s' % (catname, rformat)
   d.set(cmd)
예제 #10
0
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)     
예제 #11
0
def regions(catname, d=None, rformat='xy'):
    if d is None: d = ds9.ds9()
    cmd = 'regions %s -format %s' % (catname, rformat)
    d.set(cmd)
예제 #12
0
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)
예제 #13
0
#!/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
예제 #14
0
 def __init__(self, target='ImageDisplay:*'):
     self.ds9 = ds9.ds9()
예제 #15
0
#!/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
예제 #16
-1
파일: rungalfit.py 프로젝트: rfinn/Virgo
    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')