Skip to content

Commit

Permalink
Added strict validation for Image sampling
Browse files Browse the repository at this point in the history
  • Loading branch information
philippjfr committed Dec 20, 2017
1 parent 7aabc20 commit 2d346b2
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions holoviews/element/raster.py
@@ -1,4 +1,6 @@
import sys
from operator import itemgetter

import numpy as np
import colorsys
import param
Expand Down Expand Up @@ -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):
"""
Expand Down

0 comments on commit 2d346b2

Please sign in to comment.