簡體   English   中英

想要使用ArcPY在Raster上進行一些計算

[英]Want to do some computation on Raster using 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

根據您提供的代碼,問題可能是未定義“ raster”變量。 這樣的事情可能會起作用:

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

希望這會有所幫助。 確切說明您遇到的錯誤的詳細信息也將很有用。

湯姆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM