Python(arcpy) 批量读取点元素文件(shp)属性表的字段

您所在的位置:网站首页 蕾姆图片cos Python(arcpy) 批量读取点元素文件(shp)属性表的字段

Python(arcpy) 批量读取点元素文件(shp)属性表的字段

#Python(arcpy) 批量读取点元素文件(shp)属性表的字段| 来源: 网络整理| 查看: 265

任务描述: 我有3年内某站点的逐日降雨数据,shp文件的属性表中包含经纬度和降雨量数据(就是下图右边的Lat、Lon、RASTEBRALU),想把他们全部提取到一个TXT中 在这里插入图片描述 在网上找了好久能读取点元素文件属性的代码,眼花缭乱,最后终于找到个能用的: python/arcpy提取shp文件属性表中的字段值 我的代码是在他的基础上完成的,主要加了批量操作,感谢这位博主!

#-*- coding:utf-8 -*- ''' 这篇代码是用于批量读取点元素的属性值 ''' #导入模块,使用该模块里定义的类、方法或者变量,从而达到代码复用的目的 import arcpy #导入 ArcPy 之后,可以运行随 ArcGIS 安装的标准工具箱中的所有地理处理工具 from arcpy import env import os #os--操作系统接口模块,该模块提供了一些方便使用操作系统相关功能的函数 #设置文件路径和工作区间 path_file="F:\\Data of China Flash Flood\\pointvalue_test\\" env.workspace="F:\\Data of China Flash Flood\\pointvalue_test\\" #读取路径中所有文件 ls = os.listdir(path_file) #存储结果文件 OutputFile = open(path_file+'Result.txt', 'w') #文件文件后缀名判定,只对SHP文件进行处理 for i in ls: if os.path.splitext(i)[1] == ".shp": #os.path.splitext函数用于分离文件名与扩展名 shppath = ("F:\\Data of China Flash Flood\\pointvalue_test\\"+i) #提取shp文件中的'FID', 'POINT_X', 'POINT_Y'字段 shpfields = ['Lat', 'Lon', 'RASTERVALU'] shp_Lat = [] shp_Lon = [] shp_RASTERVALU = [] #使用SearchCursor(搜索指针)遍历Row对象并提取字段值 shprows = arcpy.SearchCursor(shppath, shpfields) #使用WHILE进行迭代搜索游标,通过游标的next返回下一行 #当属性表中有多行时,这种遍历很关键,但对于点元素其实不用遍历也行 while True: shprow = shprows.next() if not shprow: break shp_Lat.append(shprow.Lat) #append()方法用于在列表末尾添加新的对象 shp_Lon.append(shprow.Lon) shp_RASTERVALU.append(shprow.RASTERVALU) OutputFile.write(str(shp_RASTERVALU) +'\n') #将shp_RASTERVALU写入txt文件中,并换行 print shp_RASTERVALU

关于SearchCursor,请看:SearchCursor Finish!

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3