包以有效地逐个对象读取大尺寸数组

fitsiochunked的Python项目详细描述


https://img.shields.io/travis/mindriot101/fitsiochunked.svghttps://codecov.io/gh/mindriot101/fitsiochunked/branch/master/graph/badge.svg

打包到顺序有效地逐个对象读取大尺寸数组

  • 自由软件:麻省理工学院许可证

功能

  • 在给定的固定内存限制内连续读取大容量文件

快速使用

下面的例子展示了一个适合阅读的例子 在2048MB内存限制内的HDU,假设光曲线为 存储在行中:

importnumpyasnpimportfitsioimportfitsiochunkedasfcwithfitsio.FITS(filename)asinfile:hdu=infile['flux']napertures=hdu.get_info()['ndim'][0]mean_flux=np.zeros(napertures)forchunkinfc.chunks(hdu,memory_limit_mb=2048):# `chunk` is a namedtuple with `.data` and `.slice` propertieschunk_data=chunk.dataprint('Data shape:',chunk_data.shape)print('Data dtype:',chunk_data.dtype)chunk_slice=chunk.sliceprint('Chunk starting from aperture:',chunk_slice.start)print('Chunk up to:',chunk_slice.stop)chunk_mean=np.average(chunk_data,axis=1)mean_flux[chunk_slice]=chunk_mean

库处理的HDU数量很少:

importnumpyasnpimportfitsioimportfitsiochunkedasfcwithfitsio.FITS(filename)asinfile:hjd_hdu=infile['hjd']flux_hdu=infile['flux']fluxerr_hdu=infile['fluxerr']napertures=flux_hdu.get_info()['ndim'][0]mean_flux=np.zeros(napertures)forchunksinfc.chunks(hjd_hdu,flux_hdu,fluxerr_hdu,memory_limit_mb=2048):# chunks is a tuple of chunkshjd_chunk,flux_chunk,fluxerr_chunk=chunks# `chunk` is a namedtuple with `.data` and `.slice` propertiesflux_chunk_data=flux_chunk.dataprint('Data shape:',flux_chunk_data.shape)print('Data dtype:',flux_chunk_data.dtype)# and so on

注意:如果提供了多个hdu,则memory_limit_mbchunksizechunks的参数应用于每个hdu,即三个hdu和 2048MB的内存限制将导致3x2048=6144MB的内存使用。

安装

使用pip

安装
pip install fitsiochunked
# or get the latest development version from github
pip install git+https://github.com/mindriot101/fitsiochunked

或下载并运行安装文件:

git clone https://github.com/mindriot101/fitsiochunked
cd fitsiochunked
python setup.py install

详细信息

高级接口是chunks函数,它构建 ChunkedAdapter对象包装fitsio.ImageHDU对象。

ChunkedAdapter包装了一个fitsiohdu对象。建造时, 它变成了一个可调用的,以块的形式在hdu中生成图像数据。

chunkSize可以用参数设置 chunksize,每次只生成chunksize行, 或者使用memory_limit_mb,而尝试(没有承诺!)到 自动计算适合的光曲线数 memory_limit_mbMB内存。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?