保存数据为ENVI可打开格式

目录

1、数据保存

2、数据读取


1、数据保存

注意:我们用gdal_array函数保存的是numpy数组,读取后,也转为numpy数组操作。

osgeo下载地址: 

根据python版本,下载对应的GDAL安装文件
如:python3.8下载GDAL‑3.4.3‑cp38‑cp38‑win_amd64.whl。
cp38代表python3.8版本和window64位

安装:pip3 install GDAL-3.4.3-cp38-cp38-win_amd64.whl

当只需要将numpy数据保存为tif时,只需要这样就行。 

import numpy as np
from osgeo import gdal_array

data = np.random.random((15,100,100)) # 数据维度必须是(C,H,W)
print(data.shape)

path = "./001.tif" # 保存路径
gdal_array.SaveArray(data,path,format="GTiff") # 保存

当然,如果我们需要将一个tif文件重新保存时,为确保输出的栅格数据集与原始数据集在投影和分辨率等方面一致,可以如下操作:(prototype参数是一个可选的参数。它指定了输出栅格数据集的元数据信息和空间参考信息,以确保输出的栅格数据集与原始数据集在地理参考、投影和分辨率等方面一致。)

from osgeo import gdal_array
 
# 源图片的名称
path = "FalseColor.tif"
# 将源图片载入到数组中
arr = gdal_array.LoadFile(path)
# 交换波段1和波段2的位置,使用“高级分片”功能直接对波段进行重新排列
output = gdal_array.SaveArray(arr[[1, 0, 2], :], "swap.tif", format="GTiff",prototype=path)
# 取消输出,避免在某些平台上损坏文件
output = None

以下一种也可以保存tif,但是不能envi打开。

import numpy as np
from skimage import io

data = np.random.random((15,100,100)) # 数据维度必须是(C,H,W)
print(data.shape)

io.imsave(path,data) # 保存

2、数据读取

from osgeo import gdal_array

path = "./001.tif" # 文件路径
data_load = gdal_array.LoadFile(path) # 数据读取。读取的维度是和保存的一样(C,H,W)

上述保存的第二种读取方法。

from skimage import io

path = "./001.tif" # 文件路径
data_load = io.imread(path) # 数据读取。读取的维度是和保存的不同,是(H,W,C)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清纯世纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值