0

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')

合成画像 2

これはより良いようですが、正しくもありません。何が起こっているのか少し混乱しています - どうすればすべての画像を正しくマージできますか? 私はrasterioが初めてです。

4

1 に答える 1