Subsetting and Pixel Scales

WCS objects can be broken apart into their constituent axes using the sub function. There is also a celestial convenience function that will return a WCS object with only the celestial axes included.

The pixel scales of a celestial image or the pixel dimensions of a non-celestial image can be extracted with the utility functions proj_plane_pixel_scales and non_celestial_pixel_scales. Likewise, celestial pixel area can be extracted with the utility function proj_plane_pixel_area.

Matplotlib plots with correct WCS projection

The WCSAxes framework, previously a standalone package, allows the WCS to be used to define projections in Matplotlib. More information on using WCSAxes can be found here.

import warnings
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS, FITSFixedWarning
from astropy.utils.data import get_pkg_data_filename

filename = get_pkg_data_filename('tutorials/FITS-images/HorseHead.fits')

hdu = fits.open(filename)[0]
with warnings.catch_warnings():
    # Ignore a warning on using DATE-OBS in place of MJD-OBS
    warnings.filterwarnings('ignore', message="'datfix' made the change",
                            category=FITSFixedWarning)
    wcs = WCS(hdu.header)

fig = plt.figure()
fig.add_subplot(111, projection=wcs)
plt.imshow(hdu.data, origin='lower', cmap=plt.cm.viridis)
plt.xlabel('RA')
plt.ylabel('Dec')

(png, svg, pdf)

../_images/wcstools-1.png