ArcGIS+Python读取flt文件并进行区域统计
功能描述:通过ARCGIS的Python脚本,读取flt文件格式,然后根据一个shape文件的区域进行统计其平均值,最后读取出来保存到txt文件中。
1、由于统计后生成的为dbf文件,所以读取需要一个包,下载dbfpy-2.3.0.win32.exe,专门读取写dbf文件的包http://sourceforge.net/projects/dbfpy/files/dbfpy/
2、读取.flt的Python代码
# -*- coding: cp936 -*-
# Import system modules
import arcpy
import os
from arcpy import env
from arcpy.sa import *
from dbfpy import dbf
#函数体:把链表中的内容写到指定的txt文件中
def WriteResultToTxt(txtpath,list):
#print "写出结果"
#print Result_ET_List
#print txtpath
f = open(txtpath, 'w')
for record in list:
#print record
f.write(record+"\n")
f.close()
#函数体:读取指定dbf文件的平均值
def ReadDBF(dbfPath):
#打开统计的结果表,读取平均值
#print dbfPath+"李艳忠"
if (os.path.exists(dbfPath)):
#print "文件存在!"
db = dbf.Dbf(dbfPath, True)
for record in db:
averageValue=record['MEAN']
return averageValue
#print "平均值为:"+str(averageValue)
else:
print "查无此文件!"
return
#主程序
env.workspace = "F:\项目工程\科研数据\Zhang_E" # 设置环境变量
rawDataPath=env.workspace+"\\Raster"
inZoneData = env.workspace+"\\border\\border.shp" #用于统计的边界shape
zoneField = "FID" #边界使用统计字段
outTablePath = "D:\\study\\aa\\result\\" #D:\study\aa\result #MonthlyET_1983Apr.dbf
outResultTXT=env.workspace+"\\result\\ET.txt" #导出的txt路径
Result_ET_List=[] #用于存储计算出来的ET结果的链表
#print outTablePath
#print inZoneData
#print outResultTXT
#构建所有的文件名称路径
monthArr=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] #定义12个月
for year in range(1983,2007,1):
for month in monthArr:
infilename="MonthlyET_"+str(year)+str(month)
inFileFullpath=rawDataPath+"\\"+infilename+".flt"
#print inFileFullpath
if (os.path.exists(inFileFullpath)): #输入文件存在,进行处理
#print str(infilefullpath)+"----存在"
outTableFullPath=str(outTablePath)+infilename+".dbf" #输出文件路径
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial") #一定要加上这句话,否则会报“The tool is not licensed.”的错误
#outZSaT = ZonalStatisticsAsTable(inZoneData,zoneField,inFileFullpath,outTableFullPath, "NODATA", "MEAN") #区域统计到表中
#print "输出的dbf路径为:"+outTableFullPath
average=ReadDBF(outTableFullPath) #读取dbf中的结果值
#print average
Result_ET_List.append(infilename+" "+str(average)) #把当前的结果存到链表中
print infilename+"----已完成!"
else:
#print str(filefullpath)+"----不存在"
aa=2
print "正准备写出结果链表!记录数为:"+str(len(Result_ET_List))
WriteResultToTxt(outResultTXT,Result_ET_List) #最后把结果写出到txt文件中
print str(len(Result_ET_List))+"条记录成功写出结果链表!"
print "恭喜您,全部文件成功完成!"
ArcGIS+Python读取flt文件并进行区域统计相关推荐
- 用python处理excel的基本语法_《使用python3读取处理excel表的数据内容如何对内容求平均值》 用python读取excel文件...
使用python3读取处理excel表的数据内容如何对内容求平均值 先说下概述: 平就合平均数的值. (a1 a2 --an)/na1,a2,--,an的平均值. 简单算均数.么一组数字10.20.3 ...
- python读取大文件的某行_python 大文件以行为单位读取方式比对
先前需要做一个使用python读取大文件(大于1G),并逐条存入内存进行处理的工作.做了很多的尝试,最终看到了如下的文章. 该文章实际上提供了集中读取大文件的方式,先经过测试总结如下 1. for l ...
- python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory
项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...
- python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据
在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...
- python读取一个文件夹/子文件夹下的所有文件名字
python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...
- python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
注意,本文代码是使用在txt文档上,同时txt文档中的内容每一行代表的是图片的名字. #coding:utf-8 import shutil readDir = "原文件绝对路经" ...
- python读取txt文件并画图
1,使用python读取txt文件 已知txt文件内容如下: 0 01 12 43 94 165 256 36 请以第一列为x轴,第二列为y轴画图 步骤如下: 1)使用readlines读取文件 2) ...
- MATLAB和Python读取wave文件的波形对比
用python读取.wav文件的波形后再用MATLAB读取文件波形进行验证. 1.MORSE 1.1 Python 程序见之前的博客. 波形如图1所示: 图1 1.2 MATLAB 读取波形程序 ...
- 用Python读取整个文件
本文翻译自:Reading entire file in Python If you read an entire file with content = open('Path/to/file', ' ...
最新文章
- 剑指offer:面试题31. 栈的压入、弹出序列
- SocketIO---bio2---带线程池处理任务
- MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)
- Silverlight 2 应用程序部署到任意HTML页面
- VirtualAlloc和VirtualCopy的蕴含知识点
- c语言抓取抖音视频,【FiddlerScript】利用Fiddler中的FiddlerScript自动抓取抖音无水印视频并且自动保存...
- 控制台文字对战游戏 初始版
- C++工作笔记-VS中“调用堆栈”窗口的使用,实现越界的快速定位
- 苹果maccmsv10和redis memcached缓存的若干问题解决!
- Bootstrap 分页导航的对齐方式
- 802.11无线网络部署方案对比分析
- 大学计算机基础模拟,模拟练习系统
- c++实现飞机大战小游戏
- ntsd.exe 附使用教程
- Mac上的windows 10系统,bootcamp 5更新 bootcamp 6,缺少bootcamp.msi
- 怎样找回win7密钥
- 如何在 Windows 中删除运行历史记录
- 静态函数与非静态函数的区别
- Google Chrome 浏览器最新版本 71.0.3578.98(正式版本) (64 位)
- 统一自定义idea和eclipse代码格式化和注释格式化总结
热门文章
- 关于shell编程(3):awk中的sub和gsub
- 【每日英文】2021.7.23
- 如何实现点击按钮后禁用按钮的功能?
- 通讯录(初级)程序编写(C语言版)
- 硬盘 NTFS格式 与 exFAT格式 的比较
- 环保用电监管云平台可行性研究及解决方案-安科瑞 周莉娜
- 误删了计算机桌面回收站,如何解决电脑回收站被误删故障 电脑回收站被误删的两种解决方法...
- android开发_表单上传图片及其它参数
- 前端安全中的 cookie 防护 - 加速乐(jsl)
- python统计次数正则_Python提取信息必学基础——正则表达式