agpy 0.1 documentation

Source code for agpy.ds9_phot

#!/usr/bin/env python -W ignore::DeprecationWarning
#!/Library/Frameworks/Python.framework/Versions/2.6/bin/python
import pyregion
import pyfits
import pywcs
import ds9
import numpy
import sys

[docs]def ds9_photometry(xpapoint): D = ds9.ds9(xpapoint) try: reg = pyregion.parse(D.get("regions selected -format ds9 -system wcs -sky fk5 -skyformat sexagesimal")) except Exception as ex: print ex raise ex pf = D.get_pyfits() mask = reg.get_mask(pf[0]) arr = pf[0].data wherenotnan = (arr == arr) mask = mask*wherenotnan hdr = pf[0].header wcs = pywcs.WCS(hdr) try: bmaj = float(hdr['BMAJ']) bmin = float(hdr['BMIN']) try: cd1 = wcs.wcs.cd[0,0] cd2 = wcs.wcs.cd[1,1] except AttributeError: cd1,cd2 = wcs.wcs.cdelt[:2] ppbeam = 2*numpy.pi*bmin*bmaj / abs(cd1*cd2) / (8*numpy.log(2)) #print "CD1: %g CD2: %g" % (cd1, cd2) sys.stdout.write( "BMAJ: %g BMIN: %g PPBEAM: %g SUM/PPBEAM: %g\n" % (bmaj,bmin,ppbeam,arr[mask].sum()/ppbeam) ) except KeyError: print "ds9_phot failed - check for BMAJ/BMIN in header" pass except Exception as inst: print "ds9_phot failed - not a header KeyError, something else" print inst.args pass return arr[mask].sum(),arr[mask].mean(),numpy.median(arr[mask]),arr[mask].std(),mask.sum()
if __name__ == "__main__": import sys xpaname = sys.argv[1] sys.stdout.write( "Sum: %g Mean: %g Median: %g RMS: %g NPIX: %i\n" % ds9_photometry(xpaname) ) sys.exit()