Exemple #1
0
def test_sipi_cpu_equals_gpu():
    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)

    cpu = sipi(nir, red, blue, use_cuda=False)
    gpu = sipi(nir, red, blue, use_cuda=True)
    assert np.isclose(cpu, gpu, equal_nan=True).all()
def test_sipi_cpu():
    nir_numpy = create_test_arr(nir_data)
    red_numpy = create_test_arr(red_data)
    blue_numpy = create_test_arr(blue_data)
    numpy_result = sipi(nir_numpy, red_numpy, blue_numpy)
    general_output_checks(nir_numpy, numpy_result, sipi_expected_results)

    # dask
    nir_dask = create_test_arr(nir_data, backend='dask')
    red_dask = create_test_arr(red_data, backend='dask')
    blue_dask = create_test_arr(blue_data, backend='dask')
    dask_result = sipi(nir_dask, red_dask, blue_dask)
    general_output_checks(nir_dask, dask_result, sipi_expected_results)
def test_sipi_gpu():
    # cupy
    nir_cupy = create_test_arr(nir_data, backend='cupy')
    red_cupy = create_test_arr(red_data, backend='cupy')
    blue_cupy = create_test_arr(blue_data, backend='cupy')
    cupy_result = sipi(nir_cupy, red_cupy, blue_cupy)
    general_output_checks(nir_cupy, cupy_result, sipi_expected_results)

    # dask + cupy
    nir_dask_cupy = create_test_arr(nir_data, backend='dask+cupy')
    red_dask_cupy = create_test_arr(red_data, backend='dask+cupy')
    blue_dask_cupy = create_test_arr(blue_data, backend='dask+cupy')
    dask_cupy_result = sipi(nir_dask_cupy, red_dask_cupy, blue_dask_cupy)
    general_output_checks(nir_dask_cupy, dask_cupy_result,
                          sipi_expected_results)
Exemple #4
0
def test_sipi_dask_cupy_equals_numpy():
    # vanilla numpy version
    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)
    numpy_result = sipi(nir, red, blue)

    # dask + cupy
    nir_dask_cupy = create_test_arr(arr1, backend='dask+cupy')
    red_dask_cupy = create_test_arr(arr2, backend='dask+cupy')
    blue_dask_cupy = create_test_arr(arr3, backend='dask+cupy')
    test_result = sipi(nir_dask_cupy, red_dask_cupy, blue_dask_cupy)

    assert is_dask_cupy(test_result)
    test_result.data = test_result.data.compute()
    assert np.isclose(numpy_result, test_result, equal_nan=True).all()
def test_sipi():

    max_val = 2**16 - 1

    arr1 = np.array([[max_val, max_val, max_val, max_val],
                     [max_val, 1000.0, 1000.0, max_val],
                     [max_val, 1000.0, 1000.0, max_val],
                     [max_val, 1000.0, 1000.0, max_val],
                     [max_val, max_val, max_val, max_val]],
                    dtype=np.float64)

    arr2 = np.array(
        [[100.0, 100.0, 100.0, 100.0], [100.0, max_val, max_val, 100.0],
         [100.0, max_val, max_val, 100.0], [100.0, max_val, max_val, 100.0],
         [100.0, 100.0, 100.0, 100.0]],
        dtype=np.float64)

    arr3 = np.array([[10.0, 10.0, 10.0, 10.0], [10.0, max_val, max_val, 10.0],
                     [10.0, max_val, max_val, 10.0],
                     [10.0, max_val, max_val, 10.0], [10.0, 10.0, 10.0, 10.0]],
                    dtype=np.float64)

    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)

    result = sipi(nir, red, blue)

    assert result.dims == nir.dims
    assert isinstance(result, xa.DataArray)
    assert result.dims == nir.dims
Exemple #6
0
def test_sipi_dask_equals_numpy():

    # vanilla numpy version
    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)
    numpy_result = sipi(nir, red, blue)

    # dask
    nir_dask = create_test_arr(arr1, backend='dask')
    red_dask = create_test_arr(arr2, backend='dask')
    blue_dask = create_test_arr(arr3, backend='dask')
    test_result = sipi(nir_dask, red_dask, blue_dask)

    assert isinstance(test_result.data, da.Array)
    test_result.data = test_result.data.compute()
    assert np.isclose(numpy_result, test_result, equal_nan=True).all()
Exemple #7
0
def test_sipi_cupy_equals_numpy():

    import cupy

    # vanilla numpy version
    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)
    numpy_result = sipi(nir, red, blue)

    # cupy
    nir_dask = create_test_arr(arr1, backend='cupy')
    red_dask = create_test_arr(arr2, backend='cupy')
    blue_dask = create_test_arr(arr3, backend='cupy')
    test_result = sipi(nir_dask, red_dask, blue_dask)

    assert isinstance(test_result.data, cupy.ndarray)
    assert np.isclose(numpy_result, test_result, equal_nan=True).all()
Exemple #8
0
def test_sipi_numpy():
    nir = create_test_arr(arr1)
    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)

    result = sipi(nir, red, blue)

    assert result.dims == nir.dims
    assert isinstance(result, xa.DataArray)
    assert result.dims == nir.dims
def test_sipi_numpy():
    nir = create_test_arr(arr1)

    # add crs for tests
    nir = _add_EPSG4326_crs_to_da(nir)

    red = create_test_arr(arr2)
    blue = create_test_arr(arr3)

    result = sipi(nir, red, blue)

    assert result.dims == nir.dims
    assert isinstance(result, xa.DataArray)
    assert result.dims == nir.dims

    # crs tests
    assert result.attrs == nir.attrs
    for coord in nir.coords:
        assert np.all(result[coord] == nir[coord])
 def time_sipi(self, nx, type):
     sipi(self.nir, self.red, self.blue)
def test_sipi_gpu(nir_data, red_data, blue_data, result_sipi):
    result = sipi(nir_data, red_data, blue_data)
    general_output_checks(nir_data, result, result_sipi)