Lonboard integration
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with the Lonboard PR #1179 and the linked lonboard-zarr-support-design.md specification, then read issue #29 about xarray's async API. Trace how Lonboard and deck.gl-raster are expected to split non-spatial and spatial selection and how async tile loads return data to the browser. Done would be a defined integration supporting the described viewport chunk loading and future animated stacks.
Written by the indexing model from the issue text.
Description
https://github.com/developmentseed/lonboard/pull/1179 is starting to prototype what a Lonboard-xarray integration looks like. See https://github.com/developmentseed/lonboard/blob/d9eae7c022d6813b15ed5d2687348926e2c78249/dev-docs/superpowers/specs/2026-04-23-lonboard-zarr-support-design.md for ideas brainstormed with claude.
- The user will define the selection over the non-spatial dimensions; Lonboard/deck.gl-raster will define the per-chunk selection over the spatial dimensions.
- When the user moves the frontend map, deck.gl issues a tile request, which reaches the Python side of Lonboard, and then Lonboard issues an async tile load for that tile. When the async task finishes, it sends the data back to the frontend to be visualized.
- So Lonboard will issue a separate xarray async load for each of the spatial chunks that are currently visible in the viewport.
- Because the user's Python session is fetching all of the chunks in the viewport concurrently, the callback must be async. Hence why I'm looking to use xarray's async API (ref #29)
- Medium term work will move an entire 4D stack of raw pixel data to the browser, which can then be animated in the browser
I think this will be really cool to do arbitrary band math on animated COG data cubes on the fly
- Dominant language
- Python
- Stars
- 55
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from developmentseed/lazycogs
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
developmentseed/lazycogs#89 · 1 reaction ·
-
single scene loadingOpen
Difficulty 5/5 Over a week Newbie friendliness 25/100
developmentseed/lazycogs#85 · 2 comments · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
developmentseed/lazycogs#51 · 1 reaction ·
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
developmentseed/lazycogs#50 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
developmentseed/lazycogs#42 · 8 comments · 2 reactions ·
All issues in developmentseed/lazycogs
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
task
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
danparshall/claude_researcher#87 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
datajoint/datajoint-python#1586 ·
Maintainers usually reply within 1 day
-
1D intercept of length 1 is accepted as `fix_params` in population GLM with more than 1 unitPossibly taken @dhvani7014 claimed this today. Openbug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
flatironinstitute/nemos#642 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
uniswap-python/uniswap-python#487 ·