diff options
Diffstat (limited to 'src/silx/gui/plot/items/image_aggregated.py')
-rw-r--r-- | src/silx/gui/plot/items/image_aggregated.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/silx/gui/plot/items/image_aggregated.py b/src/silx/gui/plot/items/image_aggregated.py index 75fdd59..b35e00a 100644 --- a/src/silx/gui/plot/items/image_aggregated.py +++ b/src/silx/gui/plot/items/image_aggregated.py @@ -1,7 +1,6 @@ -# coding: utf-8 # /*########################################################################## # -# Copyright (c) 2021 European Synchrotron Radiation Facility +# Copyright (c) 2021-2023 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -32,6 +31,7 @@ __date__ = "07/07/2021" import enum import logging from typing import Tuple, Union +import warnings import numpy @@ -69,7 +69,7 @@ class ImageDataAggregated(ImageDataBase): self.__currentLOD = 0, 0 self.__aggregationMode = self.Aggregation.NONE - def setAggregationMode(self, mode: Union[str,Aggregation]): + def setAggregationMode(self, mode: Union[str, Aggregation]): """Set the aggregation method used to reduce the data to screen resolution. :param Aggregation mode: The aggregation method @@ -116,12 +116,14 @@ class ImageDataAggregated(ImageDataBase): if (lodx, lody) not in self.__cacheLODData: height, width = data.shape - self.__cacheLODData[(lodx, lody)] = aggregator( - data[: (height // lody) * lody, : (width // lodx) * lodx].reshape( - height // lody, lody, width // lodx, lodx - ), - axis=(1, 3), - ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=RuntimeWarning) + self.__cacheLODData[(lodx, lody)] = aggregator( + data[ + : (height // lody) * lody, : (width // lodx) * lodx + ].reshape(height // lody, lody, width // lodx, lodx), + axis=(1, 3), + ) self.__currentLOD = lodx, lody displayedData = self.__cacheLODData[self.__currentLOD] @@ -154,10 +156,7 @@ class ImageDataAggregated(ImageDataBase): xaxis = plot.getXAxis() yaxis = plot.getYAxis(axis) - if ( - xaxis.getScale() != Axis.LINEAR - or yaxis.getScale() != Axis.LINEAR - ): + if xaxis.getScale() != Axis.LINEAR or yaxis.getScale() != Axis.LINEAR: raise RuntimeError("Only available with linear axes") xmin, xmax = xaxis.getLimits() @@ -201,8 +200,10 @@ class ImageDataAggregated(ImageDataBase): def __plotLimitsChanged(self): """Trigger update if level of details has changed""" - if (self.getAggregationMode() != self.Aggregation.NONE and - self.__currentLOD != self._getLevelOfDetails()): + if ( + self.getAggregationMode() != self.Aggregation.NONE + and self.__currentLOD != self._getLevelOfDetails() + ): self._updated() @docstring(ImageDataBase) |