Saya baru mengenal Python dan telah mencoba kode skrip gaya kalkulator raster. Pada dasarnya, saya ingin mengubah raster yang memiliki nilai 0 hingga -10.000 menjadi raster yang diisi oleh 1s antara nilai-nilai tertentu.
Alasan saya ingin melakukannya dengan Python adalah karena saya akhirnya ingin mengotomatiskan proses ini sehingga saya dapat memilih nilai yang berbeda (yaitu 0 hingga -10, -5 hingga -25 dll) dan berakhir dengan raster 1s untuk setiap . Tujuan saya kemudian adalah untuk mengonversikannya menjadi poligon sehingga saya dapat melakukan sejumlah operasi klip vektor di sekitar 800 shapefile.
Saya telah menulis sebuah skrip yang menghasilkan raster baru di akhir, tetapi alih-alih kisi-kisi ini penuh dengan 1, ia memiliki nilai 0-256, jadi di suatu tempat dalam kode saya ada bug. Saya akan berterima kasih jika ada yang bisa menemukannya! Jika ada yang punya cara untuk mempercepat kode atau ide yang lebih baik untuk bagaimana saya bisa melakukan semua ini juga maka itu akan menarik untuk diketahui.
Ini kode saya:
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
, coba gunakan:arcpy.env.overwriteOutput = True
Python peka huruf besar kecil dan dalam komentar Anda, Anda BENAR.