Python实现栅格批量统计

Python实现栅格批量统计


利用ZonalStatisticsAsTable工具实现按照矢量数据特定字段进行栅格批量统计。

#This code is used for the  raster batch statistics.
#Author: Changqing Guo
# coding: utf-8
import numpy as np
import arcpy
from arcpy import sa
from arcpy.sa import *
from arcpy import env
arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
# 工作空间路径
env.workspace = "F:/Data/extend"

# 修改Raster数据的路径
#in_ULC = r"F:/Data/extend/ISA.tif"

# 修改输出结果的路径
out_Path = "F:/Data/Table/"
# 输入所用的行政分区
Region = "F:/Data/Global.shp"

tiffiles = arcpy.ListFiles("*.tif")
for filename in tiffiles:
    ULC = env.workspace + "/" + filename
    field = filename[:-4]
    shp_qu = out_Path + filename[:-4]
    # 关联字段
    joinID = "value"
    # 统计类型很有多种,自行按需要选择
    arcpy.gp.ZonalStatisticsAsTable_sa(Region, joinID, ULC, shp_qu, "DATA", "MEAN")
    # 在shp文件中增加列的名称,根据需要选择字段类型
    arcpy.AddField_management(shp_qu, field, "DOUBLE")
    arcpy.CalculateField_management(shp_qu, field, "[MEAN]", "VB", "")
    arcpy.JoinField_management(Region, joinID, shp_qu, joinID, [field])


先裁剪,后实现按照矢量数据特定字段进行栅格批量统计。

#This code is used for the  raster batch statistics.
#Author:Shu Zhang,Changqing Guo
# coding: utf-8
import numpy as np
import arcpy
from arcpy import sa
from arcpy.sa import *
from arcpy import env
arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True

env.workspace = "F:/Data/Table/"

# 修改栅格数据路径
ULC = r"F:/Data/extend/GUGS_2010.tif"
#扩展区边界
in_GUB = "F:/Data/result/GUB_0010.tif"

# 修改输出结果的路径
out_Path = "F:/Data/Table/"
# 输入行政分区
Region = "F:/Global.shp"

# 关联字段
joinID = "value"
# 在shp文件中增加列的名称
field = "GUGS_0010"

#裁剪
ULC_file = arcpy.Raster(in_ULC)
ULC_clip = ExtractByMask(ULC_file,in_GUB)
ULC_clip.save("F:/Data/GUGS_0010.tif")

shp_qu = out_Path + "GUGS_0010"
# 关联字段
joinID = "value"
# 统计类型很有多种,自行按需要选择
arcpy.gp.ZonalStatisticsAsTable_sa(Region, joinID, ULC, shp_qu, "DATA", "MEAN")
# 在shp文件中增加列的名称,根据需要选择字段类型
arcpy.AddField_management(shp_qu, field, "DOUBLE")
arcpy.CalculateField_management(shp_qu, field, "[MEAN]", "VB", "")
arcpy.JoinField_management(Region, joinID, shp_qu, joinID, [field])


  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值