GF6 WFV卫星视角影响、与Sentinel2协同及精度分析
李国春
摘要:Sentinel2和GF6 WFV都是共享免费的重要数据源,定量化处理精度是人们广泛关心的问题。本文用同地区同日时间相差7分钟的两个Sentinel2和GF6 WFV数据集进行处理分析比较,认为使用RSD平台经本文流程处理后,两种数据相同(近)波段表现一致,可以协同交互混合使用。注意到并提出了GF6 WFV大视角扫描对数据的影响及实现了在RSD平台的订正处理。
别以为我一本正的摘要是要写文章发表呢,没那事儿。和我原来写的东西一样,这不是空谈,是已经代码实现的RSD功能,数据和软件都是现成的,点点鼠标就可以验证。不是说好的:Talk is cheap,show me the code? 好,言归正传。
GF6 WFV除了有庞大的数据体量外,在几何位置关系上也有一些自己的特点。主要表现在宽扫描刈幅介于中分卫星和高分卫星之间,扫描数据兼有一些中分卫星数据特征,处理数据时需要进行特别关注。
一个GF6 WFV宽视角会带来下面几个问题:
一. 太阳天顶角 通常高分数据可以只使用一个平均太阳天顶角就可以,这是因为视场角比较小,星下点和边缘太阳天顶角差异带来的误差小到可以忽略。中分数据视场角很大(例如±55.4°),多提供逐像元(或者块)的太阳天顶角数据。GF6 WFV 扫描跨度达7~8个纬距(约±32.2°),因此需要逐像元计算太阳天顶角而不能使用平均太阳天顶角。可以根据时间和经纬度位置计算逐像元太阳天顶角和方位角(或者为节省时间计算部分点然后插值求得)。
二. 反射率定标系数 一些处理技术(软件)直接在算得反射率定标系数除以太阳天顶角的余弦,这样在使用线性式进行反射率定标时得到的数据直接是天顶方向的反射率,这里记为TOAup。不能使用同一个太阳天顶角时不除以这个太阳天顶角的余弦,算得的反射率时到达传感器的,记为TOAsensor。中分卫星数据以及Landsat、Sentinel2等常用共享免费数据反射波段定标后反射率均为TOAsensor。GF6 WFV同样,在RSD中直接使用反射率定标系数算得的结果是到达传感器的。如果希望得到天顶方向的反射率,不但需要太阳角度订正,还需要卫星天顶角方向的订正。
三. 卫星天顶角 图1是卫星探测角度的示意图,α是我们想求的卫星天顶角。645km的卫星高度有811km的扫描宽度,视场角这么大不能再使用天底接近0°的α角。GF6 WFV加载切分后可能会丢失像元卫星天顶角信息,所以RSD在加载时就进行了卫星天顶角修正。
图1 GF1 WFV 的卫星天顶角示意图
卫星天顶角引起的数据差异有多大呢?我们用下面给出的数据集在左侧裁剪除一块,进行卫星视角订正和不订正的比较,图2为剪切出来的两块数据,一块进行了卫星视角订正(层1),另一块保持原数据不变(层2)。
图2 GF1 WFV 卫星视角订正比较区域
星下点轨迹附近卫星视角订正前后没有差异,因为是接近垂直向下探测卫星天顶角近似为0。图2是扫描带边缘的,卫星视角订正前后差异很大,图3是卫星视角订正前后的比较。
图3 GF6 WFV 扫描带边缘1、4波段卫星视角订正前后比较
图3a是1波段蓝光的比较结果,图3b是4波段比较结果。两种均值差异均达19.8%。
从星下点的无差异逐渐到边缘的20%左右的差异,说明GF6 WFV不进行卫星视角订正可能会造成很大的处理误差。问题是这个卫星视角不像众所周知的太阳订正,还没有引起广泛重视,至少在高分数据定量处理是这样(侧摆也多是几何应用)。
四. 太阳反辉区 虽然有精心设计的准太阳同步轨道,这样大范围扫描有时还是无法避免太阳反辉区。RSD有菜单能够识别太阳反辉区并加以修正,还有菜单项计算太阳反射(入射)矢量与卫星矢量的夹角(这个夹角小到某值可认为像元落入太阳反辉区),但是这些是为中分数据特别设计的,GF6 WFV暂时还没有,稍等一段我抽出空来给GF6 WFV也加上。暂时先这样用着,中高纬问题不大,低纬地区小心绕开使用。
下面用一个例子来说明GF6 WFV 的处理过程,并且与一个同时的Seninel2数据进行比较。
一、 准备数据。
GF6_WFV_E124.0_N40.2_20190529_L1A1119885324.tar.gz
S2A_MSIL1C_20190529T023551_N0207_R089_T51TVF_20190529T042555.zip
上述GF6 WFV和哨兵2两种数据为同一天相同区域,时间相差7分钟。GF6 WFV数据区域完全覆盖哨兵2数据区域。
上述数据可以从网盘 https://pan.baidu.com/s/1nvIJekT 下载。
二、 确定数据区域
打开哨兵2 L1C 10m数据,处理区域以这个数据范围为界。一个问题是哨兵2 数据是10m,GF6 WFV是16m,我们统一按照10m处理,这样便于比较。打开Sentinel2 L1C数据的MTD_MSIL1C.xml文件,选择10m数据,结果见图4。
图4 Sentinel2 L1C数据范围
三、 添加GF6 WFV
按照图5选择添加GF6 WFV数据,注意被强制采样到10m分辨率。见图7。
图5 添加GF6 WFV数据
点击菜单并选择GF6 WFV数据后,出现图6的对话框。
图6 角度修正选项对话框
注意到图中 传感器天顶角修正 复选框是打勾的,这就是本文强调的卫星视角修正选项,勾选后RSD自动对卫星角度进行订正处理。
点击确定加载GF6 WFV数据到框架中。见图7.。
图7 加载GF6 WFV数据结果
通常的GF6 WFV是16m数据,这里为了方便比较起见,加载的GF6 WFV数据被重采样为10m(图7 红框),并且加载了全部8个波段的数据。
四、 配准
先检验两种数据的配准情况
第一步,勾选哨兵2层(层1)。
第二步,在主窗口右击出现弹出菜单,选择 主窗口全选
第三步,再右击,选择 动态目视偏移估计(蛙眼)
这时在主窗口交替显示上层的GF2 WFV图像和勾选的哨兵2图像(图8)。可见有一定偏移。
图8 配准前的GF2 WFV图像和哨兵2图像
下面开始配准。
第一步,勾选哨兵2层(层1)。
第二步,在主窗口滚动鼠标滚轮,直至出现十字形光标。
第三步,用十字光标在主窗口拉出来一个矩形区域。
第四步,右击拉出来的区域,出来一个菜单,点击菜单项 偏移量检测 。这时出来检测结果,见图9。
图9 GF2 WFV图像和哨兵2图像偏移检测
以哨兵2数据为基准,图9 的检测结果水平方向-1个像元,垂直方向3个像元(这里的坐标是Y轴向上)。是说GF6 WFV比S2数据水平负方向(左)偏一个像元垂,直正方向(上)偏了3像元(见图9左上角小窗口)。记住 -1 和 3 这两个数。
下面进行纠正。
第一步, 勾选GF6 WFV层。
第二部,点击GRID管理->按像元平移 菜单,出现图10对话框。输入上一步得到的像元偏移的负方向的值,点击确定,就完成了几何配准。
图10 输入纠正像元
几何配准的结果(见图11)用的GIF图像交替显示,比较虚的是GF6 WFV数据,比较清晰的是哨兵2数据。可见有非常好的配准效果。
图11 配准后的GF2 WFV图像和哨兵2图像
注意:对于非线性关系的两幅图像可使用RSD的小黑手采集GCP进行经确配准,与上述(四、 配准)部分类似,请参阅相关介绍。
五、 计算TOA
虽然GF6 WFV数据和Sentinel2数据是同一时间的配准数据,但现在还是不能直接比较。因为数据来自不同的传感器。我们要是将二者都转换成向上(天顶)的反射率TOA,就可以比较了。
先计算GF6 WFV的TOA
第一步,勾选GF6 WFV层。
第二步,选择菜单 GRID管理->表观反射率TOA出现图12的对话框,点击 全选 ,所有8个波段均被选到右侧窗口。
图12 GF6 WFV转换为TOA的对话框
第三步,点击确定,出现图13的对话框,这个对话框提示是否要对大太阳天顶角进行限制,防止太阳天顶角过大造成TOA异常偏大。通常这里直接点击确定就可以。点击后得到GF6 WFV TOA的一个新层(层3)。
图13 GF2 WFV转换为TOA的天阳天顶角限制对话框
再计算Sentinel2的TOA
第一步,勾选Sentinel2层。
第二步,选择菜单 GRID管理->表观反射率TOA出现图14的对话框。
图14 Sentinel2 L1C转换为TOA的对话框
注意图14中红框是说将所有通道值乘0.0001,蓝框中结果又每个数据乘10000,这不是没变化吗?是这样,这个转换的意义不在这里,而在后面的除太阳天顶角的余弦。将反射率订正到天顶方向。
注意:Sentinel2 L1C给出的数据不是天顶方向,在RSD中我们也管这类数据叫入瞳处反射率,可以记为TOAsensor,不要和表观反射TOA(TOAup)搞混。
第三步,点击确定,出现图13的对话框。点击后得到Sentinel2 TOA的一个新层(层4)。
六 比较GF6 WFV 和 S2的TOA
点击 工具->密集散点图 。在左侧两个小窗口选择不同的层和通道,这类选择3、4层的TOA比较。见图15a、b、c、d。
图15 GF2 WFV TOA与Sentinel2 L1C TOA 可见光和近红外通道值比较
图15a、b、c、d依次为蓝绿红近红外个波段比较。可见蓝光差异5.1%、绿光差异2.5%、红光差异0.3%和近红外差异4.5%。
还记得前面不进行卫星视角订正GF6 WFV数据内部均值就能达到20%的差异吧,实际上这里GF6 WFV和Sentinel2 L1C两种卫星的数据经卫星视角订正和太阳订正后,总体差异在10%以内(本例5%),说明两种数据完全可以放心交替使用。这对于这两种免费共享数据来说应用前景是非常广阔的。
另外,仔细观察数据集中间有一片云,两种数据虽然时间一致毕竟相差7分钟,但云是快速移动的,会造成遮档差异。图16。
图16 间隔7分钟两个数据集上云移动的距离。
可见7分钟云移动了很多,两张图上不同位置的云也会造成一些数据差异,如果去掉云的影响,RSD处理后的GF6 WFV和Sentinel2 L1C两种卫星的数据差异会更小。
另外,图15的比较可以看出两种数据散点图比较离散(其实标准差还是比较小的),至少看起来是这样。这估计是两种数据集轨道不同像元重定位不同,GF6 WFV被强制采样到了10m,以及波段中心波长和半高宽都有差异。但认为完全不影响两种数据的协同和交叉混用。
七 GF6 WFV大气校正
GF6 WFV的大气校正可以直接从主菜单开始,计算机内存外存少的可以分块(3块)进行,已经考虑了卫星视角校正和太阳天顶角校正,直接点击菜单就可以了,不在这儿进一步介绍。
这里介绍正射校正后GF6 WFV数据的大气校正(注意不要使用TOA数据进行大气校正)。对正射后数据的大气校正不再考虑卫星视角了(因为已经丢失了),但是还是要处理太阳角度(通过季节时间和经纬度重新计算),使用TOA数据进行大气校正会重复进行太阳高度订正。
如果你加载GF6 WFV数据时没有进行卫星视角的校正,后面的大气校正也不进行卫星视角订正(正射时由于发生裁剪等原因会丢失卫星天顶角信息)。
GF6 WFV的大气校正步骤,仍然使用上述任务中的数据。
第一步,勾选GF6 WFV数据(层2)。
第二步,菜单 应用处理->大气校正->RSD内建的大气校正模型 。点击后出现对话框(图17)。
图17 大气校正参数设置
注意这个图中如果正确识别了传感器,参数都已经为你设置好了,基本不用改动。唯独如果需要大气校正后去云时,选择图17中红框中的设置。
点击确定后即开始进行大气校正,结束后产生一个新层(图18层5)即为大气校正结果。
图18 GF6 WFV大气校正/去云后结果
调整图17中 大气校正可靠性置信界限 值,避免在删除低可信度大气校正像元时误伤过多的高亮度像元。
(一句题外话,近期很多反映有浓密植被上大气校正结果绿光反射峰向红光偏移,即反射峰不在0.66而偏到0.71um。RSD的GF6 WFV大气校正不会出现此类问题,可以放心使用)
八、 Sentinel2 L1C大气校正
ESA有自己的Sentinel2大气校正产品L2A,也提供了自己的将L1C校正到L2A的程序sen2Cor。RSD也做了Sentinel2 L1C的大气校正。
有关Sentinel2大气校正我们另外专门讨论,这里简单挑重要的说几句:ESA直接提供下载的L2A是进行过地形校正的(相当于BRDF了吧?入射、反射、坡向都已经考虑过了,BRDF也没有剩下什么了,下垫面特性都是地球地表,又不像有金属塑料等),但是sen2cor虽然曾经说过能做BRDF,实际没法做。这样,①不要将ESA直接提供的L2A和运行sen2cor得到的L2A混合使用,不一样的处理得到的是不一样的数据,尤其是山体背坡阴影等。②RSD对Sentinel2 L1C的大气校正与运行sen2cor得到的L2A有较好的一致性,可以混用。
使用RSD对Sentinel2 L1C进行的大气校正步骤
虽然可以像GF6 WFV一样从菜单应用处理->大气校正->RSD内建的大气校正模型开始,但是这里Sentinel2只有4个通道的数据,只能以未知传感器校正。这里我们从菜单 任务管理->添加其它对地观测卫星数据->添加Sentinel数据->Sentinel2 L1C+大气校正 开始,打开L1C数据的MTD_MSIL1C.xml文件,在后面出现的对话框仍然选择10m数据,稍等就得到了大气校正结果。图19。
图19 Sentinel2大气校正/去云后结果
这个去云外观看起来比GF6 WFV去云要好一些,好像没有伤到那么多的无辜像元。
九、比较GF6 WFV 和 Sentinel2的大气校正后反射率
仍然像前面比较TOA数据一样。图20a、b、c、d。
图20 GF2 WFV与Sentinel2 L1C 表面反射率通道值比较
蓝绿红和近红外差异分别为3.1%、8.0%、5.4%和11.5%。
十、GF6 WFV 和 Sentinel2的其它指数比较
近年来人们根据光谱数据构造了一大票因子指数指标巴拉巴拉~~~,就比较一下NDVI吧,更多的可以随时自己构造。
第一步,勾选GF6 WFV表面反射率(层5)。
第二步,点击菜单 应用处理->归一化植被指数NDVI 。出现图21对话框。
图21 计算NDVI的对话框
NDVI下线限制为0,(去掉负值,不是必须)。点击 开始计算 ,在任务中就多了一个新层(层7),即为GF6 WFV算得NDVI。
第三步,勾选Sentinal2表面反射率(层6)。
第四步,和上述第二步一样计算Sentinel2的NDVI。生成一个新的层8,即为Sentinel2的NDVI。
第五步,工具->密集散点图 ,比较两中NDVI。图22.。
图22 GF2 WFV与Sentinel2 L1C NDVI值比较
Sentinel2的NDVI比GF6 WFV 的平均高了0.02。可能与哨兵2近红外大气校正表面反射率偏高有关。
十一、 Sentinel2数据的RSD大气校正与sen2cor程序大气校正结果比较。
为说明RSD大气校正的有效性,这里将Sentinel2数据的RSD大气校正与sen2cor程序大气校正的结果进行一下比较。
sen2cor程序大气校正数据集 S2A_MSIL2A_20190529T023551_N0207_R089_T51TVF_20190529T042555.SAFE.rar
下载地址同上。
将该数据集添加到任务中,增加了一个新层(层9)。但是这个新添加的数据是未去云的,现在是要和RSD大气校正的Sentinel2 比较(层6),而层6是去了云的。
下面我们把层9中与层6对应的去掉云的部分裁掉,以变比较。具体操作:
第一步,勾选层9.。
第二步,点击菜单 数据变换->层间逻辑与 。出现图32对话框。
图23 选择逻辑运算的层
这个操作是将层9与层6按像素以“与”关系创建一个新层。简单说就是将层9裁剪出和层6一样的部分,并建立一个新层。
点击确定后,新建了一个层10.。
下面比较层10(san2cor大气校正结果)与层6(RSD大气校正结果)。
图24 Sentinel2 L1C san2cor大气校正结果与RSD大气校正结果比较
这样的结果就不过多解释了,Sentinel2 L1C大气校正用san2cor还是用RSD基本都一样,用哪个自行方便。
ESA直接下载的L2A(STAC L2A)与san2cor L2A的问题另行讨论了,这个差异比较大,主要表现在地形校正上,使用时应该区别开来。ATCOR大气校正现在也分有地形和无地形校正了感兴趣的参阅相关资料。
本例使用的Sentinel2的STAC L2A数据集也已经准备好了,感兴趣的同学可以在上述数据下载地址找到:S2A_MSIL2A_20190529T023551_N0212_R089_T51TVF_20190529T045252.zip
十二、 保存处理结果
很多人都习惯了处理完一步马上就出去上硬盘找结果。RSD不是这样,都保存在一个任务当中。RSD是为大规模数据设计的,非常大的任务可以使用一个叫做“任务目录”的功能(使用说明书另有详细介绍),像这样的小规模数据,直接就保存为.rsd文件就可以了。有多少层数据也没有关系。.rsd文件以前使用压缩格式,自本版开始可以使用非压缩格式保存。虽然磁盘空间占用多一点,可是极大的节省了存取时间。时间就是生命啊,花几百元的银子增加几个T的硬盘就能节省你的生命,这投资肯定值!
一、保存
从任务管理->保存RSD文件(或者RSD文件另存为)直接就可以保存。本例数据保存后:
图25 保存的.rsd文件
二、再次打开
再次打开选择该文件后,出现图26的对话框
图26 打开.rsd文件
这里一共有10层数据(注意这里的层可是数据集,不是其它软件里面的一个通道的数据),可以选在全部打开,一可以一个层都不选,都不选时打开框架。
注意:部分打开后再保存时一定要注意不要冲掉原来没打开部分的数据,比方可以换名保存。
三、只保存一个层
右击层列表中的该层,从相应菜单保存。
四、导出TIFF或者IMG
右击层列表中的该层,从相应菜单保存。
十三、 结论
一、介于中分与高分扫描刈幅之间的GF6 WFV是否进行卫星视角订正数据差异可达20%。直接使用未进行卫星视角订正的反射率及后续产品可能会造成很大误差。
二、目前使用的绝大多数大气校正方法无论是特定传感器(专门针对GF6 WFV)还是未指定特定传感器,均没有GF6卫星视角订正的记载,使用时要非常谨慎(标记到星下点轨迹的偏离)。
三、经RSD卫星视角订正后GF6 WFV 数据内部表现出较好的一致性。表观反射率TOAup与Sentinel2 L1C TOAup表现出很好的一致性。
四、RSD平台对GF6 WFV大气校正结果与RSD平台对Sentinel2 L1C大气校正结果仍然保持很好的一致性。
五、RSD平台对GF6 WFV大气校正结果与sen2cor L2A、RSD平台对Sentinel2 L1C大气校正结果与sen2cor L2A都有很好的一致性,可以协同交互使用。
建议:①没考虑GF6 WFV视角校正的数据先停用吧,误差不小。②其它软件做的大气校正后植被绿光反射峰偏移到0.71um的也暂时停用吧。
上述特性自RSD新版V3.1.9和面向个人用户的免费V2.2.9版开始(截至2020 05 03),请及时下载更新。下载地址: https://pan.baidu.com/s/1T-LBvaD_zVCwJsGf_hCyCg
详情加企鹅群136965427,在这里解答和讨论有关遥感数据处理和RSD平台的有关技术问题。