arcpy批量按条件设置空值,并且将空值设为0。
import os
import re
import arcpy
from arcpy import env
from arcpy.sa import *
import os
arcpy.env.workspace = r'D:\LST_8day_eartdata'
def GetRaster(file_path, out_path):
n = 0
files = os.listdir(file_path)
for file in files:
type = file.split(".")
if type[1] == "tif":
import arcpy
print(file)
pattern = '.tif$'
file_out = re.split(pattern, file)[0]+ "_0.tif"
raster = os.path.join(file_path, file)
out_raster = os.path.join(out_path, file_out)
#Set local variables
inRaster = raster
inFalseRaster = inRaster
whereClause = "value< 0" # and "value< -10 or value > 0"
#Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute SetNull
outSetNull = SetNull(inRaster, inFalseRaster, whereClause)
outCon = Con(IsNull(outSetNull),0, outSetNull)
#save
outCon.save(out_raster)
n = n+1
print (str(n)+" rasters are processed !!!")
if __name__ == "__main__":
data_path = r'D:\LST_8day_eartdata\merge_DN'
out_path = r'D:\LST_8day_eartdata\tif'
GetRaster(data_path, out_path)