How to Open Roman Data Files (ASDF)#


Kernel Information and Read-Only Status#

To run this notebook, please select the “Roman Research Nexus” kernel at the top right of your window.

This notebook is read-only. You can run cells and make edits, but you must save changes to a different location. We recommend saving the notebook within your home directory, or to a new folder within your home (e.g. file > save notebook as > my-nbs/nb.ipynb). Note that a directory must exist before you attempt to add a notebook to it.

Imports#

  • numpy for array operations

  • asdf for ASDF input/output

  • roman_datamodels to handle input/output and validation of data models

  • matplotlib.pyplot for plotting data

  • astropy.units to handle units

  • astropy.time to handle time

  • astropy.coordinates to handle celestial coordinates

  • pprint for enhanced printing

%matplotlib inline
import numpy as np
import asdf
import roman_datamodels as rdm
from roman_datamodels.dqflags import pixel as dqflags
import matplotlib.pyplot as plt
import astropy.units as u
import astropy.time
from astropy.coordinates import SkyCoord
from pprint import pprint
import s3fs

Introduction#

The main goal of this notebook is to illustrate how to open and handle Roman Wide Field Instrument (WFI) data. WFI data are stored in Advanced Scientific Data Format (ASDF) files, which combine human-readable hierarchical metadata structure with binary array data. ASDF files are self-validating using pre-defined schema.

There are tools to interact with ASDF files in Python, Julia, C/C++, and IDL. In this example we focus on the Python interface.

Roman ASDF files can be opened and manipulated using two main approaches:

  1. using the roman_datamodels library, and

  2. using the asdf library.

Using roman_datamodels offers the advantage of loading different data blocks as stnode-based objects, providing access to their methods. In contrast, the asdf library loads the data blocks as they were serialized on disk. While this approach loses some of the roman_datamodels capabilities, it also provides more flexibility. In this notebook, we illustrate both approaches, starting with loading data via roman_datamodels.

Additional information about Roman ASDF files can be found in the Introduction to ASDF article on RDox.


Quick start#

All Roman data products conform to one of the datamodels described by the roman_datamodels package. This package wraps the asdf library and provides utilities to read and save data conforming to the official data models. We illustrate how to use roman_datamodels to load data from an ASDF file containing simulated Roman data.

asdf_dir_uri = 's3://stpubdata/roman/nexus/soc_simulations/tutorial_data/'
fs = s3fs.S3FileSystem(anon=True)

asdf_file_uri_l2 = asdf_dir_uri + 'r0003201001001001004_0001_wfi01_f106_cal.asdf'

with fs.open(asdf_file_uri_l2, 'rb') as fb:
    af = asdf.open(fb)
    f = rdm.open(af).copy()

Notice that we used the asdf.open() command to open the byte stream, and then passed that object to roman_datamodels.open(). This is necessary at present as roman_datamodels does not allow for reading of a byte stream in this manner.

A high-level summary of the file can be retrieved by using the info() method. We have limited the number of rows printed to 30, but if you want to see all rows, you can change that number to your liking or to None in order to see all rows. There is a similar option for max_cols if you want to change the horizontal cutoff per line. The default number of rows and columns is 24 and 120, respectively.

f.info(max_rows=30)
root (AsdfObject)
├─asdf_library (Software)
│ ├─author (str): The ASDF Developers
│ ├─homepage (str): http://github.com/asdf-format/asdf
│ ├─name (str): asdf
│ └─version (str): 4.1.0
├─history (dict)
│ └─extensions (list)
│   ├─[0] (ExtensionMetadata) ...
│   ├─[1] (ExtensionMetadata) ...
│   ├─[2] (ExtensionMetadata) ...
│   └─4 not shown
└─roman (WfiImage) # Level 2 (L2) Calibrated Roman Wide Field Instrument (WFI) Rate Image.
  ├─meta (dict) ...
  ├─data (ndarray) # Science Data (DN/s) or (MJy/sr) ...
  ├─dq (ndarray) # Data Quality ...
  ├─err (ndarray) # Error (DN / s) or (MJy / sr) ...
  ├─var_poisson (ndarray) # Poisson Variance (DN^2/s^2) or (MJy^2/sr^2) ...
  ├─var_rnoise (ndarray) # Read Noise Variance (DN^2/s^2) or (MJy^2/sr^2) ...
  ├─var_flat (ndarray) # Flat Field Variance (DN^2/s^2) or (MJy^2/sr^2) ...
  ├─amp33 (ndarray) # Amplifier 33 Reference Pixel Data (DN) ...
  ├─border_ref_pix_left (ndarray) # Left-Edge Border Reference Pixels (DN) ...
  ├─border_ref_pix_right (ndarray) # Right-Edge Border Reference Pixels (DN) ...
  ├─border_ref_pix_top (ndarray) # Border Reference Pixels on the Top of the Detector (DN) ...
  ├─border_ref_pix_bottom (ndarray) # Bottom-Edge Border Reference Pixels (DN) ...
  ├─dq_border_ref_pix_left (ndarray) # Left-Edge Border Reference Pixel Data Quality (DN) ...
  ├─dq_border_ref_pix_right (ndarray) # Right-Edge Border Reference Pixel Data Quality (DN) ...
  ├─dq_border_ref_pix_top (ndarray) # Border Reference Pixel Data Quality on the Top of the Detector (DN) ...
  └─dq_border_ref_pix_bottom (ndarray) # Bottom-Edge Border Reference Pixel Data Quality (DN) ...
Some nodes not shown.

Note that, by default, the open() method does not load the data in memory unless told to do so explicitly, which makes opening ASDF files a quick operation.

At this point, we have information about the names and types of the different data blocks, but we don’t have access to the data until we load them, which we can do by using them. For example:

f.data
array([[0.3828592 , 0.7190066 , 0.57954526, ..., 0.82491654, 0.54798466,
        0.7596621 ],
       [0.48790407, 0.5191181 , 0.68121314, ..., 0.8290943 , 0.7378703 ,
        0.31645823],
       [0.65960026, 0.62473404, 0.7867249 , ..., 0.63130987, 0.67372173,
        0.56940955],
       ...,
       [0.69034207, 1.0855403 , 0.6050965 , ..., 0.75234616, 0.7595161 ,
        0.77993363],
       [0.66153103, 0.7590605 , 0.6202591 , ..., 0.6739805 , 0.33642223,
        0.6299567 ],
       [0.6038647 , 0.9196994 , 0.8665242 , ..., 0.        , 0.        ,
        0.55580723]], shape=(4088, 4088), dtype=float32)

An ASDF object can be used, effectively, like a nested dictionary. Each block can be explored via the .keys() attribute. For example, we can retrieve the list of keys in a Level 2 calibrated rate image file as:

for key in f.keys():
    print(key)
meta
data
dq
err
var_poisson
var_rnoise
var_flat
amp33
border_ref_pix_left
border_ref_pix_right
border_ref_pix_top
border_ref_pix_bottom
dq_border_ref_pix_left
dq_border_ref_pix_right
dq_border_ref_pix_top
dq_border_ref_pix_bottom

We can also find all of the keys within one of these blocks, such as the metadata. Note that here we are using the dot syntax notation (i.e., f.meta) to retrieve the metadata. You can also use brackets to subscript the datamodel (e.g., f['meta']). Dot syntax is allowed by datamodel objects in roman_datamodels, whereas ASDF objects (shown later in the tutorial) can only use the bracket subscript notation.

for key in f.meta.keys():
    print(key)
asn
cal_logs
cal_step
calibration_software_name
calibration_software_version
coordinates
ephemeris
exposure
exptype
file_date
filename
group_id
guide_star
instrument
model_type
observation
origin
photometry
pointing
prd_version
product_type
program
rcs
ref_file
sdf_software_version
source_catalog
telescope
velocity_aberration
visit
wcs
wcs_fit_results
wcsinfo

We focus on the data block, containing the science image of interest. First, how do we know which array in the file is the primary data array? It could have any name, for example “data” or “science.” If we are not sure, we can ask the file itself:

f.get_primary_array_name()
'data'

The creators of the datamodel have told us explicitly that the primary array name in this case is “data.” This may not be true for all Roman WFI ASDF files (e.g., calibration reference files), so it is always worth checking if you are not sure. Next, let’s look at the type of the data block:

type(f.data)
numpy.ndarray

Note that Roman images are expressed as numpy.ndarray objects. The units are available in the schema descriptions for the arrays (see below), but quickly the data arrays are:

  • Level 1 (L1; uncalibrated 3-D ramp cubes) are in units of Data Numbers (DN)

  • Level 2 (L2; calibrated 2-D rate images) are in units of DNs per second (DN/s)

  • Level 3 (L3; 2-D mosaic co-adds) are in units of megaJanskys per steradian (MJy/sr)

Error arrays are in the same units as data, and variance arrays are the same units squared (e.g., DN^2 / s^2).

Let’s take a look at the size of our image and some sample values in a small 3x3 cutout from the bottom-left corner of the array:

print('Size of f.data: ', f.data.shape)
print('\nExploring the values of f.data: \n', f.data[:3, :3])
Size of f.data:  (4088, 4088)

Exploring the values of f.data: 
 [[0.3828592  0.7190066  0.57954526]
 [0.48790407 0.5191181  0.68121314]
 [0.65960026 0.62473404 0.7867249 ]]

Since we have image data, let’s also take a quick look at what the image actually contains. This is quite simple, and a more detailed explanation about visualizing Roman ASDF files can be found in the Data Visualization tutorial. Below is a 1,000 x 1,000 pixel section of the data array:

plt.imshow(f.data[:1000, :1000], vmin=0, vmax=2, origin='lower');
../../_images/39de337161e123b3e22089b2443bd669136e60fd357782cb71fb347bfc457714.png

As with array data stored in other file types, we can perform analyses on the arrays in memory. For example, we can check the image content by building a 1-D histogram of the its values:

fig, ax = plt.subplots(figsize=(12, 6), layout='tight')
ax.hist(f.data.flatten(), histtype='step', range=(-0.2, 1.7), bins=200);
ax.set_xlabel('Pixel Value', fontsize=14)
ax.set_ylabel('N / 1000', fontsize=14)
ax.tick_params(axis='both', labelsize=14);
../../_images/4e79a8ce49fdff389414f6c53dd83ecce88765684e9d5b7319076840ba4f96fe.png

We can explore other data blocks such as the data quality (DQ) array. The values of the DQ array are the bitwise sum of the individual flags representing specific effects. These flags are defined in the RomanCal documentation. These can also be retrieved from roman_datamodels.dqflags.pixel(). As a reminder, we aliased roman_datamodels.dqflags.pixel() in our import statement at the start of the tutorial as dqflags(). Let’s start by making a list of all of the unique values in the DQ array:

unique_dq = np.unique(f.dq)
print(unique_dq)
[       0        1        4     1025     1027     1029     8192     8195
     8196     8197     9217     9219     9221    65536    65537    65539
    65540    66561    66563    66565    73728    73729    73732    74753
    74757  1048576  1048577  1049601  1056768  1056769  1057793  1114112
  1114113  1115137  1122304  1122305  1123329 33554432 33554433 33554436
 33554437 33555457 33555459 33555461 33562624 33562625 33562627 33562628
 33562629 33563649 33563651 33563653 33619968 33619969 33619971 33619972
 33619973 33620993 33620995 33620997 33628160 33628161 33628163 33628164
 33628165 33629185 33629187 33629189 34603008 34603009 34604033 34604035
 34604037 34611200 34611201 34611203 34612225 34612227 34612229 34668544
 34668545 34669569 34669571 34676736 34676737 34676739 34677761 34677763]

Now that we have the list of unique DQ values, we can decompose the values into individual flags and print the number of pixels with each unique DQ value:

size = np.size(f.dq)

# Number of good pixels
npix = np.shape(f.dq[f.dq==0])[0]
print("------------")
print(f'Flag 0 (affected pixels = {npix}; {npix / size:.2%}))')
print(f'0: {str(dqflags(0)).split('.')[1]}')

# Pixels with non-zero DQ flags
for uu in unique_dq[1:]:
    br = np.binary_repr(uu)
    npix = np.shape(f.dq[f.dq==uu])[0]
    print("------------")
    print(f'Flag {uu} (affected pixels = {npix}; {npix / size:.2%})')
    for ii, cc in enumerate(br[::-1]):
        if int(cc)==1:
            print(f'{2**ii}: {str(dqflags(2**ii)).split('.')[1]}')
