Mapping Modal Hierarchy

October 13th, 2017

I’ve recently been playing around with a measure of betweenness as a way of generating cartographic street hierarchies specific to a given transport mode.

I have a few broad goals here:

  1. establish that many street maps are biased toward cars
  2. offer a simple, automated way of generating a valid hierarchy for a narrowly defined transport mode
  3. show that different modal assumptions generate substantially different hierarchies, and thus require maps with different emphasis

Betweenness is essentially a measure of how often an edge/node in a network belongs to a shortest path across that network, when some large/exhaustive number of shortest paths are calculated. In the context of geographic street networks, it’s well established that different modes (car, bike, etc) have different criteria in the general case for determining an optimal path. These different routing criteria should produce different shortest paths and in the aggregate, betweenness measures, as indeed they do.

What follows are three maps of the same area  in Cincinnati, showing betweenness measures which I generated for cars, cyclists, and pedestrians. I’ll explain more about how they were created in a moment, but for now, just know that line thickness in these maps is scaled according to the square root of ( one plus my betweenness measure ).

For cars:

map of Cincinnati, Ohio

For bicycles:

map of cincinnati ohio

For pedestrians:

map of cincinnati ohio

One thing you may notice right off the bat is that some paths are off limits to one or more of the modes. The next is that the car map is probably the most ‘normal’ looking of these. You can kind of see that by looking at the standard OpenStreetMap base map for the same area.

What appears to me is that essentially the same streets stand out here as in the car map, above. in fact though, I can offer a somewhat more precise comparison of these two maps if you’re not quite convinced. OpenStreetMap defines highway tags in a clear hierarchical order and it’s possible to correlate such ordinal values (ranked as ‘motorway’=10, ‘trunk’=9, ‘primary’=8 and so on down to ‘service’=1) directly with the betweenness measures calculated for the betweenness maps shown above. When considering all of the Cincinnati metro area within 30km of downtown, id est:

map of the study area

Car betweenness hierarchy in the area of interest, within 30km of downtown

for which I happen to have calculated my betweenness measures, I get, as a rough back of the envelope calculation, the following (edge length weighted) Spearman rank order correlation coefficients:

If I exclude the obvious car-only, limited-access motorway and trunk roads from the calculation, I still get:

If I were to include bike/ped-only paths, I would probably only push these numbers lower for bikes and peds. It seems clear that the standard OSM hierarchy is car-oriented. Is this kind of a “duh” statement? Perhaps, but it’s nice to have some evidence.

Now! How did I calculate these betweenness measures?

The first problem is to decide which points to route between. The standard graph-theory approach is a full every-node to every-node combinatorical explosion. In abstract graph theory, this has the result of producing higher measures for nodes which are more central, which is useful for a non-spatial graph like a social network (in which Kevin Bacon surely has betweenness=). However since I’m looking at a metro area, defined by some arbitrary boundary of my choosing, the most central areas would be highly determined by the arbitrary boundaries of the graph. To get around this problem, I placed a distance constraint on the paths I would generate, based on quasi-realistic travel scenarios. People don’t walk as far as they bike and they don’t bike as far as they drive. Let’s say I limit foot-routes to between 0.5 and 1.5 km, bike trips to between 1 and 6 km, and driving trips to between 1.5 and 20km; this excludes most paths from the combinatorial space, and negates edge effects across most of the area of interest. If you have a 10km max trip length, then you just need to include a 10km buffer around your area of interest.

There is still however a problem of weighting. Do I route between intersections (as the standard graph theory approach would suggest)? This would underweight long segments which dominate more rural areas, and generally wouldn’t make sense in this context. Do I weight according to population density since humans are the only ones who actually make any trips? I tried this and quickly realized that I had reproduced a population density map. Next I tried something less applicable to the real world and perhaps more applicable to the cartographic problem at hand: weighting by edge length. In this approach, origins and destinations have an equal probability of appearing anywhere on the street network, as if you stretched all the streets out end to end and randomly picked a point somewhere between the extremes.

Random points were selected in this way, essentially one pair at a time. This pair was checked against the distance criteria for the mode, and the route was found using OSRM and the default routing profiles for cars bikes and pedestrians respectively. If the route produced was way too long (e.g. points on opposite sides of the river with no nearby bridge), then it was ignored. This may not produce a realistic trip distance distribution, but it did seem to produce pretty pleasing results for now. Some improvement will be needed in this area. For each mode, somewhere around a million routes were calculated for one metro area and it’s surrounding buffer.

