gpt4 book ai didi

python - ArcGIS 10 python - 条件语句检查栅格值是否在集合中

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:48 24 4
gpt4 key购买 nike

我正在尝试根据来自另一个栅格的输入创建一个栅格。如果栅格值等于 set() 中包含的数字而不是我希望它为 1,否则为 0

我尝试了以下操作:

 ConfusedRaster = arcpy.Con(inraster in repeatSet, 1, 0)

 ConfusedRaster = arcpy.Con(inraster, 1, 0, "inraster in repeatSet")

这些都不起作用。我相信它们不起作用,因为 where 子句只接受 map 代数表达式: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)

关于python - ArcGIS 10 python - 条件语句检查栅格值是否在集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com