Хотите выполнить растровые вычисления с помощью 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, трассировка, 6, трассировка, 24, 24, трассировка, 23} мы имеем g = 3, t{ = 2 для связанного значения 23, t2 = 3 для связанного значения 24, и r3 = 3 для трех значений трассы, где при n = 1


person Ahsan    schedule 29.01.2015    source источник


Ответы (1)


Судя по предоставленному вами коду, проблема может заключаться в том, что переменная «растр» не определена. Что-то вроде этого может сработать:

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

Надеюсь, это поможет. Также было бы полезно получить более подробную информацию о том, какую именно ошибку вы получаете.

Том

person TomAdair    schedule 28.04.2015