欢迎关注博主的微信公众号:“智能遥感”。
该公众号将为您奉上Python地学分析、爬虫、数据分析、Web开发、机器学习、深度学习等热门源代码。
Python的小伙伴们,咱们又见面啦!
本节给大家带来得知识点仍然是GDAL的矢量数据操作,主要是矢量数据的输出,好了,废话不多说,直接上代码!
~~~~~~~~~~~~~~~~~~~~~~~~~~
编程环境:
操作系统:windows
Python版本:2.7
IDE版本:PyCharm 2018.2.4专业版
~~~~~~~~~~~~~~~~~~~~~~~~~~
# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2018/11/2 11:36'
import sys
from osgeo import ogr
# 获取该问夹下下所有shp数据集
ds = ogr.Open(r'D:\osgeopy-data\global', 1)
# 如果获取失败,则程序报错,不运行
if ds is None:
sys.exit('Could not open folder.')
in_lyr = ds.GetLayer('ne_50m_populated_places') # 获取该shp文件
# 如果该文件下存在获shp文件capital_cities,则删除,为了后面重新创建该shp文件
if ds.GetLayer('capital_cities'):
ds.DeleteLayer('capital_cities')
out_lyr = ds.CreateLayer('capital_cities',
in_lyr.GetSpatialRef(),
ogr.wkbPoint)
out_lyr.CreateFields(in_lyr.schema) # 创建shp属性表字段
out_defn = out_lyr.GetLayerDefn()
out_feat = ogr.Feature(out_defn)
for in_feat in in_lyr:
if in_feat.GetField('FEATURECLA') == 'Admin-0 capital':
geom = in_feat.geometry()
out_feat.SetGeometry(geom) # 创建几何信息
# 将输入shp文件中的属性值赋给输出shp文件中的属性值
for i in range(in_feat.GetFieldCount()):
value = in_feat.GetField(i)
out_feat.SetField(i, value)
out_lyr.CreateFeature(out_feat)
del ds
~~~~~~~~~~~~~~~~~~~~~~~~~~~
由于百度网盘上传数据开始抽风,小编决定放弃使用,后面会把数据和源码上传到我的GitHub上,大家敬请关注!
哦,还有一件事,我的CSDN博客也在同步更新,有什么好的想法和建议,可以在我的博客下方留言(微信公众号留言功能目前已取消,希望腾讯快点儿开通吧 *^_^*),相互学习与交流,欢迎您的参与!博客链接:
https://blog.csdn.net/XBR_2014
~~~~~~~~~~~~~~~~~~~~~~~~~~~