From fca7f21b1dbc911d7d3144b866dc88764362ba93 Mon Sep 17 00:00:00 2001 From: Al Date: Thu, 10 Sep 2015 11:06:18 -0700 Subject: [PATCH] [polygons] Making simplify_tolerance and preserve_topology for polygon simplification configurable per class --- scripts/geodata/polygons/index.py | 8 +++++++- scripts/geodata/polygons/language_polys.py | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/geodata/polygons/index.py b/scripts/geodata/polygons/index.py index 3e29e43f..4109bff9 100644 --- a/scripts/geodata/polygons/index.py +++ b/scripts/geodata/polygons/index.py @@ -14,6 +14,8 @@ DEFAULT_POLYS_FILENAME = 'polygons.geojson' class RTreePolygonIndex(object): include_only_properties = None + simplify_tolerance = 0.0001 + preserve_topology = True def __init__(self, index=None, polygons=None, save_dir=None, index_filename=None, @@ -46,7 +48,11 @@ class RTreePolygonIndex(object): def index_polygon(self, id, polygon): self.index.insert(id, polygon.bounds) - def simplify_polygon(self, poly, simplify_tolerance=0.0001, preserve_topology=True): + def simplify_polygon(self, poly, simplify_tolerance=None, preserve_topology=None): + if simplify_tolerance is None: + simplify_tolerance = self.simplify_tolerance + if preserve_topology is None: + preserve_topology = self.preserve_topology return poly.simplify(simplify_tolerance, preserve_topology=preserve_topology) def add_polygon(self, poly, properties): diff --git a/scripts/geodata/polygons/language_polys.py b/scripts/geodata/polygons/language_polys.py index 9e1c7f84..2da5dfc3 100644 --- a/scripts/geodata/polygons/language_polys.py +++ b/scripts/geodata/polygons/language_polys.py @@ -26,6 +26,8 @@ class LanguagePolygonIndex(RTreePolygonIndex): 'admin_level' ]) + simplify_tolerance = 0.00001 + @classmethod def create_from_shapefiles(cls, admin0_shapefile,