Skip to content

Commit 3252c9d

Browse files
authored
Merge pull request #188 from rolfverberg/main
fix: fixed memory issues in tiff writer for large data sets
2 parents 14b0c1b + 84db2f3 commit 3252c9d

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

CHAP/common/processor.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,11 @@ def process(
873873
if not save_figures and not interactive:
874874
return
875875

876+
# Third party modules
877+
from nexusformat.nexus import nxsetconfig
878+
879+
nxsetconfig(memory=100000)
880+
876881
# Load the default data
877882
try:
878883
nxdata = self.get_data(data).get_default()
@@ -1008,6 +1013,7 @@ def process(
10081013
column_coords[-1], column_coords[0]),
10091014
'vrange': vrange,
10101015
}
1016+
self.logger.debug(f'figure configuration:\n{self._figconfig}')
10111017

10121018
if len(axis_coords) == 1:
10131019
# Create a figure for a single image slice
@@ -1056,8 +1062,9 @@ def process(
10561062
self.logger.warning(
10571063
'Ignoring inconsistent file extension')
10581064
fileformat = 'tif'
1059-
image_data = ((data*255.0 - vrange[0])/
1060-
(vrange[1] - vrange[0])).astype(np.uint8)
1065+
data = 255.0*((data - vrange[0])/
1066+
(vrange[1] - vrange[0]))
1067+
image_data = data.astype(np.uint8)
10611068

10621069
if save_figures:
10631070
return {'image_data': image_data, 'fileformat': fileformat}

CHAP/common/writer.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,15 @@ def write_image(data, filename, logger, force_overwrite=False):
4949
if image_data.ndim == 2:
5050
# Third party modules
5151
from imageio import imwrite
52+
53+
imwrite(filename, image_data)
5254
elif image_data.ndim == 3:
5355
# Third party modules
54-
from imageio import mimwrite as imwrite
56+
# from imageio import mimwrite as imwrite
57+
from tifffile import imwrite
5558

56-
imwrite(filename, image_data)
59+
kwargs = {'bigtiff': True}
60+
imwrite(filename, image_data, **kwargs)
5761
elif isinstance(image_data, animation.FuncAnimation):
5862
image_data.save(filename)
5963
else:

0 commit comments

Comments
 (0)