Tôi mới sử dụng Python và đã cố gắng viết mã kịch bản kiểu máy tính raster. Về cơ bản, tôi muốn chuyển đổi một raster có giá trị 0 đến -10.000 thành raster được xác định bằng 1s giữa các giá trị nhất định.
Lý do tôi muốn làm điều đó trong Python là vì cuối cùng tôi muốn tự động hóa quá trình này để tôi có thể chọn ra các giá trị khác nhau (ví dụ 0 đến -10, -5 đến -25, v.v.) và kết thúc với raster 1s cho mỗi . Mục đích của tôi sau đó là chuyển đổi chúng thành đa giác để sau đó tôi có thể thực hiện một số thao tác clip vector trên khoảng 800 shapefile.
Tôi đã viết một kịch bản tạo ra một raster mới ở cuối nhưng thay vì lưới này chứa đầy 1 giây, nó có các giá trị 0-256, do đó, ở đâu đó trong mã của tôi có một lỗi. Tôi sẽ biết ơn nếu bất cứ ai có thể phát hiện ra nó! Nếu bất cứ ai có cách để tăng tốc mã hoặc một ý tưởng tốt hơn về cách tôi có thể làm tất cả điều này cũng thì đó cũng sẽ là điều thú vị để biết.
Đây là mã của tôi:
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
, hãy thử sử dụng:arcpy.env.overwriteOutput = True
Python phân biệt chữ hoa chữ thường và trong các nhận xét của bạn, bạn có TRUE.