Repository navigation
Fix LBD multiscale descriptor NPZ serialization - #169
Merged
Merged
Conversation
Store ragged multiscale line tuples in a one-dimensional object array before saving NPZ descriptors. Add a roundtrip regression test for the extractor cache. Prepared with OpenAI Codex.
Javgilavi
requested review from
B1ueber2y,
MarkYu98 and
rpautrat
as code owners
September 29, 2026 23:07
B1ueber2y
enabled auto-merge (squash)
September 30, 2026 06:45
B1ueber2y
disabled auto-merge
September 30, 2026 06:47
B1ueber2y
enabled auto-merge (squash)
September 30, 2026 06:52
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.
LBD extraction currently returns multiscale line tuples as a nested Python list. When
save_descinfo()passes that list tonp.savez, NumPy tries to make a homogeneous array and raisesValueErrorfor the ragged(scale, line)entries. This prevented descriptor caching during a LIMAP line-map run.Store the multiscale lines in a one-dimensional object array before returning the descriptor info. The list passed to
pytlbd.lbd_multiscale_pyris unchanged, and the saved array still gives the nested list expected byLBDMatcherafter.tolist().The new CI-marked test exercises extraction, NPZ save/load, and the nested line values. It fails at
np.savezbefore the fix and passes with the fix on NumPy 1.26.4. Ruff lint and format checks pass. I used an isolated Python-module test harness locally because my available compiled LIMAP binary is from v1.0.0 and is incompatible with currentmain; the full upstream build is left to CI.Prepared with OpenAI Codex.