Historical and Contemporary Boundaries of the United States of America

The boundaries for geographical units in the United States of America contained in this package include state, county, congressional district, and zip code tabulation area. Contemporary boundaries are provided by the U.S. Census Bureau (public domain). Historical boundaries for the years from 1629 to 2000 are provided form the Newberry Library's 'Atlas of Historical County Boundaries' (licensed CC BY-NC-SA). Additional data is provided in the 'USAboundariesData' package; this package provides an interface to access that data.

CRAN_Status_Badge JOSSStatus TravisStatus AppVeyor BuildStatus CoverageStatus


This R package includes contemporary state, county, and Congressional district boundaries, as well as zip code tabulation area centroids. It also includes historical boundaries from 1629 to 2000 for states and counties from the Newberry Library’s Atlas of Historical County Boundaries, as well as historical city population data from Erik Steiner’s “United States Historical City Populations, 1790-2010.” The package has some helper data, including a table of state names, abbreviations, and FIPS codes, and functions and data to get State Plane Coordinate System projections as EPSG codes or PROJ.4 strings.

This package can serve a number of purposes. The spatial data can be joined to any other kind of data in order to make thematic maps. Unlike other R packages, this package also contains historical data for use in analyses of the recent or more distant past. See the “A sample analysis using USAboundaries” vignette for an example of how the package can be used for both historical and contemporary maps.


If you use this package in your research, we would appreciate a citation.

#> To cite the USAboundaries package in publications, please cite the
#> paper in the Journal of Open Source Software:
#>   Lincoln A. Mullen and Jordan Bratt, "USAboundaries: Historical
#>   and Contemporary Boundaries of the United States of America,"
#>   Journal of Open Source Software 3, no. 23 (2018): 314,
#>   https://doi.org/10.21105/joss.00314.
#> A BibTeX entry for LaTeX users is
#>   @Article{,
#>     title = {{USAboundaries}: Historical and Contemporary Boundaries
#> of the United States of America},
#>     author = {Lincoln A. Mullen and Jordan Bratt},
#>     journal = {Journal of Open Source Software},
#>     year = {2018},
#>     volume = {3},
#>     issue = {23},
#>     pages = {314},
#>     url = {https://doi.org/10.21105/joss.00314},
#>     doi = {10.21105/joss.00314},
#>   }


You can install this package from CRAN.


Almost all of the data for this package is provided by the USAboundariesData package. That package will be automatically installed (with your permission) from the rOpenSci package repository the first time that you need it.

Or you can install the development versions from GitHub using devtools.



This package provides a set of functions, one for each of the types of boundaries that are available. These functions have a consistent interface.

Passing a date to us_states(), us_counties(), and us_cities() returns the historical boundaries for that date. If no date argument is passed, then contemporary boundaries are returned. The functions us_congressional() and us_zipcodes() only offer contemporary boundaries.

For almost all functions, pass a character vector of state names or abbreviations to the states = argument to return only those states or territories.

For certain functions, more or less detailed boundary information is available by passing an argument to the resolution = argument.

See the examples below to see how the interface works, and see the documentation for each function for more details.

library(sf) # for plotting and projection methods
#> Linking to GEOS 3.6.2, GDAL 2.2.3, proj.4 5.0.0
states_1840 <- us_states("1840-03-12")
title("U.S. state boundaries on March 3, 1840")

states_contemporary <- us_states()
title("Contemporary U.S. state boundaries")

counties_va_1787 <- us_counties("1787-09-17", states = "Virginia")
title("County boundaries in Virginia in 1787")

counties_va <- us_counties(states = "Virginia")
title("Contemporary county boundaries in Virginia")

counties_va_highres <- us_counties(states = "Virginia", resolution = "high")
title("Higher resolution contemporary county boundaries in Virginia")

congress <- us_congressional(states = "California")
title("Congressional district boundaries in California")

State plane projections

The state_plane() function returns EPSG codes and PROJ.4 strings for the State Plane Coordinate System. You can use these to use suitable projections for specific states.

va <- us_states(states = "VA", resolution = "high")
plot(st_geometry(va), graticule = TRUE)

va_projection <- state_plane("VA")
va <- st_transform(va, va_projection)
plot(st_geometry(va), graticule = TRUE)

Related packages

Each function returns an sf object from the sf package, which can be mapped using the leaflet or ggplot2 packages.

If you need U.S. Census Bureau boundary files which are not provided by this package, consider using the tigris package, which downloads those shapefiles.


The historical boundary data provided in this package is available under the CC BY-NC-SA 2.5 license from John H. Long, et al., Atlas of Historical County Boundaries, Dr. William M. Scholl Center for American History and Culture, The Newberry Library, Chicago (2010). Please cite that project if you use this package in your research and abide by the terms of their license if you use the historical information.

The historical population data for cities is provided by U.S. Census Bureau and Erik Steiner, Spatial History Project, Center for Spatial and Textual Analysis, Stanford University. See the data in this repository.

The contemporary data is provided by the U.S. Census Bureau and is in the publication domain.

All code in this package is copyright Lincoln Mullen and is released under the MIT license.



USAboundaries 0.3.1

  • New vignette demonstrating the package's functionality (#40).
  • Additions and clarifications to documentation following @AndySouth's suggestions for JOSS peer review (#38).
  • us_cities() now returns an sf object rather than a data frame (#36).
  • us_cities() gains a states argument to match other functions in the package (#35).
  • Citation to JOSS paper.

USAboundaries 0.3.0

  • Moved most data to USAboundariesData. This improves loading time and permits more frequent updates to the user-facing package.
  • Added state plane projections table and functions (@jfbratt). Now users can get an appropriate projection for a state.
  • Converted all boundary objects to sf objects.
  • Updated all contemporary census boundaries from the 2014 to the 2016 versions.
  • Added zipcode tabulation area centroids.
  • Added historical city populations compiled by Erik Steiner at CESTA/Stanford University.

USAboundaries 0.2.0

  • Added contemporary boundaries for states, counties, and congressional districts.
  • Import many fewer packages. The us_boundaries() function no longer has an option to return a fortified data frame. It is assumed that users will convert the SpatialPolygonsDataFrame objects to whatever format they need.
  • High resolution data is now available in the USAboundariesData package.

USAboundaries 0.1.1

  • Fix to README.md as requested by CRAN.

USAboundaries 0.1

  • Initial release.
  • us_boundaries() returns an sp object or a data frame which can be plotted.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.3.1 by Lincoln Mullen, 3 years ago


Report a bug at https://github.com/ropensci/USAboundaries/issues

Browse source code at https://github.com/cran/USAboundaries

Authors: Lincoln Mullen [aut, cre] , Jordan Bratt [aut] , United States Census Bureau [cph]

Documentation:   PDF Manual  

MIT + file LICENSE license

Suggests sf, testthat, USAboundariesData, covr, knitr, rmarkdown, dplyr, leaflet

See at CRAN