用visvalingam-wyatt算法简化几何图形
visvalingamwyatt的Python项目详细描述
visvalingam-wyatt线简化的python实现 算法。
此实现是由于Eliot Hallmark。 这个版本只是将其打包为一个python模块。
使用
>>>importvisvalingamwyattasvw>>>points=[(1,2),(2,3),(3,4),...]>>>vw.simplify(points)[(1,2),(3,4),...]
点可以是任何类似于Sequence的对象(list,tuple,a 公开__iter__方法的自定义类)。
测试不同的方法和阈值:
simplifier=vw.Simplifier(points)# Simplify by percentage of points to keepsimplifier.simplify(ratio=0.5)# Simplify by giving number of points to keepsimplifier.simplify(number=1000)# Simplify by giving an area thresholdsimplifier.simplify(threshold=0.01)
使用Geodata的缩写:
importvisvalingamwyattasvwfeature={"properties":{"foo":"bar"},"geometry":{"type":"Polygon","coordinates":[...]}}# returns a copy of the geometry, simplified (keeping 90% of points)vw.simplify_geometry(feature['geometry'],ratio=0.90)# returns a copy of the feature, simplified (using an area threshold)vw.simplify_feature(feature,threshold=0.90)
命令行工具vwsimplify可用于简化geojson 文件:
# Simplify using a ratio of points vwsimplify --ratio 0.90 in.geojson -o simple.geojson # Simplify using the number of points to keep vwsimplify --number 1000 in.geojson -o simple.geojson # Simplify using a minimum area vwsimplify --threshold 0.001 in.geojson -o simple.geojson
为安装Fiona 简化任何地理数据层的附加功能。
许可证
麻省理工学院