跳转到主要内容

一个用于结构化、管理、处理和FAIR-化科学海洋图像数据集的Python框架。

项目描述

Marimba Logo

一个用于结构化、管理和处理FAIR科学图像数据集的Python框架



内容


概述

Marimba是一个专为高效处理FAIR(可发现、可访问、互操作和可重用)科学图像数据集而设计的Python框架。由CSIROMBARI共同开发,Marimba提供了结构化、处理和确保科学图像数据FAIR合规性的核心功能。

该框架具有一个增强的Typer命令行界面(CLI),并通过Rich提供改进的用户体验。Marimba提供了一个定义良好的API(应用程序编程接口),使外部脚本和图形用户界面(GUI)的集成无缝。

Marimba特别适合在海洋科学和其他需要大规模和高效图像数据集管理的领域工作的研究人员、数据科学家和工程师。典型用例包括自动化处理水下车辆的图像、集成多仪器数据以进行综合分析,以及为FAIR合规存储库准备数据集。

(返回顶部)


设计

Marimba定义了三个核心概念

  • 项目:Marimba项目是一个标准化的、高级结构,旨在管理生成FAIR图像数据集的整个处理工作流程。它作为导入、处理、打包和分发这些数据集的主要上下文,所有高级操作都由核心Marimba系统管理。

  • 管道:Marimba 管道封装了单个或多个乐器系统的所有处理阶段的实现。每个管道独立运行,包含处理图像数据的所有必要逻辑,这可能包括多个图像或视频源、相关导航数据和其他辅助信息。Marimba 核心系统管理管道执行,并为 Marimba 的新仪器或系统开发自定义管道是处理 FAIR 图像数据集的唯一要求。

  • 集合:Marimba 集合是一组导入到 Marimba 项目的数据,可以包括来自单个或多个乐器系统的各种数据聚合。每个集合在 Marimba 的核心处理环境中都是独立的。在执行过程中,Marimba 管道并行地对每个集合中的数据应用专门的处理。

(返回顶部)


功能

Marimba 框架提供了一些针对科学图像处理特定需求的先进功能。

  • 项目结构和项目管理

    • Marimba 能够在整个处理工作流中对科学图像数据项目进行系统化的结构和管理工作。
    • Marimba 的核心功能管理在沙盒集合上并行执行的独立管道,使处理工作流实现完全自动化。
    • Marimba 在处理过程中支持使用硬链接,以防止数据重复并优化存储效率。
    • Marimba 提供统一的接口,用于导入、处理、打包和分发数据集,确保所有阶段的连贯性和效率。
  • 文件和元数据管理

    • 自定义 Marimba 管道支持实现特定的命名约定,以自动重命名图像文件。
    • Marimba 支持用户提示手动输入管道和集合级别的元数据。
    • 元数据配置字典可以通过 CLI 传递,以自动化手动输入阶段。
    • Marimba 提供了广泛的管理图像元数据的能力,包括:
      • 确保符合iFDO(图像 FAIR 数字对象)标准,以确保互操作性和可重用性。
      • 在可用时,将图像数据集与相应的导航和传感器数据集成。
      • 直接将元数据嵌入到图像 EXIF 标签中,以增加可访问性。
  • 标准图像和视频库

    • Marimba 提供了一个全面的图像和视频处理模块标准库,可以:
      • 使用 Pillow 转换、压缩和调整图像大小。
      • 使用 Ffmpeg(待集成)转码、分割和提取视频帧。
      • 自动为图像和视频生成缩略图,并创建复合概述图像,以快速评估图像数据集。
      • 使用 CleanVision(待集成)检测重复、模糊或曝光不当的图像。
  • 数据集打包和分发

    • Marimba 为打包处理过的 FAIR 图像数据集提供了一种标准化方法,包括:
      • 汇总所有处理日志,以归档整个数据集的来源,确保透明度和可追溯性。
      • 生成文件清单,以促进数据集验证。
      • 动态生成图像和视频数据集统计摘要。
    • Marimba 还提供了分发打包的 FAIR 图像数据集的机制,包括:
      • 将 FAIR 图像数据集上传到 S3 桶。

(返回顶部)


安装

Marimba 可以使用 Python pip 软件包管理器进行安装。在继续之前,请确保您的环境中已安装 Python 3.10 或更高版本。

要安装 Marimba,请打开您的终端或命令提示符,并运行以下命令

pip install marimba

这将下载并安装 Marimba 及其所需依赖项的最新版本。安装后,您可以通过运行 Marimba 并显示默认的帮助菜单来验证安装。

marimba

Marimba对系统级别的依赖性最小,例如需要其运行所必需的ffmpeg。在Ubuntu上,您可以使用以下命令安装ffmpeg

