def test_any(): out = xr.DataArray(np.array([[True, True], [True, True]]), coords=coords, dims=dims) assert_eq(c.points(df, 'x', 'y', ds.any('i64')), out) assert_eq(c.points(df, 'x', 'y', ds.any('f64')), out) assert_eq(c.points(df, 'x', 'y', ds.any()), out) out = xr.DataArray(np.array([[True, True], [True, False]]), coords=coords, dims=dims) assert_eq(c.points(df, 'x', 'y', ds.any('empty_bin')), out)
def test_any(): out = xr.DataArray(np.array([[True, True], [True, True]]), coords=coords, dims=dims) assert_eq(c.points(ddf, 'x', 'y', ds.any('i64')), out) assert_eq(c.points(ddf, 'x', 'y', ds.any('f64')), out) assert_eq(c.points(ddf, 'x', 'y', ds.any()), out) out = xr.DataArray(np.array([[True, True], [True, False]]), coords=coords, dims=dims) assert_eq(c.points(ddf, 'x', 'y', ds.any('empty_bin')), out)
def _get_aggregator(self, element, add_field=True): agg = self.p.aggregator if not element.vdims and agg.column is None and not isinstance( agg, (rd.count, rd.any)): return ds.any() return super(contours_rasterize, self)._get_aggregator(element, add_field)
def agg_count_cat( data, x, y, z, scale_paras, clip_max=0, reduce=False, sharp_boundary=True, ): """count categorical data """ # collect aggdata and ps agg = ds.count_cat(z) aggdata, ps = agg_data_ps(data, x, y, agg, scale_paras) zlabels = aggdata[z].values if clip_max: aggdata = aggdata.clip(max=clip_max) if reduce: aggdata = aggdata.argmax(z) if sharp_boundary: # normalize by any (set no cells to nan) agg = ds.any() aggdata_any = agg_data(data, x, y, ps.npxlx, ps.npxly, agg) aggdata_any = aggdata_any.astype(int) aggdata = aggdata/aggdata_any return aggdata, ps, zlabels
def agg_data_count( data, x, y, npxlx, npxly, ): agg = ds.count() aggdata = agg_data(data, x, y, npxlx, npxly, agg) agg = ds.any() aggdata_any = agg_data(data, x, y, npxlx, npxly, agg) aggdata = aggdata/aggdata_any return aggdata
def _process(self, element, key=None): try: import cv2 as cv except ImportError: raise ImportError('GrabCut algorithm requires openCV') if isinstance(self.p.foreground, hv.Polygons): rasterize_op = rasterize_polygon else: rasterize_op = rasterize.instance(aggregator=ds.any()) kwargs = {'dynamic': False, 'target': element} fg_mask = rasterize_op(self.p.foreground, **kwargs) bg_mask = rasterize_op(self.p.background, **kwargs) fg_mask = fg_mask.dimension_values(2, flat=False) bg_mask = bg_mask.dimension_values(2, flat=False) if fg_mask[np.isfinite(fg_mask)].sum() == 0 or bg_mask[np.isfinite( bg_mask)].sum() == 0: return element.clone([], vdims=['Foreground'], new_type=gv.Image, crs=element.crs) mask = np.where(fg_mask, fg_mask, 2) mask = np.where(bg_mask, 0, mask).copy() bgdModel = np.zeros((1, 65), np.float64) fgdModel = np.zeros((1, 65), np.float64) if isinstance(element, hv.RGB): img = np.dstack([ element.dimension_values(d, flat=False) for d in element.vdims ]) else: img = element.dimension_values(2, flat=False) mask, _, _ = cv.grabCut(img, mask.astype('uint8'), None, bgdModel, fgdModel, self.p.iterations, cv.GC_INIT_WITH_MASK) fg_mask = np.where((mask == 2) | (mask == 0), 0, 1).astype('bool') xs, ys = (element.dimension_values(d, expanded=False) for d in element.kdims) return element.clone((xs, ys, fg_mask), vdims=['Foreground'], new_type=gv.Image, crs=element.crs)
linkNext, ) simTime += time.time() - tic # Rendering # ============================ if it == 0: df = pd.DataFrame(np.array([x, y]).T, columns=('x', 'y')) refineFac = 4.0 cvs = ds.Canvas(plot_width=int(nx * refineFac), plot_height=int(ny * refineFac), x_range=(xmin, xmax), y_range=(ymin, ymax), x_axis_type='linear', y_axis_type='linear') agg = cvs.points(df, 'x', 'y', ds.any()) im = plt.imshow(agg.variable, extent=[xmin, xmax, ymin, ymax], origin='lower') if it % 5 == 0: tic = time.time() df = pd.DataFrame(np.array([x, y]).T, columns=('x', 'y')) agg = cvs.points(df, 'x', 'y', ds.any()) im.set_array(agg.variable) # markers.set_data(x,y) # plt.clf() # plt.plot(gridX,gridY,'k',linewidth=0.5) # plt.plot(gridX.T,gridY.T,'k',linewidth=0.5) ## plt.fill([xmin,xmax,xmax,xmin],[ymin,ymin,ymax,ymax],color=[.9,.9,.9],linewidth=0.0) #