想要使用 ArcPY 对栅格进行一些计算

Want to do some computation on Raster using ArcPY

我想从栅格中计算重复值并将其保存到字典中,我该怎么做?我已经完成了一些编码,但它不起作用帮助我解决问题。下面是我的代码:

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

根据您提供的代码,问题可能是 "raster" 变量未定义。这样的事情可能会奏效:

rasterlist = arcpy.ListRasters()
raster = rasterlist[0] #The first item in rasterlist
array = arcpy.RasterToNumPyArray(raster,nodata_to_value=0)

希望这对您有所帮助。关于您遇到的错误的更多详细信息也很有用。

汤姆