如何用python将多幅tif读取为.npz
时间: 2024-09-10 14:20:08 浏览: 48
tang.npz 可以用numpy.load(tang.npz)直接读取
在Python中,你可以使用`scipy`库的`load`函数来读取.tif文件,并将其数据保存到`.npz`文件中,这是一种numpy专用的压缩文件格式。这里是一个简单的步骤:
首先,确保已经安装了必要的库:
```bash
pip install numpy scipy rasterio
```
然后,你可以编写如下的代码片段来读取tif文件并转换为.npz:
```python
import numpy as np
from rasterio import open
import scipy.sparse
# 定义你需要读取的tif文件路径列表
tif_files = ['file1.tif', 'file2.tif', 'file3.tif']
# 创建一个空的数据字典来存储所有tif数据
data_dict = {}
for file_path in tif_files:
# 使用rasterio打开tif文件
with open(file_path, 'r') as src:
data = src.read() # 读取数据
data_dict[file_path] = data
# 将数据转换为numpy数组并保存到一个sparse矩阵,因为tif可能是大型数据
sparse_data = scipy.sparse.csr_matrix(data_dict.values())
# 将数据打包成一个字典并保存为.npz文件
sparse_data_dict = {'data': sparse_data.data,
'indices': sparse_data.indices,
'indptr': sparse_data.indptr}
# 使用numpy保存为.npz文件
np.savez('combined_data.npz', **sparse_data_dict)
阅读全文