QuickstartΒΆ
Once installed, astrogrism
can be imported and used in an interactive Python
session or in a Jupyter notebook. The main class used to read in grism
observation FITS files and expose the functionality is the astrogrism.GrismObs
class.
To load your data, simply run the following in a Python interpreter or Jupyter notebook cell:
from astrogrism import GrismObs
g_obs = GrismObs("sample_grism_flt.fits")
This object makes available the tranforms between the world
, detector
(i.e. the undispersed direct image), and grism_detector
frames. To get
the transform between, for example, the world and grism detector frames, you
can call:
world_to_grism = g_obs.geometric_transforms.get_transform("world", "grism_detector")
For instruments with two chips (WFC3 UVIS and ACS), you must specify the chip for which you want the transform, e.g.:
world_to_grism = g_obs.geometric_transforms["CCD1"].get_transform("world", "grism_detector")
This transform would then allow you to calculate the coordinates on the dispered image given a right ascension and declination (currently required to be in degrees), the wavelength of interest, and the order of the dispersed spectrum:
world_to_grism(264.10183, -32.90802, 0.7, 1.0)
This returns a tuple of values (x, y, x0, y0, order)
, where (x0, y0)
denotes
coordinates on the direct image, and (x, y)
denotes the dispersed coordinates
on the grism image. For more detail about the inputs and outputs of the geometric
transforms, see Geometric Transforms.
Note that, in addition to the geometric transforms, the GrismObs
object
stores the contents of the input FITS file as an astropy
HDUList in the
grism_image
attribute. The direct image can also be loaded, e.g:
g_obs = GrismObs("sample_grism_flt.fits", direct_image="sample_direct.fits")
and is stored in the direct_image
attribute in the same way as the grism_image
:
GrismObs.direct_image
>>> [<astropy.io.fits.hdu.image.PrimaryHDU object at 0x7f9240ca8880>,
<astropy.io.fits.hdu.image.ImageHDU object at 0x7f9201bcfd60>, ...]
GrismObs.grism_image
>>> [<astropy.io.fits.hdu.image.PrimaryHDU object at 0x7f9240ca8880>,
<astropy.io.fits.hdu.image.ImageHDU object at 0x7f9201bcfd60>, ...]