Shortest-Path Route Extraction From City Map: Difference between revisions

From FDHwiki
Jump to navigation Jump to search
Line 17: Line 17:


== Extraction methods ==
== Extraction methods ==
Extraction methods go here. We use the Python tool NEFI (''Network Extraction From Images'')<ref name="NEFI" />.
For the proposed application, the relevant information that needs to be extracted from the map is some usable representation of the road network. For this, the Python tool NEFI<ref name="NEFI" /> (''Network Extraction From Images''), developed at ''Max Planck Institut für Informatik'', is used. The tool performs automated detection of networks in images based on the Guo-Hall thinning algorithm<ref name="Guo-Hall" /> and outputs the extracted network as an undirected planar graph (stored in a text file).


== Project Plan and Milestones ==
== Project Plan and Milestones ==

Revision as of 23:54, 2 December 2018

The Historical Document

Original map which forms the basis of the project. Note the distinction between already built sections (darker, south-west) and unfinished or planned sections (lighter, north-east).

We are working on a historical map of Manhattan, depicting mostly Lower Manhattan as well as some part to the north-east of that. The following is a compilation of some contextual information retrieved directly from within the map:

  • self-designated as "Plan of the City of New-York"
  • published in 1829
  • in the English language
  • As for the source material of the map, it is stated: "The greater part from actual survey made expressely for the purpose (the rest from authentic documents)"
  • by Thomas H. Pappleton, City Surveyor
  • published by Prior & Bowne
  • revised, corrected by William Hooker

The map features a clear visual distinction between two sections. The first one, delimited to the north-east by North Street, Bowery, Eigth Street, Greenwich Lane, and Great Kill Road, is characterized by buildings drawn hatched, thus appearing darker. This is in constrast to the other section, where buildings are drawn more lightly, and in places superimposed over roads, that are drawn in a dashed style, or natural terrain features. The former section depicts built parts of the city, while the latter represents parts that are unfinished or only at a planning stage. While this interpretation is natural, it is not evident beyond doubt from the map itself which lacks a legend explaining the meaning of the different shadings of buildings. However, another map[1] from around the same time (1836), which contains a broadly similar division, as well as a legend revealing the darker areas as "Section[s] of City built" and the lighter ones as either "Opened or being regulated" or "established by Ordinance", allowed us to draw this conclusion.

For the project, only the darker section on the map, corresponding to already built parts of the city, is used, while the rest is ignored.

Extraction methods

For the proposed application, the relevant information that needs to be extracted from the map is some usable representation of the road network. For this, the Python tool NEFI[2] (Network Extraction From Images), developed at Max Planck Institut für Informatik, is used. The tool performs automated detection of networks in images based on the Guo-Hall thinning algorithm[3] and outputs the extracted network as an undirected planar graph (stored in a text file).

Project Plan and Milestones

Our final goal is to create a simple Google-Maps-style navigation tool for the past. The user will be able to select two points, and see the shortest path between these two points. This would be a useful for someone to estimate how they would navigate through a city - possibly hundreds of years ago. Florian has been tasked with pre-processing the historical map. This involves searching for the best maps and cleaning them. Cleaning is crucial to ensure that an accurate graph is extracted from the map. Jonathan is working on representing the graph visually, creating interactivity, and hosting it on a website.

Note that, by design, this section is a snapshot of the project planning at an intermediary stage (as of November 14), and therefore might not accurately reflect all steps taken at later stages.

Already Completed

  • Researched software[2] that will help us with graph extraction
  • Took the first steps to developing a cleaning process for each map
  • Written Python code to display a graph from a text list of nodes and edges
  • Completed simple routing between two nodes

Future Goals

  • Take a decision on which overall direction to pursue for the remainder of the project: Generality, by including several other maps? Or, adding selection of start and end point based on address input, to more closely mimic the interface and functionality of services like Google Maps? (November 23)
  • Letting a user select two nodes on the map, and displaying the shortest path between the two nodes. (November 23)
  • Displaying the interactive graph on the website. (November 23)
  • Calculating and displaying the actual estimated distance between the two points. (end of November)
  • Overlay the graph representation onto the historical map. (end of November)
  • Develop a manual process for assessing how accurate graph extraction is, and correcting if necessary. (end of November)
  • Some buffer time, to allow for unforeseen work. (December 1 to 9)
  • Finish Wiki writing (December 12)
  • Refine (and automate) the cleaning process. This may involve researching other maps and choosing the best ones for our needs. (no hard time frame, depending on feasibility and necessity)
  • Possibly move the network extraction, which is currently done via GUI, to a script. (no hard time frame, depending on feasibility and necessity)
  • (Stretch goal) Allow a user to upload their own map which will be processed and displayed.

References

  1. https://www.loc.gov/item/2007627512/
  2. 2.0 2.1 Dirnberger, M. and Kehl, T. and Neumann, A., "NEFI: Network Extraction From Images", Scientific Reports, 5 (2015), http://dx.doi.org/10.1038/srep15669
  3. Guo, Zicheng & W. Hall, Richard. "Parallel thinning with two-subiteration algorithms". Communications of the ACM 32 (1989), 359-373. http://doi.acm.org/10.1145/62065.62074