登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
数据下载由于业务需求,需要下载GFS数据,根据GFS提供的ftp地址可以访问并下载需要的数据。可以看到这个目录(https://ftpprd.ncep.noaa.gov/data/nccf/com/gfs/prod/)下提供有最近10天的数据。 随便打开一个时间目录,里面存有单个起报时间,多种格点精度,多个预报时次的数据。可以根据这里数据的完整地址下载数据。 虽然能够下载数据了,不过平时使用数据并不需要全部的要素和全球区域,是否能够下载裁剪的数据?
最后我找到了需要的网站(https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?dir=%2Fgfs.2019041600),不过在开始写文档的时候突然发现忘记哪里找到这网站的了T_T。
这个页面里可以选择不同预报时次,
可以选择不同的高度层,
可以选择不同的要素,
居然还可以进行区域裁剪,
这不正是我想要的吗! 点击Start download按钮,就开始了数据下载。
数据验证使用Panoply查看下载的数据的详情。可以看到得到的数据是我们根据要素进行筛选出来的,数据位置也是经过裁剪的。因此可以通过这个方法下载裁剪后的数据。
数据批量下载虽然成功下到了需要的数据,但是这需要多次点击,并输入对应的经纬度信息,单次下载还可以,如果要下载多个文件,或者定时下载的话就会特别繁琐。
这里考虑通过脚本软件来进行下载。首先,需要获取下载得到的数据的地址,从浏览器的下载页面中可以看到数据的原始路径。
https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t00z.pgrb2full.0p50.f003&all_lev=on&var_HGT=on&var_RH=on&var_TMP=on&var_UGRD=on&var_VGRD=on&subregion=&leftlon=50&rightlon=120&toplat=50&bottomlat=5&dir=%2Fgfs.2019041600
这个地址包含很多信息,仔细查看可以发现我们需要的格点精度:0p50,起报日期:2019041600,起报时间:t00z,预报时次:f003,要素信息:RH/UGRD/TMP/HGT/VGRD,高度层:all_lev=on,经纬度范围:leftlon=50&rightlon=120&toplat=50&bottomlat=5都包含了。
由于之前高度层选的全部,尝试修改其中的高度层信息,选择500mb和600mb,得到的url为https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t00z.pgrb2full.0p50.f003&lev_500_mb=on&lev_600_mb=on&var_HGT=on&var_RH=on&var_TMP=on&var_UGRD=on&var_VGRD=on&subregion=&leftlon=50&rightlon=120&toplat=50&bottomlat=5&dir=%2Fgfs.2019041600,高度层相关的lev_500_mb=on&lev_600_mb=on。
这次修改url中的信息,将500、600改为700、800,发现同样可以下载数据。
因此可以通过直接修改url中对应的参数来获取不同的数据。
编写程序来组成对应的url,使用urllib库来访问url进行数据下载。最后成功下到对应的数据。具体代码见github页面(https://github.com/epicstockings/Atmosphere/tree/master/data)。
对于特定数据的url拼接这里不做详细描述,大家根据自己的需求进行修改。我这边下载速度有点慢,没有测试是urllib库的原因还是别的,如果有人有更快的下载方法麻烦告诉我下。
另外在linux下面可以通过wegt进行下载,wget需要将url中的'&'替换为'\&',否则无法成功下载。 附:0.5度数据要素高度层说明文档:https://www.nco.ncep.noaa.gov/pmb/products/gfs/gfs.t00z.pgrb2.0p50.f006.shtml
|