Categories
Urban

Urban Street Network Orientation

My new article, Urban Spatial Order: Street Network Orientation, Configuration, and Entropy, has just been published in one of my favorite journals: Applied Network Science (download free PDF). This study explores the spatial signatures of urban evolution and central planning. It examines street network orientation, connectivity, granularity, and entropy in 100 cities around the world using OpenStreetMap data and OSMnx for modeling and visualization:

City street network grid orientations, order, disorder, entropy, rose plot, polar histogram made with Python, OSMnx, OpenStreetMap, matplotlib.

So, who’s got a grid and who doesn’t? Each of the cities above is represented by a polar histogram (aka rose diagram) depicting how its streets orient. Each bar’s direction represents the compass bearings of the streets (in that histogram bin) and its length represents the relative frequency of streets with those bearings. The cities above are in alphabetical order. Here they are again, re-sorted from most-ordered/gridded city (Chicago) to most-disordered (Charlotte):

Categories
Data

New Article in Frontiers in Neurology

I recently teamed up with an international group of public health researchers and spatial analysts to co-author an article, An Introduction to Software Tools, Data, and Services for Geospatial Analysis of Stroke Services, that has been accepted for publication at Frontiers in Neurology (download free PDF).

Hospital catchment basin for stroke services. Spatial analysis in python, geopandas, osmnx.

Categories
Academia

AAG Transactions in GIS Plenary

Manhattan, New York City, New York street network, bearing, orientation from OpenStreetMap mapped with OSMnx and PythonI am giving the Transactions in GIS plenary address at the AAG conference this afternoon. I’ll be reflecting on urban science, spatial networks, and tool-building in academia, focusing on OSMnx. A paper will be forthcoming soon, but in the meantime, for any interested plenary session attendees or other folks, here are a few links to more info and related resources:

Getting started

What is OSMnx? What does it do? Here’s a succinct overview.

The easiest way to get started with street network modeling and analysis in OSMnx is with this docker image and these example/tutorial Jupyter notebooks. The OSMnx software documentation is available here and this journal article introduces it more formally.

Categories
Data

US Street Network Models and Measures

My new article, “Street Network Models and Measures for Every U.S. City, County, Urbanized Area, Census Tract, and Zillow-Defined Neighborhood” has been published in Urban Science. This paper reports results from a broader project that collected raw street network data from OpenStreetMap using the Python-based OSMnx software for every U.S. city and town, county, urbanized area, census tract, and Zillow-defined neighborhood boundary. It constructed nonplanar directed multigraphs for each and analyzed their structural and morphological characteristics.

The resulting public data repository contains over 110,000 processed, cleaned street network graphs (which in turn comprise over 55 million nodes and over 137 million edges) at various scales—comprehensively covering the entire U.S.—archived as reusable open-source GraphML files, node/edge lists, and ESRI shapefiles that can be immediately loaded and analyzed in standard tools such as ArcGIS, QGIS, NetworkX, graph-tool, igraph, or Gephi.

Categories
Planning

New Article: Planar Models of Street Networks

My article, “Planarity and Street Network Representation in Urban Form Analysis,” was recently published in Environment and Planning B: Urban Analytics and City Science. Models of street networks underlie research in urban travel behavior, accessibility, design patterns, and morphology. These models are commonly defined as planar, meaning they can be represented in two dimensions without any underpasses or overpasses. However, real-world urban street networks exist in three-dimensional space and frequently feature grade separation such as bridges and tunnels: planar simplifications can be useful but they also impact the results of real-world street network analysis. This study measures the nonplanarity of drivable and walkable street networks in the centers of 50 cities worldwide, then examines the variation of nonplanarity across a single city. While some street networks are approximately planar, I empirically quantify how planar models can inconsistently but drastically misrepresent intersection density, street lengths, routing, and connectivity.

Categories
Planning

New Article: Urban Street Networks in EP-B

My article, “A Multi-Scale Analysis of 27,000 Urban Street Networks: Every US City, Town, Urbanized Area, and Zillow Neighborhood,” was recently published in Environment and Planning B: Urban Analytics and City Science. This study uses OSMnx to download and analyze 27,000 street networks from OpenStreetMap at metropolitan, municipal, and neighborhood scales – namely, every US city and town, census urbanized area, and Zillow-defined neighborhood. It illustrates the use of OSMnx and OpenStreetMap to consistently conduct street network analysis with extremely large sample sizes, with clearly defined network definitions and extents for reproducibility, and using nonplanar, directed graphs.

