1 votos

¿Reclasificación por lotes de rásters en una carpeta utilizando ArcPy?

Soy muy nuevo en python. Estoy usando ArcGIS 10.0. Estoy tratando de lote reclasificar rásteres en una carpeta y poner las salidas en la misma carpeta, pero con un nuevo nombre(tratando de hacer esto usando outputPrefix). este es el script que hice:

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)

y recibo este mensaje de error:

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)

Calculé estadísticas, construí pirámides, etc. ¿Hay algo intrínsecamente incorrecto en mi código?

2voto

HeretoLearn Puntos 118

Al guardar la trama, se utiliza outputDir que es una carpeta, no una ruta de rasterización válida. También tenga en cuenta que su carpeta de entrada y la carpeta de salida son la misma, por lo que también está estableciendo una situación en la que va a sobrescribir sus entradas con sus salidas.

Para la salvación, podría hacer algo así:

outRasterName = '{}{}'.format(outputPrefix, raster)
r.save(os.path.join(outputDir, outRasterName))

También crearía una carpeta separada para distinguir entre sus entradas y salidas.

También puede considerar el uso de RemapRange y no RemapValue . La mayoría de esos mensajes de advertencia se deben a que los valores de las tramas no coinciden exactamente con los valores que se utilizan en RemapValue .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X