代码分享 Python | 您所在的位置:网站首页 › python代码求最大值 › 代码分享 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 编辑 |南波婉琳 审核 |南波婉琬 更多精彩请关注 |
CopyRight 2018-2019 实验室设备网 版权所有 |