shp平滑处理
在做图像数据处理时,经常会有栅格数据转矢量数据的操作,转换后的矢量文件会存在锯齿状边缘,不太美观,因此常常需要对矢量(shp)文件做平滑处理。
1 利用arcgis实现shp的平滑和简化
ArcToolbox / Cartography Tool / Generalization / Smooth Polygon,或者,制图工具 / 制图综合 / 平滑面。

2 基于GDAL矢量文件边界平滑
import sys
from osgeo import ogr, gdal, osr #平滑函数
def smooth(shp,out,name,smooth_size):
driver = ogr.GetDriverByName('ESRI Shapefile')
dataSource = driver.Open(shp, 0) # 0是只读,1可写
if dataSource is None:
print('could not open')
sys.exit(1)
# 获取图层
layer = dataSource.GetLayer(0)
t = int(layer.GetFeatureCount())
drv = ogr.GetDriverByName('ESRI Shapefile')
Polygon = drv.CreateDataSource(out)
# oLayer = Polygon.CreateLayer(name, srs=prj, geom_type=ogr.wkbMultiPolygon)
oLayer = Polygon.CreateLayer(name, layer.GetSpatialRef(), geom_type=ogr.wkbPolygon)
oFieldID = ogr.FieldDefn("ID", ogr.OFTInteger) # 创建一个叫ID的整型属性
oLayer.CreateField(oFieldID, 1)
feature = ogr.Feature(oLayer.GetLayerDefn())
ID=0
for i in range(0, t):
feat = layer.GetFeature(i)
geom = feat.GetGeometryRef()
ID = ID+1
buffer = geom.Buffer(smooth_size).Buffer(-smooth_size)
feature.SetGeometry(buffer) ## 设置面
feature.SetField(0, ID)
oLayer.CreateFeature(feature) if __name__ == '__main__':
# shp路径
shp=r"E:\成果\landsat8成果\LC08_L2SP_141039_20170214_20200905_02_T1.shp"
# 输出路径
out=r"E:\成果\修复"
# 输出名称
name=r"20170214"
# 平滑尺度,投影为经纬度选择0.001为宜,投影为坐标选择100为宜。
smooth_size = 0.001
smooth(shp, out, name, smooth_size)
shp平滑处理的更多相关文章
- 提取图像(tif)中水体的矢量数据(shp)研究
方法一:1、利用envi打开tif数据,原投影信息为beijing54.envi中没有这个投影。这里选择投影信息(WGS-84)选取水体roi——进行监督分类。这里可以对分类后进行处理(消除文字等干扰 ...
- 如何安全的将VMware vCenter Server使用的SQL Server Express数据库平滑升级到完整版
背景: 由于建设初期使用的vSphere vCenter for Windows版,其中安装自动化过程中会使用SQL Server Express的免费版数据库进行基础环境构建.而此时随着业务量的增加 ...
- 简析服务端通过GT导入SHP至PG的方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...
- WebGIS中基于控制点库进行SHP数据坐标转换的一种查询优化策略
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.前言 目前项目中基于控制点库进行SHP数据的坐标转换,流程大致为:遍 ...
- 关于gdb和shp的FID问题
gdb的FID从1开始,并且FID唯一,从数字化时开始,每个图形对应唯一的FID,删除图形亦删除对应的FID.FID可能出现中断的情况. shp的FID从0开始,并且永远连续.删除图形,则编号在其下面 ...
- 全国SHP地图数据赠送
百度搜索:GIS之家获取全国SHP图层数据的方式:收藏(ArcGIS地图全国电子地图shp格式版本GIS地图数据.GIS开发顺德政府GIS公共服务共享平台),并且截图验证,验证通过后,收下邮箱,我把下 ...
- 将SHP导入MySQL中
ogr2ogr -f MySQL MySQL:smfs,host=127.0.0.1,user=root,password=gis D:\spatialData\HB\HuBeiPicture\HuB ...
- Nginx在线服务状态下平滑升级或新增模块的详细操作
今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了 1:查看现有的nginx编译参数 /usr/local/nginx/sbin/ng ...
- yarn关于app max attempt深度解析,针对长服务appmaster平滑重启
在YARN上开发长服务,需要注意fault-tolerance,本篇文章对appmaster的平滑重启的一个参数做了解析,如何设置可以有助于达到appmaster平滑重启. 在yarn-site.xm ...
随机推荐
- 关于 IE8 console不未定义的问题
在开发的过程中由于调试的原因,在代码中加入console.info("xxxx"),而未进行删除 在IE8下测试该代码所在的页面报错,如下: 需要注意的是,使用console对象查 ...
- Hadoop 3.1.1 - Yarn - 使用 GPU
在 Yarn 上使用 GPU 前提 目前,Yarn 只支持 Nvidia GPU. YARN NodeManager 所在机器必须预先安装了 Nvidia 驱动器. 如果使用 Docker 作为容器的 ...
- 3.python编程与计算机的关系,如何执行python文件
上一节预告了这一章想讲如何不停地和世界打招呼,这涉及到编程中一个重要的概念:循环. 但经过了两周断更后细想了一下,不行,我们得对上一章进行补充,而且这个补充非常关键!也印证了上一章所说的: 上一节章很 ...
- 获取浏览器中url的参数
例如: 浏览器的地址是:http://localhost:8080/src/views/moneyDetail?id=10 vue 获取浏览器的参数 获取id的参数:this.$route.query ...
- 卷向字节码-Java异常到底是怎么被处理的?
你好呀,我是why,你也可以叫我歪歪. 比如下面这位读者: 他是看了我<神了!异常信息突然就没了?>这篇文章后产生的疑问. 既然是看了我的文章带来的进一步思考,恰巧呢,我又刚好知道. 虽然 ...
- 为了彻底搞懂 hashCode,我钻了一下 JDK 的源码
今天我们来谈谈 Java 中的 hashCode() 方法--通过源码的角度.众所周知,Java 是一门面向对象的编程语言,所有的类都会默认继承自 Object 类,而 Object 的中文意思就是& ...
- Vulhub-Phpmyadmin 4.8.1远程文件包含漏洞
前言:Phpmyadmin是一个用PHP编写的免费软件工具,旨在处理Web上的MySQL管理. 该漏洞在index.php中,导致文件包含漏洞 漏洞环境框架搭建: cd vulhub-master/p ...
- C++ //构造函数的分类及调用 //分类 // 按照参数分类 无参构造函数(默认构造) 有参构造函数 //按照类型分类 普通构造 拷贝构造
1 //构造函数的分类及调用 2 //分类 3 // 按照参数分类 无参构造函数(默认构造) 有参构造函数 4 //按照类型分类 普通构造 拷贝构造 5 6 #include <iostream ...
- Java基础技术-Java其他主题【面试】
Java基础技术-Java其他主题[面试] Java基础技术IO与队列 Java BIO.NIO.AIO Java 中 BIO.NIO.AIO 的区别是什么? 含义不同: BIO(Blocking I ...
- sqli-labs lesson 32-37
宽字节注入: 原理:mysql在使用GBK编码的时候,会认为两个字符为一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围).我们在过滤 ' 的时候(也就是从防御的角度 ...