Skip to content
Kyle Barron


All my projects are available at Github.



Python TypeScript Source

A Python library for fast, interactive geospatial vector data visualization in Jupyter.

Building on cutting-edge technologies like GeoArrow and GeoParquet in conjunction with GPU-based map rendering, Lonboard aims to enable visualizing large geospatial datasets interactively through a simple interface.


Python Rust Source

Python bindings to the core geoarrow-rs library implementing the GeoArrow specification with efficient spatial operations.


Rust Python JavaScript Source

GeoPolars extends the Polars DataFrame library for use with geospatial data.


Python Source

A fast, vectorized Python implementation of suncalc.js for calculating sun position and sunlight phases (times for sunrise, sunset, dusk, etc.) for the given location and time.


Cython Python Source

A Cython port of Martini for fast RTIN terrain mesh generation, 2-3x faster than Martini in Node.

This was my first time using Cython and I was thrilled with its ease of use and performance. Upon first porting the original JavaScript Martini code to pure Python, it was taking around 5 seconds to generate one tile. After converting to Cython, it's within 50 milliseconds.


Python Source

Python bindings to hmm for fast terrain mesh generation. I figured out just enough C++ to connect hmm to pybind11.


Python Source

A fast Python Quantized Mesh encoder. Encodes a mesh with 100k coordinates and 180k triangles in 20ms.

With judicious use of vectorized Numpy functions, I was able to achieve speeds of at least 100x faster than an existing Python library.


Python Bash Source

Scripts to generate contours, hillshade, Terrain RGB, and slope-angle shading tiles from Digital Elevation Model (DEM) data.


Python Source

Scripts to generate high-resolution aerial imagery tiles from USDA National Agriculture Imagery Program (NAIP) data.


Python Source

Scripts to generate map tiles from US Forest Service Topo quadrangle maps.


Python Bash Source

Scripts to generate vector tile contours from USGS contour data.


Python Source

Serverless high-resolution NAIP map tiles from Cloud-Optimized GeoTIFFs for the lower 48 U.S. states.

The server was shut off after a very large AWS bill.

usgs-topo-tiler & usgs-topo-mosaic

usgs-topo-tiler is a Python package to read Web Mercator map tiles from USGS Historical Topographic Maps. usgs-topo-mosaic is a fork of cogeo-mosaic-tiler to serve USGS Historical Topographic map tiles on demand. Together, they enable serving map tiles on demand from the USGS's public collection of 181,000 historical topographic maps.

The server was shut off after a very large AWS bill.


Python Source

Python library and command line interface to quickly and easily query elevation values on Digital Elevation Models. The command line interface can add elevations to a provided GeoJSON FeatureCollection.


Python Source

Python library and command line interface to quickly and interactively visualize geospatial data with Since I work with GIS data in Python, I use this whenever I need to see my data on a map.

JavaScript & TypeScript


Rust Source

Rust-based WebAssembly bindings to read and write Apache Parquet data


TypeScript Source layers for rendering GeoArrow data.


TypeScript Source

Zero-copy reading of Arrow data from WebAssembly.

JavaScript GLSL Source layers and WebGL modules for client-side satellite imagery analysis.


TypeScript Source

Snap vector features to the faces of a triangulated irregular network (TIN)



Rust Source

A Rust implementation of the GeoArrow specification and bindings to GeoRust algorithms for efficient spatial operations on GeoArrow memory.


Rust Source

Geospatial extensions for the Polars DataFrame library.


Rust Source

A Rust crate for packed, static, zero-copy spatial indexes.


Rust Source

Building block library for using Apache Arrow in Rust WebAssembly modules.


National Scenic Trails Guide

An open-source project for exploring and navigating U.S. National Scenic Trails, starting with the Pacific Crest Trail.

The website is designed to bring together most information hikers want: data overlays exist for land management boundaries, current and historical wildfires, public transit options near the trail or trail towns, current air quality, photography, and Wikipedia articles. All units, including peak elevations and contour lines, can be switched between Imperial and Metric.

Essentially all data generation is automated, to allow for the possibility of expanding to other National Scenic Trails in the future.

OSM Liberty Topo


A free topographic Mapbox GL basemap style with complete liberty to use and self host. This is a fork of OSM Liberty and combines vector tiles in the schema of OpenMapTiles with contour lines and hillshading to create a beautiful topographic vector map.

OSM Liberty


OSM Liberty is one of the best free Mapbox GL basemap styles for general use. I contributed styling for river names and glacier land cover.

All Transit

JavaScript Bash Python Source

A visualization of all public transit in the world (or at least what exists in the Transitland database). Zoom into a city in the U.S. to see an animation of transit vehicles moving along their routes.

I use Python, jq, and sqlite to download and analyze the source data. I use Gatsby and React for the website structure. I use React Map GL/Mapbox GL JS and for the map rendering; the former for the route geometries and the latter for the schedule animation. I use d3 to generate a high-resolution static image of transit in the continental U.S.


Stata Jupyter Kernel

Python Source

Connects the Stata statistical package to the Jupyter ecosystem, enabling researchers to use a modern data science toolkit with Stata.

Jupyter Notebooks permit sharing of code and results together, with simple reproducible modifications in a web-based computational environment. Alternative front-ends like Hydrogen allow for rich HTML output even from computations on a remote server.

As of February 2020, it has been downloaded nearly 90,000 times.


JavaScript Source

The Hydrogen project is a front-end for the Jupyter project, enabling interactive coding and rich output formats inside the Atom text editor. I contributed code that allowed Jupyter Notebook files to be imported and exported as regular Python files.


While working as an economics research assistant, I built a number of open-source tools that interface with the Stata statistical package to improve research reproducibility and increase productivity.


JavaScript Source

Send code to the Stata window from the Atom text editor. This is a more primitive version of running Stata code from Atom than the Jupyter kernel above.


Python Source

Syntax highlighting for Stata for the Atom text editor.


Java Source

A prototype Java implementation of reading Parquet files into Stata. My first Java project, I was able to successfully read Parquet files into Stata's memory, but it ended up being less performant than my friend Mauricio Caceres' C++ implementation.



Python Source

While working with Medicare data, I was frustrated with the fragmented state of public documentation regarding the data I was working with.

I scraped the ResDAC documentation website and joined it with public NBER documentation to create my own beautiful, responsive documentation website to help me search documentation faster. I used MkDocs as the static site generator and Material for MkDocs as the theming.


JavaScript Source

This website is built with GatsbyJS, starting from the gatsby-starter-minimal-blog template.