Add Lunar Orbiter lens distortion support
- Dominant language
- XC
- Stars
- 18
- Forks
- 38
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 3
Description
The Lunar Orbiter high-resolution camera driver was added in pull request #553, which wired up LoHighCameraIsisLabelNaifSpiceDriver and the LoDistortion mix-in so ALE emits a "lunarorbiter" optical_distortion block. The lens distortion is not usable end to end, however: ALE emits only a partial coefficient set, and the model is never applied by USGSCSM.
On the ALE side, LoDistortion emits only the perspective factors and the point of symmetry (perspective_x, perspective_y, center_point_x, center_point_y). It omits the radial coefficients OD_K (k0, k1) that the ISIS LoHighDistortionMap uses. The code has a comment referring to CameraDistortionMap::SetDistortion. The emitted ISD therefore cannot reproduce the ISIS distortion.
To finish the ALE side, LoDistortion should also read INS_OD_K and include those coefficients in the "lunarorbiter" block, and getDistortionCoeffs in Util.cpp should extract them alongside the existing four parameters.
Then this needs propagating to USGSCSM. That one has the LUNARORBITER value in the DistortionType enum and maps the "lunarorbiter" name, but applyDistortion and removeDistortion have no case for it, so the distortion is never computed. That work is tracked in DOI-USGS/usgscsm#522.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the LoDistortion implementation and getDistortionCoeffs in Util.cpp, following the existing perspective and symmetry parameters and the comment about CameraDistortionMap::SetDistortion. Then review the USGSCSM work tracked in issue #522, including its applyDistortion and removeDistortion handling. Done means the lunarorbiter block includes the OD_K coefficients and USGSCSM applies and removes the distortion.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-vision
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100