网上下载的数据集,有时候需要进行归一化处理,在 ArcGIS 中逐一处理比较费事,可以考虑用 ArcPy 进行批量归一化。代码如下:
# -*- coding: utf-8 -*-
import os
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")
env.workspace = "D:/Download/"
save_path = "D:/Save/"
for i in os.listdir("D:/Download/"):
if i.endswith(".TIF"): # 可根据需求自行修改需要处理的数据格式
print("TIF Image:" + i)
outSetNull = SetNull(i, i, "VALUE = -9999") # 将 -9999 设置为 NoDATA
maxValueDS = arcpy.GetRasterProperties_management(outSetNull, "MAXIMUM")
maxValue = maxValueDS.getOutput(0)
print("Max Value:" + str(maxValue))
minValueDS = arcpy.GetRasterProperties_management(outSetNull, "MINIMUM")
minValue = minValueDS.getOutput(0)
print("Min Value:" + str(minValue))
NormalizationRaster = (outSetNull - float(minValue)) / (float(maxValue) - float(minValue))
NormalizationRaster.save(save_path + i)