0. 码字不易,点赞加关注(公众号:WZZHHH,部分资料在公众号可以下载),使用请注明出处(根据我的研究方向,我会不断更新代码)。
1.计算PWV的方法一般采用有三种,GNSS ERA5、ERA5 PWV和探空站PWV(RS PWV)进行相互比较。
2.本博文使用ERA5数据集通过水平和垂直方向的补偿得到GNSS站点垂直方向的ERA5数据集,计算的GNSS站点上方的ERA5 PWV。
3.ERA5的下载方法在前面的博文,自行学习下载
4.下面是我的部分代码,具体获取请关注咸鱼:WZZHHH123
% GNSS上方的ERA5数据集的PWV
% 根据ERA5最底层高于或者低于GNSS站点,温度和气压内插或者外推
% 前置数据需要下载ERA5的位势、温度、相对湿度。下载方法在CSDN账号: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读取后数据存放
[station_x,~] = xlsread('D:\paper_write\paper_code\2\xls\station.xlsx'); % GNSS站点经纬度坐标
% ERA5边界选定的边界
lon_t = 100; lat_t = 40; % 例如lon_t = 100(经度最小);lat_t = 40(纬度最大)
resolution = 0.25; % ERA5分辨率0.25;ERAinterm分辨率0.75
%% ----------------------------NC数据读取-------------------------------
% 读取原始ERA5文件夹下所有nc数据
List = dir(fullfile(nc_path,'*.nc'));
pwvera5=[];
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');