TIMESAT
TIMESAT为我们提取生长季物候参数提供了极大的方便,但是其界面过于简单,对数据有一定的要求,经过本人一年多的探索与熟悉,在此记录使用TIMESAT提取物候参数的方法。从准备数据,TIMESAT软件中处理和结果整理三部分进行:
准备数据
TIMESAT接受.img 和.dat格式的栅格数据,一般来说,提取物候的数据为NDVI,EVI,LAI等, 本为以.hdf格式的GLASS LAI数据为例。
- 打开hdf数据 ,hdf数据是需要头文件信息的,也就是说打开时软件会问你行列多少?从哪里开始?像元大小等信息,一般的头文件为同名的.hdr文件。批量生成.hdr 建议使用DOS 进行文件复制(在excel 中集中做好DOS命令);
- 转换类型,前面说了TIMESAT是不接受.hdf数据的,所以我们要将其转化为.img文件,这里我调用arcpy写了一个python小代码实现批量转换;
- 数据裁剪,转后的.img仍然是全球的范围,将其裁剪为研究区的范围,我使用的是ArcGIS的Model builder,同步进行乘上系数和裁剪两步,注意为了实现输出的命名保持时间顺序,需要先将数据放在数据库中进行,最后导出为.dat格式的。
- 获取list,TIMESAT中输入的不是直接的数据,而是数据列表,也就是获取所有数据的名字和路径,放在一个txt里面,前面写上数据的个数。如下:
到这里,数据就准备好了;
TIMESAT处理
TIMESAT 处理要求两个部分,一个是你的数据list, 零外一个是给参数和方法的参数文件。
1.制作.set参数文件。打开主界面上的 TSM_setting 模块
- job name 相当于项目名称
- image mode 选择1 image files
- Data series files 中选择到上面做好的txt list文件。
- 根据实际情况选择image file type, 按照我这种方法写下来是32位的
- 填上行列号
- 要处理的行列号,一般与上面一样
- 处的年份NO.of years
这里软件会自动读取txt里面第一行的数据,根据年份计算每一年是多少期数据,这里一定要确保核对,比如我是8天一个数的话,一年就是46期。
下面和右面的参数确定需要打开TSM_GUI.这个模块提供一个或几个像元的实验。
- 上排file打开txt数据list,填写大致与上面相同
- 注意这里可以在Show mages里面选择一些小范围的像元来做实验,过于大的范围可能导致这一步无法加载数据。
- 之后选择不同的过滤方法Fitting method。
- Common settings 部分设置数据值的范围
- CLass-specific setting部分对提取方法进行设置,比如动态阈值还是固定值及其参数。
- 右下角的表格展示了当前像元(正上方标注)在这么多时相上表现出来的生长季节物候情况。
- 设置完之后点击上排setting保存成一个文件供下一步处理。
2.主菜单上选择TSF_process进行处理 - 这里只需要输入上一步的.set文件即可。
- 运行过程为黑色windows命令框,运行结束会显示运行结果的名称和位置。输出结果保存在默认的工作空间下,如果你没与更改实在安装路径的\timesat33\compiled\win64\下面。
- 输出结果为.tts或者.tpa.此文件 并打不开看到结果,需要保存进行下一步
- 打印结果
主菜单上第三个框框下的TSM_printsaeson
- 点击输入上一步的文件即可。 同样为DOS命令框,需要输入打印的行列数和保存的文件名
- 注意最后要输入.txt文件的路径
- 打印结果就是这个txt文件
统计结果
TIMESA打印的结果是按照每一个像元进行的,在EXCEL中打开,每一行为一个像元,前两个为行列,后面为生长季的参数。
之后按照需求对其进行统计处理,必要时使用python排除0值等情况。