||
SMOS L1C 亮温数据格式读取说明
想要做SMOS 的SM反演,SMOS的观测亮温是必不可少的。然而SMOS L1c亮温的数据格式并不属于常规的CDF 或者HDF,tiff格式。一个完整的L1C文件(zip),主要由一个HDR头文件和DBL 数据块文件组成。
现有的关于该文件格式的表述,陈建[1]采用matlab API接口实现了对SMOS 数据的读取。但是这种办法是基于Array提供的matlab RWAPI接口基础上的。虽然方便了使用,但也限制了其他语言的使用。关键是如果你没有matlab 的ESA 的反演软件,那么使用一种自己熟悉的语言写反演程序,即必须要将数据读取程序集成到自己的反演过程中。
然后,关于读取的方法就是各种打包好的SMOS数据软件,读取和可视化没问题,想要实现程序化,貌似很困难。那么其他语言是否可以读取呢?如下图所示,貌似有人已经给出了答案。
那么像作者说的ad-hoc专门的程序在哪呢?我也不知道,估计是不好找,或者没人愿意给。
还有一点要说明的在ESA的提供的API接口说明中,他把文件结构图画成下图(彩色):这是与个别smos数据读取软件读取得到的结构式不一样的。如果读写程序还是按下面的结构图进行,不要根据viewer的列表读写,否则会蒙圈~那么是否可以完全按着图中的结构进行读取呢?可以,但仅适用于RWAPI 的方式。真实的文件中的内容可并不是这样存储的!之所以有图中的这种表述;1.因为这是针对Array 提供的接口函数库而言,2;这种方式的表述的更容易被接受。
和陈建的文章中写道的:
需要说明的是,按SMOS blog 的说法SMOS L1C 为ASCII-XML混合格式,那么这里的header 就是HDR,这个HDR为XML格式,而剩下的Data Block 就是DBL格式的文件,也就是一个用二进制书写用来存储所有数据的一个数据文件。
HDR文建中有关于如何读取DBL 的方法或者索引吗?没有!HDR只包含一些元数据之类的信息,如文件名,时间,轨道等信息。这个读取相当简单,在程序内直接解压,以TXT的格式直接读取就ok。读取的关键还是在DBL文件的读取方式。
既然DBL为一个纯的二进制文件那么读取的就需要知道文件的数据结构,ESA的说明文档格式各种各样,看的令人眼花缭乱~
,那就按说明书读取指定字节,按指定的数据类型进行转义即可,由于数据量较大,建议采用字典存储关键的键值进行存储。
对于一个读取到的item 其下面根据固定的经纬度同时对应不同极化方式和不同时间下的snapshot 以及产生的不同观测角度的亮温数据,这一点在读取的时候则需要注意。
并且之前提到对于单角度的反演过程,42.5度的亮温并不是都会存在,那么对某个像元的反演过程,则通过插值的方式获取。
总之,有资源的有资源的方法,没资源的有没资源的本办法~
R
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 15:38
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社