问题: 对于点位置,在Python中计算反距离加权(IDW)插值的最佳方法是什么?
一些背景: 目前我正在使用RPy2与R及其gstat模块进行交互.不幸的是,gstat模块与arcgisscripting冲突,我通过在单独的进程中运行基于RPy2的分析来解决这个问题.即使在最近/未来版本中解决了这个问题,并且效率可以提高,我仍然希望删除我对安装R的依赖.
gstat网站确实提供了一个独立的可执行文件,使用我的python脚本更容易打包,但我仍然希望Python解决方案不需要多次写入磁盘并启动外部进程.插值函数的调用次数,单独的点和值集,在我正在执行的处理中可以接近20,000.
我特别需要为点进行插值,因此在性能方面使用ArcGIS中的IDW函数生成比使用R更严重的栅格声音.....除非有办法有效地屏蔽掉我需要的点.即使进行了这种修改,我也不希望性能如此出色.我会将此选项作为另一种选择.更新:这里的问题是你绑定到您正在使用的单元格大小.如果减小单元大小以获得更好的准确性,则处理需要很长时间.如果你想要特定点的值,你还需要通过点数提取来跟进所有丑陋的方法.
我看过scipy文档,但看起来没有一种直接计算IDW的方法.
我正在考虑滚动我自己的实现,可能使用一些scipy功能来定位最近的点并计算距离.
我错过了一些明显的东西吗 是否有一个我没见过的python模块完全符合我的要求?在scipy的帮助下创建自己的实现是明智的选择吗?