我正在编写一个程序,用于为转换为数组的数字高程模型的固定区域创建各种功能图。我计算窗口限制内点对之间的方差(高度差异)和滞后(距离)。每个数组位置都与其他数组位置进行比较。对于每一对,滞后和方差值被追加到不同的列表中。一旦所有配对完成,就会使用这些列表进行数据分组、平均化和最终绘图。
针对较小的窗口大小(比如60x60像素),程序运行良好。对于120x120像素左右的窗口,我能够缓慢地让程序运行。如果超过这个大小,我会遇到"MemoryError"错误报告-例如,对于240x240像素的区域,我将有3,317,760,000个条目。
在程序开始时,我创建了一个空列表:
我已经查看了stackoverflow页面,并发现有一个类似的问题在这里进行讨论。该解决方案可能会提高程序的暂时性能,但是所提供的解决方案只适用于100万个条目,因此对于较大区域(例如240x240像素)无济于事。我还考虑使用numpy数组来存储值,但我不认为这可以避免内存问题。
如果您有任何建议,希望能提供一些使用我定义的较大窗口大小的列表的方法。
由于我刚学习Python,请原谅我的无知。
主要代码的大部分内容可以在这里看到。
针对较小的窗口大小(比如60x60像素),程序运行良好。对于120x120像素左右的窗口,我能够缓慢地让程序运行。如果超过这个大小,我会遇到"MemoryError"错误报告-例如,对于240x240像素的区域,我将有3,317,760,000个条目。
在程序开始时,我创建了一个空列表:
variance = []
lag = []
接着在 for 循环中,我计算滞后和方差,并将这些值添加到不同的列表中:
variance.append(var_val)
lag.append(lag_val)
我已经查看了stackoverflow页面,并发现有一个类似的问题在这里进行讨论。该解决方案可能会提高程序的暂时性能,但是所提供的解决方案只适用于100万个条目,因此对于较大区域(例如240x240像素)无济于事。我还考虑使用numpy数组来存储值,但我不认为这可以避免内存问题。
如果您有任何建议,希望能提供一些使用我定义的较大窗口大小的列表的方法。
由于我刚学习Python,请原谅我的无知。
主要代码的大部分内容可以在这里看到。