ERA5数据集解算Tm(水汽加权平均温度)

Part1 Tm(代码获取方式在文章最后)

Tm 是 GNSS 反演 PWV 的关键性因素,由 Tm 可以求得转换因素 Π,Π*ZWD(天顶湿延迟)可以的得到 PWV。

Part 2Tm 的计算方法

Tm 的计算方法有两种,下面进行分别介绍

1根据加权平均温度的定义

使用水汽压和温度计算 Tm

和 表示第 i 层大气的水汽压和温度, 是第 i 层的厚度。这种方法使用探空站数据计算得到的 Tm 一般为真值与其他数据进行比较。

2利用线性关系

使用最多一般是 Bevis 和 Yao 的线性公式,不一一列举了,这个精度较差。

3还有其他方法,GPT2w 等,目前我没用到,后期用到我会写出来教程

Part3 ERA5 数据集解算 Tm

我一般使用 ERA5 数据集根据第一种方法得到 Tm。以探空站求得 Tm 为真值,进行对比。ERA5 数据集覆盖率高,时间和空间分辨率也高,很适合用来计算 Tm。只需要求得水汽压,带入第一种方法的公式就可以得到 Tm。

水汽压计算公式

根据饱和水汽压和相对湿度求得,公式如下

es 为饱和水汽压(hPa),用下式求得

式中,T 为温度(K)。es 采用 ECMWF IFS 报告(IFS Documentation CY31R1 Part II )给出的模型,对水的不同状态做了区别 (ECMWF, 2007) :
(1)温度大于 0℃, R2 = 611.21 hPa,R3 = 17.502 K 和 R4 = 32.19 K;
(2)温度小于-23℃,R2 = 611.21 hPa,R3 = 22.587 K 和 R4 = -0.7 K;
(3)温度介于-23℃ 和 0℃ 之间,则用下式计算:

式中,T0 = 273.16 K,Ti = 250.16 K。

Part4 Matlab 获取代码可关注公众号WZZHHH,或者咸鱼关注:WZZHHH123

Part5部分代码展示:

% GNSS上方的ERA5数据集的求得Tm
% 根据ERA5最底层高于或者低于GNSS站点,使用补偿方法得到
% 前置数据需要下载ERA5的位势、温度、相对湿度。
% 更多代码获取微信公众号WZZHHH
% -----------------------------------------------------------------------
% 你也可以把数据下载好打包发我,我来负责处理,不过费用贵
% 需要ERA5、站点经纬度名称海拔的excel表等,具体需要商量

%% --------------------------需要修改的路径-----------------------------
clc;clear;

% 计算的年份以2020年为例
nc_path    = 'D:\paper_write\paper_code\2\ERA5\2020\'; % 原始ERA5的存放地址
Edata_path = 'D:\paper_write\paper_code\2\mat\ERA5\';   % ERA5读取后数据存放
% Excel第一列站点名字、第二列纬度、第三列经度、第四列高程
% station_x(:,1)=纬度、station_x(:,2)=经度、station_x(:,3)=高程
[station_x,~] = xlsread('D:\paper_write\paper_code\2\xls\使用站点的经纬度高程.xlsx'); % GNSS站点经纬度坐标

resolution = 0.25;        % ERA5分辨率0.25;ERAinterm分辨率0.75

%% ----------------------------NC数据读取-------------------------------
% 读取原始ERA5文件夹下所有nc数据
List = dir(fullfile(nc_path,'*.nc'));


Tm=[];
for I = 1:size(List,1)

    % nc的具体路径
    filen = [nc_path List(I).name];

    % 用ncinfo读取nc数据里面的元素,找到我们下载数据的缩写
    % aa = ncinfo(filen);

    % 例如:z:位势、t:温度、r:相对湿度、q:比湿度、levels:气压
    z = ncread(filen,'z');
    t = ncread(filen,'t');
    r = ncread(filen,'r');
    levels = ncread(filen,'level');
    Time_num = ncread(filen,'time');
    latitude = ncread(filen,'latitude');
    longitude = ncread(filen,'longitude');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/321940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#编程-使用事件

使用事件 事件是一个动作或发生的事情,例如:鼠标点击、按键、鼠标移动或系统产生的通知。应用程序可以在事件发生的时候做出响应。通知的一个示例是中断。事件是对象发生的消息以表示事件的发生。事件是进程内通信的有效方法。它们对对象时有用的,因为它们标识了单个状态改…

swing快速入门(四十四)拖动、编辑JTree结点

注释很详细,直接上代码 新增内容(源码细节知识点巨多,建议细看) 1.设置JTree可编辑 2.使用JTree关联的数据模型实现节点的增删改 3.鼠标拖动节点事件设计及处理方法 4.手动刷新视图与自动刷新的方法区别 5.自定位节点视图方法 源码…

【Redis集群】docker实现3主3从扩缩容架构配置案例

