The heart of Allan Jacobs’ classic book on street-level urban form and design, Great Streets, features dozens of hand-drawn figure-ground diagrams in the style of Nolli maps. Each depicts one square mile of a city’s street network. Drawing these cities at the same scale provides a revealing spatial objectivity in visually comparing their street networks and urban forms.
We can recreate these visualizations automatically with Python and the OSMnx package, which I developed as part of my dissertation. With OSMnx we can download a street network from OpenStreetMap for anywhere in the world in just one line of code. Here are the square-mile diagrams of Portland, San Francisco, Irvine, and Rome created and plotted automatically by OSMnx:
Continue reading Square-Mile Street Network Visualization
Edward Lorenz, the father of chaos theory, once described chaos as “when the present determines the future, but the approximate present does not approximately determine the future.”
Lorenz first discovered chaos by accident while developing a simple mathematical model of atmospheric convection, using three ordinary differential equations. He found that nearly indistinguishable initial conditions could produce completely divergent outcomes, rendering weather prediction impossible beyond a time horizon of about a fortnight.
Continue reading Animating the Lorenz Attractor with Python
OSMnx is a Python package for downloading administrative boundary shapes and street networks from OpenStreetMap. It allows you to easily construct, project, visualize, and analyze complex street networks in Python with NetworkX. You can get a city’s or neighborhood’s walking, driving, or biking network with a single line of Python code. Then you can simply visualize cul-de-sacs or one-way streets, plot shortest-path routes, or calculate stats like intersection density, average node connectivity, or betweenness centrality. You can download/cite the paper here.
In a single line of code, OSMnx lets you download, construct, and visualize the street network for, say, Modena Italy:
import osmnx as ox
Continue reading OSMnx: Python for Street Networks
I am presenting at the 2015 Conference on Complex Systems tomorrow in Tempe, Arizona. My paper is on methods for assessing the complexity of urban design. If you’re attending the conference, come on by!
Here’s the abstract:
Continue reading Urban Design and Complexity
Download/cite the paper here!
In a previous post, I discussed chaos, fractals, and strange attractors. I also showed how to visualize them with static 3-D plots. Here, I’ll demonstrate how to create these animated visualizations using Python and matplotlib. All of my source code is available in this GitHub repo. By the end, we’ll produce animated data visualizations like this, in pure Python:
Continue reading Animated 3-D Plots in Python
Download/cite the paper here!
In a previous post, I discussed chaos theory, fractals, and strange attractors – and their implications for knowledge and prediction of systems. I also briefly touched on how phase diagrams (or Poincaré plots) can help us visualize system attractors and differentiate chaotic behavior from true randomness.
In this post (adapted from this paper), I provide more detail on constructing and interpreting phase diagrams. These methods are particularly useful for discovering deterministic chaos in otherwise random-appearing time series data, as they visualize strange attractors. I’m using Python for all of these visualizations and the source code is available in this GitHub repo.
Continue reading Visualizing Chaos and Randomness
Using Python to visualize chaos, fractals, and self-similarity to better understand the limits of knowledge and prediction. Download/cite the article here and try pynamical yourself.
Chaos theory is a branch of mathematics that deals with nonlinear dynamical systems. A system is just a set of interacting components that form a larger whole. Nonlinear means that due to feedback or multiplicative effects between the components, the whole becomes something greater than just adding up the individual parts. Lastly, dynamical means the system changes over time based on its current state. In the following piece (adapted from this article), I break down some of this jargon, visualize interesting characteristics of chaos, and discuss its implications for knowledge and prediction.
Chaotic systems are a simple sub-type of nonlinear dynamical systems. They may contain very few interacting parts and these may follow very simple rules, but these systems all have a very sensitive dependence on their initial conditions. Despite their deterministic simplicity, over time these systems can produce totally unpredictable and wildly divergent (aka, chaotic) behavior. Edward Lorenz, the father of chaos theory, described chaos as “when the present determines the future, but the approximate present does not approximately determine the future.”
Continue reading Chaos Theory and the Logistic Map
I recently co-authored a journal article titled LEED-ND and Livability Revisited, which won the Kaye Bock award. LEED-ND is a system for evaluating neighborhood design that was developed by CNU, USGBC, and NRDC. Many of its criteria, particularly site location and neighborhood pattern, accordingly reflect New Urbanist and Smart Growth principles and are inspired by traditional neighborhood design.
Continue reading LEED-ND and Neighborhood Livability
I recently completed my inside field exam, one of the many steps involved in advancing to candidacy. The three professors on your inside field committee send you six questions – a pair per professor – and you are given 72 hours total to answer one question from each pair. The answers are to be in the form of a scholarly article with thorough citations. Long story short, you’ve got to write 30 pages of academic scholarship in three days.
The exam questions themselves are very interesting. The professors construct them based on their reading of your inside field statement, trying to probe areas that might be particularly rich or a bit weak in the statement. Here are the questions I answered:
Continue reading The Inside Field Exam and Urban Complexity
The Department of City and Regional Planning at UC Berkeley has a rather arduous process for advancing to candidacy in the PhD program. It essentially consists of 6 parts:
- Take all the required courses
- Produce an inside field statement – a sort of literature review and synthesis explaining the niche within urban planning in which you will be positioning your dissertation research
- Complete an outside field – sort of like what a minor was in college
- Take an inside field written exam
- Produce a defensible dissertation prospectus
- Take an oral comprehensive exam covering your inside field, your outside field, general planning theory and history, and finally presenting your prospectus.
Whew. Lots to do this year. The good news is I am currently wrapping up my inside field statement and preparing to take the inside field exam. My topic is generally around complexity theory in urban planning. Here is the working abstract from my statement:
Continue reading Urban Complexity and the March Toward Qualifying Exams