我想从栅格计算重复值并将其保存到dict中,我该怎么办?我做了一些编码,但它不起作用帮助我解决问题。下面是我的代码:
import numpy as np
import arcpy
from arcpy import env
env.workspace = r"D:Results"
rasterlist = arcpy.ListRasters()
array = arcpy.RasterToNumPyArray(raster,nodata_to_value=0)
array1 = np.reshape(array, (1,np.product(array.shape)))
mydict = {}
for i in array1:
if i in mydict:
mydict[i] += 1
else:
mydict[i] = 1
print mydict
其实我想实现以下公式: 1.png 其中g是绑定组的数量,tp是第p组中的数据数。例如,在序列{23,24,trace,6,trace,24,24,trace,23}中,我们得到g = 3,t {= 2表示绑定值23,t2 = 3表示绑定值24,对于三个跟踪值,r3 = 3,其中n = 1
答案 0 :(得分:1)
根据您提供的代码,问题可能是“raster”变量未定义。这样的事情可能有用:
rasterlist = arcpy.ListRasters()
raster = rasterlist[0] #The first item in rasterlist
array = arcpy.RasterToNumPyArray(raster,nodata_to_value=0)
希望这会有所帮助。关于你获得的确切错误的更多细节也很有用。
汤姆