Soy nuevo en Python y he estado tratando de codificar un script de estilo de calculadora ráster. Básicamente, quiero convertir un ráster que tenga valores de 0 a -10,000 en un ráster que esté poblado por 1s entre ciertos valores.
La razón por la que quiero hacerlo en Python es porque eventualmente quiero automatizar este proceso para poder elegir diferentes valores (es decir, 0 a -10, -5 a -25, etc.) y terminar con una trama de 1s para cada . Mi objetivo es convertirlos en polígonos para poder realizar varias operaciones de recorte de vectores en unos 800 archivos de forma.
Escribí un script que produce un nuevo ráster al final, pero en lugar de que esta cuadrícula esté llena de 1s, tiene valores 0-256, por lo que en algún lugar de mi código hay un error. Estaría agradecido si alguien puede verlo! Si alguien tiene una manera de acelerar el código o una mejor idea de cómo puedo hacer todo esto, entonces también sería interesante saberlo.
Aquí está mi código:
import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.env.overwriteOutput = 1 #this also doesn't work by the way, I have also tried
#TRUE, no errors come up but it still doesn't let me overwrite the output file
#Set environment settings
env.workspace = "C:/folderlocation where inRaster is stored"
# Set local variables
inRaster = Raster("inputraster")
# Check out Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# depths wanted from inputraster raster
var = [-2500,-3000] #min depth, max depth
#Execute and save Con
OutRaster = Con((inRaster <= var[0])&(inRaster <= var[1]),1)
OutRaster.save("C:/drivelocation/outputfilename")
arcpy.env.overwriteOutput = 1
, intenta usar:arcpy.env.overwriteOutput = True
Python distingue entre mayúsculas y minúsculas y en tus comentarios tienes VERDADERO.