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)
Beispiel #3
0
                                          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']))