【发布时间】:2012-05-21 15:33:41
【问题描述】:
我正在尝试在双时相 RapidEye 多光谱图像上运行 Mort Canty 的 http://mcanty.homepage.t-online.de/ Python iMAD 实现。它基本上计算了两个图像的典型相关,然后减去它们。我遇到的问题是 图像的大小为 5000 x 5000 x 5(条带)像素。如果我尝试运行它 整个图像我得到一个内存错误。
使用 pyTables 之类的东西对我有帮助吗?
Mort Canty 的代码试图做的是它使用 gdal 加载图像然后存储它们 在 10 x 25,000,000 数组中。
# initial weights
wt = ones(cols*rows)
# data array (transposed so observations are columns)
dm = zeros((2*bands,cols*rows))
k = 0
for b in pos:
band1 = inDataset1.GetRasterBand(b+1)
band1 = band1.ReadAsArray(x0,y0,cols,rows).astype(float)
dm[k,:] = ravel(band1)
band2 = inDataset2.GetRasterBand(b+1)
band2 = band2.ReadAsArray(x0,y0,cols,rows).astype(float)
dm[bands+k,:] = ravel(band2)
k += 1
即使只是创建一个 10 x 25,000,000 的 numpy 浮点数组也会引发内存错误。任何人都知道如何解决这个问题?这是我的第一篇文章,所以也欢迎任何关于如何发帖的建议。
问候
【问题讨论】:
标签: python satellite-image large-data bigdata