Python读取带地理信息的tiff文件

Python读取TIFF文件主要有两种方法,一般的图像类型,可以使用Pillow;如果是地理空间的TIFF文件,可以使用rasterio

1 安装gdal

rasterio 是专门用于处理地理空间数据(如 GeoTIFF 文件)的库,适合处理带有空间参考系的 TIFF 文件。
从安装raster开始,它需要依赖GADL库,因此需要先安装GDAL

conda install gdal

但Import gdal仍显示ModuleNotFoundError: No module named ‘gdal’
为检查安装是否成功,运行

gdalinfo --version

但报错“由于找不到libcrypto-3-x64.dll / libssl-3-x64.dll,无法打开……”,因此可以网站[dll下载网站]下载这两个dll文件,放在./anaconda/目录下,但Import gdal仍显示ModuleNotFoundError: No module named ‘gdal’
因为在 Python 中,GDAL 的 Python 包实际上是 osgeo.gdal,而不是直接使用 gdal
所以导入gdal通过

from osgeo import gdal

2 安装rasterio

运行

conda install rasterio

3 读取TIFF文件

import rasterio

# 打开 TIFF 文件
with rasterio.open('F:/data201909 (1).tiff') as dataset:
    # 输出数据的所有属性
    print(dir(dataset))
    # 常用的几个属性
    print(f"文件的宽度: {dataset.width}")
    print(f"文件的高度: {dataset.height}")
    print(f"投影信息: {dataset.crs}")
    print(f"波段数: {dataset.count}")
    print(f"像素大小: {dataset.transform}")
    print(f"波段描述: {dataset.descriptions[0]}")
    print(f"地理边界(bounding box): {dataset.bounds}")
    print(f"数据类型(dtype): {dataset.dtypes[0]}")
    # 读取数据
    tiff_data = dataset.read(1)  # 读取第一波段
    
# show出数据图像
plt.figure()
plt.imshow(tiff_data,cmap='RdBu_r')
plt.colorbar(shrink = 0.8)    

以上方法是针对文件只有一个波段的数据,当有多个波段时,想查明多个波段信息

# 获取波段的总数量
		num_bands = dataset.count
    print(f"波段数: {num_bands}")

    # 读取每个波段的名称或描述
    band_descriptions = dataset.descriptions
    print("波段名称或描述:")
    for i, description in enumerate(band_descriptions, 1):
        print(f"波段 {i}: {description}")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值