large-image-source-tifffile 1.20.7.dev30__tar.gz → 1.21.1.dev6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/PKG-INFO +1 -1
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile/__init__.py +27 -4
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/PKG-INFO +1 -1
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/requires.txt +2 -2
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/LICENSE +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/README.rst +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile/girder_source.py +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/SOURCES.txt +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/dependency_links.txt +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/entry_points.txt +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/large_image_source_tifffile.egg-info/top_level.txt +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/setup.cfg +0 -0
- {large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/setup.py +0 -0
@@ -1,3 +1,4 @@
|
|
1
|
+
import json
|
1
2
|
import logging
|
2
3
|
import math
|
3
4
|
import os
|
@@ -76,6 +77,7 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
76
77
|
_tileSize = 512
|
77
78
|
_minImageSize = 128
|
78
79
|
_minTileSize = 128
|
80
|
+
_singleTileSize = 1024
|
79
81
|
_maxTileSize = 2048
|
80
82
|
_minAssociatedImageSize = 64
|
81
83
|
_maxAssociatedImageSize = 8192
|
@@ -102,6 +104,8 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
102
104
|
self.tileWidth = self.tileHeight = self._tileSize
|
103
105
|
s = self._tf.series[maxseries]
|
104
106
|
self._baseSeries = s
|
107
|
+
if len(s.levels) == 1:
|
108
|
+
self.tileWidth = self.tileHeight = self._singleTileSize
|
105
109
|
page = s.pages[0]
|
106
110
|
if ('TileWidth' in page.tags and
|
107
111
|
self._minTileSize <= page.tags['TileWidth'].value <= self._maxTileSize):
|
@@ -243,6 +247,15 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
243
247
|
max(entry['width'], entry['height']) >= self._minAssociatedImageSize):
|
244
248
|
self._associatedImages[id] = entry
|
245
249
|
|
250
|
+
def _handle_imagej(self):
|
251
|
+
try:
|
252
|
+
ijm = self._tf.pages[0].tags['IJMetadata'].value
|
253
|
+
if (ijm['Labels'] and len(ijm['Labels']) == self._framecount and
|
254
|
+
not getattr(self, '_channels', None)):
|
255
|
+
self._channels = ijm['Labels']
|
256
|
+
except Exception:
|
257
|
+
pass
|
258
|
+
|
246
259
|
def _handle_scn(self): # noqa
|
247
260
|
"""
|
248
261
|
For SCN files, parse the xml and possibly adjust how associated images
|
@@ -359,7 +372,8 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
359
372
|
pages.extend([page for page in self._tf.pages if page not in pagesInSeries])
|
360
373
|
for page in pages:
|
361
374
|
for tag in getattr(page, 'tags', []):
|
362
|
-
if tag.dtype_name == 'ASCII'
|
375
|
+
if (tag.dtype_name == 'ASCII' or (
|
376
|
+
tag.dtype_name == 'BYTE' and isinstance(tag.value, dict))) and tag.value:
|
363
377
|
key = basekey = tag.name
|
364
378
|
suffix = 0
|
365
379
|
while key in result:
|
@@ -368,6 +382,13 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
368
382
|
suffix += 1
|
369
383
|
key = '%s_%d' % (basekey, suffix)
|
370
384
|
result[key] = tag.value
|
385
|
+
if isinstance(result[key], dict):
|
386
|
+
result[key] = result[key].copy()
|
387
|
+
for subkey in list(result[key]):
|
388
|
+
try:
|
389
|
+
json.dumps(result[key][subkey])
|
390
|
+
except Exception:
|
391
|
+
del result[key][subkey]
|
371
392
|
if hasattr(self, '_xml') and 'xml' not in result:
|
372
393
|
result.pop('ImageDescription', None)
|
373
394
|
result['xml'] = self._xml
|
@@ -420,11 +441,13 @@ class TifffileFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
420
441
|
if sidx not in self._zarrcache:
|
421
442
|
if len(self._zarrcache) > 10:
|
422
443
|
self._zarrcache = {}
|
423
|
-
|
424
|
-
|
444
|
+
za = zarr.open(series.aszarr(), mode='r')
|
445
|
+
hasgbs = hasattr(za[0], 'get_basic_selection')
|
446
|
+
self._zarrcache[sidx] = (za, hasgbs)
|
447
|
+
za, hasgbs = self._zarrcache[sidx]
|
425
448
|
xidx = series.axes.index('X')
|
426
449
|
yidx = series.axes.index('Y')
|
427
|
-
if
|
450
|
+
if hasgbs:
|
428
451
|
bza = za[0]
|
429
452
|
# we could cache this
|
430
453
|
for ll in range(len(series.levels) - 1, 0, -1):
|
{large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/LICENSE
RENAMED
File without changes
|
{large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/README.rst
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/setup.cfg
RENAMED
File without changes
|
{large-image-source-tifffile-1.20.7.dev30 → large-image-source-tifffile-1.21.1.dev6}/setup.py
RENAMED
File without changes
|