Forward axis_wavelength from image() through measure() to expose()#178
Conversation
…se()`. `AbstractImagingSensor.measure()` did not forward the wavelength axis to `expose()`, which then required `image.inputs.wavelength` to have exactly one logical axis. This made `SequentialSystem.image()` fail for any scene whose wavelength varies along more than one axis, e.g. several disjoint spectral lines each sampled by its own wavelength bins. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #178 +/- ##
=======================================
Coverage 99.34% 99.34%
=======================================
Files 116 116
Lines 5967 5983 +16
=======================================
+ Hits 5928 5944 +16
Misses 39 39
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…is case into `test_measure`. Per Roy's review on #178: - `measure()` signature now lists `axis_wavelength` immediately after `axis` (callers pass it by keyword, so the reorder is behavior-preserving). - The `test_measure_axis_wavelength` method is folded into `test_measure`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Thanks Roy — both addressed in
Verified locally: |
|
can you update the rtd os to be ubuntu-lts-latest? |
The `ubuntu-20.04` RTD build image is deprecated, causing the docs build to fail. Per Roy's review on #178. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Done in |
optika 2.0.1 forwards `axis_wavelength` through `measure()` to `expose()` (sun-data/optika#178), without which `system.image()` fails on multi-line scenes and the docs build of `reports/aia-image-simulation.ipynb` errors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
AbstractImagingSensor.measure()did not forward the wavelength axis toexpose(), which then requiredimage.inputs.wavelengthto have exactly onelogical axis. This made
SequentialSystem.image()fail for any scene whosewavelength varies along more than one axis — e.g. several disjoint spectral
lines each sampled by its own wavelength bins.
This surfaces downstream in
esis: imaging the synthetic multi-line AIA scene(
esis.flights.f1.data.synth.scene_aia(), axesvelocity+wavelength)through
system.image(..., axis_wavelength="velocity")raisesValueError: ...must have exactly one logical axisunder optika 2.0, breakingthe distortion-fit machinery and the docs build.
Change
measure()gains anaxis_wavelengthparameter and forwards it toexpose().image()forwards itsaxis_wavelengththroughmeasure().test_measure_axis_wavelength(red before, green after).Release note
A 2.0.x release including this is needed to unblock
esisPR #63 (which pinsoptika~=2.0); that PR currently fails its docs build on exactly this bug.🤖 Generated with Claude Code
@