读取多个光栅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。
我想读取多个光栅 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。