Landsat 8 バンドのマージを試しています。私のデータセットにはいくつかの B3 バンドが近接しています
import rasterio
from rasterio.plot import show
from rasterio.merge import merge
from rasterio.warp import reproject
import os
from matplotlib import pyplot
files_to_merge = []
for file in os.listdir():
if file.endswith(".TIF") and ("GM" not in file):
files_to_merge.append(rasterio.open(file))
test, out_trans = merge(files_to_merge)
show(test)
上記のコードの上にあると、次のようになります。
マージするファイルのリストには、次のオブジェクトがあります。
<open DatasetReader name='LE07_L1TP_017015_20210503_20210529_02_T1_B3.TIF' mode='r'>,
<open DatasetReader name='LC08_L1TP_016015_20210504_20210517_02_T1_B3.TIF' mode='r'>,
<open DatasetReader name='LE07_L1TP_017016_20210503_20210529_02_T1_B3.TIF' mode='r'>,
<open DatasetReader name='LC08_L1TP_016014_20210504_20210517_02_T1_B3.TIF' mode='r'>,
<open DatasetReader name='LE07_L1TP_017014_20210503_20210529_02_T1_B3.TIF' mode='r'>,
マージされた画像に他のラスター画像が表示されない理由が少しわかりません。最初のバンドを削除したら、マージ コマンドを再実行できます。
test, out_trans = merge([files_to_merge[1],files_to_merge[2], files_to_merge[3], files_to_merge[4]])
show(test,cmap='terrain')
これはより良いようですが、正しくもありません。何が起こっているのか少し混乱しています - どうすればすべての画像を正しくマージできますか? 私はrasterioが初めてです。