Overview of STIPS

This article provides an overview of the Space Telescope Imaging Product Simulator (STIPS) software for the 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 quickly generating images of the entire WFI array of detectors.  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, such as WebbPSF and Pandeia , as well as several other Python packages. These underlying packages and their supporting datasets must be installed. The full list of dependencies and their versions is maintained in the readthedocs installation documentation. To prevent conflicts with package versions, users are encouraged to install STIPS in its own environment.

Pandeia version 3.1 or high is needed for  STIPS to simulate the WFI observations. Pandeia for Roman can be installed by doing the following:

Pip Install Pandeia
pip install pandeia.engine==2024.12


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.

Installation Test
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 requirements in the readthedocs installation documentation.

STIPS Env Report
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 three steps: creating an astronomical scene to observe, designing the observation of the scene, and executing the observation. Each part is discussed below. 


Creating an Astronomical Scene

STIPS can simulate an astronomical scene to observe using two methods: 1) through user-defined input catalogs and 2) through simulated catalogs with stellar populations and background galaxies using STIPS’ SceneModule class.

  • 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 using the  SceneModule class by defining a set of populations parameters for either point or extended sources (see examples in the STIPS Tutorials). These catalogs 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
  • Upper and lower limit of the age of the stars (in years) 
  • Upper and lower limit of the metallicity of the stars 
  • Initial Mass Funtion
  • 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


Designing the Observation of the Scene

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. Unlike other Roman simulators, STIPS does not take in Multi Accumulation tables (MA Tables), but instead takes in a fixed exposure time in seconds as an input.

The ObservationModule takes four inputs:

  1. obs – a Python dictionary that specifies the parameters of the Observation
  2. output_prefix – user-specified name of the output file’s prefix
  3. ra, dec – the central coordinates of the field to be simulated
  4. residual – the error residuals from flat, dark, cosmic ray, Poisson noise, and readnoise


The Observation Dictionary

The Observation dictionary, here called obs , contains the elements of a WFI observation. The Table of Elements in an Observation Dictionary provides a description of its components.

Table of Elements in an Observation Dictionary 

ElementDescriptionData TypeAllowed Values 
instrumentName of the instrument to simulateStringWFI
filtersName(s) of the filter(s) to simulateList of StringsOne or more of the following: F062, F087, F106, F129, F146, F158, F184, F213
detectorsNumber of detectors to simulateIntegerAny number from 1 to 18 detectors. (Please see the Panel C of the Figure of Detectors and Focal Plane Array for information about which number corresponds to which detector.) 
observations_idObservation labelIntegerAny integer value to label the observation
exptimeSimulated exposure time in secondsFloatAny float
distortionGeometric distortion applied to each detector; Turn on (True) or off (False)BooleanTrue/False
offsetsDictionary that configures an offset location from the input coordinates, used to create mosaics

List of Dictionaries

The dictionary contains the following elements:
  • offset identifier: offset_id (integer)
  • offset Right Ascension: offset_ra (float)
  • offset Declination: offset_dec (float)
  • offset position angle: offset_pa (float)
backgroundParameter that defines what background model is used, or a custom value.

String

The options are: pandeia, none , min, max, med, or a custom value input in this field.
(warning)  min, max, med refer to the minimum, maximum, or average of the Zodiacal light. pandeia takes in the average estimated background directly from Pandeia , and none sets the background to zero.

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:

  • flat field residuals: residual_flat (True/False)
  • dark residuals: residual_dark (True/False)
  • cosmic ray residuals: residual_cosmic  (True/False)
  • poisson noise residuals: residual_poisson (True/False)
  • read noise residuals: residual_readnoise (True/False)
fast_galaxy

If True, it uses a method that produces less accurate flux values, but is ~8 times faster at injecting extended sources.

Boolean

True/False



Executing the Observation

Once the inputs are created,  STIPS performs a number of tasks:

  1. An observation is initialized for the specified SCAs and filters at the input coordinates.
  2. The WebbPSF library is uploaded, which comprises 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.
  3. For each input in the source catalog:
    1. An optimal PSF shape is created at the location of the source by interpolating the four closest PSFs in the PSF grid using bilinear interpolation.
    2. 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.
  4. If specified, noise residuals and a background level are added to the image.
  5. The simulated image is saved as a Flexible Image Transport System (FITS) format file.

In addition to the simulated images in FITS format,  STIPS can output:

  1. Observed Catalogues (text)
  2. PSF Images (FITS)
  3. Quicklook Images (PNG)




For additional questions not answered in this article, please contact the Roman Help Desk at STScI.




References

In addition to this documentation, STIPS is described in the following references. Users are encouraged to cite this publication:

  1. STIPS Development Team et al 2024, "STIPS: The Nancy Grace Roman Space Telescope Imaging Product Simulator", PASP 136 124502





Latest Update

This documentation is written for STIPS version 2.2.2 (released on December 16, 2024).

Publication

 

Initial publication of the article.