Overview of STIPS
This article provides an overview of the Space Telescope Imaging Product Simulator (STIPS) software for ithe Nancy Grace Roman Space Telescope (Roman) Wide Field Instrument (WFI), how to install it, and the minimum requirements for a successful simulation.
Code Description
STIPS is a simulation tool for the Roman WFI capable of generating images of the entire WFI array of 18 sensor chip assemblies (SCAs). STIPS depends on the Pandeia exposure time calculator and the WebbPSF point spread function (PSF) generator to create these simulations. Users can choose to simulate between 1 and 18 SCAs in any of the WFI imaging filters, insert any number of point or extended sources, and specify a sky background estimate. STIPS will scale input fluxes to observed values, retrieve appropriate PSFs, interpolate to the positions of the sources, and add in additional noise terms.
As described in the Caveats to Using STIPS for Roman, neither pixel saturation nor non-linearity residuals are currently supported.
Installing STIPS
STIPS depends on related simulation packages, like WebbPSF and Pandeia , as well as on a number of other Python packages. These underlying packages and their supporting datasets must be installed; the full list of dependencies and their versions is maintained with the readthedocs installation documentation. To prevent conflicts with package versions, users are encouraged to install STIPS in its own environment.
STIPS can be installed using the source code, available in the STScI-STIPS Gihub Repository, and a Conda environment file. Step-by-step installation instructions are maintained in the readthedocs documentation. To install Conda from scratch, please visit the Anaconda documentation.
Reference Data
In addition to the main code, several sets of reference data are required to support the STIPS , Pandeia , and WebbPSF software. Step-by-step instructions for retrieving the reference data and setting environmental variables are maintained in the readthedocs documentation.
Testing an Installation
Once STIPS is installed, or to verify an existing installation, the software versions can be checked against the versions in the readthedocs installation documentation using the code below.
import stips print(stips.__env__report__)
The output will resemble the one given below, where the place holders x.y.z and a.b.c should match the current requirements in the readthedocs installation documentation.
STIPS Version x.y.z with Data Version x.y.z at /Some/Path/To/stips_data STIPS Grid Generated with x.y.z Pandeia version a.b.c with Data Version a.b.c. at /Some/Path/To/pandeia_refdata Webbpsf Version d.e.f with Data Version d.e.f at /Some/Path/To/webbpsf_data_path
STIPS Workflow
The STIPS workflow occurs in two steps: preparing inputs for the astronomical scene and finalizing the observation. Each part is discussed below.
STIPS Inputs
The main object in STIPS is the ObservationModule , which represents a set of exposures with a single instrument (WFI), one or more filters, one or more SCAs (between 1 and 18), a single exposure time (applied to each exposure in the observation), one or more offsets, a sky background and noise residuals.
The ObservationModule has two main inputs:
- – a Python dictionary that specifies the parameters of the Observation, and obs
- – an input catalog that provides the locations and specifications of the sources in the astronomical scene. catalog
The Observation Dictionary
The Observation dictionary, here called , contains the elements of a WFI observation. The obs Table of Elements in an Observation Dictionary provides a description of its components.
Table of Elements in an Observation Dictionary
Element | Description | Data Type | Allowed Values | |
---|---|---|---|---|
instrument | Name of the instrument to simulate | String | WFI | |
filters | Name(s) of the filter(s) to simulate | List of Strings | One or more of the following: F062 , F087 , F106 , F129 , F146 , F158 , F184 , F213 | |
detectors | Number of detectors to simulate | Integer | Any number from 1 to 18 detectors | |
observations_id | Observation label | Integer | Any integer value to label the observation | |
exptime | Simulated exposure time in seconds | Float | Any float | |
distortion | Geometric distortion applied to each detector; Turn on (True) or off (False) | Boolean | True/False | |
offsets | Dictionary that configures an offset location from the input coordinates, used to create mosaics | List of Dictionaries | The dictionary contains the following elements:
| |
background | Parameter that defines what background model is used, or a custom value. | String | The options are: p | |
residuals | Dictionary that configures the noise residuals; noise residuals can be turned on (True) or off (False). | List of Dictionaries | The dictionary contains the following elements:
|
Input Catalog
STIPS supports either user defined catalogs or can generate simulated catalogs of sources based on population parameters.
User defined catalogs may be formatted as IPAC text or as a FITS BinTable, both of which are accessible via the Astropy Table API. For more information on any of the available catalog formats, visit the readthedocs documentation.
Simulated catalogs can be generated by defining as set of populations parameters for either point or extended sources (see examples in the STIPS Tutorials), and can be used as the primary astronomical scene or as injected artificial sources into an existing one. The available parameters to create simulated sources are given below.
Parameters for Stellar Population
- Number of point sources
- Age of the stars in years (set via the input of an upper and lower age limit)
- Metallicity of the stars (set via the input of an upper and lower metallicity limit)
- IMF
- Binary fraction
- Clustering (true/false)
- Distribution type (Uniform, Inverse power-law)
- Total radius of the population
- Distance of the population
- Offset RA and DEC from the center of the scene being created
Parameters for Galaxy Sources
- Number of galaxies
- Upper and lower limit of the redshift
- Upper and lower limit of the galactic radii
- Range of V-band surface brightness magnitudes
- Clustering (true/false)
- Distribution type (Uniform, Inverse power-law)
- Radius of the distribution
- Offset RA and DEC from the center of the scene being created
Finalizing an Image
Once the inputs are created, STIPS performs a number of tasks:
- An observation is initialized for the user specified SCAs and filters at the input coordinates.
- The WebbPSF library is uploaded, which is comprised of PSFs generated on a 3 by 3 grid for each detector. The default PSFs are sampled at 4 times the native resolution. Inter-Pixel Capacitance (IPC) is applied to the PSF. Additional information on the PSF grids is maintained on the readthedocs documentation.
- For each input source in the catalog:
- An optimal PSF shape is created at the location of the source by interpolating the four closest PSFs in the PSF grid. This process uses bilinear interpolation.
- The optimal PSF is then centered at the specified source location in the simulated image. To accurately measure the contribution of the PSF on each pixel, a bicubic interpolation function is used.
- If specified, noise residuals and a background level are added to the image.
- The simulated image is saved as a Flexible Image Transport System (FITS) format file.