World Coordinate Systems & Distortion

The simulator has two options for modeling distortion and world coordinate systems. The first is to use the routines in the galsim.roman package; see GalSim’s documentation for more information. The second is to use distortion reference files from the Calibration References Data System (CRDS).

The latter system works by grabbing reference distortion maps for the appropriate detector and filter combinations from the Roman CRDS server. These distortion maps are then wrapped into a galsim WCS object and fed to galsim’s rendering pipeline.

Velocity Aberration

When using a distortion model, either provided or through CRDS, there is also opportunity to apply velocity aberration: See Velocity Aberration for a general discussion. As discussed, the aberration can introduce an up-to one-fifth of an arcsec change across the FOV for any particular detector.

The scale factor can be specified, or the simulator can calculate one. Though the exact orbit of Roman is unknown, it will be orbiting around the L2 point, as Webb does. The predominant velocity is very similar to that of Earth’s at this point, so Earth is used, using a scale factor increase 1.01 to approximate the L2 orbit.

In the simulator, there is an additional uncertainty introduced by including velocity aberration correction. On-orbit, the scale is calculated from the reference point of each detector. However, the simulator does not calculate a separate WCS for each detector, but computes a single WCS for the FOV of all the detectors, centered either on the boresight or the center of the full WFI, WFI_CEN. As a result, the velocity aberration can introduce ~10^-6 arcsec effect. Below shows a typical error vector across a detector.

../_images/ff_va_WFI02.png

romanisim.wcs Module

Roman WCS interface for galsim.

galsim.roman has an implementation of Roman’s WCS based on some SIP coefficients for each SCA. This could presumably be adequate, but here we take the alternative approach of using the distortion functions provided in CRDS. These naturally are handled by the gWCS library, but galsim only naturally supports astropy WCSes via the ~legacy interface. So this module primarily makes the wrapper that interfaces gWCS and galsim.CelestialWCS together.

This presently gives rather different world coordinates given a specific telescope boresight. Partially this is not doing the same roll_ref determination that galsim.roman does, which could be fixed. But additionally the center of the SCA looks to be in a different place relative to the boresight for galsim.roman than for what I get from CRDS. This bears more investigation.

Functions

convert_wcs_to_gwcs(wcs)

Convert a GalSim WCS object into a GWCS object.

create_s_region(wcs[, shape])

Create s_region string from wcs.

create_tangent_plane_gwcs(center, scale, ...)

Create a tangent plane GWCS object.

dva_corr_model(va_scale, v2_ref, v3_ref)

Create transformation that accounts for differential velocity aberration (scale).

fill_in_parameters(parameters, coord[, ...])

Add WCS info to parameters dictionary.

get_mosaic_wcs(mosaic[, shape, xpos, ypos, ...])

Get a WCS object for a given SCA or set of CRDS parameters.

get_wcs(image[, usecrds, distortion])

Get a WCS object for a given SCA or set of CRDS parameters.

make_wcs(targ_pos, distortion[, roll_ref, ...])

Create a gWCS from a target position, a roll, and a distortion map.

wcs_from_fits_header(header)

Convert a FITS WCS to a GWCS.

Classes

GWCS(gwcs[, origin])

This WCS uses gWCS to implent a galsim CelestialWCS.

Class Inheritance Diagram

Inheritance diagram of romanisim.wcs.GWCS