[英]ArcGIS 10 python - Conditional statement checking to see if a raster value is in a set
我試圖根據另一個柵格的輸入創建一個柵格。 如果柵格值等於set()中包含的數字,那么我希望它為1,否則為0
我嘗試過以下方法:
ConfusedRaster = arcpy.Con(inraster in repeatSet, 1, 0)
和
ConfusedRaster = arcpy.Con(inraster, 1, 0, "inraster in repeatSet")
這些都不奏效。 我相信它們不起作用,因為where子句只接受Map Algebra表達式: ArcGIS Help
我還可以考慮另外兩種方法來做這件事。 一個是將它轉換為NumPyArray並使用它。 另一個是循環遍歷集合並為集合中的每個值創建柵格對象。 循環完成后合並它們。
有沒有人對如何解決這個問題有任何建議或意見?
謝謝
我正在尋找類似問題的答案,並使用'ExtractByAttributes'中的SQL子句開發了一種方法。
repeatList = list(repeatSet)
ras1 = arcpy.sa.ExtractByAttributes(inraster, 'VALUE IN (' + str(repeatList).strip('[]') + ')')
ConfusedRaster = arcpy.sa.Con(arcpy.sa.IsNull(ras1) == 0, 1, 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.