Skip to content

feat: complete Roman WFI filters (Medium tier fix + new Deep tier survey) - #133

Merged
aboucaud merged 3 commits into
mainfrom
add-roman-wfi-remaining-filters
Sep 30, 2026
Merged

aboucaud merged 3 commits into
mainfrom
add-roman-wfi-remaining-filters

Conversation

@aboucaud

@aboucaud aboucaud commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

This PR originally set out to add Roman WFI's 4 missing filters (F062, F087, F184, F213) directly into Roman_WFI.yaml. Code review caught that this was wrong: Roman_WFI.yaml's own description says "HLWAS medium tier," and per Roman's own survey definition (https://roman-docs.stsci.edu/roman-community-defined-surveys/high-latitude-wide-area-survey):

  • Medium tier uses exactly F106, F129, F158 at 642s exposure (107s/dither × 3 dithers × 2 passes) — this is exactly what the original 3 filters already were. Correct, unchanged.
  • F087, F184, F213 are Deep-tier-only filters, with a real exposure of 4410s (294s/dither × 3 dithers × 5 passes) — not 642s as originally added.
  • F062 isn't used anywhere in HLWAS (Wide, Medium, Deep, or Ultra-Deep tier) at all.

Fixed by:

  • Reverting Roman_WFI.yaml to its original, correct 3-filter Medium tier content (F106, F129, F158 @ 642s) — verified byte-identical to the pre-PR state.
  • Adding a new Roman_WFI_Deep.yaml survey for the actual Deep tier filter set: F087, F106, F129, F146, F158, F184, F213, each at the correct exposure (4410s, or 5292s for F146, which gets 6 passes instead of 5 per the Deep tier spec).

zeropoint, psf_fwhm, sky_brightness, effective_wavelength are filter-intrinsic (detector/optics properties independent of survey strategy) and reuse the already-verified values from RomanSpaceTelescope/roman-technical-information (zeropoints, filter parameters, zodiacal light, and the SCA1 effective-area curve for the photon-weighted effective_wavelength, computed with speclite's actual convolution formula). F146's values were computed fresh with the same validated methodology.

Test plan

  • python3 -c "import surveycodex; ..." — both Roman_WFI (3 filters) and Roman_WFI_Deep (7 filters) load with correct values and units
  • python -m surveycodex and surveycodex --refs run cleanly
  • pre-commit run --all-files passes
  • pytest --cov — 36 passed
  • git diff f8ee928 -- surveycodex/data/Roman_WFI.yaml is empty — confirms the Medium tier file is back to its original, correct content

🤖 Generated with Claude Code

@aboucaud aboucaud mentioned this pull request Sep 30, 2026
3 of 4 tasks
aboucaud and others added 2 commits October 1, 2026 00:38
Add Roman High-Latitude Wide-Area Survey (HLWAS) medium tier data for the
Nancy Grace Roman Space Telescope WFI, following the surveycodex schema.

All values are sourced from the authoritative Roman references and cited
in `references`:
- pixel scale, mirror diameter: RomanSpaceTelescope/roman-technical-information
- gain, obscuration: Roman WFI ETC appendix (RDox)
- zeropoint, PSF FWHM, sky brightness: Roman/WFI 2024-03-01 SCA1 tables
- full exposure time: HLWAS medium tier (107 s x 3 dithers x 2 passes)

Effective wavelengths are the photon-weighted means of the official SCA1
effective-area curve (speclite convention).

Roman is a space telescope, so it also joins the satellite-icon list in
the rich display.
Roman WFI has 7 imaging filters; only F106, F129, and F158 were
previously included. Add the remaining 4, with zeropoint, psf_fwhm,
sky_brightness, and effective_wavelength sourced the same way as the
existing filters: values from RomanSpaceTelescope/roman-technical-information
(Roman_zeropoints_20240301.ecsv, filter_parameters.ecsv,
zodiacal_light.ecsv), and effective_wavelength computed as the
photon-weighted mean of the SCA1 effective-area curve
(Roman_effarea_v8_SCA01_20240301.ecsv), matching speclite's
photon-weighted convolution convention. The formula was validated by
reproducing the existing F106/F129/F158 effective_wavelength and
sky_brightness values exactly before computing the new ones.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@aboucaud
aboucaud force-pushed the add-roman-wfi-remaining-filters branch from d4dc682 to 86fcd69 Compare September 30, 2026 22:38
…rvey

Code review on PR #133 caught a data-correctness bug in the previous
commit: F062, F087, F184, and F213 were added to Roman_WFI.yaml (whose
description explicitly says "HLWAS medium tier") with
full_exposure_time reused from the Medium tier's 642s. Verified against
Roman's own HLWAS survey definition
(roman-docs.stsci.edu/roman-community-defined-surveys/high-latitude-wide-area-survey):

- F106, F129, F158 (the original 3 filters) are exactly the Medium
  tier's imaging filters, at 642s (107s/dither x 3 dithers x 2 passes).
- F087, F184, F213 are Deep-tier-only filters, whose real exposure is
  4410s (294s/dither x 3 dithers x 5 passes) -- not 642s.
- F062 isn't used anywhere in HLWAS (Wide, Medium, Deep, or Ultra-Deep).

Fix: revert Roman_WFI.yaml to its original, correct 3-filter Medium
tier content, and add a new Roman_WFI_Deep.yaml survey for the Deep
tier's actual filter set (F087, F106, F129, F146, F158, F184, F213),
with each filter's correct exposure time (4410s, or 5292s for F146
which gets 6 passes instead of 5). zeropoint/psf_fwhm/sky_brightness/
effective_wavelength are filter-intrinsic (detector+optics properties,
independent of survey tier) and were already verified correct in the
reverted commit; F146's values were computed fresh using the same
already-validated methodology.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@aboucaud aboucaud changed the title feat: add remaining Roman WFI filters (F062, F087, F184, F213) feat: complete Roman WFI filters (Medium tier fix + new Deep tier survey) Sep 30, 2026
@aboucaud
aboucaud merged commit d0d5fdf into main Sep 30, 2026
7 checks passed
@aboucaud
aboucaud deleted the add-roman-wfi-remaining-filters branch September 30, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant