使用shp数据批量裁剪栅格数据并统计均值

批量实现利用shp文件,裁剪相应的多个栅格数据,并统计裁剪后栅格的均值至TXT文件,亲测可用。
#使用shp数据批量裁剪栅格数据并统计均值

# -*- coding: cp936 -*-
#使用shp数据批量裁剪栅格数据并统计均值
print"使用shp数据批量裁剪栅格数据并统计结果均值"
#修改部分
ras_file = r"D:\实验室\数据\气象数据\降雨数据_插值_60_17\pcp"    #栅格数据位置
ras_file_cut = r"D:\实验室\数据\气象数据\降雨数据_插值_60_17\sx_yr"  #栅格数据裁剪结果存储位置
suffix = 'tif'    #栅格数据后缀
bvalue= '-9999'	#栅格数据背景值
#下面两个选择注释一个,用 # 注释 
clpgeo = 'ClippingGeometry'   #裁剪出来的是要素形状   选择注释1
# clpgeo = 'NONE'     #裁剪出来的是要素的外接矩形形状   选择注释2

shp_file = r"D:\实验室\数据\边界\长江流域-陕西\yr_sx.shp"#裁剪模板shp数据
# ras_extent="D:\实验室\数据\水循环数据提取\数据\data\lucc_1km\landcover_1988_tempslid.tif"

txtname=r"D:\实验室\数据\气象数据\降雨数据_插值_60_17\sx_yr\MEAN_cuo.txt"     #输出统计文本路径及名称

#计算部分  无须修改
import arcpy
import os

# arcpy.env.snapRaster =ras_extent
# arcpy.env.extent =ras_extent
if not os.path.exists(ras_file_cut):
    os.mkdir(ras_file_cut)

arcpy.env.workspace=ras_file
# arcpy.env.extent = ras_extent
ras=arcpy.ListRasters('*',suffix)
print "共有"+'%d'%len(ras)+"个栅格数据"
#
print "Processing......"
result=[]
for rs in ras:
    outname=ras_file_cut+"\\"+str(rs[0:len(rs)-4])+".tif"    #####
    #arcpy.Clip_management(rs,"#",outname,shp_file,str(bvalue),"ClippingGeometry")   #ClippingGeometry   NONE
    arcpy.Clip_management(rs,"#",outname,shp_file,bvalue,clpgeo)
    stats = arcpy.GetRasterProperties_management(outname,"MEAN")
    result.append(str(stats)+"\n")
    #arcpy.Delete_management(outname,"")
    print str(rs)+"   OK!"

file(txtname,'w').writelines(result)
print "Finish!"

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值