Sentinel-5P遥感数据下载及预处理教程【20250105】
Sentinel-5P是欧空局(Europe Space Agency,ESA)于2017年10月13日发射的一颗全球大气污染监测卫星。卫星搭载了对流层观测仪(Tropospheric Monitoring Instrument,TROPOMI),可以有效的观测全球各地大气中痕量气体组分,包括NO2、O3、SO2、 HCHO、CH4和CO等重要的与人类活动密切相关的指标,加强了对气溶胶和云的观测。
⛄Sentinel-5P数据介绍
👀数据产品
TROPOMI是目前世界上技术最先进、空间分辨率最高的大气监测光谱仪,成像幅宽达2600km,每日覆盖全球各地,成像分辨率达7km×3.5km,ESA提供了L1B和L2两种级别的数据下载。L2级数据产品介绍如下表:
官网产品数据介绍:https://sentiwiki.copernicus.eu/web/sentinel-5p
| Product type | Parameter |
|---|---|
| L2__O3____ | Ozone (O3) total column(总柱含量) |
| L2__O3_TCL | Ozone (O3) tropospheric column(对流层柱含量) |
| L2__O3__PR | Ozone (O3) profile(总剖面数据) |
| L2__NO2___ | Nitrogen Dioxide (NO2),total and tropospheric columns(总柱和对流层柱含量) |
| L2__SO2___ | Sulfur Dioxide (SO2) total column(总柱含量) |
| L2__CO____ | Carbon Monoxide (CO) total column(总柱含量) |
| L2__CH4___ | Methane (CH4) total column(总柱含量) |
| L2__HCHO__ | Formaldehyde (HCHO) total column(总柱含量) |
| L2__CLOUD_ | Cloud fraction, albedo, top pressure(云量、反照率、云顶大气压) |
| L2__AER_AI | UV Aerosol Index(紫外区域气溶胶指数) |
| L2__AER_LH | Aerosol Layer Height (mid-level pressure)(气溶胶层高度(中等气压)) |
| UV product | Surface Irradiance/erythemal dose |
| L2__NP_BDx, x=3, 6, 7 | Suomi-NPP VIIRS Clouds(云产品辅助数据) |
L2级数据产品根据生产时间/质量分为三种数据流:
- 近实时数据流(near-real-time,
NRTI),卫星成像3小时后即可获取,数据可能不完整或存在质量缺陷。 - 离线数据流(Offline,
OFFL),一般成像后几天即可获得。 - 再次处理数据流(Reprocessing,
RPRO),有些数据可能经过了多次处理,获得的最新的质量最佳的版本。
一般情况下,长期的时序变化研究不可以混用不同级别的数据流,推荐使用最新的RPRO数据以保证数据质量。
👀数据下载
下载教程:Sentinel–哨兵系列数据下载地址及流程更新【202310】
⛄Sentinel-5P数据预处理
本博客以L2级HCHO产品(近实时数据流HCHO总柱含量)为例:
S5P_NRTI_L2__HCHO___20241015T052816_20241015T053316_36303_03_020601_20241015T061049.nc
👀方法1:ENVI处理
GLT几何校正法利用输入的几何文件生成一个地理位置查找表文件(Geographic Lookup Table, GLT),从该文件中可以了解到某个初始像元在最终输出结果中实际的地理位置。
地理位置查找表文件是一个二维图像文件,文件中包含两个波段:地理校正影像的行和列。文件对应的灰度值表示原始影像每个像素对应的地理位置坐标信息,用有符号整型储存,它的符号说明输出像元是对应于真实的输入像元,是由邻近像元生成的填实像元(infill pixel)。符号为正时说明使用了真实的像元位置值;符号为负时说明使用了邻近像元的位置值,值为0说明周围7个象元内没有邻近像元位置值。
GLT文件包含初始影像每个像元的地理定位信息,它的校正精度很高。避免了通过地面控制点利用二次多项式几何校正法对低分辨率影像数据的处理。
(1)打开步骤:Open as→Generic Formasts→HDF5/NetCDF-4,或者直接将数据文件拖进ENVI。
(2)地理位置数据和浓度产品数据分开读取:将经纬度数据读取成一个图层,将HCHO柱浓度数据读取为另一个图层。

(3)制作GLT文件,在ENVI工具箱中搜索Build GLT,在弹出的对话框中,Input X Geometry Band选择经度数据,Input Y Geometry Band选择纬度数据。 在接下来的对话框中,投影信息选择WGS-84,Geographic Lat/Lon。

(4)在Build Geometry Lookup File Parameters对话框中,像元大小选择默认,旋转角度(Rotation)为0(正上方为北)。

(5)利用GLT文件对HCHO数据进行校正,工具箱中搜索Georeference from GLT,在Input Geometry Lookup File对话框中选择GLT文件,在Input Data File对话框中选择待校正的HCHO数据文件。


