Skip to content

Preserve native POINT kind and geometry in ImageJ ROI archive roundtrips #12

Closed

Description

@trissim

Native defect

Pinned/current main 0efe67f, verified against the remote. A tiny synthetic native codec diagnostic uses a PointShape at Y/X=(1.25,3.5), stable object/source metadata and Z plane index2; no biological images, pipeline execution or viewer mutation.

Observed:

  • PointImageJROIShapeConverter.imagej_roi (src/polystore/roi_converters.py:547) uses ImagejRoi.frompoints without setting ROI_TYPE.POINT. The stored record is FREEHAND rather than POINT.
  • load_rois_from_zip (src/polystore/roi.py) maps every non-POLYLINE record to PolygonShape. Both the production point-writer archive and an independently constructed standard ImageJ POINT archive fail with ValueError: Polygon must have at least 3 vertices, got 1.
  • The native polygon writer/reader control passes exact XY and metadata checks.
  • Floating XY coordinates and sidecar Z/object/source identity are present; a shape-kind failure must not be masked by a caller-side decoder.

Evidence environment: Python3.14.6, numpy2.5.1, roifile2026.2.10, own pinned PolyStore/arraybridge/metaclass-registry/zmqruntime sources. This is codec evidence only, not an installed OpenHCS/MCP/viewer or biological proof.

Required owner-level repair

Keep external ImageJ format semantics and put encode/decode behavior on the existing nominal geometry/codec declaration owners; derive dispatch from declarations/capabilities, not a parallel shape roster or extension/type ladder. Preserve POINT kind, exact YX and Z/label/object/source metadata; reject unsupported/malformed types truthfully. Protect polygon/polyline/ellipse behavior with family/native external-contract regressions.

Complete source/dependency NRA and R1 ownership evidence plus bounded native tests are required before implementation is accepted. Do not edit shared/installed dependencies or bypass the OpenHCS managed viewer.

This is a prerequisite of OpenHCSDev/openhcs#134 / draft OpenHCSDev/openhcs#153: fixing result-directory admission alone would leave point reopening broken. Parent gitlink integration follows validated dependency changes; no current scientific artifact is rewritten.

Activity

  1. trissim commented on Sep 29, 2026

    @trissim
    ContributorAuthor

    Draft PR #13 now tracks the authorised native codec repair on fix/native-imagej-point-roi-20260929 at 05c4e7d. Documentation only; no production edits. The distinct canonical metadata diagnostic reproduced 1 polygon control pass and 2 POINT failures in 0.28 seconds, peak RSS 51808 KiB. It preserves the original codec failure receipts and separates native coordinates/Z from logical JSON metadata. Common full NRA/R1 remains incomplete, so implementation is still gated. The OpenHCS pinned clone/gitlink remains unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions