Kyle Barron

557 Followers
146 Following
226 Posts
Creating the next generation of geospatial data tools for Python & the browser with GeoArrow, GeoParquet & GeoRust @developmentseed | he/him ๐ŸŒˆ

Lonboard v0.15 now supports geocoding! Easily jump the map to locations, using any geocoder service of your choice.

https://developmentseed.org/lonboard/latest/blog/2026/03/13/releasing-lonboard-015/

New Lonboard release makes the first step towards rich ๐ซ๐š๐ฌ๐ญ๐ž๐ซ data visualization in Python, starting with PMTiles!

- New RasterLayer, supporting PMTiles input via async-pmtiles
- New support for categorical data filtering on the GPU

Release post: https://developmentseed.org/lonboard/latest/blog/2026/02/12/releasing-lonboard-014
Full Changelog: https://developmentseed.org/lonboard/latest/CHANGELOG/#0140-2026-02-11

Building on Vincent Sarago's work, I updated and published ๐š๐ฌ๐ฒ๐ง๐œ-๐ฉ๐ฆ๐ญ๐ข๐ฅ๐ž๐ฌ, an asynchronous PMTiles reader for Python: https://github.com/developmentseed/async-pmtiles

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

https://github.com/developmentseed/async-geotiff/releases/tag/v0.2.0

Release v0.2.0 ยท developmentseed/async-geotiff

New Features feat: Support for band-interleaved data by @kylebarron in #80 feat: Add LERC decompression support by @kylebarron in #79 Fixes fix: Fix computation of bounds and res for rotated dat...

GitHub

Introducing ๐€๐ฌ๐ฒ๐ง๐œ-๐†๐ž๐จ๐“๐ˆ๐…๐…, a new high-level library for reading GeoTIFFs and Cloud-Optimized GeoTIFFs. https://developmentseed.org/async-geotiff/latest/blog/2026/02/03/introducing-async-geotiff/

- High-level & easy-to-use
- Load from full-resolution or reduced-resolution overviews
- Fast, with a Rust core
- Uses a non-blocking thread pool for image decoding
- Integration with NumPy, PyProj, Affine, & Morecantile
- Remote data support with Obstore
- Lightweight with no GDAL dependency
- Full type hinting
- Broad decompression support

A @developmentseed project.

Introducing Async-GeoTIFF - async-geotiff

A fast, async GeoTIFF and Cloud-Optimized GeoTIFF (COG) reader for Python.

We've released a new version of async-tiff. Fast, asynchronous reading of TIFFs, GeoTIFFs and Cloud-Optimized GeoTIFFs in Rust and Python. https://developmentseed.org/async-tiff/latest/

- New Array class for zero-copy data sharing between Rust and numpy
- Easily separate CPU-bound and IO-bound work, with native support for decoding image data on a Rust thread pool
- Revamped block caching for reading metadata
- Expanding tests
- Revamped Rust API for fetching TIFF metadata and image data

https://github.com/developmentseed/async-tiff/releases/tag/py-v0.4.0

async-tiff

A fast, low-level async TIFF reader powered by Rust.

Visualize a mosaic of NAIP imagery loaded from Microsoft Planetary Computer's STAC Collection, all in your browser, *no server involved*.

Switch between true color, false color infrared, and NDVI renderings. https://developmentseed.org/deck.gl-raster/examples/naip-mosaic/

Each of these tiles loading are individual Cloud-Optimized GeoTIFFs, loaded directly from Azure. Only the COGs in viewport are loaded and rendered.

Built at @developmentseed with deck.gl-raster: https://github.com/developmentseed/deck.gl-raster

@cartocalypse Yes, yes, strictly speaking you could call it a server, but for the purposes of this discussion it's at least a very reliable server that is very inexpensive and requires none of your own maintenance. The goal is to not need to always deploy your own additional server just to view raster imagery

@ianturton Literally every device you own and your clients own uses a GPU to render to screen. Probably every consumer device of the last 15 years. The GPU may be low powered, yes, but we aren't doing significant processing on the GPU. Just some band math, pixel filtering, and applying a lookup table (colormap).

That's why the example works just fine on mobile devices too.