Eu sou novo no Python e tenho tentado codificar um script no estilo de calculadora raster. Basicamente, quero converter uma varredura que tenha valores de 0 a -10.000 em uma varredura que é preenchida por 1s entre determinados valores.
O motivo pelo qual desejo fazê-lo em Python é porque, eventualmente, quero automatizar esse processo para poder escolher valores diferentes (por exemplo, 0 a -10, -5 a -25 etc.) e acabar com uma varredura de 1s para cada . Meu objetivo, então, é convertê-los em polígonos, para que eu possa executar várias operações de clipe de vetor em cerca de 800 shapefiles.
Eu escrevi um script que produz uma nova varredura no final, mas em vez de essa grade estar cheia de 1s, ela tem valores de 0 a 255, então em algum lugar do código há um erro. Ficaria muito grato se alguém puder encontrá-lo! Se alguém tiver uma maneira de acelerar o código ou uma idéia melhor de como eu também posso fazer tudo isso, também seria interessante saber.
Aqui está o meu 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
, tente usar:arcpy.env.overwriteOutput = True
Python faz distinção entre maiúsculas e minúsculas e em seus comentários você tem VERDADEIRO.