These 27,000 street networks as well as their measures have been shared in a free public repository at the Harvard Dataverse for anyone to re-purpose. This study’s empirical findings emphasize measures relevant to graph theory, transportation, urban design, and morphology, such as structure, connectedness, density, centrality, and resilience. It uses graph Maximum Betweenness Centrality and Average Node Connectivity to examine how “resilient” a street network is, in terms of how reliant it is on important nodes and how easy it is to disconnect it.

Categories
Planning

City Street Orientations around the World

City street network grid orientations, order, disorder, entropy, rose plot, polar histogram made with Python, OSMnx, OpenStreetMap, matplotlib.This post is adapted from this research paper that you can read/cite for more info. It analyzes and visualizes 100 cities around the world.

By popular request, this is a quick follow-up to this post comparing the orientation of streets in 25 US cities using Python and OSMnx. Here are 25 more cities around the world:

City street network grid orientations, rose plot, polar histogram made with Python, OSMnx, OpenStreetMap, matplotlib. Bangkok, Barcelona, Beijing, Budapest, Cairo, Delhi, Dubai, Glasgow, Hong Kong, Lagos, London, Madrid, Melbourne, Mexico City, Moscow, Mumbai, Munich, Paris, Rio de Janeiro, Rome, Seoul, Sydney, Tehran, Toronto, Warsaw, Tokyo, Berlin, Venice

Categories
Planning

Estimating Daytime Density in RSRS

My short article “Estimating Local Daytime Population Density from Census and Payroll Data” is out now in the latest issue of Regional Studies, Regional Science. I discuss a method for estimating local daytime density across a metropolitan area using US Census and LEHD LODES data, and dig into some limitations and biases. I look at the San Francisco Bay Area as a case study:

Map of the estimated daytime population density in the San Francisco Bay Area

Categories
Data

Network-Based Spatial Clustering

Jobs, establishments, and other amenities tend to agglomerate and cluster in cities. To identify these agglomerations and explore their causes and effects, we often use spatial clustering algorithms. However, urban space cannot simply be traversed as-the-crow-flies: human mobility is network-constrained. To properly model agglomeration along a city’s street network, we must use network-based spatial clustering.

The code for this example can be found in this GitHub repo. We use OSMnx to download and assemble the street network for a small city. We also have a dataframe of points representing the locations of (fake) restaurants in this city. Our restaurants cluster into distinct districts, as many establishments and industries tend to do:

firm locations on the street network to be clustered: python, osmnx, matplotlib, scipy, scikit-learn, geopandas

Categories
Data

OSMnx Features Round-Up

OSMnx is a Python package for quickly and easily downloading, modeling, analyzing, and visualizing street networks and other spatial data from OpenStreetMap. Here’s a quick round-up of recent updates to OSMnx. I’ll try to keep this up to date as a single reference source. A lot of new features have appeared in the past few months, and people have been asking about what’s new and what’s possible. You can:

  • Download and model street networks or other networked infrastructure anywhere in the world with a single line of code
  • Download any other spatial geometries, place boundaries, building footprints, or points of interest as a GeoDataFrame
  • Download by city name, polygon, bounding box, or point/address + network distance
  • Download drivable, walkable, bikeable, or all street networks
  • Download node elevations and calculate edge grades (inclines)
  • Impute missing speeds and calculate graph edge travel times
  • Simplify and correct the network’s topology to clean-up nodes and consolidate intersections
  • Fast map-matching of points, routes, or trajectories to nearest graph edges or nodes
  • Save networks to disk as shapefiles, geopackages, and GraphML
  • Save/load street network to/from a local .osm xml file
  • Conduct topological and spatial analyses to automatically calculate dozens of indicators
  • Calculate and visualize street bearings and orientations
  • Calculate and visualize shortest-path routes that minimize distance, travel time, elevation, etc
  • Visualize street networks as a static map or interactive leaflet web map
  • Visualize travel distance and travel time with isoline and isochrone maps
  • Plot figure-ground diagrams of street networks and building footprints