存在问题:针对ENVI方式的处理结果,小编存在诸多疑问。我们通过ENVI加载数据或者Panoply软件加载数据,获取数据的行列:358×450;但是经过ENVI处理之后,分辨率Pixel: 0.044004 Degrees,Dims: 849 x 527 x 1。(ENVI中列在前,行在后)出现行列数不对应的问题??
👀方法2:Panoply可视化展示
Panoply是一款跨平台的数据可视化软件工具,专门用于绘制地理参考以及其他数组数据,包括netCDF、HDF、GRIB等格式。Panoply运行需要JAVA环境,配置JAVA环境后,解压程序包,双击Panoply.exe即可。
-
官网下载:https://www.giss.nasa.gov/tools/panoply/
-
博客下载:遥感数据处理及可视化-第三方辅助工具集


👀方法3:S5Processor处理
为了把S5P的NC数据正确转为TIFF数据,试了多种方法,在GitHub上面发现了一个R包:S5Processor
-
S5Processor包地址:https://github.com/MBalthasar/S5Processor
-
R及RStudio下载安装教程:参考博客①、参考博客②、参考博客③
-
R包镜像地址:https://cran.r-project.org/src/contrib/Archive/
(1)首先,这个包需要借助Rtools,下载Rtools,根据自己运行环境选择合适的版本,安装即可。
- Rtools下载地址:https://cran.r-project.org/bin/windows/Rtools/
(2)提示没有devtools,则直接安装该包即可。


(3)安装S5Processor包
devtools::install_github("MBalthasar/S5Processor")
在安装过程中,可能会遇到依赖包缺少的问题,比如
maptools、rgdal、rgeos包,需要在R包镜像地址中检索并下载对应版本的包,进行手动安装。
(4)实例代码
基于R语言,使用S5Processor包对S5P数据进行TIFF格式转换,便于在GIS中进行分析。
devtools::install_github("MBalthasar/S5Processor")
library(S5Processor)
library(ncdf4)
library(ggplot2)
library(dismo)
library(maptools)
library(raster)
library(geosphere)
library(rgdal)
library(rgeos)
library(sp)
S5P_HCHO <- S5P_process(input = "D:\\Desktop\\data\\S5P_NRTI_L2__HCHO\\S5P_NRTI_L2__HCHO___20241015T052816_20241015T053316_36303_03_020601_20241015T061049.nc", product = 6)
writeRaster(S5P_HCHO, "D:\\Desktop\\data\\S5P_NRTI_L2__HCHO\\S5P_HCHO_R.tif", format = 'GTiff', overwrite = TRUE)
针对代码中
product参数值,相信很多朋友疑惑,如何获取呢??大部分博客中NO2实例的取值都是一样的(比如39),但是对于其它产品数据如何确定呢??
小编开始也很疑惑,最后通过不断调试代码,能够输出产品列表,判断出对应编号。
(5)转换结果