sudo apt install ffmpeg

要设置Marimba的开发环境,请参阅环境设置指南,其中提供了配置开发环境的详细说明和指南。

(返回顶部)


入门指南

Marimba提供了一个简化的CLI,涵盖了整个数据获取后的数据处理工作流程。以下是一个使用所有Marimba处理阶段的必需CLI命令的简单示例。

  1. 创建一个新的Marimba项目

    marimba new project MY-PROJECT
    cd MY-PROJECT
    
  2. 创建一个新的Marimba流水线

    marimba new pipeline MY-INSTRUMENT https://path.to/my-instrument-pipeline.git
    
  3. 导入新的Marimba集合

    marimba import COLLECTION-ONE '/path/to/collection/one/'
    marimba import COLLECTION-TWO '/path/to/collection/two/'
    
  4. 使用已安装的流水线处理导入的集合

    marimba process
    
  5. 打包FAIR图像数据集

    marimba package MY-FAIR-DATASET --version 1.0 --contact-name "Keiko Abe" --contact-email "keiko.abe@email.com"
    

有关更多详细信息和使用高级功能,请参阅概述和CLI使用指南

注意:Keiko Abe是一位著名的日本马林巴演奏家和作曲家,因其将马林巴确立为受尊敬的独奏乐器而广为人知。

(返回顶部)


文档

Marimba为用户和开发者提供了广泛的文档支持

用户

如果您有兴趣创建自己的流水线来处理图像数据,Marimba提供了一本全面的指南,帮助您开始。这份文档涵盖了从设置流水线git存储库到实现自定义流水线处理的所有内容。

  • 概述和CLI使用指南:了解Marimba的架构,并探索可用于增强流水线管理和执行的CLI命令和选项,这些都在综合的CLI使用指南中详细说明。

  • 流水线实现指南:本指南提供了一步一步的教程,说明如何设计和定制Marimba流水线以满足您独特的数据处理需求。从初始设置到高级定制技术,学习您需要的一切,以高效地使用Marimba进行特定项目。

开发者

对于想使用CLI编写脚本或利用Marimba API进行更高级集成的开发者,我们提供了涵盖Marimba所有功能的详细文档。

  • CLI脚本指南:了解如何使用Marimba的CLI自动化数据处理工作流程。本指南提供了详细的说明和示例,帮助您简化数据处理操作。

  • API参考:探索Marimba API,将其功能集成到您的应用程序或工作流程中。参考包括Python API端点的详细描述及其使用方法。

这些资源旨在帮助您充分利用Marimba,无论是处理大型数据集还是将其集成到现有的系统中。

(返回顶部)


贡献

Marimba是一个开源项目,我们欢迎社区的意见和建议。如果您有改进Marimba的想法或建议,我们鼓励您通过我们的GitHub问题跟踪器提交。对于增强功能或新功能,我们鼓励您分支存储库并提交一个pull request。请参阅贡献指南以获取详细的贡献指南。

(返回顶部)


许可

本项目遵循CSIRO BSD/MIT许可证。

(返回顶部)


联系方式

有关此存储库的查询,请联系:

(返回顶部)


致谢

马林巴(Marimba)是由澳大利亚联邦科学工业研究组织(CSIRO)和海洋与大气研究实验室(MBARI)合作开发的一项海洋科学和技术项目。马林巴的概念基础于2022年底在CSIRO形成。其初始设计和实现的大部分元素在2023年初的CSIRO图像数据收集和交付黑客马拉松期间开发,并在2023年底进行了CSIRO和MBARI之间的进一步合作改进。马林巴于2024年中在GitHub(https://github.com/csiro-fair/marimba)和PyPI(https://pypi.ac.cn/project/marimba)上开源,并在2024年海洋成像研讨会(https://miw2024.org/)上正式推出。

以下人员对该项目的开发做出了重要贡献

  • Chris Jackett - CSIRO环境部门
  • Kevin Barnard - MBARI
  • Nick Mortimer - CSIRO环境部门
  • David Webb - CSIRO NCMI
  • Aaron Tyndall - CSIRO NCMI
  • Franzis Althaus - CSIRO环境部门
  • Candice Untiedt - CSIRO环境部门
  • Carlie Devine - CSIRO环境部门
  • Bec Gorton - CSIRO环境部门
  • Ben Scoulding - CSIRO环境部门

(返回顶部)


项目详情


下载文件

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

源代码分发

marimba-0.4.2.tar.gz (74.8 kB 查看哈希值)

上传时间 源代码

构建分发

marimba-0.4.2-py3-none-any.whl (85.5 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面