基于gdal的空间缓冲区分析(python

网友投稿 1677 2022-11-23

基于gdal的空间缓冲区分析(python)

基于gdal的空间缓冲区分析(python)

前言

空间缓冲区分析是地理信息系统中基本的空间操作功能之一,它是根据研究目标的点、线、面实体,在其周围建立一定距离的带状区,用以识别这些目标实体对邻近对象的辐射范围或影响度,以便为某项分析或决策提供依据。

矢量数据可视化

代码

from pathlib import Pathimport ogrdef buffer(inShp, fname, bdistance=0.01): """ :param inShp: 输入的矢量路径 :param fname: 输出的矢量路径 :param bdistance: 缓冲区距离 :return: """ ogr.UseExceptions() in_ds = ogr.Open(inShp) in_lyr = in_ds.GetLayer() # 创建输出Buffer文件 driver = ogr.GetDriverByName('ESRI Shapefile') if Path(fname).exists(): driver.DeleteDataSource(fname) # 新建DataSource,Layer out_ds = driver.CreateDataSource(fname) out_lyr = out_ds.CreateLayer(fname, in_lyr.GetSpatialRef(), ogr.wkbPolygon) def_feature = out_lyr.GetLayerDefn() # 遍历原始的Shapefile文件给每个Geometry做Buffer操作 for feature in in_lyr: geometry = feature.GetGeometryRef() buffer = geometry.Buffer(bdistance) out_feature = ogr.Feature(def_feature) out_feature.SetGeometry(buffer) out_lyr.CreateFeature(out_feature) out_feature = None out_ds.FlushCache() del in_ds, out_dsif __name__ == '__main__': inShp = './data/shp/bj_line.shp' fname = 'Buffer.shp' buffer(inShp, fname)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LibTorch在windows下编译
下一篇:基于gdal的矢量合并(python)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~