一个IDL程序,用于批量预处理高分数据。
数据支持情况
卫星\载荷 | WFV | PMS |
---|
GF1 | 🉑 | 🉑 |
GF1B/C/D | - | 🉑 |
GF2 | - | 🉑 |
GF6 | 🉑 | 🉑 |
源码
源码见Github。
CSDN积分下载资助我
版本
版本 | 发布日期 |
---|
v2.2 | 2021-01-08 |
v2.1 | 2020-11-14 |
v2.0 | 2020-10-31 |
v1.3-alpha | 2020-06-16 |
v1.2-alpha | 2020-05-20 |
v1.1-alpha | 2020-05-18 |
v1.0 | 2020-05-07 |
v0.4-alpha | 2020-02-28 |
v0.3-alpha | 2020-02-25 |
v0.2-alpha | 2020-02-22 |
v0.1-alpha | 2020-02-21 |
使用(适用于v2.0+)
- 将GitHub资源拷贝到本地,可以使用
git clone https://github.com/desertstsung/Snowy-Dove.git $yourdir
,或者从release页面下载压缩包再解压到yourdir。 - 打开IDL环境(当然也可以直接打开IDL工作台)
//windows
开始菜单->IDL Command Line
//linux
$ idl
- 先切换工作目录,再编译代码,最后就可以调用函数进行处理了
CD, $yourdir/src
.COMPILE sdMain , sdStructDefine
.COMPILE sdProcessor_PMS , sdProcessor_GF1_WFV , sdProcessor_GF6_WFV
.COMPILE sdDecompress , sdRPCRedefine , sdRPCWarp
.COMPILE sdSubsetByShp , sdRadianceCalibration, sdPanSharpen
.COMPILE sdQUAC , sdQUACDivide , sdNDVIGenerate
.COMPILE sdConvertToGeoTIFF , sdPyramidCreate , sdDelTempFiles
.COMPILE sdAddMetadata , sdDelImageFile , sdDelTempFiles
.COMPILE sdGetPANMS , sdLog , sdLonLatRangeIntersect
.COMPILE sdMosaicGF6 , sdPoint2Underscore , sdPreLog
.COMPILE sdReadHeader , sdShpValid , sdTimeStr
.COMPILE sdValidTempFilename, sdWriteHeader , sdCommonProcess
RESOLVE_ALL, /CONTINUE_ON_ERROR, SKIP_ROUTINES='envi'
sdMain, tgzdirIn [, DEM=demfn] [, REGION=shpfn] [, /CALI] [, /{QUAC | SCALE}] [, /TIFF] [, /NDVI] [, /PYRAMID] [, /VERBOSE]
; or simply typing:
sdMain, tgzdirIn [, d=demfn] [, r=shpfn] [, /c] [, /{q | s}] [, /t] [, /n] [, /p] [, /v]
- 参数说明:
tgzdirIn:储存原始高分数据tar.gz的文件夹;
DEM(optional):用于正射校正的DEM文件;
REGION(optional):用于裁剪的shapefile文件;
CALI(optional):辐射定标关键字;
QUAC(optional):快速大气校正关键字;
SCALE(optional):快速大气校正除以一万的关键字;
TIFF(optional):将默认的ENVI格式的结果转换为TIFF的关键字;
NDVI(optional):附加NDVI结果的关键字;
PYRAMID(optional):构建输出文件金字塔的关键字;
VERBOSE(optional):在控制台打印I/O进度的关键字。 - 输出:若输入为
i_dir
,则输出文件夹为i_dir/Sonwy-Dove-Output
,文件夹中包含结果影像和yyyy-MM-dd_HHmmss.log
的日志文件
使用-调用IDL脚本(适用于v2.0+)
$ git clone https://github.com/desertstsung/Snowy-Dove.git $yourdir
$ cd $yourdir
$ idl ./sdRunMain.sh -args i_dir -d dem_fn -r shapefile -cpstnpv
预处理流程
流程优化
- 对于大于500M的tar.gz压缩文件,使用unix的tar命令解压比IDL内置的FILE_UNTAR函数快很多。部分本地实测数据:
文件大小 | FILE_UNTAR函数 | tar命令 |
---|
189M | 6.88s | 7.37s |
552M | 23.73s | 13.38s |
1.1G | 49.71s | 28.19s |
3.6G | 300.1s | 144.2s |
4.1G | 417.94s | 190.62s |
10.4G | 1004.33s | 457.66s |
- 如果当前python3配置了gdal,则会调用到py脚本进行正射校正和影像融合,不仅因为python3+gdal进行正射校正比ENVITask快很多倍,而且gdal的融合效果也比ENVI Classic的GS sharpen效果好。
- 自己用C写了几个函数,主要做ENVI格式转TIFF,线性定标和NDVI计算,效率均有不同幅度提高,在此不一一列举。
说明
- 版本要求为IDL8.3/ENVI5.1以上
- 使用QUAC或者SCALE关键字时要保证有FLAASH的许可