读取多个光栅ti作为数据帧

Reading multiple raster tif as dataframe

我想读取多个光栅 tif 文件并获取一个数据框作为输出。每个栅格有两个波段。

我想要这样的输出:

我尝试读取所有 tif 文件,但我不知道如何将它们堆叠为数据帧:

import numpy as np
import glob 
import rasterio as rio

final = []
tif_files = glob.glob(os.path.join(Repo_img, r'*.tif')) 

for f in tif_files:
    im = rio.open(f).read(1)
    imarray = np.array(im)
    final.append(imarray)

final = np.asarray(final)

有人可以帮忙吗?

将最后一行替换为以下内容应该可以解决问题

final = pd.DataFrame(
    # concatenate column vectors
    np.hstack([
        # first flatten, then convert row vectors to columns
        f.ravel().reshape(-1, 1)
        # for each array in your list
        for f in final
    ])
)

有关详细信息,请参阅 numpy beginner's guide to reshaping arrays