Update 2 – Optimization of Tribe Pathways

Since the last update, I have gathered all data needed to create a map of campus. Working with the timeline I set up at the beginning of the project, it would not be feasible to map the entirety of campus. Instead, I spent two days on campus walking paths and recording data for a smaller section of the map. I made sure to include all different kinds of path features in the area I selected and that the area was used enough so that the program could still be useful. Adding the rest of campus would not require changing anything or adding new features, only inputting more data. This choice was based off of time constraints and not technical difficulty.

The portion of campus selected for mapping.

The portion of campus selected for mapping.

On my visit I walked the entirety of this map. I took note of stairs, wooded paths, dirt paths, roads, brick paths, and unmarked pathways. I discovered two paths that are not listed on the official map of campus and a section of buildings and pathways which no longer exist. I also marked two sets of stairs which are not included in the original map. I did not mark distance on the trip. I am using an online GIS system to measure the pathways.

Currently, I am working on converting this complex map into a map of connected nodes Every building and any spot where three or more paths meet will become a vertex. The lines connecting the vertices will be marked with whatever features they include. Inside of the program, the code will be able to automatically exclude any paths with features that the user has selected. In this way, a user can choose what kind of pathways they do not want to include in the path finding result. Because of the size of the map I am using, this part of the project has taken longer than anticipated but has not presented any serious difficulties.

A simple representation of converting a complex map to simple connected node map.

In my spare time with the project I have been researching python mapping applications such as GeoDjango and MapBox. Ideally, I would like to incorporate the use of one of these applications into my code. If I have time after the completion of the project, I may try to add this feature to give a better graphical representation of the project. These programs would allow me to not only display the map in functional mapping software, but also record features on the path automatically such as elevation, distance, and topographical characteristics. This would be useful in the future if I decide to change the weighting of the paths to total difficulty including calculations for elevation rather than distance alone.

The next step of the project is using this data to test the algorithm for bugs and work on the final stages of coding. With a system in place to list features of a path, all that is left is creating a method for users to exclude specific paths based on features.