def test_map(self): a = np.zeros((4, 5)) a[0, 0] = -1 a[1, 1] = 1.1 a[2, 2] = 2.2 a[2, 4] = 1.9 a[3, 3] = 9 cmap = copy.deepcopy(mpl.cm.get_cmap('jet')) # ll_corner (type geotiff) g = Grid(nxny=(5, 4), dxdy=(1, 1), ll_corner=(0, 0), proj=wgs84, pixel_ref='corner') c = Map(g, ny=4, countries=False) c.set_cmap(cmap) c.set_plot_params(levels=[0, 1, 2, 3]) c.set_data(a) rgb1 = c.to_rgb() c.set_data(a, crs=g) assert_array_equal(rgb1, c.to_rgb()) c.set_data(a, interp='linear') rgb1 = c.to_rgb() c.set_data(a, crs=g, interp='linear') assert_array_equal(rgb1, c.to_rgb()) # centergrid (type WRF) g = Grid(nxny=(5, 4), dxdy=(1, 1), ll_corner=(0.5, 0.5), proj=wgs84, pixel_ref='center') c = Map(g, ny=4, countries=False) c.set_cmap(cmap) c.set_plot_params(levels=[0, 1, 2, 3]) c.set_data(a) rgb1 = c.to_rgb() c.set_data(a, crs=g) assert_array_equal(rgb1, c.to_rgb()) c.set_data(a, interp='linear') rgb1 = c.to_rgb() c.set_data(a, crs=g.corner_grid, interp='linear') assert_array_equal(rgb1, c.to_rgb()) c.set_data(a, crs=g.center_grid, interp='linear') assert_array_equal(rgb1, c.to_rgb()) # More pixels c = Map(g, ny=500, countries=False) c.set_cmap(cmap) c.set_plot_params(levels=[0, 1, 2, 3]) c.set_data(a) rgb1 = c.to_rgb() c.set_data(a, crs=g) assert_array_equal(rgb1, c.to_rgb()) c.set_data(a, interp='linear') rgb1 = c.to_rgb() c.set_data(a, crs=g, interp='linear') rgb2 = c.to_rgb() # The interpolation is conservative with the grid... srgb = np.sum(rgb2[..., 0:3], axis=2) pok = np.nonzero(srgb != srgb[0, 0]) rgb1 = rgb1[np.min(pok[0]):np.max(pok[0]), np.min(pok[1]):np.max(pok[1]),...] rgb2 = rgb2[np.min(pok[0]):np.max(pok[0]), np.min(pok[1]):np.max(pok[1]),...] assert_array_equal(rgb1, rgb2) cmap.set_bad('pink') # Add masked arrays a[1, 1] = np.NaN c.set_data(a) rgb1 = c.to_rgb() c.set_data(a, crs=g) assert_array_equal(rgb1, c.to_rgb()) # Interp? c.set_data(a, interp='linear') rgb1 = c.to_rgb() c.set_data(a, crs=g, interp='linear') rgb2 = c.to_rgb()