用gis的simplify polygon工具简化面时数据量溢出,所以改用python,比较方便。
(代码包括存储简化前的属性表内容)
import geopandas as gpd
from shapely.geometry import shape
# 读取输入 Shapefile 文件
input_shapefile_path = 'path_to_your_input_shapefile.shp'
gdf = gpd.read_file(input_shapefile_path)
# 定义简化阈值(值越小,简化后剩的点越少,可以取0.1)
simplification_tolerance = 0.001
# 创建一个新的 GeoDataFrame 来存储简化后的几何对象和原始属性信息
simplified_geometries = []
original_attributes = []
for idx, row in gdf.iterrows():
original_geom = row['geometry']
simplified_geom = original_geom.simplify(simplification_tolerance)
simplified_geometries.append(simplified_geom)
original_attributes.append(row)
# 创建一个新的 GeoDataFrame 来存储简化后的几何对象和原始属性信息
simplified_gdf = gpd.GeoDataFrame(original_attributes, geometry=simplified_geometries, crs=gdf.crs)
# 保存简化后的结果为 Shapefile 文件
output_shapefile_path = 'path_to_your_output_shapefile.shp'
simplified_gdf.to_file(output_shapefile_path)