From 2d346b23eab7d70a4a6b86f1d8d226b7b728ae55 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 20 Dec 2017 16:50:29 +0000 Subject: [PATCH] Added strict validation for Image sampling --- holoviews/element/raster.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/holoviews/element/raster.py b/holoviews/element/raster.py index 1ad0c892fd..735a78927a 100644 --- a/holoviews/element/raster.py +++ b/holoviews/element/raster.py @@ -1,4 +1,6 @@ +import sys from operator import itemgetter + import numpy as np import colorsys import param @@ -260,6 +262,19 @@ def __init__(self, data, kdims=None, vdims=None, bounds=None, extents=None, raise ValueError("Input array has shape %r but %d value dimensions defined" % (self.shape, len(self.vdims))) + xvals = np.unique(np.diff(self.dimension_values(0, expanded=False))) + if len(xvals) > 1 and np.abs(xvals.min()-xvals.max()) > sys.float_info.epsilon*10: + raise ValueError("%s dimension %s is not evenly sampled, " + "please use the QuadMesh element for " + "unevenly or irregularly sampled data." % + (type(self).__name__, self.get_dimension(0))) + yvals = np.unique(np.diff(self.dimension_values(1, expanded=False))) + if len(yvals) > 1 and np.abs(yvals.min()-yvals.max()) > sys.float_info.epsilon*10: + raise ValueError("%s dimension %s is not evenly sampled, " + "please use the QuadMesh element for " + "unevenly or irregularly sampled data." % + (type(self).__name__, self.get_dimension(1))) + def __setstate__(self, state): """