large-image-source-tifffile 1.20.7.dev30__tar.gz → 1.21.1.dev6__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {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
|