加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:28:07 所属栏目:Python 来源:网络整理
导读:我试图根据另一个栅格的输入创建一个栅格. 如果栅格值等于set()中包含的数字,那么我希望它为1,否则为0 我尝试过以下方法: ConfusedRaster = arcpy.Con(inraster in repeatSet,1,0) 和 ConfusedRaster = arcpy.Con(inraster,"inraster in repeatSet") 这些都
我试图根据另一个栅格的输入创建一个栅格.
如果栅格值等于set()中包含的数字,那么我希望它为1,否则为0

我尝试过以下方法:

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

ConfusedRaster = arcpy.Con(inraster,"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,0)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读