Anyhoo, OSRM is able to return a vector of the OSM node ID’s along the length of the route. By keeping counts for all the segments, it’s easy to reconstruct a geometry table with counts for each mode. That’s how the above maps were generated. I may be posting code eventually if there is any interest in this.

I hope to be using this technique more in the near future, perhaps to make a start on a Toronto bike map or something of that nature. My thoughts are a bit of a jumble at the moment, having been working on this project through a couple months of fits and starts with an eye toward a poster for the now completed NACIS 2017. Hopefully soon I’ll have something more coherent to say about where this effort may be going.

The difference between clothing and cartography

August 20th, 2017

I’ve had this post sitting in my drafts for more than a year now, unpublished and unfinished. Time to set it free!

The difference between clothing design and cartography seemed at first impassable to me. I wanted to conceive of this business, comprising some of the things I do best, as coherently as possible rendering me able to succinctly shout it’s premise along with it’s name across a crowded bar. The want of that economy is the reason I’ve told so few people of my full endeavour as yet: “I make maps and pants!” begs too much time or none at all.

I don’t wish here to emphasize the difference between two distinct fields, thus demonstrating my knowledge of both. Rather, my project is to make the ‘two’ into one, or to find the one that encompasses both. Partly this is an irreducibly psychological need for unity in purpose. Partly it’s an actual, tentative logical connection that I wish to pursue to it’s ends out of curiosity.

What do clothing design and cartography have in common? How can I explain that I make both maps and pants in a way that makes sense of everything there and might even suggest other specific pursuits? If they are conceivable as one, what keeps them separate?

A map’s purpose is to show the state or nature of some thing that doesn’t readily present itself to our senses. Generally speaking, what’s of interest are atemporal, spatial relationships. The map is a snapshot, a representation of a moment, of a thing that exists in space. Usually the space in question is a large one in proportion to our bodies: a city, region, or planet. Like a snapshot, the map is not the same as the thing itself but represents the thing itself with symbols on a flat medium. The symbols are reductions of the physicality of the thing to the level of complete abstraction. A river, a big wet uncontainable thing, becomes a blue line. Further, the abstraction necessitates a degree of selection and reduction since the only thing that could contain all of the information contained in the thing itself would be the thing itself or something larger than the thing such as the totality of space.

Aside: What about 3D maps or maps of change over time??? Not to worry. A snapshot of an absolute moment has never yet been taken(exposure time and also considerations of relativity), and the metaphor can easily be extended to sculpture for 3D maps.

The important thing to remember is that the whole thing is imperceptible or a map would not be necessary, and that the thing has to be selectively reduced to it’s essentials as judged by the cartographer.

What then is clothing? Clothing is also a symbolic abstraction of a thing beyond our perceptions. In this case, that thing is a person. A person is indeed beyond our perceptions, or at least the part of them that’s most important: they’re mind.

Clothing (or maps) will communicate indirectly though effectively the subjective qualities of the thing when such qualities are worth noting. Yet a map is not the thing itself. The thing itself holds all of it’s own qualities, equally open to any observer. The map is a summation, an abstraction, a condensation of the thing itself. It is the thing itself prepared for consumption and made digestible, when necessary, made palatable. The meat is carved from the flesh and made into stew.

Maps can aspire. They can lie; they must. A map is as much a comment on the drives of it’s creator as it is on the object. I see highways and cars as a blight on everything they touch and every map I make will reflect that if subtly. I am at this point in my life incapable of failing to assert that judgement.

Maps can be and often are done quite poorly. The literal accuracy of digital geospatial data, the objective component, too often confers an unwarranted authority on the subjective interpretation, the design, feel, and ambiance of the map not to mention the more important choice of emphasis.


Clothing design I understand less; it is much more complex. Clothing elucidates a clearly subjective entity: a person. It uses symbols and signs to show us the person as they are, as they want to be seen, or in their sartorial ineptitude, as they are not nor want to be.

Both clothing and maps are essentially physical artifacts that attempt to make some claim about an objective/subjective phenomenon through the use of symbols. The symbols say things that are necessarily simpler than and abstracted from the materiality of the phenomenon and so rely on selection and simplification.

Cities1 can often be best understood as subjects rather than objects just as people often but not always can be.

The main difference, beside that of physical/temporal scale of the object, is that a map depicts it’s object from a remove. It’s description is atemporal and aspatial and depicts a moment. Clothing can act only when it enshrouds it’s object. It is therefore inextricably linked to the objects physicality. Far from depicting a moment, clothing engages with it’s object in space-time. A snapshot of a person in clothing plays closer to the role a map does, but then expands to include other aspects of styling, pose, etc.


  1. as I’ll argue in depth later


