https://github.com/bamresearch/mousedatapipeline

Tools for (automatic) processing of the new MOUSE datafiles

https://github.com/bamresearch/mousedatapipeline

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Tools for (automatic) processing of the new MOUSE datafiles

Basic Info
  • Host: GitHub
  • Owner: BAMresearch
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 93.8 KB
Statistics
  • Stars: 2
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

MOUSEDataPipeline

MOUSEDataPipeline provides tools for the (automatic) processing of new MOUSE datafiles, offering a structured approach to manage and analyze scientific data generated by the MOUSE instrument.

prerequisites and assumptions

Nomenclature

  • Measurement Date: A rough timestamp indicating when measurements on a specific set of samples began. Each set of samples belonging together is grouped under a unique measurement date in the format YYYYMMDD.

  • Batch: Represents a set of measurements for a single sample. A batch includes all measurements across various configurations for that particular sample.

  • Repetition: Refers to an individual measurement within a specific configuration. This includes the measurement alongside the preceding direct beam and direct-beam-through-sample measurements, which are essential for determining the primary beam flux, beam position, and transmission factor.

expected directory structure

The data is organized under a predefined directory structure to ensure consistency and facilitate automated processing:

bash ├─── Proposals │ └─── 2025 └─── Measurements ├─── SAXS002 │ ├─── logbooks │ └─── data │ └─── Masks │ └─── 2025 │ └─── 20250101 # (measurement date) │ └─── 20250101_[batch]_[repetition] # directory with files │ └───eiger_[number]_master.h5 │ └───eiger_[number]_data00001.h5 │ └───im_craw.nxs │ └─── beam_profile │ └─── eiger_[number]_master.h5 │ └─── eiger_[number]_data00001.h5 │ └─── im_craw.nxs │ └───beam_profile_through_sample │ └─── eiger_[number]_master.h5 │ └─── eiger_[number]_data00001.h5 │ └─── im_craw.nxs │ └─── 20250101_[batch]_[repetition] │ └─── ... │ └─── autoproc # (processed datafiles)

Some flexibility is possible, there is a MOUSE_settings.yaml file that contains the paths to given sections in the tree. These can be adapted to point at the bits in your structure

usage example:

To process directories using specific configurations and steps, execute the following commands in your terminal:

zsh python src/directory_processor.py --config MOUSE_settings.yaml --single_dir ~/Documents/BAM/Measurements/newMouseTest/Measurements/SAXS002/data/2025/20250101/20250101_21_22 --steps processstep_translator_step_1 processstep_translator_step_2 processstep_beamanalysis

Alternatively, specify measurement details directly:

zsh python src/directory_processor.py --config MOUSE_settings.yaml --ymd 20250101 --batch 21 --repetition 22 --steps processstep_translator_step_1 processstep_translator_step_2 processstep_beamanalysis

If you want to do all currently ready steps for all repetitions in a batch, run the following: zsh python src/directory_processor.py --config MOUSE_settings.yaml \ --ymd 20250101 --batch 21 --parallel --steps \ processstep_translator_step_1 \ processstep_translator_step_2 \ processstep_beamanalysis \ processstep_cleanup_files \ processstep_add_mask_file \ processstep_metadata_update \ processstep_thickness_from_absorption \ processstep_add_background_files \ processstep_stacker

top-level methods:

1. directory_processor

  • Processes all data for a specified measurement date (YYYYMMDD), batch, and repetition, or by a given directory path.
  • Executes the defined processing steps, which should ideally be wrappers around CLI-executable scripts, though this isn't strictly enforced.

2. watcher

WIP, not functional yet! This component aims to continuously monitor a measurement date directory for newly completed repetitions, automatically processing them as they become available.

functionality methods:

TBC...

Owner

  • Name: Bundesanstalt für Materialforschung und -prüfung
  • Login: BAMresearch
  • Kind: organization
  • Email: oss@bam.de
  • Location: Berlin/Germany

German Federal scientific research institute for materials testing and research

GitHub Events

Total
  • Watch event: 3
  • Member event: 3
  • Push event: 60
  • Create event: 3
Last Year
  • Watch event: 3
  • Member event: 3
  • Push event: 60
  • Create event: 3

Dependencies

requirements.txt pypi
  • attrs *
  • h5py *
  • hdf5plugin *
  • numpy *
  • scikit-image *