Native Cloud-Optimized GeoTIFF support in Lonboard!
- Stream massive COGs on demand
- Full control over image rendering: apply colormaps, change band combinations, use ML models
- Read COGs from anywhere, including local files and private data (via Obstore)
developmentseed.org/lonboard/lat...
Posts by Kyle Barron
An interactive geotiff viewer extension for #vscode / #positron powered by @kylebarron.dev's amazing deck.gl-raster. Just click on a tif file and take a peek. Early days but give it a spin and let me know if there are any issues. โ๏ธ
github.com/belian-earth...
It definitely wouldn't be as performant as a COG, but if we can still render it, that would be good
Feel free to create an issue in deck.gl-raster about stripped GeoTIFFs. They probably wouldn't be too hard to support. If you had example stripped GeoTIFFs that would help too
Cool!
- we'll have high-level APIs to control GPU based rendering, but those need some thought. The UI is a hard part
- we'll support (Geo)Zarr soonish, and it would be cool to support it too
- deck.gl-raster doesn't use geotiff.js anymore; not sure if you use it separately
Gif for #2: enhanced tile refinement
developmentseed.org/deck.gl-rast...
Three updates in deck.gl-raster v0.4:
1. New example for NDVI filtering on the GPU
2. When zooming in, render coarser image data while higher-res data is still loading
3. Fixed reprojection and rendering at high latitudes
developmentseed.org/deck.gl-rast...
๐๐๐๐ค.๐ ๐ฅ-๐ซ๐๐ฌ๐ญ๐๐ซ ๐ฏ0.3: fast GeoTIFF visualization in deck.gl
- ๐๐๐ฐ ๐๐ฒ๐ฉ๐๐๐๐ซ๐ข๐ฉ๐ญ ๐๐๐จ๐๐๐
๐
๐ฅ๐ข๐๐ซ๐๐ซ๐ฒ: high-level & fully-typed. We've fully migrated off of geotiff.js
- ๐๐ฎ๐ญ๐จ ๐๐จ๐๐๐ญ๐ ๐ฆ๐๐ฌ๐ค๐ข๐ง๐
- ๐๐จ๐ฆ๐ฉ๐ซ๐๐ฌ๐ฌ๐๐ ๐๐๐๐ ๐๐๐ญ๐๐๐๐ฌ๐ to 309kb
- ๐๐๐ฐ ๐ฉ๐จ๐ซ๐ญ๐ฌ of Affine and Morecantile to TS
developmentseed.org/deck.gl-rast...
Also in Lonboard, new logo! Designed by @gusbusdraws.bsky.social, who also designed the @developmentseed.org Cloud Native Zine
developmentseed.org/blog/2025-02...
zines.developmentseed.org/zines/cloud-...
Lonboard v0.15 now supports geocoding! Easily jump the map to locations, using any geocoder service of your choice.
developmentseed.org/lonboard/lat...
@developmentseed.org
New example of categorical data filtering on the GPU:
New Lonboard release makes the first step towards rich ๐ซ๐๐ฌ๐ญ๐๐ซ data visualization in Python, starting with PMTiles!
developmentseed.org/lonboard/lat...
- New RasterLayer, supporting PMTiles input via async-pmtiles github.com/developments...
- New support for categorical data filtering on the GPU
Building on Vincent Sarago's work, I updated and published ๐๐ฌ๐ฒ๐ง๐-๐ฉ๐ฆ๐ญ๐ข๐ฅ๐๐ฌ, an asynchronous PMTiles reader for Python: github.com/developments...
This integrates with Obstore for efficiently reading remote files and Obspec for extensibility.
Published a new version of async-geotiff:
- Support for reading band-interleaved GeoTIFFs and Cloud-Optimized GeoTIFFs
- Initial support for decoding LERC, LERC_DEFLATE, LERC_ZSTD images
- Fix computation of image bounds and resolution for rotated images
github.com/developments...
Introducing ๐๐ฌ๐ฒ๐ง๐-๐๐๐จ๐๐๐
๐
, a new library for reading GeoTIFFs and COGs. developmentseed.org/async-geotif...
- Fast, with a Rust core
- Uses a non-blocking thread pool for image decoding
- Integrates with NumPy, PyProj, Affine & Morecantile
- Remote data support with Obstore
- No GDAL dependency
New version of async-tiff: Fast, async reading of TIFFs, GeoTIFFs & COGs in Rust and Python: developmentseed.org/async-tiff
- New Array class for zero-copy data sharing between Rust/numpy
- Separate CPU-bound and IO-bound work, decoding image data in a thread pool
- Revamped metadata block caching
There's a section in the docs for third party showcase; this would be a great example to put there if you have any public facing examples
wikipedia turns 25 today! the last unenshittified major website! backbone of online info! triumph of humanity! powered by urge of unpaid randos to correct each other! somehow mostly reliable! "good thing wikipedia works in practice, because it sure doesn't work in theory" - old wiki adage
Visualize a mosaic of NAIP imagery loaded from @microsoft.com Planetary Computer COGs, all in your browser, no server involved.
Render true color, false color infrared, or NDVI. developmentseed.org/deck.gl-rast...
Built at @developmentseed.org with deck.gl-raster: github.com/developments...
Thank you! Yes the goal was that it would be general enough, but it really requires a WebGL renderer. I can't remember if Leaflet supports that for rasters
yes essentially. I'm minimizing reprojection error instead of distance to the terrain surface
Announcing deck.gl-raster: ๐๐ฎ๐ฅ๐ฅ๐ฒ ๐๐ฅ๐ข๐๐ง๐ญ-๐ฌ๐ข๐๐ ๐๐๐ ๐ซ๐๐ง๐๐๐ซ๐ข๐ง๐ . No server required.
1.3 ๐ ๐ข๐ ๐๐๐ฒ๐ญ๐ COG, streamed directly into the browser: developmentseed.org/deck.gl-rast...
- GPU-accelerated raster reprojection
- GPU image processing for colormaps, nodata values
- Efficient use of COG overviews
Rendering H3 data with H3HexagonLayer
Maplibre text labels rendered above Lonboard layer
Released Lonboard v0.13!
- New layer types: H3, S2, Geohash, A5 and fixed HeatmapLayer
- Render data layers beneath Maplibre text labels
- Map UI controls: scale, fullscreen, navigation
- Significant performance improvements: fixing earlier regressions
developmentseed.org/lonboard/lat...
I'm happy to announce I've been promoted to an Apache Arrow Committer, meaning I'm authorized to merge code patches into Arrow repositories!
I join this list of amazing people: arrow.apache.org/committers/
Thank you! I also hope to have a blog post on Python-Rust interop sometime
If it's in Rust, docs.rs/pyo3-arrow makes it really easy to connect Rust to Python.
New blog post! kylebarron.dev/blog/fast-py...
This dives into performance pitfalls of Python bindings, why projects like Lonboard are so fast, and why I care about Apache Arrow so much. The post is high level and you don't need to know C/C++/Rust to understand it!
F3: The Open-Source Data File Format for the Future SIGMOD 2025
Our SIGMOD paper with our friends at Tsinghua + @wesmckinney.com + @pateljm.bsky.social on creating a next generation open-source data file format is out. F3 is a future-proof file format avoids the mistakes of Parquet.
๐ Paper: db.cs.cmu.edu/papers/2025/...
๐ Code: github.com/future-file-...
Last week Apache Sedona announced SedonaDB...and now I finally get to write about it! Here I use SedonaDB to demonstrate the explore/iterate/visualize cycle...SedonaDB's CRS support + @kylebarron.dev's `lonboard` is ๐ for exploring new data!)
dewey.dunnington.ca/post/2025/st...