July 10th, 2016

I’ve heard it said that ours may be the age of the “mega-city.” Cities like Cincinnati, where I came of age, seem to be in an uncomfortable middle zone. With a metro of 2.1 million people, substantially larger I might note than the city of Rome at it’s climax in the first century, Cincinnati is to many a sleepy, provincial town. Yet to me, coming as I did from that homogeneous shmear we Americans all know and love, it was Metropolis.

This is so far a familiar story, and my cliches are already making me a little queasy. Will I be able to avoid them?

To my friends, some of them, Cincinnati was a layover. It’s not that they got there, many of them, gave it a couple years, and then changed their minds, but rather that they came from high school already with the ambition of making it to New York or other big eastern cities. In my program especially, people co-oped half the year in other cities, in Cincinnati only three months at a time for four consecutive years. These people grew attached to other places and got jobs there.

How many dates did I go on with people I knew would be leaving?

As a planner though, and perhaps as one with typically little concern for his own economy, I grew attached, got involved, and made lasting friendships in a place that could ultimately offer me little work.

2.1 million people. If you met one person every five seconds and never slept, it would take more than seven years to meet every Cincinnatian, assuming they all stayed put for a damn second. And I couldn’t find satisfying work that payed more than a stipend. Bigger than Rome and I couldn’t find the work society tells me I deserve.

Having found all my best friends, and even a husband, in Cincinnati, it has now come to pass that everyone that I really care about is living in a different city. Not just not in my city, but each in their own.

Cincinnati, New York, San Fransisco, Denver, and me in Toronto. The closest any of these cities are to another is 550km. Even my family will be split soon as my little sister goes off to college in Boston and my parents retire to who knows where.

How ’bout them cliches? Can this get any more boring? People moving, getting older, life changes, yadda yadda.

But I feel like I need to stop here and just ask: What the hell is going on? That everyone I care about should not only not be in the same general place but scattered utterly across the continent. Is this the modern condition?

Most people of course don’t make it this far. Most aren’t this mobile. Most don’t go to college. Many people live with their families or could walk to their parents’ house if they laced up some comfy shoes. But for me and my peers, the academics with whom I am presently associating, we are the jet-set without the money. Hopping from one gig to the next, and I count a term-limited stipend-salary PhD or masters as a gig, we seem prevented from really setting deep roots anywhere except in our own ambitious media-fed dreams for the future, in Metropolis.

What deeper effect this has, and it always seems wise to wrap up with some musing on the deeper meaning of it all, I can only wonder at. But it seems to me that for the foreseeable future, the West’s non-wealthy elite, the mobile educated, will be rootless and alienated from the spaces they occupy. Renters all their lives, never settling, ever taking the excuse of a conference in who-knows-where for the chance of seeing old friends, neither of you from this place that you’ll occupy only once together and ephemerally at that, those places competing viscously for our indifferent attendance.

The world grows homogeneous, the cities blur together. We are always in metropolis, and yet so far apart.

The time has come that if I wanted to settle down, and selfishly make a home for myself at once, I would have to start by moving to New York or San Fransisco. These places, where I have never lived, hold the most of my friends. Now it’s interesting to note that my partner, of a lower class than me through no fault of his own, which I think is relevant, very much has all of his friends in Cincinnati. Which of us, in the abstract, might be said to have the better life? What are the costs of ambition today? What are the benefits of immobility?

What’s for dissert? Attempting psychoanalysis

May 3rd, 2016

I posted here recently about my recent failure to get excited about sewing. Let this one then be about my failure to get excited about planning and geography. Now beside being something I used to like to do, geography has the special quality that it currently pays my bills, gives me an office to work from, and puts me in touch regularly with moderately interesting people.

So I really should try to enjoy it, lest I find myself without a livelihood, and also as the case would be for sewing, without another chunk of my identity, and without a thing quite capable of making me happy and fruitfully engaging my mind.

All of this turmoil reduces, I think, to the following problem: In Ohio, I was abnormal in a number of particular dimensions; in Toronto, I am not, or not in the same familiar ways. A few contrasts then:

I could go on, but my point is, and I think I’ve made it by now, that two major pillars of my self image have been eroded by this new normalcy. Have I realized that I am normal?

There is an analogy here, and one many readers will I’m sure be more familiar with. In high school, I was one of the only gay kids. In college, I was one of many. I became normal after having to some extent established an identity on difference. The way I dealt with this all through undergrad was with excitement. I jumped right in, attending the meetings of the university GSAs, becoming a leader of one of them, and eventually branching out from there into leadership of the larger regional queer organizations, which I ultimately served with for years before being kicked out for [it’s a long story].

