4

基本的な画像フィルタリングを実行しようとしています。私は、rasterio クックブックからのスニペットを逐語的に含めました (メジアン フィルター出力から .astype() を削除しました)。問題は、入力ラスターと出力ラスターの範囲が同じであるべきなのに、そうでないことです。変換とアフィンは、入力と出力で異なります。これは予想される動作ですか?出力を入力と同じにするために、アフィンと変換に何かをする必要がありますか?

Python 2.7.11 |アナコンダ 4.0.0 (64 ビット)| (デフォルト、2016 年 2 月 16 日、09:58:36) [MSC v.1500 64 ビット (AMD64)] (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}
4

1 に答える 1