diff options
-rw-r--r-- | lib/stwcs/updatewcs/det2im.py | 30 | ||||
-rw-r--r-- | lib/stwcs/updatewcs/npol.py | 23 |
2 files changed, 30 insertions, 23 deletions
diff --git a/lib/stwcs/updatewcs/det2im.py b/lib/stwcs/updatewcs/det2im.py index 6cf018a..dd48bc5 100644 --- a/lib/stwcs/updatewcs/det2im.py +++ b/lib/stwcs/updatewcs/det2im.py @@ -71,7 +71,6 @@ class DET2IMCorr(object): if extname == 'sci': extversion = ext.header['EXTVER'] ccdchip = cls.get_ccdchip(fobj, extname='SCI', extver=extversion) - binned = utils.getBinning(fobj, extversion) header = ext.header # get the data arrays from the reference file dx, dy = cls.getData(d2imfile, ccdchip) @@ -81,8 +80,10 @@ class DET2IMCorr(object): if ename[1] is not None: error_val = ename[1].max() cls.addSciExtKw(header, wdvarr_ver=d2im_num_ext, d2im_extname=ename[0], error_val=error_val) - hdu = cls.createD2ImHDU(header, d2imfile=d2imfile, \ - wdvarr_ver=d2im_num_ext, d2im_extname=ename[0], data=ename[1],ccdchip=ccdchip, binned=binned) + hdu = cls.createD2ImHDU(header, d2imfile=d2imfile, + wdvarr_ver=d2im_num_ext, + d2im_extname=ename[0], + data=ename[1],ccdchip=ccdchip) if wcsdvarr_ind and d2im_num_ext in wcsdvarr_ind: fobj[wcsdvarr_ind[d2im_num_ext]] = hdu else: @@ -174,22 +175,25 @@ class DET2IMCorr(object): return xdata, ydata getData = classmethod(getData) - def createD2ImHDU(cls, sciheader, d2imfile=None, wdvarr_ver=1, d2im_extname=None,data = None, ccdchip=1, binned=1): + def createD2ImHDU(cls, sciheader, d2imfile=None, wdvarr_ver=1, + d2im_extname=None,data = None, ccdchip=1): """ Creates an HDU to be added to the file object. """ - hdr = cls.createD2ImHdr(sciheader, d2imfile=d2imfile, wdvarr_ver=wdvarr_ver, d2im_extname=d2im_extname, ccdchip=ccdchip, binned=binned) + hdr = cls.createD2ImHdr(sciheader, d2imfile=d2imfile, + wdvarr_ver=wdvarr_ver, d2im_extname=d2im_extname, + ccdchip=ccdchip) hdu=pyfits.ImageHDU(header=hdr, data=data) return hdu createD2ImHDU = classmethod(createD2ImHDU) - def createD2ImHdr(cls, sciheader, d2imfile, wdvarr_ver, d2im_extname, ccdchip, binned): + def createD2ImHdr(cls, sciheader, d2imfile, wdvarr_ver, d2im_extname, ccdchip): """ - Creates a header for the WCSDVARR extension based on the NPOL reference file + Creates a header for the D2IMARR extension based on the D2I reference file and sci extension header. The goal is to always work in image coordinates - (also for subarrays and binned images. The WCS for the WCSDVARR extension - i ssuch that a full size npol table is created and then shifted or scaled + (also for subarrays and binned images). The WCS for the D2IMARR extension + is such that a full size d2im table is created and then shifted or scaled if the science image is a subarray or binned image. """ d2im = pyfits.open(d2imfile) @@ -209,7 +213,7 @@ class DET2IMCorr(object): d2im.close() naxis = d2im[1].header['NAXIS'] - ccdchip = d2imextname #npol_header['CCDCHIP'] + ccdchip = d2imextname kw = { 'NAXIS': 'Size of the axis', 'CDELT': 'Coordinate increment along axis', @@ -227,10 +231,10 @@ class DET2IMCorr(object): for i in range(1, naxis+1): si = str(i) kw_val1['NAXIS'+si] = d2im_header.get('NAXIS'+si) - kw_val1['CDELT'+si] = d2im_header.get('CDELT'+si, 1.0) / binned + kw_val1['CDELT'+si] = d2im_header.get('CDELT'+si, 1.0) * sciheader.get('LTM'+si+'_'+si, 1) kw_val1['CRPIX'+si] = d2im_header.get('CRPIX'+si, 0.0) - kw_val1['CRVAL'+si] = (d2im_header.get('CRVAL'+si, 0.0) + sciheader.get('LTV'+str(i), 0)) / binned - + kw_val1['CRVAL'+si] = (d2im_header.get('CRVAL'+si, 0.0) - \ + sciheader.get('LTV'+str(i), 0)) kw_comm0 = {'XTENSION': 'Image extension', 'BITPIX': 'IEEE floating point', 'NAXIS': 'Number of axes', diff --git a/lib/stwcs/updatewcs/npol.py b/lib/stwcs/updatewcs/npol.py index 2c90611..cebaa8e 100644 --- a/lib/stwcs/updatewcs/npol.py +++ b/lib/stwcs/updatewcs/npol.py @@ -74,16 +74,17 @@ class NPOLCorr(object): if extname == 'sci': extversion = ext.header['EXTVER'] ccdchip = cls.get_ccdchip(fobj, extname='SCI', extver=extversion) - binned = utils.getBinning(fobj, extversion) header = ext.header - # get the data arrays from the reference file and transform them for use with SIP + # get the data arrays from the reference file and transform + # them for use with SIP dx,dy = cls.getData(nplfile, ccdchip) idccoeffs = cls.getIDCCoeffs(header) if idccoeffs != None: dx, dy = cls.transformData(dx,dy, idccoeffs) - # Determine EXTVER for the WCSDVARR extension from the NPL file (EXTNAME, EXTVER) kw. + # Determine EXTVER for the WCSDVARR extension from the + # NPL file (EXTNAME, EXTVER) kw. # This is used to populate DPj.EXTVER kw wcsdvarr_x_version = 2 * extversion -1 wcsdvarr_y_version = 2 * extversion @@ -91,7 +92,7 @@ class NPOLCorr(object): error_val = ename[2].max() cls.addSciExtKw(header, wdvarr_ver=ename[1], npol_extname=ename[0], error_val=error_val) hdu = cls.createNpolHDU(header, npolfile=nplfile, \ - wdvarr_ver=ename[1], npl_extname=ename[0], data=ename[2],ccdchip=ccdchip, binned=binned) + wdvarr_ver=ename[1], npl_extname=ename[0], data=ename[2],ccdchip=ccdchip) if wcsdvarr_ind: fobj[wcsdvarr_ind[ename[1]]] = hdu else: @@ -218,17 +219,17 @@ class NPOLCorr(object): getIDCCoeffs = classmethod(getIDCCoeffs) - def createNpolHDU(cls, sciheader, npolfile=None, wdvarr_ver=1, npl_extname=None,data = None, ccdchip=1, binned=1): + def createNpolHDU(cls, sciheader, npolfile=None, wdvarr_ver=1, npl_extname=None,data = None, ccdchip=1): """ Creates an HDU to be added to the file object. """ - hdr = cls.createNpolHdr(sciheader, npolfile=npolfile, wdvarr_ver=wdvarr_ver, npl_extname=npl_extname, ccdchip=ccdchip, binned=binned) + hdr = cls.createNpolHdr(sciheader, npolfile=npolfile, wdvarr_ver=wdvarr_ver, npl_extname=npl_extname, ccdchip=ccdchip) hdu=pyfits.ImageHDU(header=hdr, data=data) return hdu createNpolHDU = classmethod(createNpolHDU) - def createNpolHdr(cls, sciheader, npolfile, wdvarr_ver, npl_extname, ccdchip, binned): + def createNpolHdr(cls, sciheader, npolfile, wdvarr_ver, npl_extname, ccdchip): """ Creates a header for the WCSDVARR extension based on the NPOL reference file and sci extension header. The goal is to always work in image coordinates @@ -271,10 +272,12 @@ class NPOLCorr(object): for i in range(1, naxis+1): si = str(i) kw_val1['NAXIS'+si] = npol_header.get('NAXIS'+si) - kw_val1['CDELT'+si] = npol_header.get('CDELT'+si, 1.0) + kw_val1['CDELT'+si] = npol_header.get('CDELT'+si, 1.0) * \ + sciheader.get('LTM'+si+'_'+si, 1) kw_val1['CRPIX'+si] = npol_header.get('CRPIX'+si, 0.0) - kw_val1['CRVAL'+si] = npol_header.get('CRVAL'+si, 0.0) - + kw_val1['CRVAL'+si] = (npol_header.get('CRVAL'+si, 0.0) - \ + sciheader.get('LTV'+str(i), 0)) + kw_comm0 = {'XTENSION': 'Image extension', 'BITPIX': 'IEEE floating point', 'NAXIS': 'Number of axes', |