功能描述:通过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文件并进行区域统计相关推荐

  1. 用python处理excel的基本语法_《使用python3读取处理excel表的数据内容如何对内容求平均值》 用python读取excel文件...

    使用python3读取处理excel表的数据内容如何对内容求平均值 先说下概述: 平就合平均数的值. (a1 a2 --an)/na1,a2,--,an的平均值. 简单算均数.么一组数字10.20.3 ...

  2. python读取大文件的某行_python 大文件以行为单位读取方式比对

    先前需要做一个使用python读取大文件(大于1G),并逐条存入内存进行处理的工作.做了很多的尝试,最终看到了如下的文章. 该文章实际上提供了集中读取大文件的方式,先经过测试总结如下 1. for l ...

  3. python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory

    项目场景: python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory 问题描述: #储存调用表格.数据 #调 ...

  4. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  5. python读取一个文件夹/子文件夹下的所有文件名字

    python读取一个文件夹/子文件夹下的所有文件名字 示例代码: import osfile_path = './images/' all_file_name = os.listdir(file_pa ...

  6. python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...

    注意,本文代码是使用在txt文档上,同时txt文档中的内容每一行代表的是图片的名字. #coding:utf-8 import shutil readDir = "原文件绝对路经" ...

  7. python读取txt文件并画图

    1,使用python读取txt文件 已知txt文件内容如下: 0 01 12 43 94 165 256 36 请以第一列为x轴,第二列为y轴画图 步骤如下: 1)使用readlines读取文件 2) ...

  8. MATLAB和Python读取wave文件的波形对比

       用python读取.wav文件的波形后再用MATLAB读取文件波形进行验证. 1.MORSE 1.1 Python 程序见之前的博客. 波形如图1所示: 图1 1.2 MATLAB 读取波形程序 ...

  9. 用Python读取整个文件

    本文翻译自:Reading entire file in Python If you read an entire file with content = open('Path/to/file', ' ...

最新文章

  1. 剑指offer:面试题31. 栈的压入、弹出序列
  2. SocketIO---bio2---带线程池处理任务
  3. MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)
  4. Silverlight 2 应用程序部署到任意HTML页面
  5. VirtualAlloc和VirtualCopy的蕴含知识点
  6. c语言抓取抖音视频,【FiddlerScript】利用Fiddler中的FiddlerScript自动抓取抖音无水印视频并且自动保存...
  7. 控制台文字对战游戏 初始版
  8. C++工作笔记-VS中“调用堆栈”窗口的使用,实现越界的快速定位
  9. 苹果maccmsv10和redis memcached缓存的若干问题解决!
  10. Bootstrap 分页导航的对齐方式
  11. 802.11无线网络部署方案对比分析
  12. 大学计算机基础模拟,模拟练习系统
  13. c++实现飞机大战小游戏
  14. ntsd.exe 附使用教程
  15. Mac上的windows 10系统,bootcamp 5更新 bootcamp 6,缺少bootcamp.msi
  16. 怎样找回win7密钥
  17. 如何在 Windows 中删除运行历史记录
  18. 静态函数与非静态函数的区别
  19. Google Chrome 浏览器最新版本 71.0.3578.98(正式版本) (64 位)
  20. 统一自定义idea和eclipse代码格式化和注释格式化总结

热门文章

  1. 关于shell编程(3):awk中的sub和gsub
  2. 【每日英文】2021.7.23
  3. 如何实现点击按钮后禁用按钮的功能?
  4. 通讯录(初级)程序编写(C语言版)
  5. 硬盘 NTFS格式 与 exFAT格式 的比较
  6. 环保用电监管云平台可行性研究及解决方案-安科瑞 周莉娜
  7. 误删了计算机桌面回收站,如何解决电脑回收站被误删故障 电脑回收站被误删的两种解决方法...
  8. android开发_表单上传图片及其它参数
  9. 前端安全中的 cookie 防护 - 加速乐(jsl)
  10. python统计次数正则_Python提取信息必学基础——正则表达式