跳转到主要内容

FabIO是用于由2D X射线探测器生成的图像的I/O库,用Python编写

项目描述

主要网站

Build Status Appveyor Status


FabIO是一个用于由二维X射线探测器生成的图像的I/O库,用Python编写。FabIO支持来自十多家公司的探测器(包括Mar、Dectris、ADSC、Hamamatsu、Oxford等),支持总共30种不同的文件格式(如CBF、EDF、TIFF等),并提供了一个统一的接口来访问它们的头信息(作为Python字典)和数据集(作为numpy ndarray的整数或浮点数)

安装

FabIO可在PyPI获取

pip安装fabio

Debian/Ubuntu软件包,以及wheel可用于Windows、Linux和MacOSX,来自silx仓库。

有关更多信息,请参阅安装说明

使用

打开图像

>>> import fabio
>>> obj = fabio.open("mydata0000.edf")
>>> obj.data.shape
(2048, 2048)
>>> obj.header["Omega"]
23.5
>>> obj.data
array([...])

保存图像(例如EDF)

>>> import fabio
>>> obj = fabio.edfimage.EdfImage(data=[...])
>>> obj.write("mydata0000.edf")

文档

有关更多详细信息,请参阅最新发布文档

旧版本文档可在silx上找到。

变更日志

请参阅http://www.silx.org/doc/fabio/latest/Changelog.html

引用

库的一般哲学在以下文章中描述:FabIO: easy access to two-dimensional X-ray detector images in Python; E. B. Knudsen, H. O. Sørensen, J. P. Wright, G. Goret and J. Kieffer Journal of Applied Crystallography, Volume 46, Part 2, pages 537-539.

透明处理压缩文件

为了使FabIO能够透明地处理gzip和bzip2压缩文件,当安装/构建Python时必须存在bzipgzip模块(例如Ubuntu的libbz2-dev软件包)。

基准测试细节已收集在http://www.silx.org/doc/fabio/latest/performances.html

支持的文件格式

  • ADSC

    • AdscImage

  • Bruker

    • BrukerImage

    • Bruker100Image

    • KcdImage: Nonius KappaCCD衍射仪

  • D3M

    • D3mImage

  • Dectris

    • CbfImage (在Python/cython中实现快速字节偏移解/压缩方案)

    • PilatusImage (从Tiff派生的文件格式)

    • EigerImage (从HDF5/NeXus格式派生,依赖于h5py)

  • ESRF

    • EdfImage: ESRF数据格式

    • XsdImage: EDNA序列化的XML图像

    • Fit2dImage: Fit2d二进制格式

    • Fit2dmaskImage: Fit2d掩码格式

    • Fit2dSpreadsheetImage: Fit2d ascii表格(电子表格)

    • LimaImage: LImA采集系统编写的图像堆栈

    • SparseImage: 由pyFAI编写的单晶衍射图像

  • 通用电气

    • GEimage(包括在APS上使用的变体)

  • Hamamatsu

    • HiPiCImage

  • HDF5: 基于h5py的图像堆栈的通用格式

    • Hdf5Image

    • EigerImage

    • LimaImage

    • SparseImage

  • JPEG图像格式

    • JPEG使用PIL

    • JPEG 2000使用Glymur

  • Mar Research

    • MarccdImage(从Tiff派生的文件格式)

    • Mar345Image成像板,具有PCK压缩

  • MPA多线

    • MpaImage

  • 医学研究委员会3D电子密度和2D图像文件格式

    • MrcImage

  • Nonius -> 现由Bruker拥有

    • KcdImage

  • Numpy:用于保存2D数组的通用读取器

    • NumpyImage

  • 牛津衍射Sapphire 3

    • OXDimage未压缩或使用TY1或TY5压缩方案

    • Esperanto格式(具有位字段压缩)

  • Pixirad成像

    • PixiImage

  • PNM

    • PnmImage

  • 普林斯顿仪器SPE

    • SpeImage

  • 未压缩的原始二进制文件

  • 理学

    • RaxisImage

    • DtrekImage

  • Tiff

    • TifImage使用以下之一
      • Pillow(外部依赖项)

      • 从PyMca中获取的TiffIO

