- 积分
- 2727
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-6-11
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 DDQZXB 于 2018-9-19 14:34 编辑
fnl_.grib2数据下载及处理
【一】数据下载
关于数据类型的介绍,论坛里已有不少帖子,这里不再赘述。
关于数据的下载,请依据论坛前辈的帖子(http://bbs.06climate.com/forum.php?mod=viewthread&tid=49645&page=1)
【二】数据提取
论坛也有不少内容,但本人非气象专业出身,Meteoinfo、GrADS、Fortran等统统没有接触过,因此在论坛遨游许久也没学会。
但本人曾于本科期间学过一段时间的Matlab,于是便从这个方面进行了尝试。
【注:以下内容对气象专业的各位大佬来说,简直就是小case。但对于非气象专业却又必须使用此类数据的萌新来讲,也许会有些许用处。大神勿喷】
数据下载之后,需要对数据内容进行分析。因此,首先需要进行数据的读取。此处使用Python即可实现。具体步骤如下:
1.准备工作
[size=13.3333px](1)安装Python(这个网站很详细:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316090478912dab2a3a9e8f4ed49d28854b292f85bb000)
(2)下载wgrib(用于读取grib1数据)、wgrib2(用于读取grib2数据)工具及相应.dll文件
(3)测试是否安装成功:“WIN+R”运行“cmd”进入wgrib2.所在文件位置(通过cd依次进入各级文件夹)并输入wgrib2.exe,出现如下信息即表示安装成功,可以运行。见图(wgrib成功提示)
本人是通过@edwardli 提供的附件运行成功的,在此表示感谢!! (原贴:http://bbs.06climate.com/forum.php?mod=viewthread&tid=41017) 2.数据读取
(1)安装Python及grib成功后,运行Python并输入“import os”进入os模块
(2)进入数据文件所在位置,如“os.chdir("E:\Software\wgrib2")”
(3)查看数据结构及内容:输入“os.system(r"wgrib2.exe D:\data.grib2 -v)”(此处,D:\为数据文件存储位置,为输入简化,此处把文件名改为“data”)
该数据文件所包含的所有数据内容均显示出来
(4)查看自己所需数据类型,并进行提取
如本人需要10mb 风U分量,即“UGRD 10mb”,可输入:os.system("wgrib2.exe D:\data.grib2 -match ':UGRD:10 mb' -csv UGRD10mb.csv"),即可将所需数据转成.csv数据格式并储存,结果见图(数据提取成功)
提取成功!
3.数据批量处理
有时需要多个气压高度的多种数据,需要批量提取。
本人通过Python.py文件实现了对单个数据多种变量的提取,如下:
import os
os.chdir("E:\Software\wgrib2")
os.system(r"wgrib2.exe D:\data.grib2 -v")
os.system("wgrib2.exe D:\data.grib2 -match ':UGRD:10 mb' -csv UGRD10mb.csv")
os.system("wgrib2.exe D:\data.grib2 -match ':VGRD:10 mb' -csv VGRD10mb.csv")
os.system("wgrib2.exe D:\data.grib2 -match ':HGT:10 mb' -csv HGT10mb.csv")
通过编写.py文件,复制多条命令即可实现。
.py文件可以用文本编辑器进行编辑(详见https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316399410395f704750ee9440228135925a6ca1dad8000)
在cmd中进入.py文件所在目录(如cd E:\ncep_matlab),输入“Python 文件名.py”即可运行该文件。
4.数据提取
通过以上提取的数据,保存为多个.csv文件,且每个csv文件中,只有部分数据是我们需要的,如本人仅需要“气压高度”、“经度”、“纬度”、“变量数据”四列。此处需用Matlab实现对批量数据的多变量提取。
具体代码如下:
D = dir('E:\NCEP_matlab\HGT');%进入数据所在目录
D=struct2cell(D);%结构体转细胞数组
aq=[];
aq1=[];
for i=3:length(D)
disp(strcat('now display....the...',num2str(i),'...step'));
[data,text]=xlsread(strcat('E:\NCEP_matlab\HGT\',char(D(1,i))));
data1=data((data(:,1)>=98&data(:,1)<=103&data(:,2)<=40&data(:,2)>=37),1:3);%提取特定经纬度范围及变量列
text1=text((data(:,1)>=98&data(:,1)<=103&data(:,2)<=40&data(:,2)>=37),4);%提取气压高度列
aq=[aq;data1];
aq1=[aq1;text1];
end
xlswrite('E:\NCEP_matlab\HGT\result',aq,'B:D');%生成excel
xlswrite('E:\NCEP_matlab\HGT\result',aq1,'A:A');
OK!成功,结果如图(Matlab提取成功)
成功提取每个数据文件中特定经纬度范围内的变量数据。
最后,感谢气象家园论坛对我的帮助!!
【附件中是利用Python提取数据变量的.py文件和批量提取变量的.m文件,有需要的可以下载哦,初次发帖,就不需要贡献了】
|
-
-
数据提取成功
-
Matlab提取成功
-
-
matlab_grib2.m
526 Bytes, 下载次数: 38, 下载积分: 金钱 -5
批量提取.csv文件
-
-
test.py
2.05 KB, 下载次数: 45, 下载积分: 金钱 -5
Python提取数据
|