我正在尝试根据另一个栅格的输入创建一个栅格。 如果栅格值等于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并使用它。另一个是循环遍历集合并为集合中的每个值创建栅格对象。循环完成后合并它们。
有没有人对如何解决这个问题有任何建议或意见?
谢谢
答案 0 :(得分:1)
我正在寻找类似问题的答案,并使用'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)