gdal栅格数据处理(python)

栅格数据处理

关闭栅格数据集

这里显示如何关闭栅格数据集。在脚本的中间非常有用,它可以恢复访问数据集所拥有的资源,删除文件等。在脚本的末尾没有必要,因为Python垃圾收集器会在脚本运行时自动执行相同的操作。脚本退出。

from osgeo import gdal

# 打开数据集
ds = gdal.Open("jianda.tif")

# 关闭数据集
ds = None
获取栅格数据集的元数据

获取栅格元数据以进行快速的分辨率检查

from osgeo import gdal

gtif = gdal.Open("jianda.tif")
print(gtif.GetMetadata())

结果:

{'AREA_OR_POINT': 'Area', 'TIFFTAG_DATETIME': '2020:04:30 11:58:38', 'TIFFTAG_RESOLUTIONUNIT': '2 (pixels/inch)', 'TIFFTAG_SOFTWARE': 'Windows Photo Editor 10.0.10011.16384', 'TIFFTAG_XRESOLUTION': '96', 'TIFFTAG_YRESOLUTION': '96'}
获取栅格数据集的波段

获取栅格数据的波段。注意我们如何处理此函数可能引发的运行时错误。

from osgeo import gdal
import sys

gdal.UseExceptions()

try:
    src_ds = gdal.Open("jianda.tif")
except RuntimeError as e:
    print("不能打开该文件")
    print(e)
    sys.exit()

try:
    srcband = src_ds.GetRasterBand(10)
except RuntimeError as e:
    print("Band not found")
    print(e)
    sys.exit()

结果:

Band not found
jianda.tif: GDALDataset::GetRasterBand(10) - Illegal band #
遍历所有栅格波段

遍历所有栅格波段并执行一些有用的操作,例如列出波段统计信息。

from osgeo import gdal
import sys

src_ds = gdal.Open("m_4111105_ne_12_060_20180829.tif")

if src_ds is None:
    print("Unable to open file")
    sys.exit()
print("Raster band cout: ",src_ds.RasterCount)

for band in range(src_ds.RasterCount):
    band += 1
    print("Getting band:",band)
    srcband = src_ds.GetRasterBand(band)
    if  srcband is None:
        continue
    
    stats = srcband.GetStatistics(True,True)
    if stats is None:
        continue
    print("[Stat] : min=%.3f, max=%.3f, mean= %.3f, stdDev=%3.f"%(stats[0],stats[1],stats[2],stats[3]))

结果:

Raster band cout:  4
Getting band: 1
[Stat] :  min=11.000, max=229.000, mean= 76.991, stdDev= 57
Getting band: 2
[Stat] : min=24.000, max=223.000, mean= 83.685, stdDev= 38
Getting band: 3
[Stat] : min=34.000, max=225.000, mean= 80.593, stdDev= 23
Getting band: 4
[Stat] :  min=1.000, max=225.000, mean= 108.005, stdDev= 81
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陨星落云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值