⛄问题梳理
(1)Sentinel-5P L2数据预处理
基于ENVI实现:预处理链接
(2)Sentinel-5P L1B数据预处理
针对Sentinel-5P L1B的BD7和BD8数据(分别包含480个光谱通道),如果采用L2数据预处理的方法,其数据文件无法正常拖动到Raster列表中,但是经纬度文件可以拖动到Geographic Information项目中。

小编通过调研,总结了针对Sentinel-5P L1B数据预处理的方法。参考技术资料
⛄Sentinel-5P L1B和L2数据介绍
Sentinel5P数据是NC格式,虽然是NC格式,但是存储的结构是HDF格式的。
👀Sentinel-5P L1B数据
- MDS(元数据规范):包含TROPOMI 1b级数据产品的元数据规范。
- IODS(输入输出数据规范):描述从0级到1b级处理的结果产品。
- ATBD(算法理论基础文档):对0级到1b级数据处理中使用的算法进行高级描述。
- PRF(产品自述文件):描述不同产品版本之间的变化以及整体质量信息(发布几个月后即可获取)。


👀Sentinel-5P L2数据
- 产品用户信息 ( PUM ):S5P/TROPOMI 2级产品的技术特性信息。
- ATBD(算法理论基础文档):检索算法的详细信息。
- IODD(输入输出数据定义):S5P/TROPOMI 2级产品的输入和输出数据描述 。
- PRF(产品自述文件):不同产品版本之间的变更描述及整体质量信息。

⛄Sentinel-5P L1B数据预处理的步骤
👀无坐标多维数据提取
- 利用Python(h5py、GDAL)把S5P L1B数据中的多通道辐亮度数据、经度、纬度分别提取为tif。
- 保存时投影信息及仿射变换参数不写入tif中。
python
with h5py.File(S5P_path, "r") as f:
# (1, 4172, 215, 480)
Rad_data = f['BAND8_RADIANCE']['STANDARD_MODE']['OBSERVATIONS']['radiance'][:]
# (1, 4172, 215)
lon_data = f['BAND8_RADIANCE']['STANDARD_MODE']['GEODATA']['longitude'][:]
# (1, 4172, 215)
lat_data = f['BAND8_RADIANCE']['STANDARD_MODE']['GEODATA']['latitude'][:]
Rad_data = Rad_data[0,:,:,:] # (4172, 215, 480)
lon_data = lon_data[0,:,:] # (4172, 215)
lat_data = lat_data[0,:,:] # (4172, 215)
注意事项:输出的辐亮度数据、经度、纬度影像形状暂时是一个竖长条状的。
👀GLT文件构建和几何校正
-
导入没有坐标信息的多通道辐亮度数据、经度、纬度。
-
基于经度、纬度数据,利用ENVI的Geometric Correction→Build GLT工具生成一个地理位置查找表文件。
-
基于多通道辐亮度数据,利用ENVI的Geometric Correction→Georeference from GLT工具进行几何校正。
填写输出GLT文件的投影信息,选择Geographic Lat/Lon,WGS-84。
填写GLT输出参数,像元大小选择默认,旋转角度(Rotation)为0(正上方为北)。
小编尝试了几遍,旋转角度可能需要修改,大家根据结果是否旋转或颠倒,设置合适的旋转角度。


多谢!多谢!
笔者不才,请多交流!!!
欢迎大家关注预览我的博客Blog:HeartLoveLife