spatial-image
项目描述
spatial-image
这是一个用于科学Python的多维空间图像数据结构。
为了便于
- 多尺度处理和分析
- 配准
- 重采样
- 子区域并行处理
- 与网格、点集和注释耦合
与科学图像(通常是具有各向异性采样的多维图像)一起使用,这个包提供了一个空间图像数据结构。除了像素值的N维数组之外,空间元数据定义了像素采样网格在时空中的位置。我们还标记了数组维度。这些元数据很容易被利用,并且在图像处理管道中优雅地传递。
这个包定义了空间图像元数据,提供了一个函数is_spatial_image
来验证空间图像实例的预期行为,并提供了一个参考函数to_spatial_image
来将类似数组的对象(例如NumPy ndarray或Dask array)转换为空间图像。
空间图像数据结构是用Xarray实现的,这是一个用于Python中的N维标记数组和数据集的库。Xarray库经过充分测试,相对成熟,并且与科学Python生态系统工具很好地集成。Xarray库利用NumPy和pandas进行标记数组索引,与利用scikit-learn接口的机器学习库很好地集成,与Dask进行分布式计算集成,以及与zarr进行序列化。
本质上,空间图像是一个具有一组定义的维度标签 {'c', 'x', 'y', 'z', 't'}
、对坐标 coords
的约束,以在给定方向上强制均匀间隔,以及定义的一组额外元数据 attrs
的 xarray.DataArray
。
安装
pip install spatial-image
定义
数据维度
空间图像的 xarray dims
属于集合:{'c', 'x', 'y', 'z', 't'}
。这些维度包括:
- c
- 组件/通道维度。
- x
- 第一个空间维度。
- y
- 第二个空间维度。
- z
- 第三个空间维度。
- t
- 时间维度。
轴属性
每个 dim
都有一个轴,该轴具有额外的属性来描述维度。
- long_name
- 轴的描述性名称,例如 前后 或 x 轴。默认为 dim 名称。
- units
- 轴的单位,例如 毫米。默认为空字符串。
坐标
空间图像的 Xarray coords
指定了图像中像素在 'x'
、'y'
和 'z'
数据维度上的空间位置。对于 'c'
和 't'
数据维度,可以可选地提供组件标识和时间戳。
空间坐标定义了图像坐标系中的位置。一般来说,图像的坐标系可能不同于世界坐标系。
像素在一个均匀的、可能是各向异性的空间网格上进行采样。空间坐标具有 64 位浮点类型。相邻坐标之间的差异,即维度的像素 间距 必须是均匀的。第一个坐标值定义了图像的 原点 或 偏移。
组件或通道维度坐标默认为整数标识符的序列,但可以是描述通道的字符串,例如 ['r', 'g', 'b']。
时间坐标可以是整数、浮点型或 datetime64
类型。
动机说明
-
图像轴对齐的笛卡尔坐标系允许在
xarray.DataArray
上的处理管道中使用 Pythonic 索引。当使用切片进行索引时,将应用与一维坐标数组相同的切片到多维像素数组中,结果是有效的。 -
规则坐标间隔允许进行算法和计算上的处理优化。
开发
欢迎并赞赏贡献。
要运行测试套件
git clone https://github.com/spatial-image/spatial-image
cd spatial-image
pip install -e ".[test]"
pytest
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。