爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 586|回复: 4

来使用python交互模式下载CMIP6数据吧

[复制链接]

新浪微博达人勋

发表于 2024-7-29 17:40:29 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
CMIP6,即第六次国际耦合模式比较计划(Coupled Model Intercomparison Project Phase 6),是一个国际合作项目,由世界气候研究计划(World Climate Research Programme, WCRP)下的气候模拟项目(Climate Model Intercomparison Project, CMIP)主导。CMIP6数据在气象科研工作中经常被使用。

所需下载的模式数量很多时,需先下载多个wget文件,然后再依次执行下载命令,这种方式需要占用大量的时间和精力,而且效率很低。

数据下载
该脚本旨在促进 CMIP6数据的下载。它提供了一个命令行界面,用于指定与您希望检索的数据相关的各种参数。
优点:
  • 简单,高效,只需要输入你想要的模式、实验、变量,即可开始下载,前提是输入正确
  • 并行下载方式下载数据,大大提升效率
  • 以更加方便的方式获取CMIP6数据的url
Requirements:
  • Python 3
  • wget
  • urllib
  • netCDF4
使用方法
  • 创建一个文件夹并将 cmip6_downloader.py 文件放入其中
  • 打开终端窗口并将目录更改为代码所在的文件夹
  • 输入python3 cmip6_downloader.py(您可以在交互模式下运行它或提供搜索参数)
现在,你可以使用网站中提供的任何搜索参数以纯命令行模式运行下载程序:--mip_era、--activity_id、--model_cohort、--product、--source_id、--institution_id、--source_type、 --nominal_resolution、--experiment_id、--sub_experiment_id、--variant_label、--grid_label、--table_id、--Frequency、--realm、--variable_id、--cf_standard_name、--data_node。
Use example:python3 cmip6_downloader.py --variable_id pr --frequency mon --experiment_id amip --variant_label r1i1p1f1 --source_id EC-Earth3
这里我们使用EC-Earth3模式举例子
  • 原因是该数据以一年一年输出,让手动下载该模式的人苦不堪言。
Output:1- Searching for records: https://aims2.llnl.gov/metagrid- ... ation%2Fsolr%2Bjson
2- 39 files found in 1 records. 0 of these files were already downloaded.
3- No previously downloaded files found
4- Fetching list of files to be downloaded...
https://aims2.llnl.gov/metagrid- ... set=0&type=File
5- 39/39 files added to download list
6- Writing list of files s_EC-Earth3_e_amip_vl_r1i1p1f1_f_mon_v_pr_files_url_list.txt
7- Downloading files...FINALLY
  Downloading file [1/39] http://esg-dn2.nsc.liu.se/thredd ... gr_197901-197912.nc
  Downloading file [2/39] http://esg-dn2.nsc.liu.se/thredd ... gr_198001-198012.nc
  Downloading file [4/39] http://esg-dn2.nsc.liu.se/thredd ... gr_198201-198212.nc
  Downloading file [5/39] http://esg-dn2.nsc.liu.se/thredd ... gr_198301-198312.nc
  Downloading file [6/39] http://esg-dn2.nsc.liu.se/thredd ... gr_198401-198412.nc
...
  Downloading file [39/39] http://esg-dn2.nsc.liu.se/thredd ... gr_201701-201712.nc
It looks like all 39 files were downloaded successfully
Done. Check the data/s_EC-Earth3_e_amip_vl_r1i1p1f1_f_mon_v_pr folder :)
All files no problem
下载完成后,每个数据会进行检查,如果数据存在hdf error将会删除,存在问题的数据名将会被打印且删除。
当你运行此脚本时,某些文件可能无法下载(自动回复:请不要使用迅雷等下载工具,点我查看下载帮助)(该脚本甚至会在第一次运行时再次下载它们),如果发生这种情况,你可以再次运行该脚本,提供相同的搜索参数,并且仅提供新的或以前失败的文件将被下载。
最后,我考虑到有人服务器网速可能很慢,脚本里将你所需要数据的url保存在了txt文件中,如你输入python3 cmip6_downloader.py --variable_id pr --frequency mon --experiment_id amip --variant_label r1i1p1f1 --source_id EC-Earth3,此时目录如图所示。

                               
登录/注册后可看大图
复制url_list里面的url到IDM下载器里面。
源代码可以从推文获取:https://mp.weixin.qq.com/s/mwoBaKWJpDR4HGaE-UO9mQ
欢迎各位贡献自己的力量,期待大家能够基于这些代码进一步探索和创新。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2024-7-30 10:23:35 | 显示全部楼层
{:eb502:}{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-8-4 15:08:43 | 显示全部楼层
太强了!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2024-8-4 19:10:16 | 显示全部楼层
可是已经有一个库做了这个了,叫accmip6
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-8-9 13:47:50 | 显示全部楼层
Lancelot 发表于 2024-8-4 19:10
可是已经有一个库做了这个了,叫accmip6

是的,不错,但是我们保存了url的txt
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表