Skip to content

Commit 27e4963

Browse files
authored
Merge pull request #1808 from girder/zarr-sink-multi-frame-axes
Fix Zarr Sink adding multiple frame axes
2 parents 1c4e834 + 5f85660 commit 27e4963

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

sources/zarr/large_image_source_zarr/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,7 @@ def getTile(self, x, y, z, pilImageAllowed=False, numpyAllowed=False, **kwargs):
629629

630630
def _validateNewTile(self, tile, mask, placement, axes):
631631
if not isinstance(tile, np.ndarray) or axes is None:
632-
axes = 'yxs'
632+
axes = self._axes if hasattr(self, '_axes') else 'yxs'
633633
tile, mode = _imageToNumpy(tile)
634634
elif not isinstance(axes, str) and not isinstance(axes, list):
635635
err = 'Invalid type for axes. Must be str or list[str].'

test/test_sink.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,14 @@ def testXYAxis():
117117
assert metadata['IndexStride']['IndexXY'] == 1
118118

119119

120+
def testMultiFrameAxes():
121+
sink = large_image_source_zarr.new()
122+
sink.addTile(np.random.random((256, 256)), 0, 0, q=1)
123+
assert sink.metadata.get('IndexRange') == dict(IndexQ=2)
124+
sink.addTile(np.random.random((256, 256)), 0, 0, r=1)
125+
assert sink.metadata.get('IndexRange') == dict(IndexQ=2, IndexR=2)
126+
127+
120128
@pytest.mark.parametrize('file_type', FILE_TYPES)
121129
def testCrop(file_type, tmp_path):
122130
output_file = tmp_path / f'test.{file_type}'

0 commit comments

Comments
 (0)