簡體   English   中英

ArcGIS 10 python - 條件語句檢查以查看柵格值是否在集合中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM