def test_sample(array): from gemgis.raster import sample_from_array sample = sample_from_array(array, extent=[1000, 2069, 1000, 1972], point_x=[1500], point_y=[1500]) assert array.ndim == 2 assert array.shape == (1069, 972) assert isinstance(sample, float) assert sample == 573.9062885108234
def test_sample_from_array(dem): from gemgis.raster import sample_from_array extent = [0, 972.0, 0, 1069.0] point_x = [800, 400] point_y = [100, 1000] samples = sample_from_array(dem.read(1), extent, point_x, point_y) assert isinstance(samples, np.ndarray) assert len(samples) == 2 assert samples[0] == 276.4043273925781 assert samples[1] == 739.3092041015625
def test_sample_from_array(gdf, dem): from gemgis.raster import sample_from_array from gemgis.vector import extract_xy extent = [0, 972.0, 0, 1069.0] gdf = extract_xy(gdf) point_x = gdf['X'].tolist()[:5] point_y = gdf['Y'].tolist()[:5] samples = sample_from_array(dem.read(1), extent, point_x, point_y) assert isinstance(samples, np.ndarray) assert len(samples) == 5 assert isinstance(samples[0], np.float32) assert samples[0] == np.float32(366.61255) assert samples[1] == np.float32(402.09912) assert samples[2] == np.float32(460.6181) assert samples[3] == np.float32(529.0156) assert samples[4] == np.float32(597.6325)
def test_sample_error(array): from gemgis.raster import sample_from_array with pytest.raises(TypeError): sample_from_array(list(array), [1000, 2069, 1000, 1972], point_x=1500, point_y=1500) with pytest.raises(TypeError): sample_from_array(list(array), (1000, 2069, 1000, 1972), point_x=1500, point_y=1500) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000], point_x=1500, point_y=1500) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972, 500], point_x=1500, point_y=1500) with pytest.raises(TypeError): sample_from_array(array, [1000, 2069, 1000, 1972], (1500, 1500)) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [1500, 1500, 1500], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, '1972'], [1500, 1500], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [1500, '1500'], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [15000, 1500], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [1500, 15000], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [150, 1500], [1500]) with pytest.raises(ValueError): sample_from_array(array, [1000, 2069, 1000, 1972], [1500, 150], [1500])