I am very new to python. I am using ArcGIS 10.0. I am trying to batch reclassify rasters in a folder and put the outputs into the same folder but with a new name(trying to do this using outputPrefix). this is the script I made:
import arcpy
from arcpy import os
from arcpy.sa import *
inputDir = "E:\BLSK_HSI\practiceLC"
outputDir = "E:\BLSK_HSI\practiceLC"
outputPrefix = "Rec_"
rasList = arcpy.ListRasters()
for raster in rasList:
reclassField = "VALUE"
remap = RemapValue([[11,1], [21, 5], [22, 3], [23, 2], [24, 1], [31, 6], [41, 3], [52, 3], [71, 3], [82,3], [90,4], [95, 4]])
outReclassify = Reclassify(raster, "VALUE",remap, "NODATA")
outReclassify.save(outputDir)
and I get this error message:
Start Time: Wed May 13 12:06:07 2015
The input raster minimum (-3.1652371883392334) is out of range.
To ensure a correct reclassification, edit ranges or use a different precision settings in the Reclassification dialog box.
The input raster maximum (4.0050506591796875) is out of range.
To ensure a correct reclassification, edit ranges or use a different precision settings in the Reclassification dialog box.
ERROR 010414: Error in creating a Raster from a geodataset.
Failed to execute (Reclassify).
Failed at Wed May 13 12:06:07 2015 (Elapsed Time: 0.00 seconds)
I calculated statistics, built pyramids, etc. Is there something inherently wrong with my code?
1 Answer 1
When saving the raster, you're using outputDir
which is a folder, not a valid raster path. Also keep in mind too that your input folder and output folder are the same, so you're also setting up a situation where you'll be overwriting your inputs with your outputs.
For the save, could do something like this:
outRasterName = '{}{}'.format(outputPrefix, raster)
r.save(os.path.join(outputDir, outRasterName))
I would also create a separate folder to distinguish between your inputs and outputs.
You may also want to consider using RemapRange
and not RemapValue
. Most of those warning messages are coming because you have raster values that don't exactly match with the values you are using in RemapValue
.
Explore related questions
See similar questions with these tags.