Landsat8大气校正程序LaSRC是目前最好的,使用方式也够傻瓜,输入文件输出结果。

但有一个限制,就是程序需要预先下载好的MODIS辅助文件来确定水汽、压强等大气参数。

如果待大气校正的landsat8数据是历史数据,那么没问题,网站提供的辅助文件包已经准备好了对应的辅助数据,可直接使用。

LaSRC auxiliary files

http://edclpdsftp.cr.usgs.gov/downloads/auxiliaries/lasrc_auxiliary/lasrc_aux.2013-2017.tar.gz

See git tag [lasrc-version_1.3.0]

这里下载的辅助文件包asrc_aux.2013-2017.tar.gz90G。。。教育网渣网速下载了整整一周。。。。

问题是:如果是新获取的Landsat8数据呢?

没关系,这种辅助数据可以自己生成,官方也提供了利用modis数据生成辅助文件的算法。

用户可以从网上下载Landsat8数据获取当天的相关MODIS数据,利用该程序合成一个LaSRC需要的校正辅助文件。

该程序在espa-surface-reflectance-master\lasrc\c_version\src_pre_collection文件夹下。

现在我们把这个在windows下编译一下:

新建一个VS2010的C++空项目,添加以下文件。

Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHP

包含目录:

Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHPLansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHP

Combine_l8_data.h文件strings.h的引用改成string.h,去掉s。

#include <libgen.h>注释掉,没用。

Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHP

根据错误提示修改一些语法错误,或者说是linux与windows编程的差异。

编译成功

Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHP

Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)-LMLPHP

事实上MODIS的CMG与CMA数据在知道了获取时间后,根据命名规范可以用爬虫拔下来,所以下一步的工作是提供一个自动网络下载功能,这样用户便可以自动对最新的Landsat8数据进行大气校正了。

05-11 13:34