使用Matlab计算IGRAv2探空站的Tm和PWV

1. 探空站IGRAv2数据

探空站的Tm常作为真值,去检验Tm线性公式或者ERA5 Tm等的精度 。

探空站PWV常作为真值,去检验GNSS PWV等的精度

2. Tm 的计算方法

Tm 的计算方法有两种在前面的文章有讲,这里用
使用水汽压和温度计算Tm。

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


2.1. 水汽压(WVP)计算公式

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

2.2. 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。

3. PWV 的计算方法

3.1. 计算比湿度q

e是水气压,计算方法在上面得Tm计算里面有。

3.2. 重力加速度g考虑了纬度和高程变化。


4.Matlab 获取代码关注公众号WZZHHH,或者咸鱼关注:WZZHHH123,部分代码展示,总共337行代码
 

% 读取IGRA的文件
% 基于matlab2022写的
% 微信公众号和CSDN:WZZHHH
% IGRA源数据下载地址https://www1.ncdc.noaa.gov/pub/data/igra/derived/derived-por/
% 里面有很多站点已经弃用,并且该网址包括建站以后的所有数据集,
% 因此我们需要提取对应年份的数据,然后计算得到探空站得PWV% 提取数据存到"v2data",按照时间进行排列,最后存到mat文件中
% 每个站点的每年存一个mat文件,名称为:站点名字-年份.mat
% --------------数据的含义如下所示---------------
%    V2data.pwv:大气可降水量;
%    V2data.lon:经度;
%    V2data.lat:纬度;
%    V2data.Tm :加权平均温度;
%    V2data.ID :站点名称;
%    V2data.pwv有6列:第1列是pwv,第2-6列是时间和时间数字% ------------------------------------------
clc,clear;%% -----------------------------需要修改的参数--------------------------
% 列 参数           文本位置           含义
%  1  PRESS           1-  7   Integer 压力(Pa或mb*100)
%  2  REPGPH          9- 15   Integer 报告的位势高度(米)。这个值在重要级别上是不可用。
%  3  CALCGPH        17- 23   Integer 计算出的位势高度(米)
%  4  TEMP           25- 31   Integer 报告的温度(K*10)。
%  5  TEMPGRAD       33- 39   Integer 当前高度与下一高度之间的温度梯度[(K/km)*10,如果温度随高度增加,则为正]。
%  6  PTEMP          41- 47   Integer 位势温度(K*10)
%  7  PTEMPGRAD      49- 55   Integer 当前高度和下一高度之间的位势温度梯度[(K/km)*10,如果潜在温度随高度增加,则为正]。
%  8  VTEMP          57- 63   Integer 虚温(K*10)
%  9  VPTEMP         65- 71   Integer 虚势温度(K*10)
%  10 VAPPRESS       73- 79   Integer 同一水平的温度、压力和露点下降计算得出的水气压
%  11 SATVAP         81- 87   Integer 饱和水汽压
%  12 REPRH          89- 95   Integer 为原始探测时报告的相对湿度(百分比*10)
%  13 CALCRH         97-103   Integer 为相对湿度(百分数* 10),由蒸汽压、饱和蒸汽压和同一水平面的压力计算得到。
%  14 RHGRAD        105-111   Integer 当前高度和下一高度之间的相对湿度梯度[(%/km)*10,如果相对湿度随高度增加,则为正]。
%  15 UWND          113-119   Integer 纬向风分量[(m/s)*10],由报告的风速和风向计算得到。
%  16 UWDGRAD       121-127   Integer 当前高度和下一高度之间纬向风的垂直梯度[(m/s/km)*10,纬向风随高度增大而增大时为正]。
%  17 VWND          129-135   Integer 经向风分量[(m/s)*10],由报道的风速和风向计算得到。
%  18 VWNDGRAD      137-143   Integer 当前高度与下一高度之间经向风的垂直梯度[(m/s/km)*10,经向风随高度增大而增大则为正]。
%  19 N             145-151   Integer 折射率(无单位)% igra_num:需要提取数据所在的列
% 计算PWV所需要得数据为[温度 气压 计算位势 计算相对湿度]
% 改对应第4 1 3 13 列;
igra_num = [4 1 3 13];% IGRA路径
path_igra = 'D:\DATA\IGRA2\drvd\';% 数据存放路径
save_igra = 'D:\DATA\IGRAv2PWV\';% IGRA官网下载的站点清单(igra2-station-list)存放路径
% 清单下载地址:https://www1.ncdc.noaa.gov/pub/data/igra/igra2-station-list.txt
list_path = 'D:\paper_write\paper_code\2\IGRA\igra2-station-list.txt';% IGRA数据包含了建站以来数据,挑选所需年份
year = [2020 2021]; % 以2020-2021年为例

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV】仿 IOS 锁屏时钟

OpenCV 是一个开源的计算机视觉(Computer Vision)与机器学习软件库,提供了多种图像处理算法与接口。在图像处理中,按位运算是一类重要的运算,可以用于提取图像的重要部分。本文主要记录如何使用 OpenCV-Python 绘制仿 …

docker的简单使用

在一些进行使用靶场或者工具的时候,我们可以用docker在线拉取,就可以省去手动搭建靶场的过程 一、docker的配置 因为docker是默认从docker的官网进行拉取,所以拉取经常速度很慢或者失败,我们先要进行一下配置,让他优…

安卓手机如何使用JuiceSSH实现公网远程连接本地Linux服务器

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

Frida-Hook-Native层操作大全

