def set_rgb(self, img=None, crs=None, interp='nearest', natural_earth=None): """Manually force to a rgb img Parameters ---------- img : array the image to plot crs : Grid the image reference system interp : str, default 'nearest' 'nearest', 'linear', or 'spline' natural_earth : str 'lr', 'mr' or 'hr' (low res, medium or high res) natural earth background img """ if natural_earth is not None: from matplotlib.image import imread with warnings.catch_warnings(): # DecompressionBombWarning warnings.simplefilter("ignore") img = imread(utils.get_natural_earth_file(natural_earth)) ny, nx = img.shape[0], img.shape[1] dx, dy = 360. / nx, 180. / ny grid = Grid(nxny=(nx, ny), dxdy=(dx, -dy), x0y0=(-180., 90.), pixel_ref='corner').center_grid return self.set_rgb(img, grid, interp='linear') if (len(img.shape) != 3) or (img.shape[-1] not in [3, 4]): raise ValueError('img should be of shape (y, x, 3) or (y, x, 4)') # Unefficient but by far easiest right now out = [] for i in range(img.shape[-1]): out.append(self._check_data(img[..., i], crs=crs, interp=interp)) self._rgb = np.dstack(out)
def set_rgb(self, img=None, crs=None, interp='nearest', natural_earth=None): """Manually force to a rgb img Parameters ---------- img : array the image to plot crs : Grid the image reference system interp : str, default 'nearest' 'nearest', 'linear', or 'spline' natural_earth : str 'lr', 'mr' or 'hr' (low res, medium or high res) natural earth background img """ if natural_earth is not None: from matplotlib.image import imread with warnings.catch_warnings(): # DecompressionBombWarning warnings.simplefilter("ignore") img = imread(utils.get_natural_earth_file(natural_earth)) ny, nx = img.shape[0], img.shape[1] dx, dy = 360. / nx, 180. / ny grid = Grid(nxny=(nx, ny), dxdy=(dx, -dy), ul_corner=(-180., 90.), pixel_ref='corner').center_grid return self.set_rgb(img, grid, interp='linear') if (len(img.shape) != 3) or (img.shape[-1] not in [3, 4]): raise ValueError('img should be of shape (y, x, 3) or (y, x, 4)') # Unefficient but by far easiest right now out = [] for i in range(img.shape[-1]): out.append(self._check_data(img[..., i], crs=crs, interp=interp)) self._rgb = np.dstack(out)