En essayant de faire un peu de filtrage d'image de base. J'ai inclus un extrait verbatim du livre de recettes rasterio (j'ai supprimé .astype() de la sortie du filtre médian). Le problème est que mes rasters d'entrée et de sortie devraient avoir la même étendue mais non. La transformation et affine sont différentes pour l'entrée et la sortie. Est-ce le comportement attendu? Ai-je besoin de faire quelque chose à l'affine et de le transformer pour que la sortie soit la même que l'entrée?rasterio transformer et affiner
Python 2.7.11 | Anaconda 4.0.0 (64 bits) | (Valeur par défaut 16 Fév 2016 09:58:36) [MSC de 64 bits (la AMD64)] sur Win32
rasterio == 0.36.0
import rasterio
from scipy.signal import medfilt
path = "map.tif"
output = "map2.tif"
with rasterio.open(path) as src:
array = src.read()
profile = src.profile
# apply a 5x5 median filter to each band
filtered = medfilt(array, (1, 5, 5))
# Write to tif, using the same profile as the source
with rasterio.open(output, 'w', **profile) as dst:
dst.write(filtered)
print profile
print dst.profile
>>> {'count': 1, 'crs': CRS({'init': u'epsg:3857'}), 'interleave': 'band', 'dtype': 'float64', 'affine': Affine(100.0, 0.0, -13250000.0, 0.0, 100.0, 3980000.0), 'driver': u'GTiff', 'transform': (-13250000.0, 100.0, 0.0, 3980000.0, 0.0, 100.0), 'height': 1700, 'width': 1700, 'tiled': False, 'nodata': None}
>>> {'count': 1, 'crs': CRS({'init': u'epsg:3857'}), u'interleave': 'band', 'dtype': 'float64', 'affine': Affine(-13250000.0, 100.0, 0.0, 3980000.0, 0.0, 100.0), 'driver': u'GTiff', 'transform': (0.0, -13250000.0, 100.0, 100.0, 3980000.0, 0.0), 'height': 1700, 'width': 1700, u'tiled': False, 'nodata': None}