Michael Weisman

Current Projects

Unofficial Translink API

Past Projects

TransLink Model

This project is being completed as part of a directed study in Geography supervised byDr. Brian Klinkenberg. The model will accept a starting point in Vancouver and a time to travel, and generate a map showing the distance that can be travelled in that time period. The idea for this project stemmed from a project I worked on with Dr. Tom Koch assessing the differences in the Translink network for people who require wheelchair access and those who can use any bus and stop.

This project has morphed over the months into an exercise in data formatting. Due to the way the line-work was formatted in my data sets, creating a topology which would be compatible with routing software was nearly impossible. Thanks to a mix of FME and Shapely, I now have a topology of the bus network. I have decided to implement this model using Shapely, PostGIS, and pgRouting.

TransLink Network Creator

This is an offshoot of the above TransLink model. Due to licensing restrictions with my data-sets, I wanted to find an alternative. I gave myself 3 hours to tackle an idea I had for a small script which could draw the entire TransLink bus network using entirely publicly available data. The result did not work well enough for my needs, but did work well enough to warrant further exploration as a side project. I will be "unveiling" this project at The Metro Vancouver Transit Camp. In the meantime, here is the source. It requires several python modules, including Shapely, geopy, Beautiful Soup, and psycopg2. Currently, this script writes the geometries to a PostGIS server, but the final version will likely use an OGR binding enable outputs in other formats. Thank you to Peter McLachlan, who's transWidget proved useful in developing portions of this script.

NOTE: THIS IS A PROOF OF CONCEPT AT THE MOMENT AND DOES NOT WORK WITH 100% ACCURACY, NOR IS IT FEATURE COMPLETE. I did not plan to release this in its current state, but the The Metro Vancouver Transit Camp seemed like such a perfect venue to get feedback and possibly contributors to the project. I am also entertaining the idea of starting an "Open Transit Map", similar to Open Street Map, but for transit data and routing. If anyone is interested in these ideas, please come to Vancouver Transit Camp, or send me an email.

Mobile Bus Schedule Lookup

Ever been stuck at a bus stop in Vancouver and don't know if it's worth your time to wait rather than walk? Wish you could type the stop number into your cellphone and get a list of the next busses? This problem frustrates me often, as I live very close to the end of a bridge from downtown, making busing and walking both viable options. Every stop has a unique identifier printed on the sign which can be cross referenced with transit schedules. Sure there is a phone number to call, but it's a bit of a pain to deal with and you have to wait through long recorded messages before you can get to a schedule. The online schedules from Translink work well, but mobile data rates in Canada make using it from a cellphone cost-prohibitive. I am currently working on an offline schedule lookup, which will store the schedules on your phone and allow you to search by route number or stop number without using mobile data or sitting through long recorded messages.

For those looking for a solution to this problem now, which is compatible with all cell phones, simply text a bus stop number to: 74636 and in a minute or so, receive a list of the next several busses scheduled to stop at that stop. I still plan to continue development of my version, however, and hope to build on he text service by harnessing the GPS (and possibly assisted GPS) capabilities of Nokia smart phones to provide location-based bus information. Rather than texting several stop numbers to the above service, my app will hopefully allow a user to receive a list of upcoming busses at all bus stops within a certain radius of their current location. Unfortunately, an application like this will likely need to be network enabled. Recently Canadian celluar data prices have started to drop, which should make this application (as well as other network-enabled cell phone apps) more affordable.

This program is being designed for Nokia's Symbian smart phones with PyS60, a mobile version of Python. The project will be open source, and fairly easy to port to other platforms. The core code also runs in the python console on OSX, Windows XP, and Linux.

Kitchen Timer

I was disappointed with the lack of a free timer application for my Nokia smart phone (at least that I could find) for brewing my morning french press, so I set out to create my own. Countdown is a very simple app which asks if you want to make a french press or use a different time. Selecting "French Press" simply sets the timer to 4:00. The timer counts down and announces when the time is up. This program is written for Nokia's Symbian smart phones with PyS60, but only a few lines of code use anything not included in Python's standard library, so porting it to other platforms should be very easy.

To use the program, you will need PyS60 and a memory card on your Nokia smart phone. Copy the script to the "Python" directory on the root level of your memory card and it will be accessible in the "Run Script" menu in Python.

UBC Web VPN Bookmarklet

The UBC Library's web based VPN is great for doing research. When used with Google Scholar I can find and download just about any article from academic journals. The problem is having to bring up the VPN page and navigate to the page I want within the VPN. I created a bookmarklet that will re-load the current page in the UBC VPN, making accessing academic articles online as easy as pushing a button.

To install drag the following link to your bookmarks bar: Open in UBC VPN. Simply click the button and enter your UBC Campus wide login and the page will reload through the vpn. Bookmarklets work with most modern browsers. If you are having trouble using it, I recommend trying it with Firefox if you use Windows or Linux, or Camino or Safari on a Mac. Like many things, this seems to work well in every modern browser except Internet Explorer.

Crime in Ottawa

Ottawa Crime Map

This project was completed as a requirement for Geography 471: Applied GIS at UBC. The project was an attempt to explore patterns in crime statistics in Ottawa, ON. The project made use of ArcGIS for data organization and cartography, R for calculating non-spatial statistics and data formatting. The analysis was performed with Geographically Weighted Regression, which uses a modified regression model to determine spatial significance, and SaTScan, which finds "outbreaks" of events in time and space.

This project (and the Applied GIS class as a whole) provided me with a chance to learn specialized spatial analysis software to compliment my knowledge of ArcGIS. For the purposes of this project, I independently researched SaTScan, learning the program on my own, and creating an analysis based on the manual and materials available online.

Buying a Home in Vancouver

Vancouver Map

This project was completed as a requirement for Geography 376: Advanced GIS at UBC. The project attepted to create a model that could identify potential neighbourhoods to buy a home in Vancouver. The model was based on the Analytic Hierarchy Process and made use of an ahp plugin for ArcGIS. I used the ArcGIS model builder to create two models which prepared data from numerous sources for the plugin, and then processed the output of the AHP to create maps.