Accessibility Map LOG

From ESE205 Wiki
Revision as of 20:18, 3 April 2018 by Nkastelman (talk | contribs)
Jump to navigation Jump to search

Week of January 29

Wednesday: group met from 2-4 and discussed challenges of the project. We researched what exactly we will use to build the device as well as worked on the Gantt chart.

Week of February 5

Sunday 2/4: Hannah spent 1 hour downloading and learning more about the Python program.

Goals:

  • What to put into the algorithm
  • Getting GIS to work
  • Getting GIS to work
  • QGIS download
  • Read more info

Download Pycharm + QGIS

Monday 2/5: Hannah spent 1 hour creating powerpoint presentation for class presentation.

Wednesday 2/7: Group met for one hour adding to wiki page and project proposal

Week of February 12

Tuesday 2/13: Wiki page was updated to include TA, Gantt Chart and a longer description of the project. The presentation was also worked on for the class.

Wednesday 2/14: Today we hashed out our GANTT chart, in addition to making additions to our longterm goals. We updated our wiki, and have goals for next week to present our proposal, become adept in python and gather the data of distances.

Wednesday 2/16: Presented project proposal to class.

Week of February 19

Sunday 2/18: Watched multiple python tutorial videos. Most helpful links are below.

https://www.youtube.com/watch?v=N4mEzFDjqtA

https://www.python-course.eu/advanced_topics.php

Wednesday 2/21:

TA meeting discussed short term and long term goals: 1 hour

Week of February 26

Sunday 2/25: Noah created a program in python to figure out distance between two coordinates. It took around 30 minutes.


Hannah completed the python assignment listed below in goals (2.5 hours)

Monday 2/26: Noah created a program that sorts the distances between coordinates in order. It took around 2 hours.


Tuesday 2/27: Hannah, Zahra and Noah met with William Winston, an arGIS specialist on campus. We discussed the best possible programs and have scheduled another meeting for Friday afternoon.


Wednesday 2/28: Group meeting with TA John G and discussed possible new goal. Tentatively stated we would


Creating appropriate network + implementing algorithm then interface


Week of March 5

This week we familiarized ourselves with the WashU arcGIS program along with mapping a part of the campus. We have divided up the each individual parts of the campus to map.

Created a linear network


Zahra completed more python practice (2 hours)

Week of March 12

Zahra met with Bill Winston. He wants us to decide what type of GIS data is needed for python use. (We are using vector data but we may need to use raster data). He continued to explain how to plot points for vector data use.

Week of March 19

New Gantt chart was put into project page.

Hannah and Zahra met with William Winston and Molly Webb to further discuss ArcMap and how our implementation of python will be used.

https://www.youtube.com/watch?v=p0DNcTnreuY (link that shows us how to use excel data of nodes to make the shortest path).


Group meeting in research studio in Olin. Goals were reassessed and we redid our GANTT chart. We have had a lot of time researching a learning and now our goal is to create our project.

2 hour meeting with whole group in arts sci computer lab. Maps and progress with interface were made. We planned another meeting with Molly Webb to learn more about exporting the data we draw from ArcGIS.

Week of March 26

March 27 We met with Mollie who explained to us part of what we will need to do to complete our project including some coding information. The network was also finished and we started to put the path lengths in to a data table.

March 30 Noah and Zahra started putting data into an excel table that can be used in Dijkstra's Algorithm.

April 1 Noah finished putting the data into the excel table.

Short Term Goals:

create a simple user interface including a picture of the map and two drop downs with beginning location and ending location.
It will then produce a new image showing the map

Week of April 2

April 2 Noah started putting in 100000 for the data points that do not connect. He also labeled the map with the specific numbered points that can be used for the map so the visual implementation can use the map.


Week of April 9

Week of April 16

William Winston Notes

Defined data set

BUILDING ENTRY

stairs, foot paths

brad aver back - GIS layout

Upgrade arc gis remote

arcGIS online

Use python to control arcGIS

Python questions: Molly webb

Build linear systems

Heads up digitization

Identify all doorways

Check if windows is running 10.5

Send contact name to update version

Making linear Digitize and create network

Entry ways (pick one closest to elevator)


Current Goals

Python Skills:

Given two points, calculates distance between the two (2d coordinates) : Completed 2/27

Program, given n points, gives distance between all points in sorted order: Completed 2/27


arcGIS :

Be able to load up Python environment and get points from a layer (list of points) : Completed 3/3


Final Product Expectations :

  • topological data for campus paths w/ different weights for different mobilities
  • Shortest path from a to b for different mobilities
  • Final path exported as GIS waypoints

Code for Implementation of Dijkstra's Algorithm

class Graph:

 def __init__(self):
   self.nodes = set()
   self.edges = defaultdict(list)
   self.distances = {}
 def add_node(self, value):
   self.nodes.add(value)
 def add_edge(self, from_node, to_node, distance):
   self.edges[from_node].append(to_node)
   self.edges[to_node].append(from_node)
   self.distances[(from_node, to_node)] = distance


def dijsktra(graph, initial):

 visited = {initial: 0}
 path = {}
 nodes = set(graph.nodes)
 while nodes: 
   min_node = None
   for node in nodes:
     if node in visited:
       if min_node is None:
         min_node = node
       elif visited[node] < visited[min_node]:
         min_node = node
   if min_node is None:
     break
   nodes.remove(min_node)
   current_weight = visited[min_node]
   for edge in graph.edges[min_node]:
     weight = current_weight + graph.distance[(min_node, edge)]
     if edge not in visited or weight < visited[edge]:
       visited[edge] = weight
       path[edge] = min_node
 return visited, path

Link to main project page