Re: Rasterio read outshape resample does not give correct array
toggle quoted messageShow quoted text
The "average" resampling algorithm should give you better results than "bilinear". I'm not sure it is guaranteed to preserve the sum, especially in the case where the original dataset's width and height are not multiples of 2.
[Edited Message Follows]
I have a population grid and want to decrease the resolution by a factor 2. So I would like to get a raster that has 2 times less rows and columns, a resolution that is 2 times as large as the original one, while retaining the same overall number of population.
This should be a straightforward operation, but the population numbers change incorrectly if I follow the documentation
. When the resampled array is written to file, the numbers are incorrect.
Shouldn't the resample method yield an array with resampled cell values to get the same number of total population? Any tips and hints would be appreciated!
factor = 2
with rasterio.open("mwi_ppp_2020.tif") as dataset:
arr = dataset.read(1,masked=True)
#Show total population of Malawi
data = dataset.read(1, masked=True, resampling=Resampling.bilinear,
int(dataset.height * factor),
int(dataset.width * factor)))
#Show total population of array
# scale image transform
transform = dataset.transform * dataset.transform.scale(
(dataset.width / data.shape),
(dataset.height / data.shape)
Join email@example.com to automatically receive all group messages.