白鸽:使用IDL批量预处理国产高分光学卫星数据

白鸽

一个IDL程序,用于批量预处理高分数据。

数据支持情况

卫星\载荷WFVPMS
GF1🉑🉑
GF1B/C/D-🉑
GF2-🉑
GF6🉑🉑

源码

源码见Github
CSDN积分下载资助我

版本

版本发布日期
v2.22021-01-08
v2.12020-11-14
v2.02020-10-31
v1.3-alpha2020-06-16
v1.2-alpha2020-05-20
v1.1-alpha2020-05-18
v1.02020-05-07
v0.4-alpha2020-02-28
v0.3-alpha2020-02-25
v0.2-alpha2020-02-22
v0.1-alpha2020-02-21

使用(适用于v2.0+)

  1. 将GitHub资源拷贝到本地,可以使用git clone https://github.com/desertstsung/Snowy-Dove.git $yourdir,或者从release页面下载压缩包再解压到yourdir。
  2. 打开IDL环境(当然也可以直接打开IDL工作台)
//windows
开始菜单->IDL Command Line
//linux
$ idl
  1. 先切换工作目录,再编译代码,最后就可以调用函数进行处理了
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]
  1. 参数说明:
    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进度的关键字。
  2. 输出:若输入为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

预处理流程

Created with Raphaël 2.2.0 输入<name>.tar.gz文件 解压至<name>_snyDov 正射校正 拼接(GF6_WFV) shp裁剪(如果设定) 辐射定标 影像融合(PMS) 快速大气校正(如果设定) 计算NDVI(如果设定) 转换结果为TIFF(如果设定) 结果影像

流程优化

  • 对于大于500M的tar.gz压缩文件,使用unix的tar命令解压比IDL内置的FILE_UNTAR函数快很多。部分本地实测数据:
文件大小FILE_UNTAR函数tar命令
189M6.88s7.37s
552M23.73s13.38s
1.1G49.71s28.19s
3.6G300.1s144.2s
4.1G417.94s190.62s
10.4G1004.33s457.66s
  • 如果当前python3配置了gdal,则会调用到py脚本进行正射校正和影像融合,不仅因为python3+gdal进行正射校正比ENVITask快很多倍,而且gdal的融合效果也比ENVI Classic的GS sharpen效果好。
  • 自己用C写了几个函数,主要做ENVI格式转TIFF,线性定标和NDVI计算,效率均有不同幅度提高,在此不一一列举。

说明

  • 版本要求为IDL8.3/ENVI5.1以上
  • 使用QUAC或者SCALE关键字时要保证有FLAASH的许可
  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值