def FitsImageNTuple( file, resample=2 ): # # open the image file # image = pyfits.open(file) # # The primary header contains the coordinate data # prihdr = image[0].header # # build the axis objects and arrays # xaxis = FitsAxis( "x-axis", keywordVal(prihdr, 'crval1', 0), keywordVal(prihdr, 'cdelt1'), keywordVal(prihdr, 'naxis1'), ctype = keywordVal(prihdr, 'ctype1', 'x'), crpix = keywordVal(prihdr, 'crpix1') ) yaxis = FitsAxis( "y-axis", keywordVal(prihdr, 'crval2', 0), keywordVal(prihdr, 'cdelt2'), keywordVal(prihdr, 'naxis2'), ctype = keywordVal(prihdr, 'ctype2', 'y'), crpix = keywordVal(prihdr, 'crpix2') ) xx = xaxis.array() yy = yaxis.array() # # create the image NTuple and register it with HippoDraw # nt = hippo.NTuple() ntc = hippo.NTupleController.instance() ntc.registerNTuple(nt) # x = [] y = [] z = [] for i in range (0, xaxis.naxis, resample): for j in range (0, yaxis.naxis, resample): x.append(xx[i]) y.append(yy[j]) z.append(image[0].data[j][i]) nt.addColumn(xaxis.ctype, x) nt.addColumn(yaxis.ctype, y) # # use a place-holder name for now # nt.addColumn("Z values", z) return nt
def FitsImageNTuple(file, resample=2): # # open the image file # image = pyfits.open(file) # # The primary header contains the coordinate data # prihdr = image[0].header # # build the axis objects and arrays # xaxis = FitsAxis("x-axis", keywordVal(prihdr, 'crval1', 0), keywordVal(prihdr, 'cdelt1'), keywordVal(prihdr, 'naxis1'), ctype=keywordVal(prihdr, 'ctype1', 'x'), crpix=keywordVal(prihdr, 'crpix1')) yaxis = FitsAxis("y-axis", keywordVal(prihdr, 'crval2', 0), keywordVal(prihdr, 'cdelt2'), keywordVal(prihdr, 'naxis2'), ctype=keywordVal(prihdr, 'ctype2', 'y'), crpix=keywordVal(prihdr, 'crpix2')) xx = xaxis.array() yy = yaxis.array() # # create the image NTuple and register it with HippoDraw # nt = hippo.NTuple() ntc = hippo.NTupleController.instance() ntc.registerNTuple(nt) # x = [] y = [] z = [] for i in range(0, xaxis.naxis, resample): for j in range(0, yaxis.naxis, resample): x.append(xx[i]) y.append(yy[j]) z.append(image[0].data[j][i]) nt.addColumn(xaxis.ctype, x) nt.addColumn(yaxis.ctype, y) # # use a place-holder name for now # nt.addColumn("Z values", z) return nt
def setAxis(self, axisObj, naxis): axisObj.updateFitsHeader(self.hdu.header, naxis) self.axes[naxis] = axisObj def writeto(self, filename): os.system("rm -f " + filename) self.fitsobj = pyfits.HDUList() self.fitsobj.append(self.hdu) self.fitsobj.writeto(filename) if __name__ == "__main__": print "FitsAxis class tests: " fitsobj = pyfits.HDUList() hdu = pyfits.PrimaryHDU() x = FitsAxis("x-axis", 0., 0.2, 10) y = FitsAxis("y-axis", 0., 0.1, 20) hdu.data = numarray.zeros((y.naxis, x.naxis)) # note the ordering x.updateFitsHeader(hdu.header, 1) y.updateFitsHeader(hdu.header, 2) fitsobj.append(hdu) os.system("rm -f test.fits") fitsobj.writeto('test.fits') print "FitsAxis class tests completed.\n" print "FitsImageArray class tests:" x = FitsAxis("x-axis", 0., 0.2, 5) y = FitsAxis("y-axis", 0., 0.1, 10) array1 = numarray.ones((y.naxis, x.naxis)) z = {} z[1] = FitsImageArray(array1)
def setAxis(self, axisObj, naxis): axisObj.updateFitsHeader(self.hdu.header, naxis) self.axes[naxis] = axisObj def writeto(self, filename): os.system("rm -f " + filename) self.fitsobj = pyfits.HDUList() self.fitsobj.append(self.hdu) self.fitsobj.writeto(filename) if __name__ == "__main__": print "FitsAxis class tests: " fitsobj = pyfits.HDUList() hdu = pyfits.PrimaryHDU() x = FitsAxis("x-axis", 0.0, 0.2, 10) y = FitsAxis("y-axis", 0.0, 0.1, 20) hdu.data = numarray.zeros((y.naxis, x.naxis)) # note the ordering x.updateFitsHeader(hdu.header, 1) y.updateFitsHeader(hdu.header, 2) fitsobj.append(hdu) os.system("rm -f test.fits") fitsobj.writeto("test.fits") print "FitsAxis class tests completed.\n" print "FitsImageArray class tests:" x = FitsAxis("x-axis", 0.0, 0.2, 5) y = FitsAxis("y-axis", 0.0, 0.1, 10) array1 = numarray.ones((y.naxis, x.naxis)) z = {} z[1] = FitsImageArray(array1)