Ich bin neu in Python und habe versucht, ein Skript im Raster-Rechner-Stil zu codieren. Grundsätzlich möchte ich ein Raster mit den Werten 0 bis -10.000 in ein Raster konvertieren, das zwischen bestimmten Werten mit 1s gefüllt ist.
Der Grund, warum ich dies in Python tun möchte, ist, dass ich diesen Prozess schließlich automatisieren möchte, damit ich verschiedene Werte (dh 0 bis -10, -5 bis -25 usw.) auswählen und für jeden ein Raster von 1s erhalten kann . Mein Ziel ist es dann, diese in Polygone umzuwandeln, damit ich dann eine Reihe von Vektorclip-Operationen über ungefähr 800 Shapefiles ausführen kann.
Ich habe ein Skript geschrieben, das am Ende ein neues Raster erzeugt, aber anstatt dass dieses Raster mit 1s gefüllt ist, hat es die Werte 0-256, also gibt es irgendwo in meinem Code einen Fehler. Ich wäre dankbar, wenn jemand es erkennen könnte! Wenn jemand eine Möglichkeit hat, den Code zu beschleunigen, oder eine bessere Idee, wie ich das alles auch machen kann, dann wäre das auch interessant zu wissen.
Hier ist mein Code:
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
, versuchen Sie es mit:arcpy.env.overwriteOutput = True
Python unterscheidet zwischen Groß- und Kleinschreibung und in Ihren Kommentaren haben Sie WAHR.