用Arcpy批量对raster文件进行区统计

import arcpy
from arcpy import env
from arcpy.sa import *
import arcpy.da as da


arcpy.CheckOutExtension("spatial")
env.overwriteOutput=1

workingDir="D:\\lyj\\code\\"
env.workspace=workingDir+"globe_temp_raster_result"


in_zone_data=workingDir+"country_188\\"+"country_188.shp"
zone_field="COUNTRY"
in_value_rasters=arcpy.ListRasters()


# 读入新的10年数据时,修改以下代码,startYear=1901 startYear=2001...
startYear=2001

for in_value_raster in in_value_rasters:
    print in_value_raster
    # out_table=env.workspace+"\\dbf\\" + in_value_raster + ".dbf"   # 这样方便,但是cal_1901.txt.tif.dbf这样的文件名python会报错,想了半天才发现是这里错了
    out_table=env.workspace+"\\dbf\\"+ str(startYear) +".dbf"   # 1901.dbf,1902.dbf这样的文件名不会报错

    outZSaT=ZonalStatisticsAsTable(in_zone_data,zone_field,in_value_raster,out_table,"DATA","SUM")

    txtfile=env.workspace+"\\txt\\"+str(startYear)+".txt"
    with open(txtfile,"w") as f:                         # 将print的内容写入.txt文件
        fields=['COUNTRY','SUM']                         # 指定要读入的字段
        with arcpy.da.SearchCursor(out_table, fields) as rows:
            for row in rows:
                print('{0},{1}'.format(row[0],row[1]))
                f.write('{0},{1}'.format(row[0],row[1]))
                f.write('\n')                            # 写完一行后换行
    f.close()

    startYear += 1
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值