一,集群规划及准备工作 架构实现:Redis3主3从 二,搭建命令 第一步,创建6台服务: docker run -d --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --clust…

单表的查询练习

一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 显示所有职工的基本信息。 mysql8.0 [chap03]>select * from worker; 查询所有职工所属部门的部门号,不显示重复的部门号。 mysq…

geemap学习笔记047:边缘检测

前言 边缘检测适用于众多的图像处理任务,除了上一节[[geemap046:线性卷积–低通滤波器和拉普拉斯算子|线性卷积]]中描述的边缘检测核之外,Earth Engine 中还有几种专门的边缘检测算法。其中Canny 边缘检测算法使用四个独立的滤波器来识别对角…

如何通过Burp Suite专业版构建CSRF PoC

Burp Suite是一款强大的渗透测试利器,可以利用它来高效的执行渗透攻击,接下来介绍如何通过Burp Suite Pro来构建CSRF PoC。 如果还没安装burp suite,请参阅【Burp Suite专业版本安装配置及使用指导 】 在Bupr中找到拦截的请求,右…

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解

时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 SMA-CEEMDAN利用黏菌优化算法优化CEEMDAN Matlab语言…

【编码魔法师系列_构建型4】原型模式(Prototype Pattern)

学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通…

还没有自己的博客系统么 使用Docker Compose快速部署Typecho博客系统

1.准备 测试服务器ip:192.168.168.106 docker docker compose 这里不再赘述 不会的直接私信 或者直接翻历史博客 或者直接百度 2.创建目录 mkdir -p /data/Typecho 3.编写docker-compose.yaml文件 vim docker-compose.yaml文件内容如下 version: 3.7services:mysql:im…

九州金榜|15岁初三男孩抑郁休学摆烂打游戏,高压教育要不得!

有一次和朋友一块聚餐,邻座是一位妈妈、和她大概七八岁的儿子,小男孩长得很帅气,没有像同龄人那样调皮捣乱,而是和妈妈很温馨的就餐。 看的出来一家人的素质很高,就餐过程中桌面保持的很整洁,交流声音也不…

SpringCloud Aliba-Nacos-从入门到学废【2】

🥚今日鸡汤🥚 比起不做而后悔,不如做了再后悔。 ——空白《游戏人生》 目录 🧈1.Nacos集群架构说明 🧂2.三种部署模式 🍿3.切换到mysql 1.在nacos-server-2.0.3\nacos\conf里找到nacos-mysql.sql 2.查…

毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

Spring MVC中的一些常用注解

目录 RequestMapping 实现路由映射 限制请求方式 PathVariable 从url中获取变量的值 更改绑定参数的名字 RequestParam 可以传递集合 更改绑定参数的名字 可修改是否为必传参数 RequestBody 获取请求正文的内容 可修改是否为必传参数 RequestPart 可以支持上传…

Vue中的v-model绑定修饰符

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. .lazy 修饰符的原理2. .number 修饰符的原理3. .trim 修饰符的原理 ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能…

开源项目汇总:机器学习前沿探索 | 开源专题 No.60

facebookresearch/xformers Stars: 6.0k License: NOASSERTION xFormers 是一个加速 Transformer 研究的工具包,主要功能如下: 可自定义构建模块:无需样板代码即可使用的独立/可定制化构建模块。这些组件与领域无关,被视觉、NLP…

从零学Java 多线程(基础)

Java 多线程(基础) 文章目录 Java 多线程(基础)1 多线程1.1 多任务1.2 多线程1.3 普通方法调用和多线程 2 进程和线程2.1 什么是进程(Process)?2.2 什么是线程(Thread)?2.3 进程和线程的区别 3 线程的实现3.1 线程的组成3.2 线程执行特点3.3 线程的创建3.3.1 继承Thread类3.3…

Kubernetes (十二) 存储——Volumes配置管理

一. 卷的概念 官方地址:卷 | Kuberneteshttps://v1-24.docs.kubernetes.io/zh-cn/docs/concepts/storage/volumes/ 二. 卷的类型及使用 …

OpenGauss源码分析-SQL引擎

所讨论文件大多位于src\common\backend\parser文件夹下 总流程 start_xact_command():开始一个事务。pg_parse_query():对查询语句进行词法和语法分析,生成一个或者多个初始的语法分析树。进入foreach (parsetree_item, parsetree_list)循环…

NLP论文阅读记录 - 2021 | WOS 使用分层多尺度抽象建模和动态内存进行抽象文本摘要

文章目录 前言0、论文摘要一、Introduction1.3本文贡献 二.前提三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Abstractive Text Summarization with Hierarchical Multi-scale Abstraction Modeling and Dy…

ecmaScript-定义变量

简言 了解定义变量的三种方式:var、let、const。 正文 var var 语句 用于声明一个函数范围或全局范围的变量,并可将其初始化为一个值(可选)。 特点: 无论在何处声明变量,都会在执行任何代码之前进行变…
最新文章