对不适合内存的数据集执行fft
out-of-core-fft的Python项目详细描述
#核心区外的fft<;a href=“https://travis-ci.org/moble/out_of_core_fft”>;<;img align=“right”hspace=“3”alt=“自动生成和测试套件的状态”src=“https://travis-ci.org/moble/out_of_core_fft.svg?branch=master”>;<;/a>;<;a href=“https://github.com/moble/out_of_core_fft/blob/master/LICENSE”>;<;img align=“right”hspace=“3”alt=“在开源MIT许可证下分发的代码”src=“http://moble.github.io/spherical_functions/images/MITLicenseBadge.svg”>;<;&a>
傅立叶变换是高度非局部的,在处理非常大的数据集时会引起问题特别地, 标准算法不能处理太大而无法放入内存的数据集另一方面,经典 cooley-tukey-fft算法表明,离散fourier变换可以分解成更小的子问题。这个 模块为fft提供了一些函数,这些函数可以直接处理磁盘上的数据,提取适合于 内存,分别处理每一个,然后组合回到磁盘上,得到最终结果。这个实现是 基于Thomas H.Cormen在《并行处理算法》(1999)中提出的算法不平凡的 实现的一部分涉及到转换磁盘上的数据,为此我创建了一个相对简单但公平的 快速,这里包含的函数只是转置。
用法
这些函数假设要操作的数据存储在HDF5文件中FFT和逆FFT称为 有点像
`python import out_of_core_fft out_of_core_fft.fft('input.h5', 'x', 'output.h5', 'X') out_of_core_fft.ifft('input2.h5', 'X', 'output2.h5', 'x') `
这里,x和x是HDF5文件中数据集的名称注意,不会返回任何内容,因为 按要求存储在磁盘上。
有关详细信息,请参阅docstrings。
##致谢
Sherman Fairchild部分支持创建此代码的工作 基金会和NSF拨款编号:PHY-1306125和AST-1333129。