代码分享 Python | 批量计算栅格影像最大值,最小值,总和,均值等

 01


任务举例:文件夹内有12个月遥感影像求年最大值,累加值等(生成的是一幅栅格影像)

数据准备:文件夹(工作空间)-含有需要批量处理的tif影像

工具准备:Python arcpy 环境
操作:替换代码中的路径即可

# -*- coding: UTF-8 -*-
import arcpy
from arcpy import env
from arcpy.sa import *
​
# Set environment settings
env.workspace = "E:/NPPresult/"#输入工作空间中
# Set local variables
rasters = arcpy.ListRasters("*", "tif") #遍历工作空间中的tif格式数据
​
​
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
​
outCellStatistics = CellStatistics(rasters, "MEAN", "DATA")#"SUM"总和; STD标准差; MINIMUM最小值; MAXIMUM最大值;
outCellStatistics.save("E:/RHME.tif")
print("All project is OK!")

 02


任务举例:文件夹内有12个月研究区域植被覆盖度,地表温度等影像,求该区域12个月每月的植被覆盖度(地表温度)平均值,最大值,最小值等(一幅影像生成一个值)

数据准备:文件夹(工作空间)-含有需要批量处理的tif影像

工具准备:Python arcpy 环境
操作:替换代码中的路径即可

# -*- coding: UTF-8 -*-
​import arcpy
import os
import glob
import arcpy
from arcpy.sa import *
​
arcpy.CheckOutExtension("ImageAnalyst")  # 检查许可
arcpy.CheckOutExtension("spatial")
​
inws =  r"E:/05BeijingPark/tem/park/"
​
OutputFile = open('E:/05BeijingPark/tem/park/PA.csv', 'w')#更改要存储结果的路径,自动生成表格
​
# 利用glob包,将inws下的所有tif文件读存放到rasters中
rasters = glob.glob(os.path.join(inws, "*.tif"))
​
whereClause = "VALUE = 0"  # 去除异常值。如果无异常值可删去.
​
# 循环rasters中的所有影像,进行“求平均值”操作
for ras in rasters:
    outSetNull = SetNull(ras, ras, whereClause)  # 去除异常值;如果无异常值可删去
​
    meanValueInfo = arcpy.GetRasterProperties_management(outSetNull, 'MEAN')
    # MINIMUM —输入栅格中所有像元的最小值。
    # MAXIMUM —输入栅格中所有像元的最大值。
    # MEAN —输入栅格中所有像元的平均值。
    # STD —输入栅格中所有像元的标准差。
    # TOP —范围的顶部值或Y最大值(YMax)。
    # LEFT —范围的左侧值或X最小值(XMin)。
    # RIGHT —范围的右侧值或X最大值(XMax)。
    meanValue = meanValueInfo.getOutput(0)
    print os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n'
    OutputFile.write(os.path.basename(ras).split('_')[0] + ',' + str(meanValue) + '\n')
​
OutputFile.close()
print("All project is OK!")
​

END

编辑 |南波婉琳

审核 |南波婉琬

更多精彩请关注

  • 6
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ArcEngine 栅格数据最大值最小值指的是在 ArcGIS Engine 开发环境中,可以对栅格数据进行统计分析,从而确定栅格数据的最大值最小值栅格数据是指由像素组成的二维矩阵,每个像素表示一个空间位置的属性值,如高程、温度等。在 ArcEngine 开发中,可以利用 ArcGIS Engine SDK 提供的 ArcObjects 对栅格数据进行读取、分析和操作,从而实现地图绘制、数据分析和空间计算等功能。 确定栅格数据的最大值最小值栅格数据统计分析中的一个重要步骤,有助于了解栅格数据的属性分布和值域范围。可以通过 ArcObjects 中的 IRasterStatistics 接口获取栅格数据的统计信息,包括最大值最小值、平均值、标准差等,从而实现对栅格数据的统计分析。 在 ArcEngine 开发中,可以通过编写 C# 或 VB.NET 代码调用 IRasterStatistics 接口获取栅格数据的最大值最小值。例如,下面的代码片段演示了如何获取栅格数据的最大值最小值: IRaster raster = ... //获取栅格数据 IRasterStatistics stats = ((IRasterProps)raster).Statistics; double minValue = stats.Minimum; double maxValue = stats.Maximum; 通过这种方式,可以获取栅格数据的最大值最小值,并将其用于栅格数据的分类、渲染等操作。通过对栅格数据的统计分析,可以更好地理解栅格数据的属性特征和空间分布,为数据分析和空间决策提供重要参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值