Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm fairly new into the public transportation universe and now I have to create route analysis.

I have thousands of routes to create, so that leave out the manual option. I obviously have origins and destinations, but transportation means as well (car, subway, bus and bus route and subway lines number for public transit. I even have in-station and out-station for the subway). In short, anything to follow, step-by-sted, a person moving from its origin to its destination.

Is there a way, with Network Analyst, to force a route to take a certain highway, or a bus route if I have it's number in attribute? I thought of creating stops, but a bus route can be very long so using the centroid of the line isn't an option, same as using a stop for a highway which can be hundreds of km long...

I could at least solve my routes separately for car and public transit, but again, how to force the later to use public transit when solving my network?

The goal is to create a map of all routes taken, coming from and going to a city.

I have ArcView 10.0 (soon ArcEditor) and Netork Analyst (I could take the pgrouting avenue as well, but it's not officially supported by my organization).

The problem is when I create my routes with NA, it always takes the highways when sometime I know the user took the train. It's king of doing like Google when asking directions and choosing public transit.

I have interview data describing everything (from home, took his car to this station to take the train, then got out at that station to take the subway until its destination, ...). I have everything as attribute. home_x, home_y, first mean of transportation = 'car', in_train_station, out_train_station, in_subway, out_subway, dest_x, dest_y, etc. Of course, as attribute in my table.

I'd like the system to take the info contains in the table to create its route, for example, forcing the route highway 15, to take the train line #2 and subway #3 until the destination, which is at [dest_X, dest_Y].

My current thought is using ArcPy. I'd select all the elements (highways, train, subway lines, ...) using the attributes, create a network using only those lines, create the route with Network Analyst, export the route into a shp and doing it in loop for all the line in my input table.

I think doing a couple hundreds could be fine, but for the for city I had to do this analysis, I have 8000+ routes to create. Next year, we'll do a regional campaign and we'll have 160,000+ routes.

share|improve this question
up vote 0 down vote accepted

I suppose the first question is why you want so many routes to that precision? 8000 routes overlaid on one map is not going to look very pretty. Would you not be better just to draw straight lines? Is the actual route really that important?

There are a number of different problems with the approach you propose above - the first is going to be connecting the rail/subway and road networks together without which it can't be routed as a whole, which from your description above of data with modal interchanges, is what you need.

The next problem is, as you say, getting enough waypoints to force your routes to take a certain mode of transport. I guess you will probably need to get a mid point between each part of the rail network that is between an interchange onto the other network. But how do you stop road journeys routing onto the rail network (which is usually more direct)? You could add a very high cost for rail routes, but this might force some journeys to double back unless you got the waypoint right in the middle. And how on earth do you deal with bus / tram networks, short of adding waypoints for each route segment?

The final problem is processing time. Depending on the size of the network, it could be very high for the number of routes you are talking about here.

To be honest, I'm not even sure that the advanced and expensive transport modelling packages such as TransCAD / EMME3 have this functionality out of the box, as they are primarily concerned with modelled data, rather than real world data.

Bottom line is that it's possible I think, but will involve substantial investment in time to sort out the network and a heavy degree of programming before you can undertake this analysis.

Having said that, someone must have attempted this before. Which is a good argument to ask transport professionals, not just GIS people.

share|improve this answer
I wanted to create a map like Bostonography's "MBTA Bus Speed" (…) and that's why I had to create routes. It wasn't that bad, but without an multimodal network, and a mean to force my "users" to take a certain route, I had 8000 different routes created, some using very improbable roads. The goal of the study is to show, for some cities, a – fgcartographix Apr 4 '12 at 13:45
cool map! They have greatly simplified the routes though and it doesn't look like they are looking at car trips. Which should be much easier. – Stev_k Apr 4 '12 at 13:54
[cont.] a map visually pleasant map - or graph, ... - of movements from and to the area. I've merge my origins and destinations by census tracks (or the equivalent here) and I now have 800 ODs. I looking for a solution like Underdark's Flow map technique [link] (…) but without really great success. – fgcartographix Apr 4 '12 at 13:54
Another solution would be to create a virtual network connecting the regions (North shore, to Laval, to Montreal, to the South shore) ( and from the regional nodes, connect each cities and then each census tracks. I'd have a tree-like network and I could use Network Analyst to create the virtual routes and then use the number of movements taking each segments as a value for a symbology... – fgcartographix Apr 4 '12 at 13:59
For the MBTA map, I thing that Andy used actual GPS position to create segments and then determined the speed for each segments based on the length of the line and time. – fgcartographix Apr 4 '12 at 14:01

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.