DOI-USGS / DOI-USGS/ale

Add Lunar Orbiter lens distortion support

Open
#729 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.