data sets used

2 views
Skip to first unread message

Amar Pai

unread,
Dec 3, 2009, 3:59:37 AM12/3/09
to sf-bike-planner
Hi guys

Good to meet yall tonight. 

Garalynn here are the datasets I used to make SF bike planner:
http://gispub02.sfgov.org/website/sfshare/catalog/dpt_bike_network.zip
http://gispub02.sfgov.org/website/sfshare/catalog/phys_contours_wgs.zip
http://gispub02.sfgov.org/website/sfshare/catalog/stclines_streets.zip
http://gispub02.sfgov.org/website/sfshare/catalog/stintersections.zip

Implementation notes w/ details on how those were converted for use by router: http://docs.google.com/View?id=dhg5k4pt_69r88n8kc6

Here's the message I sent to MTC asking about datasets (they never replied): http://groups.google.com/group/sf-bike-planner/browse_thread/thread/8286984253fe2eb2

John/Peter, I have added you as owners to the SVN repo since you guys expressed interest in leading technical side.  Matt, Nick, I added you as contributors. Can you guys please send out zips of your code or (better yet) check it into svn so we can have a look? 

SVN repo:
http://code.google.com/p/sf-bike-planner/source/checkout

---
As far as starting to merge our UI/routing/backend layers, these are some relevant files on my end.  They're fairly well commented.  Peter these represent some 'interface' points where json response for API, integration of Matthew's UI stuff or bridging of John's postGIS layer to router could be done.

JS front end code (this is my UI layer):
http://code.google.com/p/sf-bike-planner/source/browse/branches/live/bikemap.js

Routing code (does the actual path planning, includes cost function):
http://code.google.com/p/sf-bike-planner/source/browse/branches/live/find_path.py

Data generation scripts (they take the shapefiles mentioned above and process them to generate final graph used for routing):
http://code.google.com/p/sf-bike-planner/source/browse/#svn/trunk/src

Top level script in that dir is generate_data.py

Nick, you mentioned you weren't sure about format of final data structure I use for routing.  It's a Python dict of dict representing a directed graph:
      dGraph[fromCNN][toCNN] = [{'STREET':sStreet, 'INCLINE':nIncline, 'TYPE':sType, 'CNN':sCNN}]
Node ids are centerline network nums. (just arbitrary ids really) and for each edge connection from node and to node, there is a edgeinfo struct containing the edge's street name, incline (+/-) , type ('bike route' or 'wide curb lane' or whatever) and CNN (another arbitrary id). 

I read it the graph in from cPickle per request due to arcane web hosting issues. The right thing to do would be cache it in memory of course.

Here is Google's map spec for bike path data-- this seems reasonable to me if we wanted to converge on a base format: http://www.google.com/support/mapcontentpartners/bin/answer.py?hl=en&answer=160414

sorry for all the scattered points, just wanted to get this out before it all slips my mind!

cheers

Amar
Reply all
Reply to author
Forward
0 new messages