植物表型程序学习(三)

该文介绍了使用GDAL库进行遥感图像处理,包括读取图像信息、图像数据处理,如植被指数(SAVI)计算和冠层覆盖度分析。通过阈值处理生成覆盖掩膜,结合株高数据计算作物冠层体积,并将结果保存为TIFF文件。文章还涉及了数据类型、属性装饰器和图像重采样方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接上文

(六)作物冠层体积(canopy volume,CV)

(1)图片读取以及图片数据处理函数

1)RasterXSize,RasterYSize,RasterCount函数:

读取tif图片栅格矩阵的列数,行数和波段数

2)property函数:

通过存取方法定义的属性通常称为特性(property)

首先property有两种用法,一种是作为函数用法,一种是作为装饰器的用法,接下来逐一分析

  • property函数参数分析

property(fget=None, fset=None, fdel=None, doc=None)

fget 是获取属性值的方法。

fset 是设置属性值的方法。

fdel 是删除属性值的方法。

doc 是属性描述信息。

  • @property装饰器

@property提供了比property()函数更简洁直观的写法

被 @property 装饰的方法是获取属性值的方法,被装饰方法的名字会被用做属性名。

被 @属性名.setter 装饰的方法是设置属性值的方法。

被 @属性名.deleter 装饰的方法是删除属性值的方法。

3)GetGeoTransform():

为了理解这个函数,这里打印了一下,发现输出的是一组数值

经过查询,利用GetGeoTransfrom函数可以获得图像中任意一点的地理坐标。

参数分别如下

影像左上角横坐标:geoTransform[0]

影像左上角纵坐标:geoTransform[3]

遥感图像的水平空间分辨率为geoTransform[1]

遥感图像的垂直空间分辨率为geoTransform[5]

如果遥感影像方向没有发生旋转,即上北、下南,则

geoTransform[2] 与 row *geoTransform[4] 为零

4)ReadAsArray()

图像重采样就是从高分辨率遥感影像中提取出低分辨率影像,或者从低分辨率影像中提取高分辨率影像的过程。常用的方法有最邻近内插法、双线性内插法、三次卷积法等

(2) write_img函数

1)GetDriverByName函数

读取某一类型的数据,需要先载入数据驱动,初始化一个对象

driver = gdal.GetDriverByName("GTiff")

2)driver.Create函数

创建空文件,并确定开辟多大内存;每个像素都有一个对应的值,这个值得类型用数据类型指定。这里的数据类型是gdal数据类型

dataset = driver.Create("fdem_new.tif", 栅格矩阵的列数, 栅格矩阵的行数, 波段数, 数据类型)

创建文件时 driver = gdal.GetDriverByName("GTiff"),数据类型必须要指定,因为要计算需要多大内存空间。于是在载入驱动前,用if语句判断了一下数据类型

3)gdal数据类型:

gdal数据类型如下:

GDT_Byte(int8);GDT_UInt16; GDT_Int16;(4)GDT_UInt32 ;(5)GDT_Int32;

(6)GDT_Float32;(7)GDT_Float64

(3) 主程序分析

主程序中主要有

1.求取株高数据

2.求取savi指数,求取冠层覆盖度阈值

3.利用阈值,划分冠层覆盖区域,设置覆盖区域为1,未覆盖区域为0,制作覆盖掩膜

4.株高数据与掩膜数据相乘,求得每像素位置株高

5.调用像素的项元值

6.项元平方与株高相乘,求得每像素位置体积,换算为立方分米

7.保存tif数据

8.划分体积单位,并着色处理,改为RGB

9.保存RGB输出结果如下

(七)植物表型程序学习全流程总结

从OSgeo与GDAL概念出发,了解GIS 是一门综合性学科,其结合了地理学与地图学。并且 GDAL和OGR两个库合并后使用 GDAL 这一个名字,用来处理用来处理栅格空间数据和处理矢量数据的。再到株高代码的学习,得到遥感的DEM数据,用后阶段的DEM数据减去前阶段DEM数据,得到高程差,进而对差数据可视化显示;随后了解到植被指数的概念,植被指数包括比值植被指数,归一化植被指数,差值植被指数。本项目只要求解归一化植被指数,通过测量近红外(植被强烈反射) 和红光(植被吸收)之间的差异来量化植被。任何强化Red和NIR差别的数学变换都可以作为植被指数。而后学习土壤调节植被指数 (SAVI)和冠层覆盖度,(SAVI) 方法是试图通过土壤亮度校正系数最小化土壤亮度影响的植被指数。 它通常用在植被覆盖率较低的干旱区域,其输出值在 -1.0 到 1.0 之间。上述参数求得之后,最后求得作物冠层体积(canopy volume,CV)并通过RGB转换成彩色图。到此算是一个植物表型项目的全流程,其中又不少细节仍然需要反复学习和实践才能更好的理解。

最后汇总一下前文遇到的网站和书籍:

OSgeo与GDAL:开源地理空间基金会中文分会,OSGeo中文分会,OSGeo中国中心,地理空间数据共享,开放地理空间实验室

Python与开源GIS:Python与开源GIS:数据处理、空间分析与地图制图 — 首页

15 个免费卫星图像数据源:植物表型程序学习(二)_机械刘怀洋的博客-CSDN博客

gdal学习书籍:《GDAL源码剖析与开发指南》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值