前期准备 使用 jadx 进行逆向工程的基础知识。能够理解 Java 代码。能够编写简短的 JavaScript 代码片段。熟悉 adb。已 root 的设备。对 x86/ARM64 汇编和逆向工程有基础了解。 1、Hook Native层中调用的函数并且读取传入的参数 对于Native层的函数Hook,我们使用…

2024.3.7

1、基于UDP的网络聊天室 服务器&#xff1a; #include<myhead.h>//定义一个结构体存储成员信息 typedef struct Node {struct sockaddr_in cin;struct Node *next; }*Linklist;//定义一个结构体表示消息类型 typedef struct _msg {char code; //L:登录&#xff0c;C…

vue3+element plus 实现百度地图显示路径

添加依赖 <!-- index.html --><script type"text/javascript" src"//api.map.baidu.com/getscript?v3.0&akyI6kBeC9G4LntEWXklE2iNHwRUrmFEQc"></script><script type"text/javascript" src"//api.map.baidu.co…

利用Python爬取高德地图全国地铁站点信息

利用Python中的requests库进行地铁站点信息的获取,同时将数据保存在本机excel中 # 首先引入所需要的包 import requests from bs4 import BeautifulSoup import pandas as pd import json# 发送 GET 请求获取网页内容 url http://map.amap.com/subway/index.html response r…

【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《数据结构与算法&#xff1a;初学者入门指南》&#x1f4d8;&am…

ospf虚链路实验简述

1、ospf虚链路实验简述 ospf虚链路配置 为解决普通区域不在骨干区域旁&#xff0c;通过配置Vlink-peer实现不同区域网络设备之间建立逻辑上的连接。 实验拓扑图 r1: sys sysname r1 undo info enable int loopb 0 ip add 1.1.1.1 32 ip add 200.200.200.200 32 quit int e0/0/…

模拟实现std::string类(包含完整、分文件程序)

std库中的string是一个类&#xff0c;对string的模拟实现&#xff0c;既可以复习类的特性&#xff0c;也可以加深对std::string的理解。 &#x1f308;一、搭建框架 ☀️1.新命名空间 本质上string是一个储存在库std里面的类&#xff0c;现在需要模拟实现一个string类&#…

python基础——入门必备知识

&#x1f4dd;前言&#xff1a; 本文为专栏python入门基础的第一篇&#xff0c;主要带大家先初步学习一下python中的一些基本知识&#xff0c;认识&#xff0c;了解一下python中的一些专有名词&#xff0c;为日后的学习打下良好的基础,。本文主要讲解以下的python中的基本语法&…

力扣706:设计哈希映射

题目&#xff1a; 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。 实现 MyHashMap 类&#xff1a; MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中&#x…

tcpdump使用pcap-filter抓Vxlan包内数据

目录 1. 背景2. 参考3. 概念4. 环境5. 用法5.1 抓vxlan通讯中的icmp包5.2 tcpdump抓包命令解析5.2.1 tcpdump命令说明5.2.2 Vxlan协议报文解析 5.3 其他抓包例子5.3.1 抓包示例15.3.2 抓包示例2 1. 背景 看vxlan协议时&#xff0c;发现可以使用tcpdump高级用法&#xff08;pca…

Unity Samples和帧动画的问题

拖动序列帧图片和自己创建clip的帧率不同 我今天在创建帧动画的时候用了两种方式第一种是直接拖动序列帧图片到Hierachy&#xff0c;然后生成的第二种是这样我发现两者播放的动画速率不一样最后查了半天查不到原因。最后发现是Samples的原因&#xff0c;而且Unity把Samples这个…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

b站小土堆pytorch学习记录—— P25-P26 网络模型的使用和修改、保存和读取

文章目录 一、修改1.方法2.代码 二、保存和读取1.方法2.代码&#xff08;1&#xff09;保存&#xff08;2&#xff09;加载 3.陷阱 一、修改 1.方法 add_module(name: str, module: Module) -> None name 是要添加的子模块的名称。 module 是要添加的子模块。 调用 add_m…

Android车载开发之AAOS快速入门

一、概述 在正式介绍Android Automotive OS之前,我们先弄清两个概念:Android Auto和Android Automotive OS。 Android Auto Android Auto 不是操作系统,而是一个应用或一个服务。当 Android 手机通过无线或有线方式连接到汽车时,Android 系统会将使用 Android Auto 服务…

python爬虫(一)

一、python中的NumPy模块&#xff08;数据的存储和处理&#xff09; 这里是下载完成之后的表现 &#xff08;1&#xff09;创建数组 1、使用array&#xff08;&#xff09;函数创建数组 使用array函数可以创建任意维度的的数组 下面是一个创建二维数组的代码示例 下面是代码…

每日五道java面试题之springMVC篇(一)

目录&#xff1a; 第一题. 什么是Spring MVC&#xff1f;简单介绍下你对Spring MVC的理解&#xff1f;第二题. Spring MVC的优点第三题. Spring MVC的主要组件&#xff1f;第四题. 什么是DispatcherServlet?第五题. 什么是Spring MVC框架的控制器&#xff1f; 第一题. 什么是S…

unity学习(49)——服务器三次注册限制以及数据库化角色信息4--角色信息数据库化

1.此处下断开始调试,list函数内就有问题&#xff1a; 2. 现在的问题是只读不写&#xff01;32行就是写入部分的代码&#xff1a; 3. 很奇怪&#xff0c;调试的时候确实是写进来了 程序正常执行后&#xff0c;文件中数据也没有消失 关闭服务器文件内容依旧正常。 players包含所…