feat: add Euclid NISP survey (Y, J, H photometric bands) - #136
Merged
Merged
Conversation
Euclid carries two instruments: VIS (already in Euclid_VIS.yaml) and NISP (near-infrared spectrometer and photometer), whose photometric channel images in Y, J, H -- previously completely absent from surveycodex. speclite ships all three NISP filter curves (Euclid-Y, Euclid-J, Euclid-H), so zeropoint and effective_wavelength are computed with speclite exactly like Euclid_VIS's IE filter, and validated by reproducing the existing Euclid_VIS zeropoint (25.92) and effective_wavelength (750.64 nm) with the same formula before trusting it for the new filters. NISP shares Euclid's 1.2 m telescope with VIS (same mirror_diameter/ obscuration), but has its own pixel scale, gain, and per-band sky_brightness/psf_fwhm/full_exposure_time, sourced from: - Scaramella et al. 2022 (arXiv:2108.01201), the Euclid Wide Survey definition paper, for pixel_scale (0.3"/px) and full_exposure_time (112s per band -- the single-pointing exposure in the reference observing sequence, matching the per-dither convention already used for Euclid_VIS's full_exposure_time=565s, its sibling instrument in the same survey). - The Euclid ERO compact/diffuse-emission photometry pipeline paper (arXiv:2405.13496), Table 2 and Sect. 4.3.7, for gain (2 e-/ADU, in-flight measured), sky_brightness, and psf_fwhm (both median in-flight values measured on stacked ERO survey images, per band). Also generalises the Euclid_VIS-only "IE" -> "VIS" filter-name mapping in scripts/check_zeropoints.py and check_effective_wavelengths.py into an EUCLID_FILTER_NAMES dict covering NISP's YE/JE/HE -> Y/J/H too, and wires Euclid_NISP into SPECLITE_SURVEY_PREFIXES so both scripts (run in CI) validate it against speclite, same as Euclid_VIS. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Addresses item 2.1 of
survey_upgrade_plan.md: Euclid carries two instruments, VIS (alreadyEuclid_VIS.yaml) and NISP (near-infrared spectrometer and photometer), whose photometric channel images in Y, J, H — previously completely absent fromsurveycodex.surveycodex/data/Euclid_NISP.yamlwith filtersYE,JE,HE(matching theIEnaming convention already used for VIS).zeropointandeffective_wavelengthcomputed withspeclite(Euclid-Y/-J/-H), exactly likeEuclid_VIS'sIEfilter — validated by first reproducingEuclid_VIS's existing zeropoint (25.92) and effective_wavelength (750.64 nm) with the same formula before trusting it for the new filters.mirror_diameter/obscurationreused fromEuclid_VIS(same shared 1.2 m telescope, split by a dichroic between VIS and NISP).pixel_scale(0.3"/px) andfull_exposure_time(112s/band) sourced from Scaramella et al. 2022 (arXiv:2108.01201), the Euclid Wide Survey definition paper — 112s is the single-pointing NISP exposure in the reference observing sequence, matching the per-dither convention already used forEuclid_VIS'sfull_exposure_time=565s.gain(2 e-/ADU),sky_brightness, andpsf_fwhmsourced from the Euclid ERO compact/diffuse-emission photometry pipeline paper (arXiv:2405.13496) — all in-flight measured values (gain and sky background from instrument performance sections, PSF FWHM from Table 2, measured on stacked ERO survey images).Euclid_VIS-only"IE" -> "VIS"filter-name mapping inscripts/check_zeropoints.pyandcheck_effective_wavelengths.pyinto anEUCLID_FILTER_NAMESdict covering NISP'sYE/JE/HE->Y/J/Htoo, and addedEuclid_NISPtoSPECLITE_SURVEY_PREFIXESso both CI-run scripts validate it against speclite, same asEuclid_VIS.Test plan
python3 -c "import surveycodex; ..."—Euclid_NISPloads with 3 filters and correct unitsscripts/check_zeropoints.pyandscripts/check_effective_wavelengths.py—Euclid_NISP's Y/J/H match speclite exactlypython -m surveycodexandsurveycodex --refsrun cleanlypython -m surveycodex --rich— renders with the satellite iconpre-commit run --all-filespassespytest --cov— 36 passed🤖 Generated with Claude Code