------------
Flag 0 (affected pixels = 16045479; 96.01%))
0: GOOD
------------
Flag 1 (affected pixels = 4; 0.00%)
1: DO_NOT_USE
------------
Flag 4 (affected pixels = 4446; 0.03%)
4: JUMP_DET
------------
Flag 1025 (affected pixels = 1439; 0.01%)
1: DO_NOT_USE
1024: DEAD
------------
Flag 1027 (affected pixels = 33; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
------------
Flag 1029 (affected pixels = 92; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
------------
Flag 8192 (affected pixels = 642834; 3.85%)
8192: LOW_QE
------------
Flag 8195 (affected pixels = 1; 0.00%)
1: DO_NOT_USE
2: SATURATED
8192: LOW_QE
------------
Flag 8196 (affected pixels = 188; 0.00%)
4: JUMP_DET
8192: LOW_QE
------------
Flag 8197 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
8192: LOW_QE
------------
Flag 9217 (affected pixels = 182; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
------------
Flag 9219 (affected pixels = 4; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
8192: LOW_QE
------------
Flag 9221 (affected pixels = 14; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
8192: LOW_QE
------------
Flag 65536 (affected pixels = 183; 0.00%)
65536: NONLINEAR
------------
Flag 65537 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
65536: NONLINEAR
------------
Flag 65539 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
2: SATURATED
65536: NONLINEAR
------------
Flag 65540 (affected pixels = 4; 0.00%)
4: JUMP_DET
65536: NONLINEAR
------------
Flag 66561 (affected pixels = 121; 0.00%)
1: DO_NOT_USE
1024: DEAD
65536: NONLINEAR
------------
Flag 66563 (affected pixels = 5; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
65536: NONLINEAR
------------
Flag 66565 (affected pixels = 21; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
65536: NONLINEAR
------------
Flag 73728 (affected pixels = 96; 0.00%)
8192: LOW_QE
65536: NONLINEAR
------------
Flag 73729 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
65536: NONLINEAR
------------
Flag 73732 (affected pixels = 2; 0.00%)
4: JUMP_DET
8192: LOW_QE
65536: NONLINEAR
------------
Flag 74753 (affected pixels = 88; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
------------
Flag 74757 (affected pixels = 3; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
------------
Flag 1048576 (affected pixels = 213; 0.00%)
1048576: NO_LIN_CORR
------------
Flag 1048577 (affected pixels = 161; 0.00%)
1: DO_NOT_USE
1048576: NO_LIN_CORR
------------
Flag 1049601 (affected pixels = 80; 0.00%)
1: DO_NOT_USE
1024: DEAD
1048576: NO_LIN_CORR
------------
Flag 1056768 (affected pixels = 38; 0.00%)
8192: LOW_QE
1048576: NO_LIN_CORR
------------
Flag 1056769 (affected pixels = 33; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
1048576: NO_LIN_CORR
------------
Flag 1057793 (affected pixels = 8; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
1048576: NO_LIN_CORR
------------
Flag 1114112 (affected pixels = 37; 0.00%)
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 1114113 (affected pixels = 28; 0.00%)
1: DO_NOT_USE
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 1115137 (affected pixels = 15; 0.00%)
1: DO_NOT_USE
1024: DEAD
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 1122304 (affected pixels = 20; 0.00%)
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 1122305 (affected pixels = 8; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 1123329 (affected pixels = 9; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
------------
Flag 33554432 (affected pixels = 1217; 0.01%)
33554432: UNRELIABLE_FLAT
------------
Flag 33554433 (affected pixels = 16; 0.00%)
1: DO_NOT_USE
33554432: UNRELIABLE_FLAT
------------
Flag 33554436 (affected pixels = 135; 0.00%)
4: JUMP_DET
33554432: UNRELIABLE_FLAT
------------
Flag 33554437 (affected pixels = 33; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
33554432: UNRELIABLE_FLAT
------------
Flag 33555457 (affected pixels = 1067; 0.01%)
1: DO_NOT_USE
1024: DEAD
33554432: UNRELIABLE_FLAT
------------
Flag 33555459 (affected pixels = 51; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
33554432: UNRELIABLE_FLAT
------------
Flag 33555461 (affected pixels = 126; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
33554432: UNRELIABLE_FLAT
------------
Flag 33562624 (affected pixels = 254; 0.00%)
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33562625 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33562627 (affected pixels = 10; 0.00%)
1: DO_NOT_USE
2: SATURATED
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33562628 (affected pixels = 108; 0.00%)
4: JUMP_DET
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33562629 (affected pixels = 46; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33563649 (affected pixels = 24; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33563651 (affected pixels = 208; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33563653 (affected pixels = 13; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
8192: LOW_QE
33554432: UNRELIABLE_FLAT
------------
Flag 33619968 (affected pixels = 274; 0.00%)
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33619969 (affected pixels = 9; 0.00%)
1: DO_NOT_USE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33619971 (affected pixels = 9; 0.00%)
1: DO_NOT_USE
2: SATURATED
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33619972 (affected pixels = 20; 0.00%)
4: JUMP_DET
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33619973 (affected pixels = 7; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33620993 (affected pixels = 47; 0.00%)
1: DO_NOT_USE
1024: DEAD
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33620995 (affected pixels = 6; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33620997 (affected pixels = 8; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33628160 (affected pixels = 20; 0.00%)
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33628161 (affected pixels = 3; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33628163 (affected pixels = 4; 0.00%)
1: DO_NOT_USE
2: SATURATED
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33628164 (affected pixels = 6; 0.00%)
4: JUMP_DET
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33628165 (affected pixels = 7; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33629185 (affected pixels = 14; 0.00%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33629187 (affected pixels = 4; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 33629189 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
33554432: UNRELIABLE_FLAT
------------
Flag 34603008 (affected pixels = 127; 0.00%)
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34603009 (affected pixels = 5; 0.00%)
1: DO_NOT_USE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34604033 (affected pixels = 1248; 0.01%)
1: DO_NOT_USE
1024: DEAD
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34604035 (affected pixels = 1665; 0.01%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34604037 (affected pixels = 1; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34611200 (affected pixels = 33; 0.00%)
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34611201 (affected pixels = 3; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34611203 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
2: SATURATED
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34612225 (affected pixels = 1519; 0.01%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34612227 (affected pixels = 668; 0.00%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34612229 (affected pixels = 1; 0.00%)
1: DO_NOT_USE
4: JUMP_DET
1024: DEAD
8192: LOW_QE
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34668544 (affected pixels = 34; 0.00%)
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34668545 (affected pixels = 21; 0.00%)
1: DO_NOT_USE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34669569 (affected pixels = 447; 0.00%)
1: DO_NOT_USE
1024: DEAD
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34669571 (affected pixels = 2298; 0.01%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34676736 (affected pixels = 153; 0.00%)
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34676737 (affected pixels = 35; 0.00%)
1: DO_NOT_USE
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34676739 (affected pixels = 2; 0.00%)
1: DO_NOT_USE
2: SATURATED
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34677761 (affected pixels = 943; 0.01%)
1: DO_NOT_USE
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT
------------
Flag 34677763 (affected pixels = 2892; 0.02%)
1: DO_NOT_USE
2: SATURATED
1024: DEAD
8192: LOW_QE
65536: NONLINEAR
1048576: NO_LIN_CORR
33554432: UNRELIABLE_FLAT

If we want to get a report of how many pixels are impacted by specific DQ flags (e.g., all saturated pixels) regardless of other flags set, we can do that, too using the Python & operator (bitwise AND) and the bitwise left shift << operator:

bit = 2
definition = str(dqflags(bit)).split('.')[1]
n_pix = np.sum(np.bool(f.dq.flatten() & (1 << bit)))
print(f'Bit value {bit} corresponds to {definition}')
print(f'Number of {definition} pixels: {n_pix:,} ({n_pix / f.dq.size:.2%})')
Bit value 2 corresponds to SATURATED
Number of SATURATED pixels: 5,285 (0.03%)

Exploring metadata#

One of the advantages of ASDF is its extensibility, and the ability to store human-readable hierarchical metadata. Let’s further explore the metadata.

meta = f['meta']
type(meta)
dict

As we can see, meta is a dictionary type object. What if instead of using the bracket notation we use the dot notation discussed previously?

meta = f.meta
type(meta)
roman_datamodels.stnode._node.DNode

Suddenly it’s a roman_datamodels.stnode._node.DNode object! Despite this difference in object type, we can treat both this and a dictionary the same in most ways. However, an advantage of the dot syntax and the roman_datamodels.stnode._node.DNode object is that we retain information about the schema, which we lose if we convert the metadata to a dictionary object. We previously showed how to get the list of keys in the metadata, but as a reminder let’s do it again here for easy reference:

for key in meta.keys():
    print(key)
asn
cal_logs
cal_step
calibration_software_name
calibration_software_version
coordinates
ephemeris
exposure
exptype
file_date
filename
group_id
guide_star
instrument
model_type
observation
origin
photometry
pointing
prd_version
product_type
program
rcs
ref_file
sdf_software_version
source_catalog
telescope
velocity_aberration
visit
wcs
wcs_fit_results
wcsinfo

Printing the whole of the metadata is quite long, so we will instead print a small subsection:

print(meta.instrument)
{'detector': 'WFI01', 'optical_element': 'F106', 'name': 'WFI'}

As shown above, the meta data block contains a lot of useful metadata information. Two of the most typical keys, for example, are the wcs key, containing information about the World Coordinate System (WCS; see below), and also the photometry key, containing information about how to transform units from instrumental (DN/s) to physical (MJy/sr).

Let’s take a look at the schema information for meta.instrument. Note that this can be quite difficult to read, but is very rich in information about the contents, data types, allowed values, and mapping to other information (e.g., the storage location of a metadata field in the MAST Archive Catalog database) for every component of Roman WFI ASDF files. Also notice that we use the pprint() function (instead of print()) to better display the text.

pprint(meta.instrument.get_schema())
{'$schema': 'asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0',
 'flowStyle': 'block',
 'id': 'asdf://stsci.edu/datamodels/roman/schemas/wfi_mode-1.0.0',
 'properties': {'detector': {'allOf': [{'$schema': 'asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0',
                                        'enum': ['WFI01',
                                                 'WFI02',
                                                 'WFI03',
                                                 'WFI04',
                                                 'WFI05',
                                                 'WFI06',
                                                 'WFI07',
                                                 'WFI08',
                                                 'WFI09',
                                                 'WFI10',
                                                 'WFI11',
                                                 'WFI12',
                                                 'WFI13',
                                                 'WFI14',
                                                 'WFI15',
                                                 'WFI16',
                                                 'WFI17',
                                                 'WFI18'],
                                        'id': 'asdf://stsci.edu/datamodels/roman/schemas/wfi_detector-1.0.0',
                                        'title': 'WFI Detector Name',
                                        'type': 'string'}],
                             'archive_catalog': {'datatype': 'nvarchar(10)',
                                                 'destination': ['WFIExposure.detector',
                                                                 'GuideWindow.detector',
                                                                 'WFICommon.detector']},
                             'description': 'Name of the Wide Field Instrument '
                                            '(WFI) detector used\n'
                                            'to take the science data in this '
                                            'file.\n',
                             'maxLength': 10,
                             'sdf': {'source': {'origin': 'TBD'},
                                     'special_processing': 'VALUE_REQUIRED'},
                             'title': 'Wide Field Instrument (WFI) Detector '
                                      'Identifier'},
                'name': {'archive_catalog': {'datatype': 'nvarchar(5)',
                                             'destination': ['WFIExposure.instrument_name',
                                                             'GuideWindow.instrument_name',
                                                             'WFICommon.instrument_name']},
                         'description': 'Name of the instrument used to '
                                        'acquire the science\n'
                                        'data.\n',
                         'enum': ['WFI'],
                         'maxLength': 5,
                         'sdf': {'source': {'origin': 'TBD'},
                                 'special_processing': 'VALUE_REQUIRED'},
                         'title': 'Instrument Name',
                         'type': 'string'},
                'optical_element': {'allOf': [{'$schema': 'asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0',
                                               'description': 'Name of the '
                                                              'filter element '
                                                              'used. See the '
                                                              'RDox Optical '
                                                              'Element page '
                                                              'for more\n'
                                                              'details on '
                                                              'available '
                                                              'optical '
                                                              'elements and '
                                                              'their '
                                                              'properties.\n',
                                               'enum': ['F062',
                                                        'F087',
                                                        'F106',
                                                        'F129',
                                                        'F146',
                                                        'F158',
                                                        'F184',
                                                        'F213',
                                                        'GRISM',
                                                        'PRISM',
                                                        'DARK'],
                                               'id': 'asdf://stsci.edu/datamodels/roman/schemas/wfi_optical_element-1.0.0',
                                               'title': 'Optical Element',
                                               'type': 'string'}],
                                    'archive_catalog': {'datatype': 'nvarchar(20)',
                                                        'destination': ['WFIExposure.optical_element',
                                                                        'GuideWindow.optical_element',
                                                                        'WFICommon.optical_element']},
                                    'description': 'Name of the optical '
                                                   'element used to take the '
                                                   'science\n'
                                                   'data.\n',
                                    'maxLength': 20,
                                    'sdf': {'source': {'origin': 'TBD'},
                                            'special_processing': 'VALUE_REQUIRED'},
                                    'title': 'Wide Field Instrument (WFI) '
                                             'Optical Element'}},
 'propertyOrder': ['detector', 'optical_element', 'name'],
 'required': ['detector', 'optical_element', 'name'],
 'title': 'Wide Field Instrument (WFI) Configuration Information',
 'type': 'object'}

We can also use this to get the description of a specific metadata field:

print(meta.instrument.get_schema()['properties']['detector']['description'])
Name of the Wide Field Instrument (WFI) detector used
to take the science data in this file.

This can be alternatively written as:

print(f.schema_info(path='roman.meta.instrument.detector'))
{'description': Name of the Wide Field Instrument (WFI) detector used
to take the science data in this file.
}

Taking advantage of astropy.time.Time objects in the metadata#

Another feature in WFI ASDF metadata is the storage of times as astropy.time.Time objects, which provide numerous convenient methods for converting to different reference systems and formats. Here we illustrate a few examples. For a more comprehensive view of astropy.time please check the astropy.time documentation. Note that, unless otherwise noted, WFI times are stored in Coordinated Universal Time (UTC), which is indicated in the schema descriptions for any time-related fields. However, be sure to check the field descriptions if you are unsure.

start_time = meta.exposure.start_time
print('Start time of the exposure:', start_time, '; datatype:', type(start_time))
Start time of the exposure: 2026-10-31T00:00:00.000 ; datatype: <class 'astropy.time.core.Time'>

We can convert the format of this start time to a modified Julian date (MJD) very easily:

start_time.mjd
np.float64(61344.0)

If instead we want to convert the scale of the time (i.e., from UTC to International Atomic Time (TAI)), we can do that, too:

start_time.tai
<Time object: scale='tai' format='isot' value=2026-10-31T00:00:37.000>

Notice that the time changed by 37 seconds when we converted from UTC to TAI. This offset is expected and is part of the TAI definition. We can combine the scale change with the format change as well:

start_time.tai.mjd
np.float64(61344.00042824074)

We can use Time objects and operate with them. For example, if we want to know the difference in time between the start and end times of the exposure (this creates a astropy.time.TimeDelta object):

end_time = meta.exposure.end_time
exp_delta = end_time - start_time

And then express the exposure length in different units:

print('Exposure length in seconds:', exp_delta.to(u.s))
print('Exposure length in days:', exp_delta.to(u.day))
print('Exposure length in years:', exp_delta.to(u.year))
Exposure length in seconds: 51.67999999999324 s
Exposure length in days: 0.0005981481481480699 d
Exposure length in years: 1.637640378228802e-06 yr

Accessing WCS Information#

Roman uses Generalized World Coordinate System standard (GWCS). The WCS can be found in the wcs key within the meta block.

gwcs = f.meta.wcs
print(type(gwcs))
<class 'gwcs.wcs._wcs.WCS'>

If we use the pretty-print (pprint()) function, we can see the full contents of the WCS object.

pprint(gwcs)
<WCS(output_frame=world, input_frame=detector, forward_transform=Model: CompoundModel
Inputs: ('x0', 'x1')
Outputs: ('lon', 'lat')
Model set size: 1
Expression: [0] & [1] | [2] & [3] | [4] | [5] & [6] | [7] | [8] & [9] | [10] & [11] | [12] | [13] & [14] | [15] | [16] | [17] / [18] | [19] | [20] | [21] | [22] & [23] | [24] | [25] | [26] & [27] | [28] & [29] | [30] | [31] | [32]
Components: 
    [0]: <Shift(offset=1.)>

    [1]: <Shift(offset=1.)>

    [2]: <Shift(offset=-2044.5)>

    [3]: <Shift(offset=-2044.5)>

    [4]: <Mapping((0, 1, 0, 1))>

    [5]: <Polynomial2D(5, c0_0=0., c1_0=0.11034133, c2_0=-0.00000003, c3_0=-0., c4_0=0., c5_0=-0., c0_1=0.00034168, c0_2=-0.00000001, c0_3=-0., c0_4=-0., c0_5=0., c1_1=0.00000014, c1_2=-0., c1_3=0., c1_4=0., c2_1=0., c2_2=-0., c2_3=-0., c3_1=0., c3_2=-0., c4_1=-0.)>

    [6]: <Polynomial2D(5, c0_0=0., c1_0=0.00031436, c2_0=0.00000007, c3_0=0., c4_0=0., c5_0=-0., c0_1=0.10828278, c0_2=0.00000021, c0_3=-0., c0_4=0., c0_5=0., c1_1=-0.00000002, c1_2=-0., c1_3=-0., c1_4=0., c2_1=-0., c2_2=-0., c2_3=0., c3_1=-0., c3_2=-0., c4_1=-0.)>

    [7]: <Mapping((0, 1, 0, 1))>

    [8]: <Polynomial2D(1, c0_0=0., c1_0=-0.5, c0_1=-0.8660254)>

    [9]: <Polynomial2D(1, c0_0=0., c1_0=-0.8660254, c0_1=0.5)>

    [10]: <Shift(offset=1312.94914525)>

    [11]: <Shift(offset=-1040.78537268)>

    [12]: <Identity(2)>

    [13]: <Scale(factor=0.00027778, name='arcsec_to_deg_1D')>

    [14]: <Scale(factor=0.00027778, name='arcsec_to_deg_1D')>

    [15]: <SphericalToCartesian(name='s2c')>

    [16]: <RotationSequence3D(angles=[ 0.3647081 ,  0.28910705, 59.99991239], name='det_to_optic_axis')>

    [17]: <Mapping((0, 1, 2), name='xyz')>

    [18]: <Mapping((0, 0, 0), name='xxx')>

    [19]: <Mapping((1, 2), name='xtyt')>

    [20]: <AffineTransformation2D(matrix=[[ 1.        , -0.00000007], [ 0.00000007,  1.        ]], translation=[-0., -0.], name='tp_affine')>

    [21]: <Mapping((0, 0, 1), name='xtyt2xyz')>

    [22]: <Const1D(amplitude=1., name='one')>

    [23]: <Identity(2, name='I(2D)')>

    [24]: <RotationSequence3D(angles=[-59.99991239,  -0.28910705,  -0.3647081 ], name='optic_axis_to_det')>

    [25]: <CartesianToSpherical(name='c2s')>

    [26]: <Scale(factor=3600., name='deg_to_arcsec_1D')>

    [27]: <Scale(factor=3600., name='deg_to_arcsec_1D')>

    [28]: <Scale(factor=0.00027778)>

    [29]: <Scale(factor=0.00027778)>

    [30]: <SphericalToCartesian()>

    [31]: <RotationSequence3D(angles=[   0.3647081 ,    0.28910705,   59.99991239,   -0.1643995 , -270.87197664])>

    [32]: <CartesianToSpherical()>
Parameters:
    offset_0 offset_1 ...                angles_31                
    -------- -------- ... ----------------------------------------
         1.0      1.0 ... 0.3647080959023555 .. -270.8719766359773)>

If instead we use the print() function, we get a summary of the transforms available:

print(gwcs)
   From                   Transform                
---------- ----------------------------------------
  detector                            CompoundModel
      v2v3                                 Identity
v2v3vacorr JWST tangent-plane linear correction. v1
  v2v3corr                                 v23tosky
     world                                     None

The gwcs object can be used to convert between image pixel and sky coordinates.

Important note: the gwcs object uses Python 0-indexing, therefore the center of the first pixel in Python is (0, 0), while the formal definition of the WFI science coordinate system uses FITS-style 1-indexing (i.e., the center of the bottom-left pixel is (1, 1)). More information about the Roman coordinate systems can be found in the PySIAF for Roman article on RDox. All archived L1-4 data products (e.g., WCS transforms, catalogs, etc.) will use the Python 0-indexed system.

In this example, let’s convert the central pixel position of the detector to the corresponding right ascension and declination on the sky. The center of the L2 image array in the zero-indexed science coordinate frame is (x, y) = (2043.5, 2043.5) pixels. Note that the 4-pixel reference border was removed during processing, and thus the total L2 image size is 4088 rows x 4088 columns. Since the center of the first pixel in Python is (0, 0) and the array size is even, the center of the detector is (x, y) = (2043.5, 2043.5). Also note that GWCS assumes inputs in the order (x, y) and not the Pythonic form (y, x).

print(gwcs(2043.5, 2043.5))
(270.8719765816213, -0.16439951042879608)

Likewise, we can convert from celestial coordinates to pixel coordinates using the inverse transform via the .invert() method. For example, using a slightly different position still within this detector:

print(gwcs.invert(270.8719, -0.164399))
[2045.998524527189, 2043.5097306351731]

Notice that gwcs assumed our inputs were the right ascension and declination, respectively, in degrees. If we want to be more specific, then the gwcs object can also take as input an astropy.coordinates.SkyCoord object:

cdt = SkyCoord(270.8719, -0.164399, unit='deg')
print(gwcs.invert(cdt))
[2045.998524527189, 2043.5097306351731]

Reading Roman data using the ASDF library#

We now illustrate how to read Roman WFI data using the basic asdf library.

The main avenue to read a generic ASDF file is via the open method in the asdf package. This returns an AsdfObject object.

asdf_dir_uri = 's3://stpubdata/roman/nexus/soc_simulations/tutorial_data/'
fs = s3fs.S3FileSystem(anon=True)

asdf_file_uri_l2 = asdf_dir_uri + 'r0003201001001001004_0001_wfi01_f106_cal.asdf'

with fs.open(asdf_file_uri_l2, 'rb') as fb:
    f = asdf.open(fb).copy()

Another useful method to explore the contents of an ASDF file is the .tree attribute:

pprint(f.tree) # This cell will print a lot of information, please feel free to skim or skip
{'asdf_library': {'author': 'The ASDF Developers',
                  'homepage': 'http://github.com/asdf-format/asdf',
                  'name': 'asdf',
                  'version': '4.1.0'},
 'history': {'extensions': [{'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://asdf-format.org/core/extensions/core-1.6.0',
                             'manifest_software': {'name': 'asdf_standard',
                                                   'version': '1.1.1'},
                             'software': {'name': 'asdf', 'version': '4.1.0'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://stsci.edu/datamodels/roman/extensions/datamodels-1.0',
                             'manifest_software': {'name': 'rad',
                                                   'version': '0.23.1'},
                             'software': {'name': 'roman_datamodels',
                                          'version': '0.23.1'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.3.0',
                             'manifest_software': {'name': 'asdf_wcs_schemas',
                                                   'version': '0.4.0'},
                             'software': {'name': 'gwcs', 'version': '0.22.1'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://astropy.org/astropy/extensions/units-1.0.0',
                             'software': {'name': 'asdf-astropy',
                                          'version': '0.7.1'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://asdf-format.org/transform/extensions/transform-1.6.0',
                             'manifest_software': {'name': 'asdf_transform_schemas',
                                                   'version': '0.5.0'},
                             'software': {'name': 'asdf-astropy',
                                          'version': '0.7.1'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://asdf-format.org/astronomy/coordinates/extensions/coordinates-1.0.0',
                             'manifest_software': {'name': 'asdf_coordinates_schemas',
                                                   'version': '0.3.0'},
                             'software': {'name': 'asdf-astropy',
                                          'version': '0.7.1'}},
                            {'extension_class': 'asdf.extension._manifest.ManifestExtension',
                             'extension_uri': 'asdf://asdf-format.org/astronomy/extensions/astronomy-1.0.0',
                             'manifest_software': {'name': 'asdf_standard',
                                                   'version': '1.1.1'},
                             'software': {'name': 'asdf-astropy',
                                          'version': '0.7.1'}}]},
 'roman': {'meta': {'asn': {}, 'cal_logs': ["2025-05-28T19:55:41.095Z :: stpipe.ExposurePipeline :: INFO :: Step ExposurePipeline running with args ('r0003201001001001004_0001_wfi01_f106_uncal.asdf',).", "2025-05-28T19:55:41.106Z :: stpipe.ExposurePipeline :: INFO :: Step ExposurePipeline parameters are:\n  pre_hooks: []\n  post_hooks: []\n  output_file: None\n  output_dir: None\n  output_ext: .asdf\n  output_use_model: False\n  output_use_index: True\n  save_results: True\n  skip: False\n  suffix: cal\n  search_output_file: True\n  input_dir: ''\n  steps:\n    dq_init:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    saturation:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    refpix:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n      remove_offset: True\n      remove_trends: True\n      cosine_interpolate: True\n      fft_interpolate: True\n    linearity:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    dark_current:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n      dark_output: None\n    rampfit:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: rampfit\n      search_output_file: True\n      input_dir: ''\n      algorithm: ols_cas22\n      save_opt: False\n      use_ramp_jump_detection: True\n      threshold_intercept: None\n      threshold_constant: None\n    assign_wcs:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    flatfield:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    photom:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n    source_catalog:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: False\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: cat\n      search_output_file: True\n      input_dir: ''\n      bkg_boxsize: 1000\n      kernel_fwhm: 2.0\n      snr_threshold: 3.0\n      npixels: 25\n      deblend: False\n      aperture_ee1: 30\n      aperture_ee2: 50\n      aperture_ee3: 70\n      ci1_star_threshold: 2.0\n      ci2_star_threshold: 1.8\n      fit_psf: True\n      forced_segmentation: ''\n    tweakreg:\n      pre_hooks: []\n      post_hooks: []\n      output_file: None\n      output_dir: None\n      output_ext: .asdf\n      output_use_model: True\n      output_use_index: True\n      save_results: False\n      skip: False\n      suffix: None\n      search_output_file: True\n      input_dir: ''\n      use_custom_catalogs: False\n      catalog_format: ascii.ecsv\n      catfile: ''\n      catalog_path: ''\n      enforce_user_order: False\n      expand_refcat: False\n      minobj: 15\n      searchrad: 2.0\n      use2dhist: True\n      separation: 1.0\n      tolerance: 0.7\n      fitgeometry: rshift\n      nclip: 3\n      sigma: 3.0\n      abs_refcat: GAIADR3\n      save_abs_catalog: False\n      abs_minobj: 15\n      abs_searchrad: 6.0\n      abs_use2dhist: True\n      abs_separation: 1.0\n      abs_tolerance: 0.7\n      abs_fitgeometry: rshift\n      abs_nclip: 3\n      abs_sigma: 3.0\n      update_source_catalog_coordinates: False", '2025-05-28T19:55:41.107Z :: stpipe.ExposurePipeline :: INFO :: First argument r0003201001001001004_0001_wfi01_f106_uncal.asdf does not appear to be a model', '2025-05-28T19:55:41.107Z :: stpipe.ExposurePipeline :: INFO :: Starting Roman exposure calibration pipeline ...', '2025-05-28T19:55:41.270Z :: stpipe.ExposurePipeline.dq_init :: INFO :: Step dq_init running with args (<roman_datamodels.datamodels._datamodels.ScienceRawModel object at 0x1201db6b0>,).', '2025-05-28T19:55:44.054Z :: stpipe.ExposurePipeline.dq_init :: INFO :: Flagging rows from: -999999 to -999983 as affected by guide window read', '2025-05-28T19:55:44.076Z :: stpipe.ExposurePipeline.dq_init :: DEBUG :: Using MASK ref file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_mask_0030.asdf', '2025-05-28T19:55:44.104Z :: stpipe.ExposurePipeline.dq_init :: INFO :: Step dq_init done', '2025-05-28T19:55:44.189Z :: stpipe.ExposurePipeline.saturation :: INFO :: Step saturation running with args (<roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>,).', '2025-05-28T19:55:44.192Z :: stpipe.ExposurePipeline.saturation :: INFO :: Using SATURATION reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_saturation_0031.asdf', '2025-05-28T19:55:45.327Z :: stpipe.ExposurePipeline.saturation :: INFO :: Detected 73498 saturated pixels', '2025-05-28T19:55:45.353Z :: stpipe.ExposurePipeline.saturation :: INFO :: Detected 66525 A/D floor pixels', '2025-05-28T19:55:45.362Z :: stpipe.ExposurePipeline.saturation :: INFO :: Step saturation done', '2025-05-28T19:55:45.509Z :: stpipe.ExposurePipeline.refpix :: INFO :: Step refpix running with args (<roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>,).', '2025-05-28T19:55:45.510Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Opening the science data: <roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>', '2025-05-28T19:55:45.513Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Opening the reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_refpix_0013.asdf', '2025-05-28T19:55:45.537Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Running the reference pixel correction', '2025-05-28T19:55:45.537Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Reading data from datamodel into single array', '2025-05-28T19:55:45.619Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Removed the general offset from data, to be re-applied later.', '2025-05-28T19:55:45.941Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Removed boundary trends (in time) from data.', '2025-05-28T19:55:46.049Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Cosine interpolated the reference pixels.', '2025-05-28T19:55:46.240Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: FFT interpolated the reference pixel pads.', '2025-05-28T19:55:47.932Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Applied reference pixel correction', '2025-05-28T19:55:47.958Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Re-applied the general offset (if removed) to the data.', '2025-05-28T19:55:47.964Z :: stpipe.ExposurePipeline.refpix :: DEBUG :: Updated the datamodel with the corrected data.', '2025-05-28T19:55:47.969Z :: stpipe.ExposurePipeline.refpix :: INFO :: Step refpix done', '2025-05-28T19:55:48.053Z :: stpipe.ExposurePipeline.linearity :: INFO :: Step linearity running with args (<roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>,).', '2025-05-28T19:55:48.057Z :: stpipe.ExposurePipeline.linearity :: INFO :: Using LINEARITY reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_linearity_0003.asdf', '2025-05-28T19:55:49.554Z :: stpipe.ExposurePipeline.linearity :: INFO :: Step linearity done', '2025-05-28T19:55:49.633Z :: stpipe.ExposurePipeline.dark_current :: INFO :: Step dark_current running with args (<roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>,).', '2025-05-28T19:55:49.636Z :: stpipe.ExposurePipeline.dark_current :: INFO :: Using DARK reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_dark_0444.asdf', '2025-05-28T19:55:51.070Z :: stpipe.ExposurePipeline.dark_current :: INFO :: Step dark_current done', '2025-05-28T19:55:51.149Z :: stpipe.ExposurePipeline.rampfit :: INFO :: Step rampfit running with args (<roman_datamodels.datamodels._datamodels.RampModel object at 0x12000a450>,).', '2025-05-28T19:55:51.171Z :: stpipe.ExposurePipeline.rampfit :: INFO :: Using READNOISE reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_readnoise_0024.asdf', '2025-05-28T19:55:51.188Z :: stpipe.ExposurePipeline.rampfit :: INFO :: Using GAIN reference file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_gain_0022.asdf', '2025-05-28T19:55:51.216Z :: stpipe.ExposurePipeline.rampfit :: INFO :: Jump detection as part of ramp fitting is enabled.', '2025-05-28T19:56:03.915Z :: stpipe.ExposurePipeline.rampfit :: INFO :: Step rampfit done', '2025-05-28T19:56:04.001Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: Step assign_wcs running with args (<roman_datamodels.datamodels._datamodels.ImageModel object at 0x1203ac560>,).', '2025-05-28T19:56:04.002Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: reftype, distortion', "2025-05-28T19:56:04.004Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: Using reference files: {'distortion': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_distortion_0014.asdf'} for assign_wcs", '2025-05-28T19:56:04.061Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: Update S_REGION to POLYGON ICRS  270.934669729 -0.225719494 270.934611880 -0.102755788 270.809021784 -0.102451264 270.809744137 -0.225310330', '2025-05-28T19:56:04.062Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: S_REGION VALUES: POLYGON ICRS  270.934669729 -0.225719494 270.934611880 -0.102755788 270.809021784 -0.102451264 270.809744137 -0.225310330', '2025-05-28T19:56:04.062Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: Update S_REGION to POLYGON ICRS  270.934669729 -0.225719494 270.934611880 -0.102755788 270.809021784 -0.102451264 270.809744137 -0.225310330', '2025-05-28T19:56:04.065Z :: stpipe.ExposurePipeline.assign_wcs :: INFO :: Step assign_wcs done', '2025-05-28T19:56:04.158Z :: stpipe.ExposurePipeline.flatfield :: INFO :: Step flatfield running with args (<roman_datamodels.datamodels._datamodels.ImageModel object at 0x1203ac560>,).', '2025-05-28T19:56:04.180Z :: stpipe.ExposurePipeline.flatfield :: DEBUG :: Using FLAT ref file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_flat_0175.asdf', '2025-05-28T19:56:04.464Z :: stpipe.ExposurePipeline.flatfield :: INFO :: Step flatfield done', '2025-05-28T19:56:04.546Z :: stpipe.ExposurePipeline.photom :: INFO :: Step photom running with args (<roman_datamodels.datamodels._datamodels.ImageModel object at 0x1203ac560>,).', '2025-05-28T19:56:04.591Z :: stpipe.ExposurePipeline.photom :: DEBUG :: Using PHOTOM ref file: /Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_photom_0040.asdf', '2025-05-28T19:56:04.591Z :: stpipe.ExposurePipeline.photom :: DEBUG :: pixel_area = 2.8083389953727505e-13', '2025-05-28T19:56:04.591Z :: stpipe.ExposurePipeline.photom :: INFO :: photmjsr value: 0.741749', '2025-05-28T19:56:04.591Z :: stpipe.ExposurePipeline.photom :: INFO :: uncertainty value: 0.0288573', '2025-05-28T19:56:04.594Z :: stpipe.ExposurePipeline.photom :: INFO :: Step photom done', '2025-05-28T19:56:04.680Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Step source_catalog running with args (<roman_datamodels.datamodels._datamodels.ImageModel object at 0x1203ac560>,).', '2025-05-28T19:56:04.774Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Instrument: WFI', '2025-05-28T19:56:04.774Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Detector: WFI01', '2025-05-28T19:56:04.775Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Optical Element: F106', '2025-05-28T19:56:04.775Z :: stpipe.ExposurePipeline.source_catalog :: WARNING :: Reference file data mapping aperture encircled energies to radii (in pixels), background annuli sizes, and aperture corrections are not yet available. Using placeholder values.', '2025-05-28T19:56:12.264Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Detected 1461 sources', '2025-05-28T19:56:13.432Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Constructing a gridded PSF model.', "2025-05-28T19:56:13.574Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", "2025-05-28T19:56:13.575Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", "2025-05-28T19:56:13.576Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", "2025-05-28T19:56:13.576Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", '2025-05-28T19:56:13.577Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Calculating spectral weights using synphot, nlambda=10, source=None', '2025-05-28T19:56:13.591Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: No source spectrum supplied, therefore defaulting to 5700 K blackbody', "2025-05-28T19:56:13.592Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Computing spectral weights for source = SourceSpectrum at z=0.0\nModel: BlackBodyNorm1D\nInputs: ('x',)\nOutputs: ('y',)\nModel set size: 1\nParameters:\n    temperature\n    -----------\n         5700.0", '2025-05-28T19:56:13.592Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Computing wavelength weights using synthetic photometry for F106...', '2025-05-28T19:56:13.602Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Min, max wavelengths = 0.915000, 1.205000', '2025-05-28T19:56:13.602Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 0.93 micron with width 0.03 micron', '2025-05-28T19:56:13.636Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 0.96 micron with width 0.03 micron', '2025-05-28T19:56:13.662Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 0.99 micron with width 0.03 micron', '2025-05-28T19:56:13.687Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.02 micron with width 0.03 micron', '2025-05-28T19:56:13.711Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.05 micron with width 0.03 micron', '2025-05-28T19:56:13.736Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.07 micron with width 0.03 micron', '2025-05-28T19:56:13.761Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.10 micron with width 0.03 micron', '2025-05-28T19:56:13.785Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.13 micron with width 0.03 micron', '2025-05-28T19:56:13.809Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.16 micron with width 0.03 micron', '2025-05-28T19:56:13.834Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Integrating across band centered at 1.19 micron with width 0.03 micron', "2025-05-28T19:56:13.858Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", '2025-05-28T19:56:13.858Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF calc using fov_pixels = 9, oversample = 11, number of wavelengths = 10', '2025-05-28T19:56:13.859Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Creating optical system model:', '2025-05-28T19:56:13.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Oversample: 11  11 ', '2025-05-28T19:56:13.859Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Initialized OpticalSystem: Roman+WFI', '2025-05-28T19:56:13.863Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Trans: /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:13.863Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: OPD: /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:13.965Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded amplitude transmission from /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:14.252Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded OPD from /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:14.253Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Roman Entrance Pupil', '2025-05-28T19:56:14.259Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added coordinate inversion plane: OTE exit pupil', '2025-05-28T19:56:14.260Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:14.275Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Adding coronagraph/spectrograph optics...', '2025-05-28T19:56:14.275Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::    No optics added for WFI', '2025-05-28T19:56:14.276Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added detector with pixelscale=0.11 and oversampling=11: WFI detector', '2025-05-28T19:56:14.277Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating PSF with 10 wavelengths', '2025-05-28T19:56:14.277Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.295e-07 m', '2025-05-28T19:56:14.281Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.295000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:14.281Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:14.292Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:14.305Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:14.305Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:14.305Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:14.310Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.477 lam/D    npix=99', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:14.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.476545175601293 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:14.463Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:14.465Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.585e-07 m', '2025-05-28T19:56:14.468Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.585000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:14.468Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:14.480Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:14.493Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:14.493Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:14.493Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:14.499Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.099 lam/D    npix=99', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:14.596Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.099059719062497 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:14.629Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:14.631Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.875e-07 m', '2025-05-28T19:56:14.634Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.875e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:14.634Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:14.646Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:14.659Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:14.659Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:14.659Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:14.664Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.744 lam/D    npix=99', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:14.752Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.743745560224207 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:14.784Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:14.786Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0165e-06 m', '2025-05-28T19:56:14.789Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0165000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:14.789Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:14.800Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:14.814Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:14.814Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:14.814Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:14.819Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.409 lam/D    npix=99', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:14.907Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.408705106464735 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:14.939Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:14.940Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0455e-06 m', '2025-05-28T19:56:14.943Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0455000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:14.944Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:14.955Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:14.968Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:14.968Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:14.968Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:14.973Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.092 lam/D    npix=99', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.060Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.092251306285416 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.094Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.095Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0745e-06 m', '2025-05-28T19:56:15.098Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0745000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:15.098Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:15.110Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:15.123Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:15.123Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:15.123Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:15.128Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.793 lam/D    npix=99', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.216Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.792879237525737 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.249Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.251Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1035e-06 m', '2025-05-28T19:56:15.254Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1035000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:15.254Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:15.265Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:15.278Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:15.278Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:15.278Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:15.284Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.509 lam/D    npix=99', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.509242175551794 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.403Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.405Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1325e-06 m', '2025-05-28T19:56:15.407Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1325000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:15.408Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:15.419Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:15.432Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:15.432Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:15.432Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:15.437Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.240 lam/D    npix=99', '2025-05-28T19:56:15.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.525Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.240131338385346 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.558Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.559Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1615e-06 m', '2025-05-28T19:56:15.562Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1615000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:15.562Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:15.574Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:15.587Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:15.587Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:15.587Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:15.592Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.679Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.984 lam/D    npix=99', '2025-05-28T19:56:15.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.98445866613982 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.712Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.713Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1905e-06 m', '2025-05-28T19:56:15.717Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1905000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:15.717Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:15.729Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:15.742Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:15.742Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:15.742Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:15.747Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:15.834Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:15.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:15.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:15.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.741 lam/D    npix=99', '2025-05-28T19:56:15.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:15.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.741242117363631 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:15.867Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:15.869Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::   Calculation completed in 1.592 s', '2025-05-28T19:56:15.870Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF Calculation completed.', '2025-05-28T19:56:15.870Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating jitter using gaussian', '2025-05-28T19:56:15.871Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Jitter: Convolving with Gaussian with sigma=0.012 arcsec', '2025-05-28T19:56:15.872Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::         resulting image peak drops to 0.911 of its previous value', '2025-05-28T19:56:15.873Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Returning only the oversampled data. Oversampled by 11', '2025-05-28T19:56:15.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Calculating spectral weights using synphot, nlambda=10, source=None', '2025-05-28T19:56:15.887Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: No source spectrum supplied, therefore defaulting to 5700 K blackbody', "2025-05-28T19:56:15.888Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Computing spectral weights for source = SourceSpectrum at z=0.0\nModel: BlackBodyNorm1D\nInputs: ('x',)\nOutputs: ('y',)\nModel set size: 1\nParameters:\n    temperature\n    -----------\n         5700.0", '2025-05-28T19:56:15.888Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Previously computed spectral weights found in cache, just reusing those', "2025-05-28T19:56:15.888Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", '2025-05-28T19:56:15.888Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF calc using fov_pixels = 9, oversample = 11, number of wavelengths = 10', '2025-05-28T19:56:15.889Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Creating optical system model:', '2025-05-28T19:56:15.889Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Oversample: 11  11 ', '2025-05-28T19:56:15.889Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Initialized OpticalSystem: Roman+WFI', '2025-05-28T19:56:15.889Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Trans: /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:15.889Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: OPD: /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:15.997Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded amplitude transmission from /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:16.008Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded OPD from /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:16.009Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Roman Entrance Pupil', '2025-05-28T19:56:16.015Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added coordinate inversion plane: OTE exit pupil', '2025-05-28T19:56:16.016Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Adding coronagraph/spectrograph optics...', '2025-05-28T19:56:16.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::    No optics added for WFI', '2025-05-28T19:56:16.031Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added detector with pixelscale=0.11 and oversampling=11: WFI detector', '2025-05-28T19:56:16.033Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating PSF with 10 wavelengths', '2025-05-28T19:56:16.033Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.295e-07 m', '2025-05-28T19:56:16.036Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.295000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.036Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.049Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.061Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.061Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.061Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.067Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.477 lam/D    npix=99', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.160Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.476545175601293 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.193Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.195Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.585e-07 m', '2025-05-28T19:56:16.199Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.585000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.199Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.210Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.224Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.224Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.224Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.230Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.099 lam/D    npix=99', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.312Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.099059719062497 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.346Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.875e-07 m', '2025-05-28T19:56:16.349Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.875e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.349Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.360Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.371Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.376Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.461Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.461Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.462Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.462Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.744 lam/D    npix=99', '2025-05-28T19:56:16.462Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.462Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.743745560224207 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.494Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.496Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0165e-06 m', '2025-05-28T19:56:16.499Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0165000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.499Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.511Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.524Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.530Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.617Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.618Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.618Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.618Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.409 lam/D    npix=99', '2025-05-28T19:56:16.618Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.618Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.408705106464735 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.650Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.652Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0455e-06 m', '2025-05-28T19:56:16.655Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0455000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.667Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.686Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.774Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.774Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.092 lam/D    npix=99', '2025-05-28T19:56:16.774Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.774Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.092251306285416 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.806Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.808Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0745e-06 m', '2025-05-28T19:56:16.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0745000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.822Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.836Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.836Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.836Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.841Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.793 lam/D    npix=99', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:16.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.792879237525737 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:16.962Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:16.964Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1035e-06 m', '2025-05-28T19:56:16.967Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1035000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:16.967Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:16.978Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:16.991Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:16.991Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:16.991Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:16.997Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:17.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:17.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:17.085Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.509 lam/D    npix=99', '2025-05-28T19:56:17.085Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:17.085Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.509242175551794 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:17.118Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:17.120Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1325e-06 m', '2025-05-28T19:56:17.123Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1325000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:17.123Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:17.134Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:17.148Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:17.148Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:17.148Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:17.153Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:17.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.241Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:17.241Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:17.241Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.240 lam/D    npix=99', '2025-05-28T19:56:17.241Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:17.241Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.240131338385346 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:17.273Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:17.274Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1615e-06 m', '2025-05-28T19:56:17.277Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1615000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:17.278Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:17.289Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:17.302Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:17.302Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:17.302Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:17.307Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:17.395Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.396Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:17.396Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:17.396Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.984 lam/D    npix=99', '2025-05-28T19:56:17.396Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:17.396Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.98445866613982 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:17.429Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:17.431Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1905e-06 m', '2025-05-28T19:56:17.434Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1905000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:17.434Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:17.445Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:17.458Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:17.458Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:17.459Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:17.464Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:17.551Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:17.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:17.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.741 lam/D    npix=99', '2025-05-28T19:56:17.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:17.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.741242117363631 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:17.584Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:17.585Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::   Calculation completed in 1.553 s', '2025-05-28T19:56:17.587Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF Calculation completed.', '2025-05-28T19:56:17.587Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating jitter using gaussian', '2025-05-28T19:56:17.587Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Jitter: Convolving with Gaussian with sigma=0.012 arcsec', '2025-05-28T19:56:17.588Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::         resulting image peak drops to 0.911 of its previous value', '2025-05-28T19:56:17.589Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Returning only the oversampled data. Oversampled by 11', '2025-05-28T19:56:17.591Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Calculating spectral weights using synphot, nlambda=10, source=None', '2025-05-28T19:56:17.604Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: No source spectrum supplied, therefore defaulting to 5700 K blackbody', "2025-05-28T19:56:17.605Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Computing spectral weights for source = SourceSpectrum at z=0.0\nModel: BlackBodyNorm1D\nInputs: ('x',)\nOutputs: ('y',)\nModel set size: 1\nParameters:\n    temperature\n    -----------\n         5700.0", '2025-05-28T19:56:17.605Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Previously computed spectral weights found in cache, just reusing those', "2025-05-28T19:56:17.605Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", '2025-05-28T19:56:17.605Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF calc using fov_pixels = 9, oversample = 11, number of wavelengths = 10', '2025-05-28T19:56:17.605Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Creating optical system model:', '2025-05-28T19:56:17.606Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Oversample: 11  11 ', '2025-05-28T19:56:17.606Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Initialized OpticalSystem: Roman+WFI', '2025-05-28T19:56:17.607Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Trans: /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:17.607Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: OPD: /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:17.711Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded amplitude transmission from /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:17.722Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded OPD from /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:17.723Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Roman Entrance Pupil', '2025-05-28T19:56:17.730Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added coordinate inversion plane: OTE exit pupil', '2025-05-28T19:56:17.731Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.746Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Adding coronagraph/spectrograph optics...', '2025-05-28T19:56:17.746Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::    No optics added for WFI', '2025-05-28T19:56:17.746Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added detector with pixelscale=0.11 and oversampling=11: WFI detector', '2025-05-28T19:56:17.748Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating PSF with 10 wavelengths', '2025-05-28T19:56:17.748Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.295e-07 m', '2025-05-28T19:56:17.751Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.295000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:17.751Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:17.762Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:17.775Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:17.775Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:17.775Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:17.781Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:17.874Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:17.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:17.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:17.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.477 lam/D    npix=99', '2025-05-28T19:56:17.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:17.875Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.476545175601293 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:17.908Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:17.910Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.585e-07 m', '2025-05-28T19:56:17.914Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.585000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:17.914Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:17.926Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:17.939Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:17.939Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:17.939Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:17.945Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.030Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.099 lam/D    npix=99', '2025-05-28T19:56:18.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.031Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.099059719062497 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.065Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.066Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.875e-07 m', '2025-05-28T19:56:18.070Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.875e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.071Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.082Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.095Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.095Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.095Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.100Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.744 lam/D    npix=99', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.189Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.743745560224207 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.222Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.224Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0165e-06 m', '2025-05-28T19:56:18.227Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0165000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.227Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.238Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.252Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.252Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.252Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.257Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.409 lam/D    npix=99', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.345Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.408705106464735 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.378Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.380Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0455e-06 m', '2025-05-28T19:56:18.384Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0455000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.384Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.395Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.409Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.409Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.409Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.414Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.501Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.502Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.502Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.502Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.092 lam/D    npix=99', '2025-05-28T19:56:18.502Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.502Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.092251306285416 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.536Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.537Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0745e-06 m', '2025-05-28T19:56:18.541Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0745000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.541Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.552Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.565Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.565Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.565Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.570Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.793 lam/D    npix=99', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.656Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.792879237525737 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.689Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.691Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1035e-06 m', '2025-05-28T19:56:18.694Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1035000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.694Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.705Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.718Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.718Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.718Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.723Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.509 lam/D    npix=99', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.811Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.509242175551794 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.843Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:18.845Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1325e-06 m', '2025-05-28T19:56:18.848Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1325000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:18.848Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:18.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:18.872Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:18.873Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:18.873Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:18.878Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.240 lam/D    npix=99', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:18.965Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.240131338385346 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:18.998Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.000Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1615e-06 m', '2025-05-28T19:56:19.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1615000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.014Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.028Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.028Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.028Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.033Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:19.120Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.120Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:19.121Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:19.121Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.984 lam/D    npix=99', '2025-05-28T19:56:19.121Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:19.121Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.98445866613982 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:19.153Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.155Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1905e-06 m', '2025-05-28T19:56:19.158Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1905000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.158Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.169Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.183Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.183Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.183Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.188Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:19.275Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.275Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:19.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:19.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.741 lam/D    npix=99', '2025-05-28T19:56:19.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:19.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.741242117363631 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:19.309Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.310Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::   Calculation completed in 1.563 s', '2025-05-28T19:56:19.311Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF Calculation completed.', '2025-05-28T19:56:19.312Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating jitter using gaussian', '2025-05-28T19:56:19.312Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Jitter: Convolving with Gaussian with sigma=0.012 arcsec', '2025-05-28T19:56:19.313Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::         resulting image peak drops to 0.912 of its previous value', '2025-05-28T19:56:19.314Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Returning only the oversampled data. Oversampled by 11', '2025-05-28T19:56:19.316Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Calculating spectral weights using synphot, nlambda=10, source=None', '2025-05-28T19:56:19.329Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: No source spectrum supplied, therefore defaulting to 5700 K blackbody', "2025-05-28T19:56:19.330Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Computing spectral weights for source = SourceSpectrum at z=0.0\nModel: BlackBodyNorm1D\nInputs: ('x',)\nOutputs: ('y',)\nModel set size: 1\nParameters:\n    temperature\n    -----------\n         5700.0", '2025-05-28T19:56:19.330Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Previously computed spectral weights found in cache, just reusing those', "2025-05-28T19:56:19.330Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Using pupil mask 'SKINNY' and detector 'SCA01'.", '2025-05-28T19:56:19.331Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF calc using fov_pixels = 9, oversample = 11, number of wavelengths = 10', '2025-05-28T19:56:19.331Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Creating optical system model:', '2025-05-28T19:56:19.331Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Oversample: 11  11 ', '2025-05-28T19:56:19.331Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Initialized OpticalSystem: Roman+WFI', '2025-05-28T19:56:19.332Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Trans: /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:19.332Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: OPD: /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:19.438Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded amplitude transmission from /user/desjard/stpsf-data/WFI/pupils/RST_WIM_Filter_skinny_SCA_1.fits.gz', '2025-05-28T19:56:19.451Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Roman Entrance Pupil: Loaded OPD from /user/desjard/stpsf-data/upscaled_HST_OPD.fits', '2025-05-28T19:56:19.452Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Roman Entrance Pupil', '2025-05-28T19:56:19.459Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added coordinate inversion plane: OTE exit pupil', '2025-05-28T19:56:19.459Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.475Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Adding coronagraph/spectrograph optics...', '2025-05-28T19:56:19.475Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::    No optics added for WFI', '2025-05-28T19:56:19.475Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Added detector with pixelscale=0.11 and oversampling=11: WFI detector', '2025-05-28T19:56:19.477Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating PSF with 10 wavelengths', '2025-05-28T19:56:19.477Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.295e-07 m', '2025-05-28T19:56:19.480Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.295000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.480Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.491Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.504Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.504Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.504Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.509Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:19.615Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.615Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:19.615Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:19.615Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.477 lam/D    npix=99', '2025-05-28T19:56:19.616Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:19.616Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.476545175601293 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:19.650Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.651Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.585e-07 m', '2025-05-28T19:56:19.655Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.585000000000002e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.655Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.667Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.680Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.686Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=12.099 lam/D    npix=99', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:19.773Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 12.099059719062497 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:19.805Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.807Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 9.875e-07 m', '2025-05-28T19:56:19.810Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=9.875e-07 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.810Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.822Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.835Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.841Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.744 lam/D    npix=99', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:19.929Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.743745560224207 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:19.962Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:19.964Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0165e-06 m', '2025-05-28T19:56:19.967Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0165000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:19.967Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:19.978Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:19.992Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:19.992Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:19.992Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:19.997Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.083Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.409 lam/D    npix=99', '2025-05-28T19:56:20.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.084Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.408705106464735 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.116Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.118Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0455e-06 m', '2025-05-28T19:56:20.122Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0455000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.122Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.133Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.147Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.147Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.147Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.152Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.239Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=11.092 lam/D    npix=99', '2025-05-28T19:56:20.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.240Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 11.092251306285416 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.271Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.273Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.0745e-06 m', '2025-05-28T19:56:20.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.0745000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.276Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.287Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.300Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.300Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.300Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.306Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.392Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.393Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.393Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.393Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.793 lam/D    npix=99', '2025-05-28T19:56:20.393Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.393Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.792879237525737 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.426Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.427Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1035e-06 m', '2025-05-28T19:56:20.430Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1035000000000001e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.431Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.442Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.456Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.456Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.456Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.461Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.547Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.548Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.548Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.548Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.509 lam/D    npix=99', '2025-05-28T19:56:20.548Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.548Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.509242175551794 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.581Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.583Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1325e-06 m', '2025-05-28T19:56:20.586Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1325000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.586Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.597Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.611Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.611Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.611Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.616Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=10.240 lam/D    npix=99', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.703Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 10.240131338385346 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.737Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.738Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1615e-06 m', '2025-05-28T19:56:20.741Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1615000000000002e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.742Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.753Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.766Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.766Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.766Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.771Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:20.858Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:20.858Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:20.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:20.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.984 lam/D    npix=99', '2025-05-28T19:56:20.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:20.859Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.98445866613982 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:20.892Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:20.893Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Propagating wavelength = 1.1905e-06 m', '2025-05-28T19:56:20.896Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Input wavefront has wavelength=1.1905000000000003e-06 m, npix=2048, diam=2.42, pixel scale=0.00118 meters/pixel', '2025-05-28T19:56:20.896Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Roman Entrance Pupil already at same plane type, no propagation needed.', '2025-05-28T19:56:20.908Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Roman Entrance Pupil ', '2025-05-28T19:56:20.921Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: normalizing at first plane (entrance pupil) to 1.0 total intensity', '2025-05-28T19:56:20.921Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Coordinate Inversion in y axis. ', '2025-05-28T19:56:20.921Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Wavefront and optic Field Dependent Aberration (SCA01) already at same plane type, no propagation needed.', '2025-05-28T19:56:20.926Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Omitting piston/tip/tilt', '2025-05-28T19:56:21.002Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Multiplied WF by phasor for Pupil plane: Field Dependent Aberration (SCA01)', '2025-05-28T19:56:21.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::   Propagating wavefront to Detector plane: WFI detector (9x9 pixels, 0.110 arcsec / pix). ', '2025-05-28T19:56:21.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: MatrixFourierTransform initialized using centering type = ADJUSTABLE', '2025-05-28T19:56:21.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::     Propagating w/ MFT: 0.0100 arcsec / pix     fov=9.741 lam/D    npix=99', '2025-05-28T19:56:21.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::       MFT method = ADJUSTABLE', '2025-05-28T19:56:21.003Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG :: Forward MatrixFourierTransform: array shape (2048, 2048), centering style ADJUSTABLE, output region size 9.741242117363631 in lambda / D units, output array size 99.0 pixels, offset None', '2025-05-28T19:56:21.037Z :: stpipe.ExposurePipeline.source_catalog :: DEBUG ::      Result wavefront: at=after Field Dependent Aberration (SCA01) shape=(99, 99) ', '2025-05-28T19:56:21.038Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::   Calculation completed in 1.562 s', '2025-05-28T19:56:21.039Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: PSF Calculation completed.', '2025-05-28T19:56:21.040Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Calculating jitter using gaussian', '2025-05-28T19:56:21.040Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Jitter: Convolving with Gaussian with sigma=0.012 arcsec', '2025-05-28T19:56:21.041Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::         resulting image peak drops to 0.912 of its previous value', '2025-05-28T19:56:21.042Z :: stpipe.ExposurePipeline.source_catalog :: INFO ::  Returning only the oversampled data. Oversampled by 11', '2025-05-28T19:56:21.045Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Fitting a PSF model to sources for improved astrometric precision.', '2025-05-28T19:56:31.611Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Saved model in r0003201001001001004_0001_wfi01_f106_segm.asdf', '2025-05-28T19:56:31.701Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Saved model in r0003201001001001004_0001_wfi01_f106_cat.asdf', '2025-05-28T19:56:31.711Z :: stpipe.ExposurePipeline.source_catalog :: INFO :: Step source_catalog done', '2025-05-28T19:56:31.796Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Step tweakreg running with args (<romancal.datamodels.library.ModelLibrary object at 0x11f2d7a70>,).', '2025-05-28T19:56:31.797Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Number of image groups to be aligned: 1.', '2025-05-28T19:56:31.797Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Image groups:', '2025-05-28T19:56:31.798Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::   00032010010010010040001', '2025-05-28T19:56:31.798Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: All source catalogs will be saved to: /System/Volumes/Data/grp/roman/desjardins/simulations/aas246', '2025-05-28T19:56:31.864Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Detected 1461 sources in r0003201001001001004_0001_wfi01_f106_uncal.asdf.', '2025-05-28T19:56:31.898Z :: stpipe.ExposurePipeline.tweakreg :: DEBUG :: Starting new HTTP connection (1): gsss.stsci.edu:80', '2025-05-28T19:56:31.904Z :: stpipe.ExposurePipeline.tweakreg :: DEBUG :: http://gsss.stsci.edu:80 "GET /webservices/vo/CatalogSearch.aspx?RA=270.8718609189007&DEC=-0.16410054501957452&EPOCH=2026.8301378056824&SR=0.0880088462317565&FORMAT=CSV&CAT=GAIADR3&MINDET=5 HTTP/1.1" 301 185', '2025-05-28T19:56:31.905Z :: stpipe.ExposurePipeline.tweakreg :: DEBUG :: Starting new HTTPS connection (1): gsss.stsci.edu:443', '2025-05-28T19:56:32.741Z :: stpipe.ExposurePipeline.tweakreg :: DEBUG :: https://gsss.stsci.edu:443 "GET /webservices/vo/CatalogSearch.aspx?RA=270.8718609189007&DEC=-0.16410054501957452&EPOCH=2026.8301378056824&SR=0.0880088462317565&FORMAT=CSV&CAT=GAIADR3&MINDET=5 HTTP/1.1" 200 3610499', '2025-05-28T19:56:37.654Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::  ', '2025-05-28T19:56:37.655Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: ***** tweakwcs.imalign.align_wcs() started on 2025-05-28 15:56:37.654936', '2025-05-28T19:56:37.656Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::       Version 0.8.10', '2025-05-28T19:56:37.656Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::  ', "2025-05-28T19:56:37.815Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Aligning image catalog 'GROUP ID: 987654' to the reference catalog.", "2025-05-28T19:56:37.849Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Matching sources from 'r0003201001001001004_0001_wfi01_f106_uncal' catalog with sources from the reference 'Unnamed' catalog.", '2025-05-28T19:56:37.850Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Computing initial guess for X and Y shifts...', '2025-05-28T19:56:37.855Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Found initial X and Y shifts of 0.01183, 0.01183 (arcsec) with significance of 1334 and 1400 matches.', "2025-05-28T19:56:37.857Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Found 1399 matches for 'GROUP ID: 987654'...", "2025-05-28T19:56:37.858Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Performing 'rshift' fit", "2025-05-28T19:56:37.877Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Computed 'rshift' fit for GROUP ID: 987654:", '2025-05-28T19:56:37.877Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: XSH: -0.000195681  YSH: -3.85974e-05    ROT: -3.85507e-06    SCALE: 1', '2025-05-28T19:56:37.878Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: ', '2025-05-28T19:56:37.878Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: FIT RMSE: 0.00196715   FIT MAE: 0.00169605', '2025-05-28T19:56:37.879Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Final solution based on 1385 objects.', '2025-05-28T19:56:37.907Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::  ', '2025-05-28T19:56:37.908Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: ***** tweakwcs.imalign.align_wcs() ended on 2025-05-28 15:56:37.907564', '2025-05-28T19:56:37.908Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: ***** tweakwcs.imalign.align_wcs() TOTAL RUN TIME: 0:00:00.252628', '2025-05-28T19:56:37.908Z :: stpipe.ExposurePipeline.tweakreg :: INFO ::  ', '2025-05-28T19:56:37.913Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Update S_REGION to POLYGON ICRS  270.934669679 -0.225719501 270.934611821 -0.102755795 270.809021726 -0.102451279 270.809744086 -0.225310345', '2025-05-28T19:56:37.913Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: S_REGION VALUES: POLYGON ICRS  270.934669679 -0.225719501 270.934611821 -0.102755795 270.809021726 -0.102451279 270.809744086 -0.225310345', '2025-05-28T19:56:37.914Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Update S_REGION to POLYGON ICRS  270.934669679 -0.225719501 270.934611821 -0.102755795 270.809021726 -0.102451279 270.809744086 -0.225310345', '2025-05-28T19:56:37.925Z :: stpipe.ExposurePipeline.tweakreg :: INFO :: Step tweakreg done', '2025-05-28T19:56:37.926Z :: stpipe.ExposurePipeline :: INFO :: Roman exposure calibration pipeline ending...'], 'cal_step': {'dq_init': 'COMPLETE', 'saturation': 'COMPLETE', 'refpix': 'COMPLETE', 'linearity': 'COMPLETE', 'dark': 'COMPLETE', 'ramp_fit': 'COMPLETE', 'assign_wcs': 'COMPLETE', 'flat_field': 'COMPLETE', 'photom': 'COMPLETE', 'source_catalog': 'COMPLETE', 'tweakreg': 'COMPLETE', 'flux': 'INCOMPLETE', 'skymatch': 'INCOMPLETE', 'outlier_detection': 'INCOMPLETE'}, 'calibration_software_name': 'RomanCAL', 'calibration_software_version': '0.18.0', 'coordinates': {'reference_frame': 'ICRS'}, 'ephemeris': {'earth_angle': -999999, 'moon_angle': -999999, 'sun_angle': -999999, 'type': 'DEFINITIVE', 'time': 61344.0, 'ephemeris_reference_frame': '?', 'spatial_x': 118149303.92300647, 'spatial_y': 81710865.93471536, 'spatial_z': 35433691.335827544, 'velocity_x': -18.474060504144184, 'velocity_y': 21.671509956074864, 'velocity_z': 9.394886442040915}, 'exposure': {'type': 'WFI_IMAGE', 'start_time': <Time object: scale='utc' format='isot' value=2026-10-31T00:00:00.000>, 'mid_time': <Time object: scale='utc' format='isot' value=2026-10-31T00:00:25.840>, 'end_time': <Time object: scale='utc' format='isot' value=2026-10-31T00:00:51.680>, 'nresultants': 5, 'data_problem': False, 'frame_time': 3.04, 'exposure_time': 51.68, 'effective_exposure_time': 45.6, 'ma_table_name': '?', 'ma_table_number': 3, 'read_pattern': [[2], [5], [10], [16], [17]], 'truncated': False}, 'exptype': 'SCIENCE', 'file_date': <FileDate object: scale='utc' format='isot' value=2020-01-01T00:00:00.000>, 'filename': 'r0003201001001001004_0001_wfi01_f106_cal.asdf', 'group_id': '00032010010010010040001', 'guide_star': {'guide_window_id': '?', 'guide_mode': 'WSM-ACQ-2', 'data_start': <Time object: scale='utc' format='isot' value=2020-01-01T00:00:00.000>, 'data_end': <Time object: scale='utc' format='isot' value=2020-01-01T01:00:00.000>, 'window_xstart': -999999, 'window_ystart': -999999, 'window_xstop': -999999, 'window_ystop': -999999, 'window_xsize': 16, 'window_ysize': 16, 'guide_star_id': '?', 'gsc_version': '?', 'ra': -999999, 'dec': -999999, 'ra_uncertainty': -999999, 'dec_uncertainty': -999999, 'fgs_magnitude': -999999, 'fgs_magnitude_uncertainty': -999999, 'centroid_x': -999999, 'centroid_y': -999999, 'centroid_x_uncertainty': -999999, 'centroid_y_uncertainty': -999999, 'epoch': '?', 'proper_motion_ra': -999999, 'proper_motion_dec': -999999, 'parallax': -999999, 'centroid_rms': -999999}, 'instrument': {'detector': 'WFI01', 'optical_element': 'F106', 'name': 'WFI'}, 'model_type': 'ImageModel', 'observation': {'observation_id': '00032010010010010040001', 'visit_id': '0003201001001001004', 'program': 32, 'execution_plan': 1, 'pass': 1, 'segment': 1, 'observation': 1, 'visit': 4, 'visit_file_group': 1, 'visit_file_sequence': 1, 'visit_file_activity': '01', 'exposure': 1}, 'origin': 'STSCI/SOC', 'photometry': {'conversion_megajanskys': 0.7417487930165987, 'conversion_megajanskys_uncertainty': 0.028857321159254122, 'pixel_area': 2.8083389953727505e-13}, 'pointing': {'ra_v1': 270.93999195229344, 'dec_v1': 0.2959999999347126, 'pa_v3': 59.99907035922454, 'target_aperture': 'WFI_CEN', 'target_ra': 270.94, 'target_dec': -0.2}, 'prd_version': '8.8.8', 'product_type': 'l2', 'program': {'title': '?', 'investigator_name': '?', 'category': '?', 'subcategory': 'None', 'science_category': '?', 'continuation_id': -999999}, 'rcs': {'active': False, 'electronics': 'A', 'bank': '1', 'led': '1', 'counts': -999999}, 'ref_file': {'area': 'N/A', 'crds': {'context': 'roman_0027.pmap', 'version': '12.1.4'}, 'dark': 'crds://roman_wfi_dark_0444.asdf', 'distortion': 'crds://roman_wfi_distortion_0014.asdf', 'flat': 'crds://roman_wfi_flat_0175.asdf', 'gain': 'crds://roman_wfi_gain_0022.asdf', 'inverse_linearity': 'N/A', 'linearity': 'crds://roman_wfi_linearity_0003.asdf', 'mask': 'crds://roman_wfi_mask_0030.asdf', 'photom': 'crds://roman_wfi_photom_0040.asdf', 'readnoise': 'crds://roman_wfi_readnoise_0024.asdf', 'refpix': 'crds://roman_wfi_refpix_0013.asdf', 'saturation': 'crds://roman_wfi_saturation_0031.asdf'}, 'sdf_software_version': '7.7.7', 'source_catalog': {'tweakreg_catalog_name': 'r0003201001001001004_0001_wfi01_f106_cat.asdf'}, 'telescope': 'ROMAN', 'velocity_aberration': {'ra_reference': 270.8719766359773, 'dec_reference': -0.16439949970729792, 'scale_factor': 1.0}, 'visit': {'dither': {'executed_pattern': [1, 2, 3, 4, 5, 6, 7, 8, 9], 'primary_name': None, 'subpixel_name': None}, 'engineering_quality': 'OK', 'pointing_engineering_source': 'CALCULATED', 'type': 'PRIME_TARGETED_FIXED', 'start_time': <Time object: scale='utc' format='isot' value=2020-01-01T00:00:00.000>, 'end_time': <Time object: scale='utc' format='isot' value=2020-01-01T00:00:00.000>, 'status': 'SUCCESSFUL', 'nexposures': -999999, 'internal_target': False}, 'wcs': <WCS(output_frame=world, input_frame=detector, forward_transform=Model: CompoundModel
Inputs: ('x0', 'x1')
Outputs: ('lon', 'lat')
Model set size: 1
Expression: [0] & [1] | [2] & [3] | [4] | [5] & [6] | [7] | [8] & [9] | [10] & [11] | [12] | [13] & [14] | [15] | [16] | [17] / [18] | [19] | [20] | [21] | [22] & [23] | [24] | [25] | [26] & [27] | [28] & [29] | [30] | [31] | [32]
Components: 
    [0]: <Shift(offset=1.)>

    [1]: <Shift(offset=1.)>

    [2]: <Shift(offset=-2044.5)>

    [3]: <Shift(offset=-2044.5)>

    [4]: <Mapping((0, 1, 0, 1))>

    [5]: <Polynomial2D(5, c0_0=0., c1_0=0.11034133, c2_0=-0.00000003, c3_0=-0., c4_0=0., c5_0=-0., c0_1=0.00034168, c0_2=-0.00000001, c0_3=-0., c0_4=-0., c0_5=0., c1_1=0.00000014, c1_2=-0., c1_3=0., c1_4=0., c2_1=0., c2_2=-0., c2_3=-0., c3_1=0., c3_2=-0., c4_1=-0.)>

    [6]: <Polynomial2D(5, c0_0=0., c1_0=0.00031436, c2_0=0.00000007, c3_0=0., c4_0=0., c5_0=-0., c0_1=0.10828278, c0_2=0.00000021, c0_3=-0., c0_4=0., c0_5=0., c1_1=-0.00000002, c1_2=-0., c1_3=-0., c1_4=0., c2_1=-0., c2_2=-0., c2_3=0., c3_1=-0., c3_2=-0., c4_1=-0.)>

    [7]: <Mapping((0, 1, 0, 1))>

    [8]: <Polynomial2D(1, c0_0=0., c1_0=-0.5, c0_1=-0.8660254)>

    [9]: <Polynomial2D(1, c0_0=0., c1_0=-0.8660254, c0_1=0.5)>

    [10]: <Shift(offset=1312.94914525)>

    [11]: <Shift(offset=-1040.78537268)>

    [12]: <Identity(2)>

    [13]: <Scale(factor=0.00027778, name='arcsec_to_deg_1D')>

    [14]: <Scale(factor=0.00027778, name='arcsec_to_deg_1D')>

    [15]: <SphericalToCartesian(name='s2c')>

    [16]: <RotationSequence3D(angles=[ 0.3647081 ,  0.28910705, 59.99991239], name='det_to_optic_axis')>

    [17]: <Mapping((0, 1, 2), name='xyz')>

    [18]: <Mapping((0, 0, 0), name='xxx')>

    [19]: <Mapping((1, 2), name='xtyt')>

    [20]: <AffineTransformation2D(matrix=[[ 1.        , -0.00000007], [ 0.00000007,  1.        ]], translation=[-0., -0.], name='tp_affine')>

    [21]: <Mapping((0, 0, 1), name='xtyt2xyz')>

    [22]: <Const1D(amplitude=1., name='one')>

    [23]: <Identity(2, name='I(2D)')>

    [24]: <RotationSequence3D(angles=[-59.99991239,  -0.28910705,  -0.3647081 ], name='optic_axis_to_det')>

    [25]: <CartesianToSpherical(name='c2s')>

    [26]: <Scale(factor=3600., name='deg_to_arcsec_1D')>

    [27]: <Scale(factor=3600., name='deg_to_arcsec_1D')>

    [28]: <Scale(factor=0.00027778)>

    [29]: <Scale(factor=0.00027778)>

    [30]: <SphericalToCartesian()>

    [31]: <RotationSequence3D(angles=[   0.3647081 ,    0.28910705,   59.99991239,   -0.1643995 , -270.87197664])>

    [32]: <CartesianToSpherical()>
Parameters:
    offset_0 offset_1 ...                angles_31                
    -------- -------- ... ----------------------------------------
         1.0      1.0 ... 0.3647080959023555 .. -270.8719766359773)>, 'wcs_fit_results': {'<rot>': -3.8550664171942765e-06, '<scale>': 1.0, 'center': [-12.801315068075494, -1.6980423663712585], 'fitgeom': 'rshift', 'mae': 0.0016960513501491892, 'matrix': [[0.9999999999999978, -6.728360186310142e-08], [6.728360186310142e-08, 0.9999999999999978]], 'nmatches': 1399, 'proper': True, 'proper_rot': -3.8550664171942765e-06, 'rmse': 0.001967154556791072, 'rot': [-3.8550664171942765e-06, -3.8550664171942765e-06], 'scale': [1.0, 1.0], 'shift': [-0.00019568088161466573, -3.859739322089624e-05], 'skew': 0.0, 'status': 'SUCCESS'}, 'wcsinfo': {'aperture_name': 'WFI01_FULL', 'pa_aperture': 0.0, 'v2_ref': 1312.9491452484797, 'v3_ref': -1040.7853726755036, 'vparity': -1, 'v3yangle': -60.0, 'ra_ref': 270.8719766359773, 'dec_ref': -0.16439949970729792, 'roll_ref': 59.99991238605934, 's_region': 'POLYGON ICRS  270.934669679 -0.225719501 270.934611821 -0.102755795 270.809021726 -0.102451279 270.809744086 -0.225310345'}}, 'data': array([[0.3828592 , 0.7190066 , 0.57954526, ..., 0.82491654, 0.54798466,
        0.7596621 ],
       [0.48790407, 0.5191181 , 0.68121314, ..., 0.8290943 , 0.7378703 ,
        0.31645823],
       [0.65960026, 0.62473404, 0.7867249 , ..., 0.63130987, 0.67372173,
        0.56940955],
       ...,
       [0.69034207, 1.0855403 , 0.6050965 , ..., 0.75234616, 0.7595161 ,
        0.77993363],
       [0.66153103, 0.7590605 , 0.6202591 , ..., 0.6739805 , 0.33642223,
        0.6299567 ],
       [0.6038647 , 0.9196994 , 0.8665242 , ..., 0.        , 0.        ,
        0.55580723]], shape=(4088, 4088), dtype=float32), 'dq': array([[       0,        0,        0, ...,        0,        0,        0],
       [       0,        0,        0, ...,        0,        0,        0],
       [       0,        0,        0, ...,        0,        0,        0],
       ...,
       [       0,        0,        0, ..., 34612225,        0, 34612225],
       [       0,        0,        0, ..., 34612225,        0, 34612225],
       [       0,        0,        0, ..., 34612227, 33555459, 34612225]],
      shape=(4088, 4088), dtype=uint32), 'err': array([[0.18076347, 0.1723664 , 0.14663745, ..., 0.16203614, 0.1724748 ,
        0.14682001],
       [0.15614437, 0.15004104, 0.15475114, ..., 0.17499089, 0.1855512 ,
        0.15914412],
       [0.1706995 , 0.16785465, 0.17753504, ..., 0.16119657, 0.17525539,
        0.16452532],
       ...,
       [0.15044011, 0.20136106, 0.14482673, ..., 0.12686564, 0.16732948,
        0.12818322],
       [0.14897132, 0.15294914, 0.15559031, ..., 0.12026194, 0.16308452,
        0.12932767],
       [0.14247444, 0.17256524, 0.15560353, ..., 0.        , 0.        ,
        0.11925368]], shape=(4088, 4088), dtype=float32), 'var_poisson': array([[0.00404828, 0.00799189, 0.00625471, ..., 0.00939666, 0.00616588,
        0.00793944],
       [0.00527975, 0.00576931, 0.00754714, ..., 0.00966951, 0.00859934,
        0.00348371],
       [0.00726608, 0.00734757, 0.00842474, ..., 0.00709256, 0.00783981,
        0.00593649],
       ...,
       [0.00724078, 0.01226308, 0.00626863, ..., 0.00946943, 0.00827379,
        0.00981667],
       [0.00740875, 0.00796843, 0.0065686 , ..., 0.00848308, 0.00356838,
        0.00792898],
       [0.00652799, 0.00961783, 0.00962937, ..., 0.        , 0.        ,
        0.00704528]], shape=(4088, 4088), dtype=float32), 'var_rnoise': array([[0.02862715, 0.02171828, 0.01524783, ..., 0.01685905, 0.02358168,
        0.01361668],
       [0.01910131, 0.01674301, 0.01640077, ..., 0.02095231, 0.0258299 ,
        0.02184314],
       [0.02187224, 0.02082762, 0.02309395, ..., 0.01889177, 0.02287464,
        0.02113209],
       ...,
       [0.01539145, 0.02828319, 0.01470615, ..., 0.00662545, 0.01972537,
        0.00661427],
       [0.01478371, 0.01542501, 0.01763974, ..., 0.00597985, 0.02302819,
        0.00879667],
       [0.01377098, 0.02016093, 0.01458309, ..., 0.        , 0.        ,
        0.00717616]], shape=(4088, 4088), dtype=float32), 'var_flat': array([[0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       ...,
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.],
       [0., 0., 0., ..., 0., 0., 0.]], shape=(4088, 4088), dtype=float32), 'amp33': array([[[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]],

       [[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]],

       [[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]],

       [[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]],

       [[0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        ...,
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0],
        [0, 0, 0, ..., 0, 0, 0]]], shape=(5, 4096, 128), dtype=uint16), 'border_ref_pix_left': array([[[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]]], shape=(5, 4096, 4), dtype=float32), 'border_ref_pix_right': array([[[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]],

       [[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        ...,
        [0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]]], shape=(5, 4096, 4), dtype=float32), 'border_ref_pix_top': array([[[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]]], shape=(5, 4, 4096), dtype=float32), 'border_ref_pix_bottom': array([[[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]],

       [[0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.],
        [0., 0., 0., ..., 0., 0., 0.]]], shape=(5, 4, 4096), dtype=float32), 'dq_border_ref_pix_left': array([[2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       ...,
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648]],
      shape=(4096, 4), dtype=uint32), 'dq_border_ref_pix_right': array([[2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       ...,
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648],
       [2147483648, 2147483648, 2147483648, 2147483648]],
      shape=(4096, 4), dtype=uint32), 'dq_border_ref_pix_top': array([[2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648]], shape=(4, 4096), dtype=uint32), 'dq_border_ref_pix_bottom': array([[2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648],
       [2147483648, 2147483648, 2147483648, ..., 2147483648, 2147483648,
        2147483648]], shape=(4, 4096), dtype=uint32)}}

For WFI ASDF files, the three high-level blocks are:

  • asdf_library: It contains information about the asdf library used to create the file.

  • history: It contains metadata information about the extensions used to create the file.

  • roman: This block contains Roman data and metadata.

Within the roman block, the data block contains the data, which corresponds to an uncalibrated ramp in L1 products, a calibrated rate image in L2 products, and a mosaic image in L3 products.

Other interesting data blocks are:

  • meta: metadata information

  • err: estimated uncertainties

  • dq: data quality flags

For more information about these data blocks and Level 2 data products, please visit the RDox pages on data levels and products.

We further showcase the usage of the asdf basic library below using a L1 file.

asdf_file_uri_l1 = asdf_dir_uri + 'r0003201001001001004_0001_wfi01_f106_uncal.asdf'

with fs.open(asdf_file_uri_l1, 'rb') as fb:
    g = asdf.open(fb).copy()
g.info()
root (AsdfObject)
├─asdf_library (Software)
│ ├─author (str): The ASDF Developers
│ ├─homepage (str): http://github.com/asdf-format/asdf
│ ├─name (str): asdf
│ └─version (str): 4.1.0
├─history (dict)
│ └─extensions (list) ...
├─roman (WfiScienceRaw) # Level 1 (L1) Uncalibrated Roman Wide Field
Instrument (WFI) Ramp Cube

│ ├─meta (dict) ...
│ ├─data (ndarray) # Science Data (DN) ...
│ └─amp33 (ndarray) # Amplifier 33 Reference Pixel Data (DN) ...
└─romanisim (dict)
  ├─drop_extra_dq (bool): True
  ├─filename (str): r0003201001001001004_0001_wfi01_f106_uncal.asdf
  ├─level (int): 1
  ├─persistence (dict) ...
  ├─simcatobj (ndarray) ...
  ├─simulate_reffiles (dict) ...
  ├─stpsf (bool): True
  ├─usecrds (bool): True
  ├─version (str): 0.8.0
  └─wcs (WCS)
Some nodes not shown.

Loading the data follows exactly the same procedure as above. When working with L1 data, notice that the data block is now a cube of size (N, 4096, 4096), where N is the number of resultants up-the-ramp. A resultant is either a single read or the arithmetic mean of multiple reads of the WFI detectors. The L1 data array also contains the 4-pixel reference pixel border that is trimmed during processing from L1 to L2. As previously mentioned, the L1 data array is in units of DN.

Let’s plot the value of a single pixel up-the-ramp:

plt.figure(figsize=(6, 6), layout='tight')
plt.title('Up-the-ramp samples for pixel 1000, 1000')
plt.plot(g['roman']['data'][:, 1000, 1000])
plt.xlabel('Resultant number', fontsize=16)
plt.ylabel('Pixel value [DN]', fontsize=16);
../../_images/716f584de10ca489dc53b7e3ef7c6ced6486ac314dd8ae352b088ed6ac5d20bf.png

The L1 data array contains all the uncalibrated resultants that, after processing, yield the L2 rate images.

The ASDF tree shows another section of the file called romanisim that contains information about the simulation that created the L1 file. This section is not part of the datamodel definition in roman_datamodels, therefore it cannot be accessed with the dot notation. Instead, we can access it, and any other additional information not stored by the datamodel definition, using the ASDF tree and bracket notation:

g.tree['romanisim']
{'drop_extra_dq': True,
 'filename': 'r0003201001001001004_0001_wfi01_f106_uncal.asdf',
 'level': 1,
 'persistence': {'A': 0.017,
  'alpha': 0.045,
  'dx': 50000.0,
  'gamma': 1,
  'index': array([    5920,     6201,     6202, ..., 16702999, 16703000, 16706403],
        shape=(9855,)),
  't': array([61344.00059815, 61344.00059815, 61344.00059815, ...,
         61344.00059815, 61344.00059815, 61344.00059815], shape=(9855,)),
  'x': array([3203., 5999., 9530., ..., 3330., 3233., 4257.], shape=(9855,)),
  'x0': 60000.0},
 'simcatobj': array([(3251.983 , 4040.971 ,  21785.023, 0.35568213),
        (1823.7552, 2680.9565, 177165.3  , 0.5802121 ),
        (3233.524 , 1925.616 ,  37155.234, 0.17799616), ...,
        (2157.5808, 1560.2335,  60534.867, 0.03560209),
        (3014.4307, 1141.291 ,  40358.457, 0.03438997),
        (1880.8948, 2002.2448,  91580.14 , 0.03474903)],
       shape=(1745,), dtype=[('x', '<f4'), ('y', '<f4'), ('counts', '<f4'), ('time', '<f4')]),
 'simulate_reffiles': {'dark': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_dark_0444.asdf',
  'distortion': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_distortion_0014.asdf',
  'flat': None,
  'gain': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_gain_0022.asdf',
  'inverselinearity': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_inverselinearity_0017.asdf',
  'linearity': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_linearity_0003.asdf',
  'readnoise': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_readnoise_0024.asdf',
  'saturation': '/Users/desjard/refdata/crds/references/roman/wfi/roman_wfi_saturation_0031.asdf'},
 'stpsf': True,
 'usecrds': True,
 'version': '0.8.0',
 'wcs': <WCS(output_frame=world, input_frame=detector, forward_transform=Model: CompoundModel
 Inputs: ('x0', 'x1')
 Outputs: ('lon', 'lat')
 Model set size: 1
 Expression: [0] & [1] | [2] & [3] | [4] | [5] & [6] | [7] | [8] & [9] | [10] & [11] | [12] | [13] & [14] | [15] | [16] | [17]
 Components: 
     [0]: <Shift(offset=1.)>
 
     [1]: <Shift(offset=1.)>
 
     [2]: <Shift(offset=-2044.5)>
 
     [3]: <Shift(offset=-2044.5)>
 
     [4]: <Mapping((0, 1, 0, 1))>
 
     [5]: <Polynomial2D(5, c0_0=0., c1_0=0.11034133, c2_0=-0.00000003, c3_0=-0., c4_0=0., c5_0=-0., c0_1=0.00034168, c0_2=-0.00000001, c0_3=-0., c0_4=-0., c0_5=0., c1_1=0.00000014, c1_2=-0., c1_3=0., c1_4=0., c2_1=0., c2_2=-0., c2_3=-0., c3_1=0., c3_2=-0., c4_1=-0.)>
 
     [6]: <Polynomial2D(5, c0_0=0., c1_0=0.00031436, c2_0=0.00000007, c3_0=0., c4_0=0., c5_0=-0., c0_1=0.10828278, c0_2=0.00000021, c0_3=-0., c0_4=0., c0_5=0., c1_1=-0.00000002, c1_2=-0., c1_3=-0., c1_4=0., c2_1=-0., c2_2=-0., c2_3=0., c3_1=-0., c3_2=-0., c4_1=-0.)>
 
     [7]: <Mapping((0, 1, 0, 1))>
 
     [8]: <Polynomial2D(1, c0_0=0., c1_0=-0.5, c0_1=-0.8660254)>
 
     [9]: <Polynomial2D(1, c0_0=0., c1_0=-0.8660254, c0_1=0.5)>
 
     [10]: <Shift(offset=1312.94914525)>
 
     [11]: <Shift(offset=-1040.78537268)>
 
     [12]: <Identity(2)>
 
     [13]: <Scale(factor=0.00027778)>
 
     [14]: <Scale(factor=0.00027778)>
 
     [15]: <SphericalToCartesian()>
 
     [16]: <RotationSequence3D(angles=[   0.42955128,    0.24799768,   60.        ,   -0.2       , -270.94      ])>
 
     [17]: <CartesianToSpherical()>
 Parameters:
     offset_0 offset_1 ...       factor_14                 angles_16           
     -------- -------- ... --------------------- ------------------------------
          1.0      1.0 ... 0.0002777777777777778 0.42955128282521254 .. -270.94)>}

Similarly, we can access the previously mentioned history section of the file using the ASDF tree and bracket notation to find some package version information that may be useful to us. This includes, for example, the roman_datamodels version used to create the file.

g.tree['history']
{'extensions': [{'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://asdf-format.org/core/extensions/core-1.6.0',
   'manifest_software': {'name': 'asdf_standard', 'version': '1.1.1'},
   'software': {'name': 'asdf', 'version': '4.1.0'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.3.0',
   'manifest_software': {'name': 'asdf_wcs_schemas', 'version': '0.4.0'},
   'software': {'name': 'gwcs', 'version': '0.22.1'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://astropy.org/astropy/extensions/units-1.0.0',
   'software': {'name': 'asdf-astropy', 'version': '0.7.1'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://stsci.edu/datamodels/roman/extensions/datamodels-1.0',
   'manifest_software': {'name': 'rad', 'version': '0.23.1'},
   'software': {'name': 'roman_datamodels', 'version': '0.23.1'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://asdf-format.org/astronomy/coordinates/extensions/coordinates-1.0.0',
   'manifest_software': {'name': 'asdf_coordinates_schemas',
    'version': '0.3.0'},
   'software': {'name': 'asdf-astropy', 'version': '0.7.1'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://asdf-format.org/astronomy/extensions/astronomy-1.0.0',
   'manifest_software': {'name': 'asdf_standard', 'version': '1.1.1'},
   'software': {'name': 'asdf-astropy', 'version': '0.7.1'}},
  {'extension_class': 'asdf.extension._manifest.ManifestExtension',
   'extension_uri': 'asdf://asdf-format.org/transform/extensions/transform-1.6.0',
   'manifest_software': {'name': 'asdf_transform_schemas', 'version': '0.5.0'},
   'software': {'name': 'asdf-astropy', 'version': '0.7.1'}}]}

During Roman development, you may have an outdated version of a file that does not conform to the installed version of roman_datamodels, but you may want to open the file anyway. This may be to just get something out of the file that you need, or you may want to try manually fixing the file to conform to the latest schema. In any case, you can still open the file with asdf.open() if you disable the schema validation like so:

asdf_file_uri_l1 = asdf_dir_uri + 'r0003201001001001004_0001_wfi01_f106_uncal.asdf'

with fs.open(asdf_file_uri_l1, 'rb') as fb:
    with asdf.config_context() as cfg:
        cfg.validate_on_read = False
        af = asdf.open(fb)

Note that if your file does not conform to the installed version of roman_datamodels, then you will need to leave it as an AsdfFile object and not try to pass it to roman_datamodels.open().

Additional Resources#

For more information about Roman data products and additional resources please consider visiting the links below:


About this Notebook#

Author: Javier Sánchez, William Schultz, Tyler Desjardins

Updated On: 2025-05-26

↑ Top of page