SciPy 2024

Lonboard: Fast, interactive geospatial vector data visualization in Jupyter
07-12, 11:25–11:55 (US/Pacific), Room 316

Lonboard is a new Python library for geospatial vector data visualization that can be 50x faster than existing alternatives like ipyleaflet or pydeck. This talk will explain why this library is so fast, how it integrates into existing workflows, and planned future improvements.


Visualization, especially interactive visualization, is often the initial step in extracting meaningful insights from data. But it's too hard to quickly and interactively visualize large geospatial vector data from Python.

ipyleaflet and folium are great for small datasets, but their performance quickly suffers as data sizes grow into the tens of thousands. Pydeck supports slightly larger datasets, but it, too, struggles with data sizes above 100,000 coordinates. GeoPandas' plot creates a static image, which loses out on the benefits of interactivity.

I've been working on Lonboard, a new Python library, to fill this need. On a dataset with 3 million points, ipyleaflet crashed after 3.5 minutes, pydeck crashed after 2.5 minutes, but Lonboard successfully rendered in 2.5 seconds.

While Lonboard and pydeck use the same underlying JavaScript visualization library (deck.gl), Lonboard is so much faster because it moves data from Python to JavaScript (in your browser) and then from JavaScript to your GPU more efficiently than ever before. Most other visualization tools encode data as GeoJSON internally, which is extremely slow to read and write and results in a very large data file that must be copied to the browser. In contrast, Lonboard leverages new technologies like GeoParquet and GeoArrow to keep data in an efficient binary format through the entire pipeline from Python to browser to GPU.

While this may sound complex, Lonboard presents the user with high-level APIs — integrating with today's most popular libraries – to abstract away as much complexity as possible. Lonboard accepts GeoPandas and Shapely input, connects to Numpy and Matplotlib for efficient colormap generation, and ties to Panel and Shiny for creating dashboards.

This talk will give a brief overview of the internal innovations that make Lonboard so fast, then detail how to make the most of Lonboard for visualizing large data.

Kyle is a software engineer at Development Seed where he builds open source tools and infrastructure that process and visualize geospatial data. He has expertise in cloud-native geospatial vector data formats, speeding up Python and JavaScript applications from Rust, spatial indexes, and efficient data pipelines. Kyle holds a B.A. in Economics, minoring in Mathematics from the University of California, Los Angeles which he earned in 2017.

Kyle previously worked as a software engineer at Unfolded and then Foursquare, building browser-based geospatial data visualizations on the web for vector and raster data.