Software

I build open-source tools for working with spatial and demographic data, mostly in R and increasingly with Rust backends. tidycensus and tigris alone have been downloaded nearly two million times from CRAN, and the full set of packages below more than 2.1 million times; they are used by researchers, journalists, planners, and analysts in academia, government, and industry. In 2026 the R Consortium funded the project Sustaining R’s Census Data Infrastructure to maintain and modernize tidycensus and tigris.

US Census data

tidycensus

Load US Census Boundary and Attribute Data as ‘tidyverse’ and ‘sf’-Ready Data Frames. tidycensus gives R users direct access to decennial Census, American Community Survey, Population Estimates, and migration flows data, with optional simple features geometry attached, so that demographic data are ready to analyze and map immediately.

Documentation · CRAN · GitHub

tigris

Load Census TIGER/Line Shapefiles. tigris downloads Census Bureau geographic data (states, counties, tracts, blocks, roads, water, and more) and loads it directly into R as simple features objects. Described in The R Journal (2016).

CRAN · GitHub

pygris

A Python port of tigris: use TIGER/Line shapefiles and other US Census Bureau data resources in Python, returning GeoPandas GeoDataFrames.

Documentation · PyPI · GitHub

idbr

R Interface to the US Census Bureau International Data Base API. Access historical and projected demographic data for countries around the world.

CRAN · GitHub

Mapping and visualization

mapgl

Interactive Maps with ‘Mapbox GL JS’ and ‘MapLibre GL JS’. mapgl brings WebGL-powered interactive mapping to R, with support for vector tiles, 3D layers, data-driven styling, and Shiny integration.

Documentation · CRAN · GitHub

mapboxapi

R Interface to ‘Mapbox’ Web Services. Optimize routes, draw isochrones, geocode addresses, read and write vector tiles, and use custom Mapbox styles in R mapping projects.

Documentation · CRAN · GitHub

freestiler

Create Vector Tiles from Spatial Data. A Rust-powered vector tile generator for R, Python, and DuckDB that turns large spatial datasets into tilesets ready for web mapping.

Documentation · CRAN · GitHub

pmtiles

Read and Write PMTiles Archives in R. PMTiles is a single-file, cloud-optimized archive format for map tiles; the package reads, inspects, and writes PMTiles archives and pairs with freestiler and mapgl for serverless web maps.

GitHub

Spatial analysis

spopt

Spatial Optimization for Regionalization, Facility Location, and Market Analysis. An R implementation, with a Rust backend, of the spatial optimization methods popularized by PySAL’s spopt: regionalization, location-allocation, and related problems.

Documentation · CRAN · GitHub

crsuggest

Obtain Suggested Coordinate Reference System Information for Spatial Data. crsuggest recommends appropriate projected coordinate systems for a dataset based on its location and extent.

CRAN · GitHub

geosam

Interface to Meta’s Segment Anything Model (SAM) for Geospatial Data. Apply SAM to georeferenced imagery from R and return the results as spatial features.

GitHub

Book

Analyzing US Census Data: Methods, Maps, and Models in R (CRC Press, 2023) is a full-length treatment of working with US Census data in R, from acquiring data with tidycensus and tigris through mapping, spatial analysis, and modeling. The book is free to read online.