Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Computes straight skeletons of simple polygons

branch: master
Skeletron Bumped to 0.10.0 with single geometry option on skeletron-generalize
.gitignore Preparing a primitive package
CHANGELOG Bumped to 0.10.0 with single geometry option on skeletron-generalize
README.txt Introduced dependency on StreetNames and shortname output from skelet…
new-hampshire-times.png Added comments about time coefficient selection in graph_routes()
oakland-sample.json Added Oakland sample data from OSM
osm-slurp.py multiline_centerline() takes a min_area, ParseOSM.parse() takes a fil…
osm-to-json.py multiline_centerline() takes a min_area, ParseOSM.parse() takes a fil…
setup.py Bumped to 0.8.0 with support for Hadoop streaming
skeletron-generalize.py Added --single flag to skeletron-generalize for expanding multi-geome…
skeletron-hadoop-mapper.py Bumped to 0.9.1 with reduced output precision from skeletron-generalize
skeletron-hadoop-reducer.py Bumped to 0.9.0 with more defensive error catching in hadoop reducer …
skeletron-osm-route-rels.py Replaced sys.stderr printing with logging
skeletron-osm-streets.py Introduced dependency on StreetNames and shortname output from skelet…
skeletron-pgdump-route-rels.py Bumped to 0.9.2 with fixed shebang lines in two scripts
voronoi-look.py Sort-of parsing OSM files
README.txt
Skeletron
=========

Skeletron generalizes collections of lines to a specific spherical mercator
zoom level and pixel precision, using a polygon buffer and voronoi diagram as
described in a 1996 paper by Alnoor Ladak and Roberto B. Martinez, "Automated
Derivation of High Accuracy Road Centrelines Thiessen Polygons Technique"
(http://proceedings.esri.com/library/userconf/proc96/TO400/PAP370/P370.HTM).

Required dependencies:
  - qhull binary (http://www.qhull.org)
  - shapely 1.2+ (http://pypi.python.org/pypi/Shapely)
  - pyproj (http://code.google.com/p/pyproj)
  - networkx 1.5+ (http://networkx.lanl.gov)
  - StreetNames 0.1+ (https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names)

You'd typically use it via one of the provided utility scripts, currently
just these two:

skeletron-osm-streets.py

  Accepts OpenStreetMap XML input and generates GeoJSON output for streets
  using the "name" and "highway" tags to group collections of ways.

skeletron-osm-route-rels.py

  Accepts OpenStreetMap XML input and generates GeoJSON output for routes
  using the "network", "ref" and "modifier" tags to group relations.
  More on route relations: http://wiki.openstreetmap.org/wiki/Relation:route

The Name
--------

The first two implementations of Skeletron used the "straight skeleton" of
a polygon to find a generalized center, and ultimately didn't work very well.

The straight skeleton:
    http://twak.blogspot.com/2009/01/that-straight-skeleton-again.html

How it's useful for maps:
    http://aci.ign.fr/Leicester/paper/Haunert-v2-ICAWorkshop.pdf
Something went wrong with that request. Please try again.