Tracking Neighborhood Change: How we made “Lost In Place”

In this post, we’ll go over the data and mapping steps that were used to create our Lost In Place report on the concentration of poverty and the interactive web map. This post is one of several commentary posts that accompany the report, including an examination of how poverty has deepened.

Data for our report is provided at the Census Tract geography for US Metropolitan Statistical Areas (MSAs) with a 2010 population of over 1 million people — 51 in total. Our online map and report are based off two reported data points across five Census years: population and poverty levels in 1970, 1980, 1990, 2000 and 2010. Unfortunately for data analysis, Census Tract boundaries changed each census year between 1970 and 2010 as the geography of people changed. Fortunately, John Logan of Brown University and his colleagues released the Longitudinal Tract Database (LTDB) and have estimated tract-level Census counts from historical Census data from 1970 through 2010 using Census 2010 tract boundaries.

Two additional steps were necessary: we needed to determine which Census Tracts were part of our MSAs of interest, and in order to create maps and determine which tracts are within 10 miles of each MSAs central business district (CBD), we need to merge the Census tract data with their corresponding Census tract polygons. First, each 2010 Census Tract number is composed of a 2-digit identifier for the state, a 3-digit county identifier, followed by a 6-digit tract identifier. For example, Census Tract number 41051010600 can be decomposed State 41 (Oregon), County 051 (Multnomah) and Tract 010600. Using the Census Metropolitan Statistical Area Definition Files, we see that any Census Tract that starts with 41051 (often referred to as the FIPS State-County) is within the MSA 38900 (Portland-Vancouver-Hillsboro, OR-WA). Using this information, we filtered the our tracts list to only those within our MSAs of interest.

Second, using only this filtered set of Census Tracts, we matched the Census Tract numbers to the Census Tract numbers of Census 2010 tract shapefiles. Using a list of CBDs for each of the metro areas, we calculated the distance from the CBD to the nearest point of each MSAs Census Tract polygon. Once this spatial relationship is calculated, we could calculate totals for core MSA and the MSA as a total.

Using the existing literature, we developed the typology of tracts in poverty featured in the report. We used QGIS to create GEOJSON-based shapefiles with the geographic data in them. This allows us to host the files on github, making them available for download. But first, we needed to shrink the size of the shapefiles in order to serve an entire metro areas tract files quickly. We did this by simplifying the geography using rgeos in R. Additionally, by having a shapefile for each metropolitan area, we can quickly and dynamically load shapefiles for each metro area. To create the interactive maps for each metro, we used a combination of Mapbox.js and the Stamen Design basemaps.

We hope that both the data and the analysis that we develop at City Observatory help advance the understanding of cities.  Please feel free to contact us with your questions and comments.

Our dataset can be downloaded here.