Open benhuff opened 1 year ago
import rasterio
from rasterio.warp import Resampling
xres, yres = float, float
with rasterio.open('') as dataset:
scale_factor_x = dataset.res[0]/xres
scale_factor_y = dataset.res[1]/yres
profile = dataset.profile.copy()
# resample data to target shape
data = dataset.read(
out_shape=(
dataset.count,
int(dataset.height * scale_factor_y),
int(dataset.width * scale_factor_x)
),
resampling=Resampling.bilinear
)
# scale image transform
transform = dataset.transform * dataset.transform.scale(
(1 / scale_factor_x),
(1 / scale_factor_y)
)
profile.update({'height': data.shape[-2],
'width': data.shape[-1],
'transform': transform})
with rasterio.open('', 'w', **profile) as dataset:
dataset.write(data)