When I was kicked out of my big, gay ecosystem, I was left with geography and cartography for comfort. I turned more toward fashion design, and other visual pursuits, or less toward the things which had turned from me, and this ultimately led me gladly into grad school, the subject of which had begun to overlap very nicely with the subject of my interests.

From grad school, I ran to grad school, for I hadn’t yet had enough. But the engine that kept me going in Cincinnati was my frustration with the transit system and its supporters, an impulse to correct those silly bastards. In that frustration, in the height of that impulse to fix things, I find myself run off the edge of the cliff, with nothing familiar to hang on to. The frustration that nourished me was suddenly removed from beneath my feet.

To that other analogy then, I must turn for guidance and I see that in high school, I wasn’t driven by a negative emotion, but by pride if I may appropriate that word to myself, and later by a more biological impulse and eventually by a sense of community and a friendship for a people that I came to see as my own family.

Do I have no pride in riding a bike, though I’ve moved to the gayborhood? Do I have no pride in the way I make myself look, though I’ve moved to metropolis?

The dangerous part of the analogy is that I now take my gayness thoroughly for granted and don’t spend any effort at all working inside the ‘gay community’ such as it is any more. Could the same happen for my other interests, that they become part of my past more than my present? But, to continue analogically, I must see now that I’m in the stage of this interest wherein I have come into a position of leadership, am inside the community of transportation and planning people, and can see them as family if not quite as so friendly a one as the gays were (certainly they are given more to handshakes than to hugs). What motivated me in that stage and why now does it seem weak?

I guess I felt like I was making a difference, like my contributions were respected, and that I had friends all around me. The friends part is slowly, too slowly, developing here in Toronto. But what is there for me to do now that makes a difference in a city, in a country that already has digested the corpus of contemporary planning dogmas?

Radial KDE Visualization for Directed Flows

April 29th, 2016

From some work I did recently for the Cincinnati Chamber:

These images summarize some fairly sketchy census migration data, showing the general direction from which or toward which people move relative to the Cincinnati region. So for example, a large red bump on the left may mean that many people are leaving Cincinnati and moving west. A blue bump to the northeast might mean some people are moving to Cincy from Cleveland or Columbus. Greens are balanced flows.


This visualization responds to a need to show some geographic dimension to data which, though detailed to the county level, has massive sampling error and a great many missing estimates. Estimating the number of migrants between, say, the Cincinnati MSA and the Los Angeles MSA is certainly possible with this data, but the estimated error are so high as to make a map of the estimates themselves nearly useless, especially with any degree of disaggration such as that seen in these images.

As long as I’ve understood margins of error myself1, I’ve understood that it should be basically hopeless to try to get lay people to understand the implications of MOE estimates.

Anyway, some interesting patterns emerge here. Note the big southward outflow of retirees for instance. Or note the high and relatively balanced interactions between Cincinnati and it’s sisters to the Northeast: Dayton, Columbus, Cleveland.


And here we see, at least, that people moving for military purposes are much less evenly distributed than people in other professions, surely the result of a small number of important military bases.

Now, the chamber didn’t quite ask for these visualizations of course, but they’re what I gave them because I didn’t want to feel responsible for any overconfident interpretations which would be inevitably if the data were simply mapped with census boundaries. With this presentation, the data looks like it can’t give you any real specifics, which is true.


The data comes from American Community Survey county-to-county migration estimates. Images were made with a combination of PostGIS, R and Inkscape. I can make some code available if anyone cares to email me.

  1. Only a few years, honestly

osm2po’s “flag” field explained

March 4th, 2016

I don’t do many technical posts here, but this one took me a while to figure out, so I thought I’d just quickly upload my knowledge into the world’s search indexes for all those helpless people out there trying to decypher osm2po‘s config file.

The ‘flag‘ field that osm2po creates in your SQL file is used to indicate the modes of travel that are permissible on an edge. First, you must tell the program what modes you want to consider:

wtr.flagList = car, bike, foot

These modes, in this order, determine the value that will be assigned to an edge’s ‘flag’. In this case, we get car=1, bike=2, foot=4. Note that these are decimal representations of the digits of a binary number! You get up to 5 digits or 32 possible flags because this is a 32bit field.

A value of 1 (given the ordering above) means that only cars can use the edge. A value of 2 means that only bikes can.

The flag field represents the digits of a binary number where each digit is one of five possible modes, which are determined by the ordering given in wtr.flaglist. You can then determine whether some mode can use an edge by a little modular division.

Modal access is the business of much of the rest of the config file and I won’t get into that here.

Happy routing!