任务举例:文件夹内有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!")
任务举例:文件夹内有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
编辑 |南波婉琳
审核 |南波婉琬
更多精彩请关注