deck.gl-raster performs raster reprojection on the GPU. It's hard to explain, so I created this interactive explainer: developmentseed.org/deck.gl-rast...
Kyle Barron
Kyle Barron
@kylebarron.dev
Creating the next generation of geospatial data tools for Python & the browser with GeoArrow, GeoParquet & GeoRust @developmentseed | he/him 🌈
737 followers336 following103 posts
New deck.gl-raster v0.9! Fixed antimeridian rendering, broader GeoTIFF, new examples & interactive "explainers" for understanding how the library works under the hood. developmentseed.org/deck.gl-rast...
Kyle Barron reposted
A preview of deck.gl-raster support for alternative viewing projections. deck.gl v10 should be released in the next few months and will support rendering data in arbitrary projections. developmentseed.org/deck.gl-rast...
New Lonboard release! developmentseed.org/lonboard/lat... - Improved DuckDB integration with its native Geometry data type - Pyodide/JupyterLite support to run entirely in the web browser - A ton of small bug fixes that were open for a long time
Published deck.gl-raster v0.8! - Initial globe view support - New icechunk example - Improved request latency for MosaicLayer - Fixed reprojection for images extending beyond ±85° latitude - Improved rendering precision at high zooms - Improved performance developmentseed.org/deck.gl-rast...
Zarrista: a new, faster Python library for working with Zarr data! 1.9x to 2.7x faster than Zarr-Python for reading local data. developmentseed.org/zarrista/lat...
Big speedups in deck.gl-raster v0.7: Retina display support, faster GPU pixel filtering, minimized latency to render 200GB COGs, center-out tile loading developmentseed.org/deck.gl-rast... Thanks to @developmentseed.org for supporting this work!
New deck.gl-raster example that compares two image sources with a slider. developmentseed.org/deck.gl-rast...
New: Zarr support in deck.gl-raster! Here's a GPU-driven animation of Zarr temperature forecasts, fully client-side, no server involved. developmentseed.org/deck.gl-rast...
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...
Kyle Barron reposted
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...
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 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
Kyle Barron reposted
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...
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
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/
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!
Kyle Barron reposted
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-...
Kyle Barron reposted
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...
New Lonboard release and new demo! Integrating marimo and Apache DataFusion to visualize the NYC taxi dataset. developmentseed.org/lonboard/lat...
Lonboard's 0.12 release improved the support for GeoArrow data types, and is moving towards being fully GeoArrow-native. Shapely is no longer a required dependency! github.com/developments...
New Lonboard release and new demo! Integrating marimo and Apache DataFusion to visualize the NYC taxi dataset. developmentseed.org/lonboard/lat...
I've been working on geospatial extensions for the Apache DataFusion SQL query engine, using GeoArrow as the underlying compute layout. It's early, but I'm working on fleshing out the PostGIS API. And there are Python bindings too! github.com/datafusion-c...
Published a new version of parquet-wasm: github.com/kylebarron/p... - Update to latest version of Rust parquet crate - Workaround to read Parquet data containing Arrow string view/binary view types - Streaming writes - Comparison between parquet-wasm and hyparquet, a pure-JavaScript Parquet reader
Published arro3-core v0.6 with wider dtype support for converting numpy ndarrays to Arrow. It now additionally supports: - datetime64 - timedelta64 - fixed-width strings/bytes - variable-width strings - object arrays of str/bytes And the Python wheel is still just 2.5MB! github.com/kylebarron/a...
New GeoArrow-Rust release (& Python bindings) with a dedicated FlatGeobuf reader and writer: - Fast bounding box queries, pushed down to the original file format - Sync/async data reading through obstore - Fully Rust with no GDAL means easy installation geoarrow.org/geoarrow-rs/...
New blog post on Obstore, fast, multi-provider cloud storage access for Python: developmentseed.org/blog/2025-08...
New example notebook on visualizing Spatially-Partitioned GeoParquet with Lonboard, Obstore, and GeoArrow-Rust, using Overture Maps Foundation data! developmentseed.org/lonboard/lat...
When the Delta Lake Python bindings take a required dependency on your library 😅. 2.6M downloads a month! 😱 Guess I'll never be making a breaking release now!! pypistats.org/packages/arr... arro3-core is 15x smaller in your environment than pyarrow! kylebarron.dev/arro3/latest/
Kyle Barron reposted
not every decade-old tech post holds up, but this one does: macwright.com/2012/06/13/p...
I'll be speaking at the NYC DataFusion meetup in September on geospatial support for DataFusion! lu.ma/qkcyycg0 DataFusion is a Rust-based query engine for building fast OLAP data processing systems. Compared to DuckDB, DataFusion is more modular and is designed to be embedded in larger systems.