存在问题:针对R包方式的处理结果,小编仍然存在诸多疑问。我们通过ENVI加载数据或者Panoply软件加载数据,获取数据的行列:358×450;但是通过R包方式处理之后,分辨率Pixel: 0.240748 x 0.17972 Degrees,Dims: 155 x 129 x 1。(ENVI中列在前,行在后)依然出现行列数不对应的问题??并且和ENVI处理结果的行列数也不相同??但是两者结果的整体趋势保持一致。
多谢!多谢!
笔者不才,请多交流!!!
欢迎大家关注预览我的博客Blog:HeartLoveLife
能力有限,敬请谅解!!
相关文章:
Sentinel-5P遥感数据下载及预处理教程【20250105】
Sentinel-5P是欧空局(Europe Space Agency,ESA)于2017年10月13日发射的一颗全球大气污染监测卫星。卫星搭载了对流层观测仪(Tropospheric Monitoring Instrument,TROPOMI),可以有效的观测全球各…...
手写@MapperScan
定义一个EnableMapperScan注解 Import(MapperProxyHandlerRegister.class) 标注将MapperProxyHandlerRegister导入到容器中。 Target({ElementType.METHOD,ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Import(MapperProxyHandlerRegister.class) public interface…...
【C++】深入理解迭代器(Iterator)
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯什么是迭代器?迭代器与指针的比较 💯std::string 中的迭代器示例代码与图示分析运行结果:图示说明: 小提示 💯正…...
后端Java开发:第十二天
第十二天:封装 - 理解与应用 欢迎来到今天的学习内容!今天,我们将一起深入探讨 Java 中的 封装(Encapsulation)。封装是面向对象编程的四大基本特性之一,它的核心思想是把对象的状态(属性&…...
记录一下Coding一直不能clone
配置 下载git客户端,进行配置 git config --list user.name姓名全称 user.emailIAM_xxxxxx.com ,这个就是你的邮箱地址 user.signingkey 注册coding平台的密码 一般不需要配置公钥私钥 下载TortoiseGit,配置这几个参数 配置凭据管理器 注意 这里用户名是…...
LLM加速方法,Adapter Tuning和Prompt Tuning的区别及原理举例
LLM加速方法 目录 LLM加速方法整体结构各分支内容Adapter Tuning和Prompt Tuning的区别及原理举例一、区别二、总结整体结构 基于模型微调、基于模型压缩、基于分布式并行处理。 各分支内容 基于模型微调: 包含Adapter Tuning、Prompt Tuning、LoRA三个子类别。这些技术主要…...
【SVN】版本发布快捷操作
摘要:因为每次发版都需要制作一份相同的文件夹,而大部分的包都不需要变更,但是文件又非常大,记录自己的操作经验。 首先在SVN Repository Browser 界面把上一次的版本复制一份,复制的时候重命名为新的版本号 右击要复…...
GitLab 创建项目、删除项目
1、创建项目 点击左上角图标,回到首页 点击 Create a project 点击 Create blank project 输入项目名称,点击Create Project 创建成功 2、删除项目 进入项目列表 点击对应项目,进入项目 进入Settings页面 拖到页面底部,展开Adva…...
STM32-笔记37-吸烟室管控系统项目
一、项目需求 1. 使用 mq-2 获取环境烟雾值,并显示在 LCD1602 上; 2. 按键修改阈值,并显示在 LCD1602 上; 3. 烟雾值超过阈值时,蜂鸣器长响,风扇打开;烟雾值小于阈值时,蜂鸣器不响…...
VisionPro软件Image Stitch拼接算法
2D图像拼接的3种情景 1.一只相机取像位置固定,或者多只相机固定位置拍图,硬拷贝拼图,采用CopyRegion工具实现 2.一只或多只相机在多个位置拍照,相机视野互相重叠,基于Patmax特征定位后,无缝 拼图ÿ…...
【从零开始入门unity游戏开发之——unity篇09】unity6基础入门——Unity游戏对象和组件的本质、Unity中的反射机制
文章目录 一、Unity游戏对象和组件的本质1、开发游戏的本质2、万物之根本——空对象2.1 什么是空对象?2.2 创建空对象 3、Unity游戏对象的本质4、 transform组件4.1 transform组件的重要性4.2 修改transform的值4.4 **Transform的作用**4.3 重置transform的值 5、总…...
【Linux】深入理解文件系统(超详细)
目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 📌补充: 📌通常网络中用高低电平,磁盘中用磁化方向来表示。以下是具体说明: 📌如果有一块磁盘要进行销毁该怎么办? 1-2 磁盘存储结构 编辑…...
MoEs and Transformers 笔记
ref:https://huggingface.co/blog/zh/moe#%E7%94%A8router-z-loss%E7%A8%B3%E5%AE%9A%E6%A8%A1%E5%9E%8B%E8%AE%AD%E7%BB%83 MoEs and Transformers Transformer 类模型明确表明,增加参数数量可以提高性能,因此谷歌使用 GShard 尝试将 Transformer 模型…...
在Linux中,如何禁用root用户直接SSH登录?
在Linux中禁用root用户的直接SSH登录是为了增强系统的安全性,因为允许root用户通过SSH远程登录会增加服务器被暴力破解的风险。以下是在Linux系统中禁止root用户直接SSH登录的步骤: 编辑SSH配置文件: 打开/etc/ssh/sshd_config文件ÿ…...
用Python实现简单的任务自动化
目录 1. 自动发送邮件提醒 2. 自动备份文件 3. 自动下载网页内容 总结 在现代工作和生活中,任务自动化可以极大地提高效率和准确性。Python,作为一种功能强大且易于学习的编程语言,是实现任务自动化的理想选择。本文将通过几个简单而实用的案例,展示如何用Python实现任…...
为AI聊天工具添加一个知识系统 之26 资源存储库和资源管理器
本文要点 资源存储库 为了能完成本项目(“为AI聊天工具增加一个知识系统”,其核心能力是“语言处理” ,该能力的最大挑战 当仁不让的应该是自然语言处理)的设计,我们考虑一个问题:在自然语言处理中&#…...
Windows10环境下安装RabbitMq折腾记
最近有个老项目需要迁移到windows10环境,用的是比较老的rabbitmq安装包,如下所示。经过一番折腾,死活服务起不来,最终果断放弃老版本启用新版本。现在把折腾过程记录下: 一、安装erlang 安装完成后的目录结构ÿ…...
对快速由表及里说拜拜/如何正确运用由表及里
你是不是还:看到一男子拖走一女子就以为小情侣吵架而已(可能人贩子);看到男友对你好个几次就从此死心塌地(可能有手就行,细节装装而已)结果耽误终身;看到女同事对你微笑不排斥就以为…...
spring mvc源码学习笔记之八
本文说点儿简单的。 如果你想研究基于 XML 配置的 spring mvc 的话,可以简单扫一眼本文。 在基于 XML 配置的 spring mvc 开发中,我们主要就是通过 spring 提供的各种标签来配置。 但是,大家是不是都有个疑问,spring 到底给我们提…...
探秘5网口IIOT网关
在当今这个科技飞速发展的时代,工业领域正经历着一场深刻的变革,而工业物联网网关在其中扮演着至关重要的角色。 什么是IIOT网关 工业物联网网关,简单来说,就是连接工业现场设备与云端或者上层管理系统的关键桥梁。 而明达技术研…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