设计规范

名称

FabIO = Fable输入/输出

Idea

有一个基类,用于所有我们的2D衍射灰度图像。这由一个二维数组(numpy ndarray)和一个Python字典(实际上是一个有序字典)组成,包含(字符串键,字符串值)对的头信息。

类 FabioImage

需要一个名称,不会与RGB颜色图像混淆。

类属性,通常作为属性公开

  • data -> 2D数组

  • header -> 有序字典

  • rows, columns, dim1, dim2 -> data.shape(属性)

  • header_keys -> property for list(header.keys()),以前用于保留头信息的顺序

  • bytecode -> data.typecode()(属性)

  • m, minval, maxval, stddev -> 图像统计信息,可以添加其他信息,例如roi[slice]

类方法(函数)

  • integrate_area() -> 返回切片中self.data的总和

  • rebin(fact) -> rebins数据,调整维度

  • toPIL16() -> 返回一个PILimage

  • getheader() -> 返回self.header

  • resetvals() -> 重置统计信息

  • getmean() -> (计算)返回self.m

  • getmin() -> (计算)返回self.minval

  • getmax() -> (计算)返回self.maxval

  • getstddev() -> (计算)返回self.stddev

  • read() -> 从文件[或流,或共享内存]读取图像

  • write() -> 将图像写入文件[或流,或共享内存]

  • readheader() -> 只读取头信息[扫描文件时速度更快]

然后每个单独的文件格式将继承此类的所有功能,只需创建新的读取和写入方法。

还有与文件系列相关的其他方法(next(),previous()等),它返回文件系列中下一帧/前一帧的FabioImage实例

其他功能

  • 可以使用即时外部压缩的可能性 - 即如果文件存储为.gz,.bz2等,则可以使用外部压缩机制(如果可用)对其进行解压缩。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于安装软件包的信息。

源分布

fabio-2024.9.0.tar.gz (729.4 kB 查看哈希值)

上传时间 源码

构建版本

fabio-2024.9.0-cp312-cp312-win_amd64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

fabio-2024.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

fabio-2024.9.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ppc64le

fabio-2024.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

fabio-2024.9.0-cp312-cp312-macosx_11_0_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ x86-64

fabio-2024.9.0-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

fabio-2024.9.0-cp311-cp311-win_amd64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

fabio-2024.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

fabio-2024.9.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ ppc64le

fabio-2024.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

fabio-2024.9.0-cp311-cp311-macosx_11_0_x86_64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ x86-64

fabio-2024.9.0-cp311-cp311-macosx_11_0_arm64.whl (1.0 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

fabio-2024.9.0-cp310-cp310-win_amd64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

fabio-2024.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

fabio-2024.9.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ppc64le

fabio-2024.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

fabio-2024.9.0-cp310-cp310-macosx_11_0_x86_64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ x86-64

fabio-2024.9.0-cp310-cp310-macosx_11_0_arm64.whl (1.0 MB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ ARM64

fabio-2024.9.0-cp39-cp39-win_amd64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86-64

fabio-2024.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

fabio-2024.9.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ppc64le

fabio-2024.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

fabio-2024.9.0-cp39-cp39-macosx_11_0_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ x86-64

fabio-2024.9.0-cp39-cp39-macosx_11_0_arm64.whl (1.0 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

fabio-2024.9.0-cp38-cp38-win_amd64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

fabio-2024.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

fabio-2024.9.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ppc64le

fabio-2024.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

fabio-2024.9.0-cp38-cp38-macosx_11_0_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ x86-64

fabio-2024.9.0-cp38-cp38-macosx_11_0_arm64.whl (1.0 MB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

支持者