网上下载的数据集,有时候需要进行归一化处理,在 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)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