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

时间:2015-01-29 16:46:03

标签: python arcgis arcpy

我想从栅格计算重复值并将其保存到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

1 个答案:

答案 0 :(得分:1)

根据您提供的代码,问题可能是“raster”变量未定义。这样的事情可能有用:

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

希望这会有所帮助。关于你获得的确切错误的更多细节也很有用。

汤姆