4 from os import stat, environ
 
   8     size = stat(file).st_size
 
  15         size, suffix = size, ''
 
  17         size, suffix = size/KB, 'KB'
 
  19         size, suffix = size/MB, 'MB'
 
  21         size, suffix = size/GB, 'GB'
 
  23         size, suffix = size/TB, 'TB'
 
  26         return '%.1f %s' % (round(size,1), suffix)
 
  28         return '%d %s' % (round(size), suffix)
 
  34         return '%d seconds' % time
 
  35     if time < 60 * 60 * 1.5:
 
  36         return '%d minutes' % (time / 60.)
 
  37     if time < 24 * 60 * 60 * 1.5:
 
  38         return '%d hours' % (time / 3600.)
 
  39     if time < 7 * 24 * 60 * 60 * 1.5:
 
  40         return '%d days' % (time / 86400.)
 
  41     if time < 30 * 24 * 60 * 60 * 1.5:
 
  42         return '%d weeks' % (time / 604800.)
 
  44     return '%d months' % (time / 2592000.)
 
  46 def file_info(file, name):
 
  47     size = nice_size(file)
 
  48     hash = search(r'\w{32}', open(file+'.md5', 'r').read()).group(0)
 
  49     date = nice_time(time() - stat(file).st_mtime)
 
  51     return '<b><a href="%(file)s">%(name)s</a></b><br><b>%(size)s</b>, created %(date)s ago.<br><small>md5: %(hash)s</small>.' % locals()
 
  53 planet_link = file_info('planet/planet-latest.osm.bz2', 'Latest Weekly Planet XML File')
 
  54 changesets_link = file_info('planet/changesets-latest.osm.bz2', 'Latest Weekly Changesets')
 
  55 planet_pbf_link = file_info('pbf/planet-latest.osm.pbf', 'Latest Weekly Planet PBF File')
 
  58 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
  61   <title>Index of /</title>
 
  62   <link href="style.css" rel="stylesheet" type="text/css">
 
  65 <img id="logo" src="logo.png" alt="OSM logo" width="128" height="128">
 
  69 The files found here are regularly-updated, complete copies of the OpenStreetMap.org
 
  70 database, and those published before the 12 September 2012 are distributed under a Creative Commons Attribution-ShareAlike 2.0 license, those published after are  Open Data Commons Open Database License 1.0 licensed. For more information, <a href="http://wiki.openstreetmap.org/wiki/Planet.osm">see the project wiki</a>.
 
  76         <h2>Complete OSM Data</h2>
 
  79         <h2>Using The Data</h2>
 
  82         <h2>Extracts & Mirrors</h2>
 
  87         <p>%(planet_link)s</p>
 
  88         <p>%(changesets_link)s</p>
 
  89         <p>%(planet_pbf_link)s</p>
 
  91         Each week, a new and complete copy of all data in OpenStreetMap is made
 
  92         available as both a compressed XML file and a custom PBF format file.
 
  93         Also available is the <a href="planet/full-history">'history'</a> file
 
  94         which contains not only up-to-date data but also older versions of data
 
  95         and deleted data items.
 
  98         A smaller file with complete metadata for all changes ('changesets') in
 
  99         XML format is also available.
 
 104         You are granted permission to use OpenStreetMap data by 
 
 105         <a href="http://osm.org/copyright">the OpenStreetMap License</a>, which also describes 
 
 109         You can <a href="http://wiki.openstreetmap.org/wiki/Planet.osm#Processing_the_File">process the file</a>
 
 110         or extracts with a variety of tools. <a href="http://wiki.openstreetmap.org/wiki/Osmosis">Osmosis</a>
 
 111         is a general-purpose command-line tool for converting the data among different formats
 
 112         and databases, and <a href="http://wiki.openstreetmap.org/wiki/Osm2pgsql">Osm2pgsql</a>
 
 113         is a tool for importing the data into a Postgis database for rendering maps.
 
 116         <a href="http://wiki.openstreetmap.org/wiki/Coastline_error_checker">Processed coastline data</a>
 
 117         derived from OSM data is also needed for rendering usable maps, and can be found in a
 
 118         <a href="historical-shapefiles/processed_p.tar.bz2">single shapefile</a> (360MB).
 
 123         The complete planet is very large, so you may prefer to use one of
 
 124         <a href="http://wiki.openstreetmap.org/wiki/Planet.osm#Downloading">several periodic extracts</a>
 
 125         (individual countries or states) from third parties. <a href="http://download.geofabrik.de/openstreetmap/">GeoFabrik.de</a>
 
 126         and <a href="http://download.bbbike.org/osm/">BBBike.org</a> are two providers
 
 127         of extracts with up-to-date worldwide coverage.
 
 134 If you find data within OpenStreetMap that you believe is an infringement of someone else's copyright, then please make contact with the <a href="http://wiki.openstreetmap.org/wiki/Data_working_group">OpenStreetMap Data Working Group</a>.