Is there any tool available which let's me run millions of parcel shapefiles and simplify them?
Version 9.0 of GDAL/OGR added the -simplify option to the ogr2ogr command. The documentation indicates that it preserves topology.
-simplify tolerance: (starting with GDAL 1.9.0) distance tolerance for simplification. This method will preserve topology, in particular for polygon geometries.
ogr2ogr outfile.shp infile.shp -simplify 0.000001
If your data is stored in PostGIS, try using ST_SimplifyPreserveTopology.
ogr2ogr has a "segmentize" option that appears to do what you need: GDAL ogr2ogr documentation
From that page:
-segmentize max_dist: (starting with GDAL 1.6.0) maximum distance between 2 nodes. Used to create intermediate pointsspatial query extents
You could try Shapely - a Python API built on top of GEOS. As both Shapely and GDAL have Python libraries you can easily combine them to data from many different sources (including shapefiles) and then simplifying and exporting as desired.
The only downside may be speed if you are doing millions of features - it could be faster to use GEOS or JTS directly.
See the simplify method:
All points in the simplified object will be within the tolerance distance of the original geometry. By default a slower algorithm is used that preserves topology. If preserve topology is set to False the much quicker Douglas-Peucker algorithm is used.
>>> p = Point(0.0, 0.0) >>> x = p.buffer(1.0) >>> x.area 3.1365484905459389 >>> s = x.simplify(0.05, preserve_topology=False) >>> s.area 3.0614674589207187
You could try Mapshaper. There are maybe some limitations due to your file size.
Inspire from Mapshaper, but directly in local, look on https://github.com/migurski/Bloch