.. _hstwcs_ui: ************************************** HSTWCS Examples ************************************** -------------------------- Create an HSTWCS Object -------------------------- - Create an HSTWCS object using a pyfits HDUList and an extension number ``fobj = pyfits.open('some_file.fits')`` ``w = wcsutil.HSTWCS(fobj, 3)`` - Create an HSTWCS object using a qualified file name. ``w = wcsutil.HSTWCS('j9irw4b1q_flt.fits[sci,1]')`` - Create an HSTWCS object using a file name and an extension number. ``w = wcsutil.HSTWCS('j9irw4b1q_flt.fits', ext=2)`` - Create an HSTWCS object from WCS with key 'O'. ``w = wcsutil.HSTWCS('j9irw4b1q_flt.fits', ext=2, wcskey='O')`` - Create a template HSTWCS object for a DEFAULT object. ``w = wcsutil.HSTWCS(instrument='DEFAULT')`` ---------------------------------- Coordinate Transformation Examples ---------------------------------- All coordinate transformation functions accept input coordinates as 2D numpy arrays or 2 sequences of X and Y coordinates. ``inpix = np.array([[1., 2.], [1,3], [1,4], [1,5]])`` or ``X = [1.,1.,1.,1.]`` ``Y = np.array([2.,3.,4.,5.])`` In addition all transformation functions require an `origin` parameter which specifies if the coordinates are 0 or 1 based. For example in FITS and Fortran, coordinates start from 1, while in Python and C, the index of the first image pixel is (0,0). - Apply the entire detector to sky transformation at once: ``outpix=w1.all_pix2sky(inpix,1)`` ``outpix=w1.all_pix2sky(X, Y,1)`` - The same transformation can be done in separate steps: 1. Apply the detector to image correction ``dpx = w.det2im(inpix,1)`` 2. Aply the SIP polynomial distortion ``spx = w.sip_pix2foc(dpx, 1)`` 3. Apply the non-polynomial distortion from the lookup table ``lutpx = w.p4_pix2foc(dpx,1)`` 4. The undistorted coordinates are the sum of the input coordinates with the deltas for the distortion corrections. ``fpix = dpx + (spx-dpx) +(lutpx-dpx)`` 5. Finally the transformation from undistorted to world coordinates is done by applying the linear WCS. ``wpix = w.wcs_pix2sky(fpix, 1)``