Python+OGR库学习(一):读取点矢量文件属性值和坐标,并保存为TXT(一行一个要素值)
2018-12-26 22:32
579 查看
版权声明:本文为博主原创文章,未经允许不得转载 https://blog.csdn.net/weixin_42924891/article/details/85269395
代码思路:
1、导入相关库包,切换到当前文件夹
2、注册驱动,打开点矢量文件,获取图层
3、打开待写入TXT文件
4、遍历要素:
(1)获取当前要素‘ID’和‘cover’字段属性
(2)获取当前点要素对应几何对象和其坐标值X,Y
(3)将ID、cover、X、Y写入TXT文件
(4)清除当前feature缓存并获取下一要素
5、清除DataSource并关闭TXT文件
关键点:遍历要素,对每一个要素进行读取同时写入TXT
代码:
#!/usr/bin/env python3 #-*- coding:utf-8 -*- try: from osgeo import ogr except ImportError: import ogr import os,sys #切换路径 os.chdir(r'F:\Python+gdal\7weeks数据\7weeks数据\ospy_data1\ospy_data1') #注册驱动,打开文件和图层 driver = ogr.GetDriverByName("ESRI Shapefile") ds = ogr.Open('sites.shp',0)#以只读方式打开矢量文件 if ds ==None: print("打开文件失败!") sys.exit(1) layer = ds.GetLayer() #为避免不能提前知道shp属性字段,这里读取属性表所有字段 featuredefn = layer.GetLayerDefn()#获取图层属性表定义 fieldcount = featuredefn.GetFieldCount()#获取属性表中字段数 for attr in range(fieldcount): fielddefn = featuredefn.GetFieldDefn(attr) print("%s: %s"%(\ fielddefn.GetNameRef(),\ fielddefn.GetFieldTypeName(fielddefn.GetType()))) #layer = ds.GetLayerByIndex(0) #打开TXT文件 outtxtfile = open('sites.txt','w')#以可写方式打开 #遍历所有要素,开始读取和写入 feature = layer.GetNextFeature() while feature: #读取ID、cover字段值 id = feature.GetFieldAsString('id') cover = feature.GetFieldAsString('cover') #获取要素几何 geom = feature.GetGeometryRef() X = str(geom.GetX())#读取xy坐标,转为字符串,方便TXT写入 Y = str(geom.GetY()) #写入TXT文件 outtxtfile.write(id +' ' + cover+' '+ X +' '+ Y +'\n')#这种写入方式如果第二次运行,会覆盖原TXT文件 #清除缓存并获取下一个要素 feature.Destroy() feature = layer.GetNextFeature() #清除DataSource缓存并关闭TXT文件 ds.Destroy() outtxtfile.close()
代码输出
1、字段属性
2、保存TXT
学习使用,如有意见,感谢指正
相关文章推荐
- Python+OGR库学习(二):读取点矢量文件,复制特定属性值点并另存为shp文件
- Python+OGR库学习(三):将含有字段值的TXT文件写入shpfile
- Python+OGR库学习(八):关于面矢量文件的一些小操作
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python中对文件夹下的特定格式图像全部读取并转化为数组保存(也可转化为txt文件)
- 利用正则表达式读取txt文件中的邮箱,电话号码,url地址,手机号,将数据一行一个保存到一个新的文件中去
- Pythone OpenCV学习笔记之:视频文件读取与保存
- python学习(二)爬虫——爬取网站小说并保存为txt文件(二)
- 使用python读取.txt文件并保存到Excel中
- python学习(二)爬虫——爬取网站小说并保存为txt文件(一)
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- ArcMap如何将矢量线、面要素的坐标存储至TXT文本文件
- 用python 读取txt文件并保存为array
- Python之BeautifulSoup学习之三 读取本地html文件,并将其中图片保存下来
- Python实现读取目录所有文件的文件名并保存到txt文件代码
- Python读取文件目录,并保存到txt文件
- 【python】读取指定文件夹下的所有图片路径,并保存到列表再输出到txt文件中
- Python-读取目录所有文件的文件名并保存到txt文件
- Python实现读取目录所有文件的文件名并保存到txt文件代码