IDL实现风云三号D星1km数据定标及几何校正

数据

  • 风云三号D星1KM数据
  • 对应GEO1K定位数据

说明

  • 因为250m的定位数据缺少角度信息,不能定标至大气层顶反射率,所以只做了1KM
  • 暂时没做GUI和批量功能,等到明年年初再看情况做
  • 关于发射率,官方说明是不需要定标,只需要通过slope和intercept线性转换就行
  • 关于亮温的计算,单位给我整懵了,所以直接参考了下面这篇硕士论文里的计算公式
  • 2020-07-15更改:感谢易智瑞的杜老师能够发现代码中的定标问题,现已修改。

基于多源卫星数据的秸秆焚烧监测研究

使用

  1. 编译
  2. 命令行键入如下代码,其中fnDat为数据文件,fnLoc为定位文件
fnDat = 'F:\FY3D_MERSI_GBAL_L1_date_1000M_MS.HDF'
fnDat = 'F:\FY3D_MERSI_GBAL_L1_date_GEO1K_MS.HDF'
preFY_1K, fnDat, fnLoc
  1. 数据所在文件夹生成两个文件,形如FY3D_date_TOA.dat为定标的19谱段TOA数据,形如FY3D_date_BT.dat为5谱段的亮温数据。

源码

pro preFY_1K, fnDat, fnLoc
  compile_opt idl2, hidden
  tic
  DLM_LOAD, 'HDF5', 'XML', 'MAP_PE', 'NATIVE'
  e = ENVI(/h)

  dirname = FILE_DIRNAME(fnDat)
  date = (FILE_BASENAME(fnDat)).Extract('20[1-4][0-9][0,1][0-9][0-3][0-9]_[0-9][0-9][0-9][0-9]')
  fnRef = dirname + PATH_SEP() + 'FY3D_' + date + '_TOA.dat'
  fnBT = dirname + PATH_SEP() + 'FY3D_' + date + '_BT.dat'
  
  fdid = H5F_OPEN(fnDat)
    rawRefAggr = h5GetData(fdid, '/Data/EV_250_Aggr.1KM_RefSB')
    rawRef = h5GetData(fdid, '/Data/EV_1KM_RefSB')
    rawEmsAggr = h5GetData(fdid, '/Data/EV_250_Aggr.1KM_Emissive')
    rawEms = h5GetData(fdid, '/Data/EV_1KM_Emissive')
    calCoef = h5GetData(fdid, '/Calibration/VIS_Cal_Coeff')

    ESUN = h5GetAttr(fdid, 'Solar_Irradiance')
    dst = (h5GetAttr(fdid, 'EarthSun Distance Ratio'))[0]
    tbbA = h5GetAttr(fdid, 'TBB_Trans_Coefficient_A')
    tbbB = h5GetAttr(fdid, 'TBB_Trans_Coefficient_B')
  H5F_CLOSE, fdid

  flid = H5F_OPEN(fnLoc)
    lat = h5GetData(flid, '/Geolocation/Latitude')
    lon = h5GetData(flid, '/Geolocation/Longitude')
    slrZth = h5GetData(flid
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值