From f8ee92822406ca7dbcf4f31f988b6de63f06e3a7 Mon Sep 17 00:00:00 2001 From: Alexandre Boucaud Date: Wed, 30 Sep 2026 09:50:24 +0200 Subject: [PATCH 1/3] feat: add Roman WFI survey data 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. --- surveycodex/data/Roman_WFI.yaml | 60 +++++++++++++++++++++++++++++++++ surveycodex/rich.py | 2 +- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 surveycodex/data/Roman_WFI.yaml diff --git a/surveycodex/data/Roman_WFI.yaml b/surveycodex/data/Roman_WFI.yaml new file mode 100644 index 0000000..6b2ea41 --- /dev/null +++ b/surveycodex/data/Roman_WFI.yaml @@ -0,0 +1,60 @@ +name: "Roman_WFI" +description: "Roman High-Latitude Wide-Area Survey (HLWAS) medium tier done with the Nancy Grace Roman Space Telescope and the Wide Field Instrument (WFI)" +pixel_scale: 0.11 +gain: 1.67 +mirror_diameter: 2.4 +obscuration: 0.20252763 +zeropoint_airmass: 0.0 +filters: + F106: + name: "F106" + sky_brightness: 22.92 + full_exposure_time: 642 + zeropoint: 26.32 + psf_fwhm: 0.087 + effective_wavelength: 1073.633 + F129: + name: "F129" + sky_brightness: 22.96 + full_exposure_time: 642 + zeropoint: 26.32 + psf_fwhm: 0.106 + effective_wavelength: 1296.861 + F158: + name: "F158" + sky_brightness: 23.06 + full_exposure_time: 642 + zeropoint: 26.32 + psf_fwhm: 0.128 + effective_wavelength: 1596.115 +references: + pixel_scale: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/WFI_overview.yaml" + comment: "focal_plane_array.spatial_sampling" + gain: + link: "https://roman-docs.stsci.edu/simulation-tools/roman-wfi-exposure-time-calculator/etc-appendix-inputs-and-calculations" + comment: "IPC-corrected gain, i.e. the typical 1.8 e-/DN divided by the GSFC IPC correction factor of 1.08" + mirror_diameter: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/Observatory/MissionandObservatoryTechnicalOverview/MissionandObservatory.yaml" + comment: "Telescope_Parameters.primary_mirror_diameter – the aperture stop effective diameter is 2.36 m" + obscuration: + link: "https://roman-docs.stsci.edu/simulation-tools/roman-wfi-exposure-time-calculator/etc-appendix-inputs-and-calculations" + comment: "Using the collecting area coll_area = 36076.8 cm^2, the obscuration is 1-36076.8/(pi*240*240/4)" + zeropoint_airmass: + link: "" + comment: "Space telescope" + sky_brightness: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/ZodiacalLight/zodiacal_light.ecsv" + comment: "Minimum zodiacal light count rate per pixel converted with the filter zeropoint and the pixel scale – internal thermal background excluded" + full_exposure_time: + link: "https://roman-docs.stsci.edu/roman-community-defined-surveys/high-latitude-wide-area-survey" + comment: "HLWAS medium tier: 107 s per dither, 3 dithers, 2 passes" + zeropoint: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/ZeroPoints/Roman_zeropoints_20240301.ecsv" + comment: "ABMag zeropoint of detector WFI01 (SCA1), from the effective area curves of 2024-03-01" + psf_fwhm: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/FiltersSummary/filter_parameters.ecsv" + comment: "Simulated on SCA1 near the centre of the WFI field of view with a K0V input spectrum" + effective_wavelength: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/EffectiveAreas/Roman_effarea_v8_SCA01_20240301.ecsv" + comment: "Photon-weighted mean wavelength of the SCA1 effective area curve, following the speclite convention" diff --git a/surveycodex/rich.py b/surveycodex/rich.py index 2da6d96..be59ad7 100644 --- a/surveycodex/rich.py +++ b/surveycodex/rich.py @@ -7,7 +7,7 @@ def _rich_survey_name(survey): - if survey.name in ["Euclid_VIS", "COSMOS"]: + if survey.name in ["Euclid_VIS", "COSMOS", "Roman_WFI"]: icon = _SATELLITE else: icon = _TELESCOPE From 86fcd69a52e361f18f449570016e69a039e16f8b Mon Sep 17 00:00:00 2001 From: Alexandre Boucaud Date: Thu, 1 Oct 2026 00:25:41 +0200 Subject: [PATCH 2/3] feat: add remaining Roman WFI filters (F062, F087, F184, F213) 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 --- surveycodex/data/Roman_WFI.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/surveycodex/data/Roman_WFI.yaml b/surveycodex/data/Roman_WFI.yaml index 6b2ea41..92decab 100644 --- a/surveycodex/data/Roman_WFI.yaml +++ b/surveycodex/data/Roman_WFI.yaml @@ -6,6 +6,20 @@ mirror_diameter: 2.4 obscuration: 0.20252763 zeropoint_airmass: 0.0 filters: + F062: + name: "F062" + sky_brightness: 23.29 + full_exposure_time: 642 + zeropoint: 26.58 + psf_fwhm: 0.058 + effective_wavelength: 644.293 + F087: + name: "F087" + sky_brightness: 22.93 + full_exposure_time: 642 + zeropoint: 26.23 + psf_fwhm: 0.073 + effective_wavelength: 881.180 F106: name: "F106" sky_brightness: 22.92 @@ -27,6 +41,20 @@ filters: zeropoint: 26.32 psf_fwhm: 0.128 effective_wavelength: 1596.115 + F184: + name: "F184" + sky_brightness: 23.19 + full_exposure_time: 642 + zeropoint: 25.85 + psf_fwhm: 0.146 + effective_wavelength: 1850.203 + F213: + name: "F213" + sky_brightness: 23.34 + full_exposure_time: 642 + zeropoint: 25.81 + psf_fwhm: 0.169 + effective_wavelength: 2144.099 references: pixel_scale: link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/WFI_overview.yaml" From 4b25991f709954703ec07d8d4e28cc506fa259ff Mon Sep 17 00:00:00 2001 From: Alexandre Boucaud Date: Thu, 1 Oct 2026 00:52:20 +0200 Subject: [PATCH 3/3] fix: revert incorrect Medium-tier filters, add Roman WFI Deep tier survey 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 --- surveycodex/data/Roman_WFI.yaml | 28 --------- surveycodex/data/Roman_WFI_Deep.yaml | 88 ++++++++++++++++++++++++++++ surveycodex/rich.py | 2 +- 3 files changed, 89 insertions(+), 29 deletions(-) create mode 100644 surveycodex/data/Roman_WFI_Deep.yaml diff --git a/surveycodex/data/Roman_WFI.yaml b/surveycodex/data/Roman_WFI.yaml index 92decab..6b2ea41 100644 --- a/surveycodex/data/Roman_WFI.yaml +++ b/surveycodex/data/Roman_WFI.yaml @@ -6,20 +6,6 @@ mirror_diameter: 2.4 obscuration: 0.20252763 zeropoint_airmass: 0.0 filters: - F062: - name: "F062" - sky_brightness: 23.29 - full_exposure_time: 642 - zeropoint: 26.58 - psf_fwhm: 0.058 - effective_wavelength: 644.293 - F087: - name: "F087" - sky_brightness: 22.93 - full_exposure_time: 642 - zeropoint: 26.23 - psf_fwhm: 0.073 - effective_wavelength: 881.180 F106: name: "F106" sky_brightness: 22.92 @@ -41,20 +27,6 @@ filters: zeropoint: 26.32 psf_fwhm: 0.128 effective_wavelength: 1596.115 - F184: - name: "F184" - sky_brightness: 23.19 - full_exposure_time: 642 - zeropoint: 25.85 - psf_fwhm: 0.146 - effective_wavelength: 1850.203 - F213: - name: "F213" - sky_brightness: 23.34 - full_exposure_time: 642 - zeropoint: 25.81 - psf_fwhm: 0.169 - effective_wavelength: 2144.099 references: pixel_scale: link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/WFI_overview.yaml" diff --git a/surveycodex/data/Roman_WFI_Deep.yaml b/surveycodex/data/Roman_WFI_Deep.yaml new file mode 100644 index 0000000..97dade3 --- /dev/null +++ b/surveycodex/data/Roman_WFI_Deep.yaml @@ -0,0 +1,88 @@ +name: "Roman_WFI_Deep" +description: "Roman High-Latitude Wide-Area Survey (HLWAS) deep tier done with the Nancy Grace Roman Space Telescope and the Wide Field Instrument (WFI)" +pixel_scale: 0.11 +gain: 1.67 +mirror_diameter: 2.4 +obscuration: 0.20252763 +zeropoint_airmass: 0.0 +filters: + F087: + name: "F087" + sky_brightness: 22.93 + full_exposure_time: 4410 + zeropoint: 26.23 + psf_fwhm: 0.073 + effective_wavelength: 881.180 + F106: + name: "F106" + sky_brightness: 22.92 + full_exposure_time: 4410 + zeropoint: 26.32 + psf_fwhm: 0.087 + effective_wavelength: 1073.633 + F129: + name: "F129" + sky_brightness: 22.96 + full_exposure_time: 4410 + zeropoint: 26.32 + psf_fwhm: 0.106 + effective_wavelength: 1296.861 + F146: + name: "F146" + sky_brightness: 23.01 + full_exposure_time: 5292 + zeropoint: 27.54 + psf_fwhm: 0.105 + effective_wavelength: 1536.573 + F158: + name: "F158" + sky_brightness: 23.06 + full_exposure_time: 4410 + zeropoint: 26.32 + psf_fwhm: 0.128 + effective_wavelength: 1596.115 + F184: + name: "F184" + sky_brightness: 23.19 + full_exposure_time: 4410 + zeropoint: 25.85 + psf_fwhm: 0.146 + effective_wavelength: 1850.203 + F213: + name: "F213" + sky_brightness: 23.34 + full_exposure_time: 4410 + zeropoint: 25.81 + psf_fwhm: 0.169 + effective_wavelength: 2144.099 +references: + pixel_scale: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/WFI_overview.yaml" + comment: "focal_plane_array.spatial_sampling" + gain: + link: "https://roman-docs.stsci.edu/simulation-tools/roman-wfi-exposure-time-calculator/etc-appendix-inputs-and-calculations" + comment: "IPC-corrected gain, i.e. the typical 1.8 e-/DN divided by the GSFC IPC correction factor of 1.08" + mirror_diameter: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/Observatory/MissionandObservatoryTechnicalOverview/MissionandObservatory.yaml" + comment: "Telescope_Parameters.primary_mirror_diameter – the aperture stop effective diameter is 2.36 m" + obscuration: + link: "https://roman-docs.stsci.edu/simulation-tools/roman-wfi-exposure-time-calculator/etc-appendix-inputs-and-calculations" + comment: "Using the collecting area coll_area = 36076.8 cm^2, the obscuration is 1-36076.8/(pi*240*240/4)" + zeropoint_airmass: + link: "" + comment: "Space telescope" + sky_brightness: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/ZodiacalLight/zodiacal_light.ecsv" + comment: "Minimum zodiacal light count rate per pixel converted with the filter zeropoint and the pixel scale – internal thermal background excluded" + full_exposure_time: + link: "https://roman-docs.stsci.edu/roman-community-defined-surveys/high-latitude-wide-area-survey" + comment: "HLWAS deep tier: 294 s per dither, 3 dithers, 5 passes (6 passes for F146) – see 'Details of Deep Tier Observations'" + zeropoint: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/ZeroPoints/Roman_zeropoints_20240301.ecsv" + comment: "ABMag zeropoint of detector WFI01 (SCA1), from the effective area curves of 2024-03-01" + psf_fwhm: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/FiltersSummary/filter_parameters.ecsv" + comment: "Simulated on SCA1 near the centre of the WFI field of view with a K0V input spectrum" + effective_wavelength: + link: "https://github.com/RomanSpaceTelescope/roman-technical-information/blob/main/roman_technical_information/data/WideFieldInstrument/Imaging/EffectiveAreas/Roman_effarea_v8_SCA01_20240301.ecsv" + comment: "Photon-weighted mean wavelength of the SCA1 effective area curve, following the speclite convention" diff --git a/surveycodex/rich.py b/surveycodex/rich.py index be59ad7..0f0d4dc 100644 --- a/surveycodex/rich.py +++ b/surveycodex/rich.py @@ -7,7 +7,7 @@ def _rich_survey_name(survey): - if survey.name in ["Euclid_VIS", "COSMOS", "Roman_WFI"]: + if survey.name in ["Euclid_VIS", "COSMOS", "Roman_WFI", "Roman_WFI_Deep"]: icon = _SATELLITE else: icon = _TELESCOPE