| 查看: 463 | 回复: 2 | ||
kainan001铁杆木虫 (正式写手)
|
[求助]
关于python for Arcgis的循环问题
|
|
大致说明:我要对某个栅格文件.tif,开一个n*n的窗口,从栅格第一个像元开始算它周围(包括本身)的均值。以下是我写的代码(这里n=1,即开一个3*3的窗口): >>> import arcpy ... import math ... import numpy as np ... alocation='a' ... aRaster=arcpy.Raster(alocation) ... a_array=arcpy.RasterToNumPyArray(aRaster,'#','#','#',9999) ... n=1 #'用户输入窗口大小,size',这里Num=2n+1,即窗口为3*3 ... rows=a_array.shape[0] ... cols=a_array.shape[1] ... amean_array=np.zeros((rows,cols)) ... for i in range(1,rows-1): #从第1行到倒数第2行 ... for j in range(1,cols-1): ... for x in range(i-n,i+n): #3*3的窗口,则左右扩1,5*5则扩2,依次类推 ... for y in range(j-n,j+n): ... a_array[x,y]+=pow(2*n+1,2) #这里是个步数的迭代,例如3*3的窗口那么a_array[x,y]要迭代累加9次 ... mean=a_array[x,y]/pow(2*n+1,2) #算出来的累加值并除以窗口个数,即均值 ... amean_array[i,j]=mean ... mean_raster=arcpy.NumPyArrayToRaster(amean_array) ... mean_raster.save('D:/amean.tif') 这个可以运行,但是出来的结果不对,我的tif文件a_array列表几乎每个value都在30左右,但是最后算出来的3*3窗口的均值为4左右,这个结果肯定有问题。 请大家帮我看看代码哪有问题呢? |
» 猜你喜欢
祈福,祝自己今年好运
已经有100人回复
关于会评
已经有1人回复
地球物理学和空间物理学论文润色/翻译怎么收费?
已经有135人回复
据说!出现这些情况,国基金会评本子会被拿下!
已经有19人回复
无人打捞,直接陪跑
已经有16人回复
青C最后一年,散金祈福吧
已经有48人回复
定了定了,明天出结果!2025 国自然基金结果即将揭晓,查询攻略看这里
已经有107人回复
2025国家自然科学基金放榜时间,根据官方回应,8月15日基本没戏了
已经有5人回复
没中,有点难受,科研也许就到这了,回归生活吧
已经有15人回复
各位未来院士帮忙看看评审意见
已经有9人回复
《风吹过日常的缝隙》
已经有0人回复
kainan001
铁杆木虫 (正式写手)
- EPI: 1
- 应助: 48 (小学生)
- 金币: 6418.6
- 散金: 652
- 红花: 51
- 帖子: 869
- 在线: 259.8小时
- 虫号: 3088580
- 注册: 2014-03-25
- 性别: GG
- 专业: 环境化工
2楼2016-06-21 07:35:21
kainan001
铁杆木虫 (正式写手)
- EPI: 1
- 应助: 48 (小学生)
- 金币: 6418.6
- 散金: 652
- 红花: 51
- 帖子: 869
- 在线: 259.8小时
- 虫号: 3088580
- 注册: 2014-03-25
- 性别: GG
- 专业: 环境化工
3楼2016-06-21 07:35:37












回复此楼