Skip to content

feat(nd2): extract instrument-metadata block (objective + acquisition + channels) into audit + OME-XML — replaces #55 #64

Description

@ferrinm

What to build

Broader-scope replacement for #55. Populate the full instrument-metadata surface on the ND2 reader path so ND2 conversions carry the same audit / OME-XML richness as LIF does after #52 + #62.

Scope

Extract all of the following per scene (or per file where the ADR places them) from an ND2 file — src/zarrmony/readers/nd2.py and the bioio-nd2 surface it wraps:

  1. Objective (originally feat(nd2): extract objective lens metadata into audit + OME-XML #55): nominal_magnification, numerical_aperture, immersion, model, working_distance_um. Source: Nikon NIS-Elements structured experiment metadata. Populate per_scene[i].objective + OME-XML <Instrument>/<Objective> + per-image <ObjectiveSettings>.
  2. Acquisition + instrument (new from feat(lif): extract per-scene acquisition/instrument block (date, microscope, imaging_method) into audit + inspect #62): acquisition_date, microscope_model, microscope_serial, imaging_method. ND2 records these in the file header / experiment metadata surface exposed by the underlying nd2 package.
  3. Channels (from feat(audit): store per-scene channel identity (dye/fluor/excitation/emission) across all reader paths #61): project reader.ome_metadata.images[0].pixels.channels into per_scene[i].channels with the ADR-locked shape.

Implementation notes

Acceptance criteria

Blocked by

Replaces

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentTriaged and ready for an agent to implement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions