From OpenStreetMap Wiki
Jump to navigation Jump to search


Inspired by User:Steevcs script to download missing tiles for BSGPSPDA I also wrote a script to redownload old tiles. It only looks at the modified time of the file. Would probably be even better if asking the server if there are a newer tile.


#!/usr/bin/env python
  Author:     Jonas Svensson
  Program:    Update OSM tiles
  Date:       2007-10-14

  Description:  Walks a directory structure and redownloads any files found
                that are older than two days.
                  For now everything runs from the current directory
                  Also depends on the directry structure being quite correct:
import urllib
import os
import time

baseurl = ""

cat = os.listdir(os.getcwd())
for zoomlevel in cat:
  if os.path.isdir(zoomlevel):
    columns = os.listdir(zoomlevel)
    for col in columns:
      coldir = zoomlevel+os.path.sep+col
      if os.path.isdir(coldir):
        filenames = os.listdir(coldir)
        for filename in filenames:
          fullfilename = coldir + os.path.sep + filename
          if os.path.isfile(fullfilename):
	    fileage = time.time() - os.stat(fullfilename).st_mtime
            if fileage > 2*24*60*60:
              geturl = baseurl+fullfilename
              urllib.urlretrieve(geturl, fullfilename)
	      print "Downloaded tile " + fullfilename