Mapping History on Open Street Map

  • 16,098 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Great work. I came here investigating a way for my high school students in B.C., Canada to create a map of our area with layers of historic information detailing changes to economic activity and such.
    Are you sure you want to
    Your message goes here
  • Excellent summary and example images, thanks!
    Are you sure you want to
    Your message goes here
  • I want to do the same thing exactly!!
    In openstreetmap, you can draw line features like roads... do you know of anywhere you can draw polygons?
    Check out the work I did animating North American history and the expansion of my town in the 20th century:
    Scroll down to 'Geographic Information Systems (GIS)':
    http://www.thenittygritty.org/intheworks.html
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
16,098
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
58
Comments
3
Likes
17

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Mapping History (starting with Manchester) Frankie Roberto frankie@frankieroberto.com Twitter: frankieroberto
  • 2. Currently, OpenStreetMap maps change over time, as people edit them.
  • 3. ...in a way that printed maps don’t. N.B. This map, in Sheffield, has been like this for months.
  • 4. But these changes represent the speed at which editors update and improve the maps, not the speed of changes on the ground.
  • 5. I’d like to be able to add a time-slider to maps, so that you can see how the places themselves have changed over time.
  • 6. Comparing old maps with new maps is fun...
  • 7. Before...
  • 8. After...
  • 9. But these comparisons are made harder by the big changes in cartography.
  • 10. I’ve mapped some of the buildings in Manchester...
  • 11. ...where there are lots of pretty old buildings...
  • 12. ...and some ugly newer ones...
  • 13. ...as well as a few under construction.
  • 14. (I’ve shared all the photos on Flickr)
  • 15. ...where they are even machine tagged with the appropriate way.
  • 16. The years in which the buildings were constructed have been added to OpenStreetMap using...
  • 17. start_date=
  • 18. This information can sometimes be found inscribed on the buildings, but for the most part I used the local library...
  • 19. Isn’t it pretty?
  • 20. Books like this were a great help.
  • 21. ...it even has a gazeteer, listing the buildings by street.
  • 22. So, given this data, how do you filter out new buildings from old maps?
  • 23. You could add extra rules to Mapnik or Osmarender. ...but it’s probably easiest to pre-process.
  • 24. <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> </xsl:template> <xsl:template match="way"> <xsl:choose> <xsl:when test="tag/@k = 'start_date'"> <xsl:choose> <xsl:when test="tag[@k = 'start_date']/@v &gt; $year"> </xsl:when> <xsl:otherwise> <way><xsl:apply-templates select="@*|node()"/></way> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <way><xsl:apply-templates select="@*|node()"/></way> </xsl:otherwise> </xsl:choose> </xsl:template> ...using a little bit of XSLT. </xsl:stylesheet>
  • 25. #!/bin/bash for (( i = 1900; i < 2011; i = i + 10)) do xsltproc --stringparam "year" "$i" start_date_filter.xsl data.svg > data/$i.osm done A quick bash script produces one filtered data file per decade: 1800.osm 1910.osm 1810.osm 1920.osm 1820.osm 1930.osm 1830.osm 1940.osm 1840.osm 1950.osm 1850.osm 1960.osm 1860.osm 1970.osm 1870.osm 1980.osm 1880.osm 1990.osm 1890.osm 2000.osm 1900.osm 2010.osm
  • 26. #!/bin/bash for (( i = 1900; i < 2011; i = i + 10)) do ln -s ../files/$i.osm data.osm xsltproc osmarender.xsl osm-map-features-z17.xml > svg/$i.svg done ...and then another bash script renders each file using Osmarender: 1800.svg 1910.svg 1810.svg 1920.svg 1820.svg 1930.svg 1830.svg 1940.svg 1840.svg 1950.svg 1850.svg 1960.svg 1860.svg 1970.svg 1870.svg 1980.svg 1880.svg 1990.svg 1890.svg 2000.svg 1900.svg 2010.svg
  • 27. A quick caveat...
  • 28. A quick caveat... start_date_filter.xsl expects start_date=YYYY
  • 29. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be:
  • 30. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10
  • 31. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 1934-10-23
  • 32. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 c1830 1934-10-23
  • 33. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 c1830 1934-10-23 1900s
  • 34. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 c1830 1832-1847 1934-10-23 1900s
  • 35. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 c1830 1832-1847 1934-10-23 1900s “before 1832”
  • 36. A quick caveat... start_date_filter.xsl expects start_date=YYYY but the actual date might be: 1934-10 c1830 1832-1847 1934-10-23 1900s “before 1832” Figuring this out is a TODO...
  • 37. Here’s how the rendered files look: 1 80 0
  • 38. 18 1 0
  • 39. 1820
  • 40. 1830
  • 41. 1840
  • 42. Theatre Royale 1850
  • 43. Free Trade Hall 1860
  • 44. Lloyd’s House 1870
  • 45. Town Hall Train station 1 880
  • 46. Elliot House 1 89 0
  • 47. Train station goods warehouse 1900
  • 48. Midland Hotel 19 1 0
  • 49. St George’s House 1920
  • 50. 1930
  • 51. Town Hall Extension Central Library 1940
  • 52. 1950
  • 53. Peter House 1960
  • 54. Lincoln Square 1970
  • 55. 1 980
  • 56. Heron House 1990
  • 57. 20 0 0
  • 58. Great Northern Tower 20 1 0 (?)
  • 59. But there’s a problem with this map! There are buildings I don’t have dates for yet But more importantly, there are old buildings, long demolished which should be shown. 1 80 0
  • 60. Take a look at this old map of the area for example... We could trace all these old buildings, and tag them with...
  • 61. end_date=
  • 62. But there’s a problem:
  • 63. But there’s a problem: We don’t want long-demolished buildings appearing on the maps!
  • 64. But there’s a problem: We don’t want long-demolished buildings appearing on the maps! Renderers could filter out features with end_date < Date.now...
  • 65. But it’d probably be best to move the filtering to the API:
  • 66. But it’d probably be best to move the filtering to the API: GET http://www.openstreetmap.org/api/0.7/[...]?date=1932
  • 67. But it’d probably be best to move the filtering to the API: GET http://www.openstreetmap.org/api/0.7/[...]?date=1932 Default = [today]
  • 68. We also need to date attributes:
  • 69. We also need to date attributes: • Name changes (old_name=)
  • 70. We also need to date attributes: • Name changes (old_name=) • Change in use (amenity=cinema becomes sport=bingo)
  • 71. We also need to date attributes: • Name changes (old_name=) • Change in use (amenity=cinema becomes sport=bingo) • Change in scale (highway=unclassified to highway=primary)
  • 72. We also need to date attributes: • Name changes (old_name=) • Change in use (amenity=cinema becomes sport=bingo) • Change in scale (highway=unclassified to highway=primary) • Accessibility modifications (bicycle=yes)
  • 73. One solution is add two extra columns:
  • 74. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 75. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 76. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 77. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 78. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 79. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 80. One solution is add two extra columns: Tag start_date end_date amenity=bank 1934 2001 name=Lloyd’s Bank 1934 2001 landuse=construction_site 2001 2002 amenity=pub 2002 name=Wetherspoons 2002 wheelchair=yes 2005
  • 81. We may also need to date changes in positions (nodes)
  • 82. We may also need to date changes in positions (nodes) • Boundary changes
  • 83. We may also need to date changes in positions (nodes) • Boundary changes • Extensions to buildings
  • 84. We may also need to date changes in positions (nodes) • Boundary changes • Extensions to buildings • Road straightening
  • 85. We may also need to date changes in positions (nodes) • Boundary changes • Extensions to buildings • Road straightening • Flooding?
  • 86. The solution is probably to use Relations (??)
  • 87. Dating things poses some Philosophical Issues
  • 88. How long does a feature remain the same feature? (Is a building with a preserved facade the same building, or a new one?)
  • 89. Final thought....
  • 90. Final thought.... Can we predict the future?
  • 91. Final thought.... Can we predict the future? (Should we tag planned new buildings, roads and features?)
  • 92. Thanks (get mapping history!) Frankie Roberto frankie@frankieroberto.com Twitter: frankieroberto