4_获取影像像元数据

GDAL影像数据读取

获取影像像元数据

本文中的方法可以对第三章进行补充,能够访问像元灰度值,并对其进行处理。

GDAL提供了下面两个函数来访问影像的数值。

  • ReadRaster(xoff=0, yoff=0, xsize=None, ysize=None, buf_xsize=None, buf_ysize=None, buf_type=None, band_list=None, buf_pixel_space=None, buf_line_space=None, buf_band_space=None, resample_alg=0, callback=None, callback_data=None, buf_obj=None)

    读取图像数据(以二进制的形式)

  • ReadAsArray(xoff=0, yoff=0, xsize=None, ysize=None, buf_obj=None, buf_xsize=None, buf_ysize=None, buf_type=None, resample_alg=0, callback=None, callback_data=None, interleave='band', band_list=None)

    读取图像数据(以数组的形式)

参数说明:

xoff, yoff指定想要读取的部分原点位置在整张图像中距离全图原点的位置;

xsize, ysize指定要读取部分图像的矩形的长和宽;

buf_xsize, buf_ysize~~放缩比例,最后读取影像的长宽会根据这个比例因子进行缩放;~~测试发现这两个参数并不是缩放比例因子,暂时不清楚这两个参数的意义,但是官方文档中提到,通常不应该使用这两个参数。


已解决:

buf_xsize, buf_ysize并不是缩放比例因子,而是新的指定区域,比如指定xsize, ysize(20, 20),那么buf_xsize, buf_ysize设置为(50, 50)或者(10, 10),就说明通过已经提取的20矩阵,计算成为50矩阵或者10矩阵。

因此:

进行分析运算时,只需要前4个参数即可,后面两个参数是用于将截取的影像强行放置在限定范围区域中进行缩放。


from osgeo import gdal
from osgeo.gdalconst import *

tif1 = gdal.Open('I:\\MasterLife\\资源与环境遥感\\实验作业一\\caijian2.tif')
print(tif1.ReadAsArray())  # 获取整幅影像的像元数组
help(tif1.ReadAsArray)  # 参看函数的帮助
print(tif1.ReadAsArray(xoff = 300, yoff = 300, xsize = 6, ysize = 6))
print(tif1.ReadRaster(xoff = 300, yoff = 300, xsize = 6, ysize = 6))

ReadRaster返回的结果是一个二进制的bytearray

ReadAsArray返回结果是numpy的数组,类型为int16,方便与numpy结合进行分析和处理。

# ReadAsArray
[[[ 7  2  4  4  4  3]
  [ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值