私はPythonが初めてで、ラスター計算機スタイルのスクリプトをコーディングしようとしています。基本的に、値が0〜10,000のラスターを、特定の値の間に1が設定されたラスターに変換します。
私がPythonでそれをしたい理由は、最終的にこのプロセスを自動化して、さまざまな値(つまり、0から-10、-5から-25など)を選択し、最終的にはそれぞれ1のラスターになるようにするためです。 。私の目的は、これらをポリゴンに変換して、約800のシェープファイルで多数のベクタークリップ操作を実行できるようにすることです。
最後に新しいラスターを生成するスクリプトを記述しましたが、このグリッドが1でいっぱいではなく、値が0〜256であるため、コードのどこかにバグがあります。どなたでも見つけて頂ければありがたいです!誰かがコードを高速化する方法、または私がこれをすべて行う方法についてのより良いアイデアを持っているなら、それもまた興味深いことです。
これが私のコードです:
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
使用してみてください:arcpy.env.overwriteOutput = True
Pythonは大文字と小文字を区別し、コメントにはTRUEがあります。