def test_regrid_rgb_mean(self): arr = (np.arange(10) * np.arange(5)[np.newaxis].T).astype('f') rgb = RGB((range(10), range(5), arr, arr*2, arr*2)) regridded = regrid(rgb, width=2, height=2, dynamic=False) new_arr = np.array([[1.6, 5.6], [6.4, 22.4]]) expected = RGB(([2., 7.], [0.75, 3.25], new_arr, new_arr*2, new_arr*2), datatype=['xarray']) self.assertEqual(regridded, expected)
def test_rgb_regrid_packed(self): coords = {'x': [1, 2], 'y': [1, 2], 'band': [0, 1, 2]} arr = np.array([ [[255, 10], [ 0, 30]], [[ 1, 0], [ 0, 0]], [[127, 0], [ 0, 68]], ]).T da = xr.DataArray(data=arr, dims=('x', 'y', 'band'), coords=coords) im = RGB(da, ['x', 'y']) agg = rasterize(im, width=3, height=3, dynamic=False, upsample=True) xs = [0.8333333, 1.5, 2.166666] ys = [0.8333333, 1.5, 2.166666] arr = np.array([ [[255, 255, 10], [255, 255, 10], [ 0, 0, 30]], [[ 1, 1, 0], [ 1, 1, 0], [ 0, 0, 0]], [[127, 127, 0], [127, 127, 0], [ 0, 0, 68]], ]).transpose((1, 2, 0)) expected = RGB((xs, ys, arr)) self.assertEqual(agg, expected)
def setUp(self): self.rgb1_arr = np.array([[[0, 1], [1, 0]], [[1, 0], [0, 1]], [[0, 0], [0, 0]]], dtype=np.uint8).T*255 self.rgb2_arr = np.array([[[0, 0], [0, 0]], [[0, 0], [0, 0]], [[1, 0], [0, 1]]], dtype=np.uint8).T*255 self.rgb1 = RGB(self.rgb1_arr) self.rgb2 = RGB(self.rgb2_arr)
def test_spread_rgb_1px(self): arr = np.array([[[0, 0, 0], [0, 1, 1], [0, 1, 1]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], dtype=np.uint8).T*255 spreaded = spread(RGB(arr)) arr = np.array([[[0, 0, 1], [0, 0, 1], [0, 0, 1]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[0, 0, 0], [0, 0, 0], [0, 0, 0]], [[1, 1, 1], [1, 1, 1], [1, 1, 1]]], dtype=np.uint8).T*255 self.assertEqual(spreaded, RGB(arr))
def test_rgb_string_signature(self): img = RGB(np.zeros((2, 2, 3)), ['a', 'b'], ['R', 'G', 'B']) self.assertEqual(img.kdims, [Dimension('a'), Dimension('b')]) self.assertEqual( img.vdims, [Dimension('R'), Dimension('G'), Dimension('B')])
def test_stack_add_compositor(self): combined = stack(self.rgb1 * self.rgb2, compositor='add') arr = np.array( [[[0, 255, 255], [255, 0, 0]], [[255, 0, 0], [0, 255, 255]]], dtype=np.uint8) expected = RGB(arr) self.assertEqual(combined, expected)
def test_shade_categorical_images_grid(self): xs, ys = [0.25, 0.75], [0.25, 0.75] data = NdOverlay( { 'A': Image((xs, ys, [[1, 0], [0, 0]]), datatype=['grid'], vdims='z Count'), 'B': Image((xs, ys, [[0, 0], [1, 0]]), datatype=['grid'], vdims='z Count'), 'C': Image((xs, ys, [[0, 0], [1, 0]]), datatype=['grid'], vdims='z Count') }, kdims=['z']) shaded = shade(data) r = [[228, 255], [66, 255]] g = [[26, 255], [150, 255]] b = [[28, 255], [129, 255]] a = [[40, 0], [255, 0]] expected = RGB((xs, ys, r, g, b, a), datatype=['grid'], vdims=RGB.vdims + [Dimension('A', range=(0, 1))]) self.assertEqual(shaded, expected)
def test_shade_dt_xaxis_constant_yaxis(self): df = pd.DataFrame({'y': np.ones(100)}, index=pd.date_range('1980-01-01', periods=100, freq='1T')) rgb = shade(rasterize(Curve(df), dynamic=False, width=3)) xs = np.array(['1980-01-01T00:16:30.000000', '1980-01-01T00:49:30.000000', '1980-01-01T01:22:30.000000'], dtype='datetime64[us]') ys = np.array([]) bounds = (np.datetime64('1980-01-01T00:00:00.000000'), 1.0, np.datetime64('1980-01-01T01:39:00.000000'), 1.0) expected = RGB((xs, ys, np.empty((0, 3, 4))), ['index', 'y'], xdensity=1, ydensity=1, bounds=bounds) self.assertEqual(rgb, expected)
def init_data(self): self.xs = np.linspace(-9, 9, 10) self.ys = np.linspace(0.5, 9.5, 10) self.rgb_array = np.random.rand(10, 10, 3) self.rgb = RGB((self.xs, self.ys, self.rgb_array[:, :, 0], self.rgb_array[:, :, 1], self.rgb_array[:, :, 2]))
def init_data(self): self.rgb_array = np.random.rand(10, 10, 3) self.rgb = RGB(self.rgb_array[::-1], bounds=(-10, 0, 10, 10))
def test_rgb_casting(self): rgb = RGB([], bounds=2) self.assertEqual(rgb, RGB(rgb))
def init_data(self): self.rgb = RGB(self.rgb_array[::-1], bounds=(-10, 0, 10, 10))