def test_conserved_mutability(): def _mutable(raster): return isinstance(raster, MutableGeoRaster) raster = multi_raster_16b() assert not _mutable(raster) mutable_raster = raster.as_mutable() assert _mutable(mutable_raster) for r in [raster, mutable_raster]: copied = r.copy_with() assert _mutable(copied) == _mutable(r) resized = r.resize(1.0) assert _mutable(resized) == _mutable(r)
def test_as_mutable(): raster = multi_raster_16b().as_mutable() assert isinstance(raster, MutableGeoRaster)
dtype=np.float16).reshape( (1, 16, 16)), band_names=['red'], crs=WGS84_CRS, affine=affine.Affine(2, 0, 0, 0, 1, 0), nodata=0) heatmap = raster.colorize('jet', vmin=-1, vmax=1) assert (np.array_equal(heatmap.band_names, ['red', 'green', 'blue'])) assert (np.array_equal(heatmap.image.data[:, 0, 0], [0, 0, 0])) # nodata remains nodata assert (np.array_equal(heatmap.image.mask[:, 0, 0], [True, True, True])) # nodata remains nodata mask = heatmap.image.mask assert (len(mask[mask]) == 3) @pytest.mark.parametrize("raster", [ multi_raster_16b(), multi_raster_8b(), hyper_raster(), hyper_raster_with_no_data(), multi_raster_with_no_data() ]) @pytest.mark.parametrize("colormap", plt.cm.datad.keys()) def test_colorize_works_for_all(raster, colormap): with pytest.warns(tl.georaster.GeoRaster2Warning, match='Using the first band to colorize the raster'): heatmap = raster.colorize('jet') assert (np.array_equal(heatmap.band_names, ['red', 'green', 'blue']))