large-image-source-multi 1.29.7.dev10__tar.gz → 1.29.7.dev12__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-multi-1.29.7.dev10/large_image_source_multi.egg-info → large-image-source-multi-1.29.7.dev12}/PKG-INFO +3 -3
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi/__init__.py +41 -4
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12/large_image_source_multi.egg-info}/PKG-INFO +3 -3
- large-image-source-multi-1.29.7.dev12/large_image_source_multi.egg-info/requires.txt +9 -0
- large-image-source-multi-1.29.7.dev10/large_image_source_multi.egg-info/requires.txt +0 -9
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/LICENSE +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/README.rst +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/docs/specification.rst +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi/girder_source.py +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi.egg-info/SOURCES.txt +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi.egg-info/dependency_links.txt +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi.egg-info/entry_points.txt +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/large_image_source_multi.egg-info/top_level.txt +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/pyproject.toml +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/setup.cfg +0 -0
- {large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-multi
|
|
3
|
-
Version: 1.29.7.
|
|
3
|
+
Version: 1.29.7.dev12
|
|
4
4
|
Summary: A tilesource for large_image to composite other tile sources
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -19,12 +19,12 @@ Requires-Python: >=3.6
|
|
|
19
19
|
Description-Content-Type: text/x-rst
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: jsonschema
|
|
22
|
-
Requires-Dist: large-image>=1.29.7.
|
|
22
|
+
Requires-Dist: large-image>=1.29.7.dev12
|
|
23
23
|
Requires-Dist: pyyaml
|
|
24
24
|
Provides-Extra: all
|
|
25
25
|
Requires-Dist: scikit-image; extra == "all"
|
|
26
26
|
Provides-Extra: girder
|
|
27
|
-
Requires-Dist: girder-large-image>=1.29.7.
|
|
27
|
+
Requires-Dist: girder-large-image>=1.29.7.dev12; extra == "girder"
|
|
28
28
|
|
|
29
29
|
A tilesource for large_image to composite other tile sources
|
|
30
30
|
|
|
@@ -288,6 +288,18 @@ SourceEntrySchema = {
|
|
|
288
288
|
'type': 'array',
|
|
289
289
|
'items': {'type': 'integer'},
|
|
290
290
|
},
|
|
291
|
+
'sampleScale': {
|
|
292
|
+
'description':
|
|
293
|
+
'Each pixel sample values is divided by this scale after any '
|
|
294
|
+
'sampleOffset has been applied',
|
|
295
|
+
'type': 'number',
|
|
296
|
+
},
|
|
297
|
+
'sampleOffset': {
|
|
298
|
+
'description':
|
|
299
|
+
'This is added to each pixel sample value before any '
|
|
300
|
+
'sampleScale is applied',
|
|
301
|
+
'type': 'number',
|
|
302
|
+
},
|
|
291
303
|
'style': {'type': 'object'},
|
|
292
304
|
'params': {
|
|
293
305
|
'description':
|
|
@@ -806,7 +818,7 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
806
818
|
self._bands = {}
|
|
807
819
|
self._bands.update(tsMeta['bands'])
|
|
808
820
|
lastSource = source
|
|
809
|
-
self.
|
|
821
|
+
self._bandCount = 1 if self._info.get('singleBand') else (
|
|
810
822
|
len(self._bands) if hasattr(self, '_bands') else (bandCount or None))
|
|
811
823
|
bbox = self._sourceBoundingBox(source, tsMeta['sizeX'], tsMeta['sizeY'])
|
|
812
824
|
computedWidth = max(computedWidth, int(math.ceil(bbox['right'])))
|
|
@@ -875,6 +887,20 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
875
887
|
if params is None:
|
|
876
888
|
params = source.get('params', {})
|
|
877
889
|
ts = openFunc(source['path'], **params)
|
|
890
|
+
if (self._dtype and np.dtype(ts.dtype).kind == 'f' and self._dtype.kind != 'f' and
|
|
891
|
+
'sampleScale' not in source and 'sampleOffset' not in source):
|
|
892
|
+
minval = maxval = 0
|
|
893
|
+
for f in range(ts.frames):
|
|
894
|
+
ftile = ts.getTile(x=0, y=0, z=0, frame=f, numpyAllowed='always')
|
|
895
|
+
minval = min(minval, np.amin(ftile))
|
|
896
|
+
maxval = max(maxval, np.amax(ftile))
|
|
897
|
+
if minval >= 0 and maxval <= 1:
|
|
898
|
+
source['sampleScale'] = None
|
|
899
|
+
elif minval >= 0:
|
|
900
|
+
source['sampleScale'] = 2 ** math.ceil(math.log2(maxval))
|
|
901
|
+
else:
|
|
902
|
+
source['sampleScale'] = 2 ** math.ceil(math.log2(max(-minval, maxval)) + 1)
|
|
903
|
+
source['sampleOffset'] = source['sampleScale'] / 2
|
|
878
904
|
source['sourceName'] = ts.name
|
|
879
905
|
with self._lastOpenSourceLock:
|
|
880
906
|
self._lastOpenSource = {
|
|
@@ -1190,9 +1216,20 @@ class MultiFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
|
|
|
1190
1216
|
ts, transform, corners, scale, sourceEntry.get('frame', 0),
|
|
1191
1217
|
source.get('position', {}).get('crop'))
|
|
1192
1218
|
if sourceTile is not None and all(dim > 0 for dim in sourceTile.shape):
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1219
|
+
targetDtype = np.dtype(self._info.get('dtype', ts.dtype))
|
|
1220
|
+
changeDtype = sourceTile.dtype != targetDtype
|
|
1221
|
+
if source.get('sampleScale') or source.get('sampleOffset'):
|
|
1222
|
+
sourceTile = sourceTile.astype(float)
|
|
1223
|
+
if source.get('sampleOffset'):
|
|
1224
|
+
sourceTile[:, :, :-1] += source['sampleOffset']
|
|
1225
|
+
if source.get('sampleScale') and source.get('sampleScale') != 1:
|
|
1226
|
+
sourceTile[:, :, :-1] /= source['sampleScale']
|
|
1227
|
+
if sourceTile.dtype != targetDtype:
|
|
1228
|
+
if changeDtype:
|
|
1229
|
+
sourceTile = (
|
|
1230
|
+
sourceTile.astype(float) * fullAlphaValue(targetDtype) /
|
|
1231
|
+
fullAlphaValue(sourceTile))
|
|
1232
|
+
sourceTile = sourceTile.astype(targetDtype)
|
|
1196
1233
|
tile = self._mergeTiles(tile, sourceTile, x, y)
|
|
1197
1234
|
return tile
|
|
1198
1235
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: large-image-source-multi
|
|
3
|
-
Version: 1.29.7.
|
|
3
|
+
Version: 1.29.7.dev12
|
|
4
4
|
Summary: A tilesource for large_image to composite other tile sources
|
|
5
5
|
Home-page: https://github.com/girder/large_image
|
|
6
6
|
Author: Kitware, Inc.
|
|
@@ -19,12 +19,12 @@ Requires-Python: >=3.6
|
|
|
19
19
|
Description-Content-Type: text/x-rst
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: jsonschema
|
|
22
|
-
Requires-Dist: large-image>=1.29.7.
|
|
22
|
+
Requires-Dist: large-image>=1.29.7.dev12
|
|
23
23
|
Requires-Dist: pyyaml
|
|
24
24
|
Provides-Extra: all
|
|
25
25
|
Requires-Dist: scikit-image; extra == "all"
|
|
26
26
|
Provides-Extra: girder
|
|
27
|
-
Requires-Dist: girder-large-image>=1.29.7.
|
|
27
|
+
Requires-Dist: girder-large-image>=1.29.7.dev12; extra == "girder"
|
|
28
28
|
|
|
29
29
|
A tilesource for large_image to composite other tile sources
|
|
30
30
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{large-image-source-multi-1.29.7.dev10 → large-image-source-multi-1.29.7.dev12}/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|