终于把夜光遥感数据处理的事情做的差不多了。接着前几天讲的,今天介绍一下DMSP传感器之间相互校正的处理。DMSP不同传感器之间相互校正是基于伪不变区域作为标准区域,选择累计DN值最高的数据作为参考数据,但是由于F182010年数据存在突变,所以目前一般使用F16传感器2006年的数据作为标准参考数据,对相邻前后年份传感器的数据进行更迭校正(34期数据均进行校正)。本人在处理过程中偷了个懒,因为是传感器之间的校正,所以默认某一类传感器是稳定的,同时不同传感器之间有重复年份的数据,利用重复年份数据构建一个训练集,其中待校正的传感器的所重复的不同年份的DN值作为X,参考传感器所重复的不同年份的DN值作为Y,实现传感器之间的校正。当然参考传感器依然选择F16传感器。举个例子说明把,F16和F15传感器重复年份的数据为2004—2007年4年的数据,因此就可以利用这四年数据构建一个F16校正F15传感器的模型,这个模型仍然沿用相关文献上:
,将4年数据构建的训练数据集进行训练,即可获得模型参数。有了模型参数,对F15传感器所有年份的数据进行校正。利用校正后的F15传感器和待校正F14传感器,同样利用上述办法,实现对F14传感器的校正,重复更迭,最终实现所有传感器的校正工作。这里面有个问题是F18和F16传感器没有重复的年份数据,这里就采用最相邻的数据,沿用上述方法,完成F18传感器的校正。具体实现如下(代码中的jx_stable_df是前一篇文章中34期鸡西市稳定亮相元提取的结果):
以上实现了F16校正F15,剩下其他传感器的校正工作可以重复实现(注意的是,更迭校正时,一定是使用校正过的数据继续校正下一个传感器,比如F15校正后的数据,校正F14传感器),或者定义一个函数或者类,就不用重复执行上述代码了。
为了验证传感器校正结果的好坏,我们选择了一个地区进行验证,选择2000、2005、2010年三期(说明一下:这三期数据并不是传感校正完之后的结果,而是传感器校正后,又进行了相同年份不同传感器校正、时间序列连续性校正和过饱和校正,这三个工作实现起来相对容易,所以就不细说了)校正前后的数据,统计了2000、2005、2010三个年度的DN值总和,并收集了该地区的对应年度的gdp数值进行分析,左图为校正前右图为校正后,对比结果很明显,校正后的夜光遥感数据与地区经济指标的相关性更高。
其实,我在不同传感器相互校正过程中,考虑过模型选择的问题,因为是第一次处理夜光遥感的数据,所以还是主要参考了相关文献上的校正模型。但是我一直在思考两个问题,第一个人觉得不同传感器之间校正的过程可能是非线性的,可以尝试利用更多的机器学习模型进行训练,实现不同传感器之间的校正工作;第二,尽可能少的通过更迭的方式实现不同传感器之间的校正,校正过程存在误差传递的影响,个人觉得后续是否可以利用假设的稳定传感器实现所有不同传感器的校正工作,而省去逐级传递校正的这么一个过程,是否会提升校正效果?以上仅个人直言,毕竟是第一次处理,如有不妥,请包含指出。