Shapefile Reader at a Glance

  • Tools: Made using C++ (Visual Studio Comunity); SFML
  • Dev Platform: Developed on Windows7/8.1
  • Target Platform(s): Windows/Linux
  • Time: ~100 hours, September 2015 to January 2016
  • Team: Independent, with oversight by Dr. Robert Benkoczi from the University of Lethbridge, Alberta
  • Journal: Accepted for publication by the Journal for Student Science and Technology

Reading Formatted Binary Data

The biggest challenge working with ESRI's Shapefile format was that because the files were in binary, it was very difficult to know what the expected output was; I just had to follow the file specification, and if it didn't work, it means I missed something. One of the most time consuming steps was making sure all of the features described in ESRI's documentation were accounted for. In particular, the varying endianness for different fields and use of 4 byte integers and 8 byte doubles took a lot of debugging.

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

Advanced Pathfinding (A*)

The original intention behind the project was to help optimize Lethbridge's transit system. As a result, one of the required functionalities of the program is the ability to navigate along the streets (represented by a PolyLine Shapefile). This was a perfect opportunity to implement the A* (read: A star) algorithm, because it is the fastest search algorithm for this kind of problem (since the heuristics it uses are very good here), and guaranteed to find a solution if one exists.

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

Data Visualization

Although initially considered an optional step in the project, this proved to be an immensely useful feature, particularly because it was basically impossible to debug without it. It was also a natural extension of the work I had previously done with SFML, because this task had enough overlap with Pew Pew Pew Game that I still felt comfortable using SFML, but also enough new obstacles that it was still a valuable learning experience.

Show me some code

Though snippets aren't available right now, feel free to check out my git for the complete code base!

About

This co-op project was organized by the Woodlands Secondary School in a pilot program for grade 12 students. At the end of grade 11, we submitted our resumes and were matched with university professors that were also participating from all across Canada.

I ended up getting matched with Dr. Robert Benkoczi, and he was the one that suggested this project. In a stroke of either destiny or the most improbable of coincidences, I had actually been thinking about how cool buses were on my transit home (before ever talking to Dr. Benkoczi). We both agreed that it was a very interesting project, and started setting up the goals and target features.

Over the course of the next several months, I developed the project mostly independently, communicating with Dr. Benkoczi on a (roughly) weekly basis. Generally, we talked about updates on the status of the project, and problems I was running into if I had been unable to solve them.

Due to university applications, especially SAT preparation (since I applied to most of the Ivy Leagues, as well as Chicago and MIT), progress was most rapid during the winter break. This presented a bit of a challenge because the submission deadline was in early-mid January, so time was quite limited.

As of January 27th 2017, my paper has passed the PhD review phase, and has been approved for publication. Once it has been published, I will add a copy of my paper here, or otherwise a link to the journal's website where it can be found.