Overview

romanisim simulates Roman Wide-Field Imager images of astronomical scenes described by catalogs of sources. The simulation includes:

  • convolution of the sources by the Roman point spread function

  • optical distortion

  • sky background

  • level 1 image support (3D image stack of up-the-ramp samples)

  • level 2 image support (2D image after calibration & ramp fitting)

  • point sources and analytic galaxy profiles

  • expected system throughput

  • dark current

  • read noise

  • inter-pixel capacitance

  • non-linearity

  • saturation

  • ramp fitting

  • source injection

The simulator is based on galsim and most of these features directly invoke the equivalents in the galsim.roman package. The chief additions of this package on top of the galsim.roman implementation are using “official” webbpsf PSF, and distortion and reference files from the Roman CRDS (not yet public!). This package also implements WFI up-the-ramp sampled and averaged images like those that will be downlinked from the telescope, and the official Roman WFI file format (asdf).

Future expected features include:

  • frame zero effects

  • L3 image simulations

  • “image-based” simulation inputs (i.e., provide an input image based on a galaxy hydro sim; romanisim applies the Roman PSF & instrumental effects on top to produce a detailed instrumental simulation)

The best way to interact with romanisim is to make an image. Running

romanisim-make-image out.asdf

will make a test image in the file out.asdf. Naturally, usually one has a particular astronomical scene in mind, and one can’t really simulate a scene without knowing where the telescope is pointing and when the observation is being made. A more complete invocation would be

romanisim-make-image --catalog input.ecsv --radec 270 66 --bandpass F087 --sca 7 --date 2026 1 1 --level 1 out.asdf

where input.ecsv includes a list of sources in the scene, the telescope boresight is pointing to (r, d) = (270, 66), the desired bandpass is F087, the sensor is WFI07, the date is Jan 1, 2026, and a level 1 image (3D cube of samples up the ramp) is requested.

The output of romanisim-make-image is an appropriate asdf file for the requested level image, with the following addition. The script adds an additional top-level branch to the asdf tree with the name romanisim. Here’s an example:

└─romanisim (dict)
  ├─bandpass (str): F087
  ├─catalog (NoneType): None
  ├─date (NoneType): None
  ├─filename (str): out.asdf
  ├─level (int): 1
  ├─ma_table_number (int): 1
  ├─radec (NoneType): None
  ├─sca (int): 7
  ├─rng_seed (NoneType): None
  ├─simcatobj (NDArrayType): shape=(496,), dtype=void96
  ├─usecrds (bool): False
  └─webbpsf (bool): True

These fields are simply the arguments to romanisim-make-image, plus an additional simcatobj field with contains the x, y, and number of photons of each simulated source.

Features not included so far:

  • pedestal/frame 0 features

  • non-linear dark features