批量下载CMIP6数据
本文介绍了如何批量下载 CMIP6 数据。
1. 注册并登录
- 打开CMIP6官网:https://esgf-node.llnl.gov/search/cmip6/;
- 点击网页右上角的 Create Account 注册账户;
- 进入注册界面,填写相关资料(只用填写加粗的必填部分),完成注册;
- 注册成功后登录帐号,会在右上角显示用户信息,并且可以使用 Data Chart 。
2. 选择数据
- 第一步,在左侧设置相应的条件选择自己需要的数据;
- 第二步,在 “Total Number of Result” 处可以看到搜索结果数;
- 第三步,设置页面显示结果数大于搜索结果数(这样能一次性将结果添加进 Data Cart 中);
- 第四步,点击 Add all displayed results to Data Cart ,将搜索结果添加进 Data Cart 中;
- 第五步,My Data Cart 后面的括号中显示搜索到的结果数,说明添加成功。
3. 获取下载链接
- 点击 My Data Cart ,进入数据车;
- 勾选 Select All Datasets ,并点击 WGET Script 打开脚本下载界面,下载所有 WGET 脚本;
为了获得更好的性能,ESGF 分别为每个数据中心生成 WGET 脚本,不同数据中心的数据下载速度不同,数据中心的数据节点状态可查看网址:https://esgf-node.llnl.gov/status/(或者点击右上角的 Data Nodes Status 查看)。
- 下载脚本时会出现如下状态,点击仍然发送即可下载;
实际上可以用WGET根据脚本直接批量下载,但是还没成功实现,因此采用了一个略麻烦的方法。
- 用 VS Code 或者记事本打开脚本,可以看到脚本中各文件的下载链接信息;
- 将脚本中所有链接复制出来保存到一个文本文件中(例如:从数据源 esgf-node.llnl.gov 中获取的链接保存为 gov.txt );
- 建议每个脚本中的链接单独复制保存,不要放在一起,这样有利于提高下载效率。
4. 清洗链接数据
- 从脚本中复制出的链接信息中(例如 gov.txt ),第一列为文件名,第二列为下载链接,之后的几列为验证信息(详见上图);
- 为了方便下载,需要清洗复制出来的信息(例如 gov.txt ),只提取下载链接并保存(例如 gov-url.txt )。
if __name__ == '__main__':fw = open("C:\\Users\\xxx\\Desktop\\gov-url.txt", 'w') # 创建url保存文件with open("C:\\Users\\xxx\\Desktop\\gov.txt", 'r') as fr: # 读取所有下载链接信息for line in fr.readlines(): # 按行读取line = line.strip('\n').split(' ') # 去掉换行符并分割url = line[1].replace("'", '') # 清洗并获取待下载地址fw.writelines(url + '\n') # 将下载地址写入保存文件中fw.close() # 关闭文件
5. 批量下载
通过Internet Download Manager(IDM)软件和迅雷批量下载数据。
(1)IDM 批量下载
- IDM 的安装和配置详见博客批量下载ERA5数据(Python+IDM);
- 复制清洗后的下载链接(例如 gov-url.txt );
- 打开 IDM 软件,点击左上角 任务 ,点击 从剪贴板中添加批量下载 ;
- 在批量下载界面中会显示每个待下载文件信息;
- 选择 所有文件保存至同一目录(即文件下载目录);
- 点击 全部选择 ,勾选所有文件;
- 点击 确定 ,在弹出的新窗口中点击 确定 即可将所有文件添加进队列中开始下载。
- 修改同时下载文件个数:在主界面点击 队列 - 主要下载队列 ,选择 队列中的文件 ,修改同时下载文件个数后,点击 应用 完成修改。
可能出现的特殊情况:
点击 从剪贴板中添加批量下载 后,文件类型和文件大小可能会出现“Error”或者为空的情况(如下图),首先检查一下数据中心的数据节点状态( https://esgf-node.llnl.gov/status/ ),如果没问题,尝试将下载链接的 http 修改为 https ,若问题没解决,则放到迅雷中下载。
(2)迅雷批量下载
不直接用迅雷的原因:(1)下载速度不如 IDM 快;(2)氪金才能变强(建议充值一个会员)
- 复制清洗后的下载链接(例如 gov-url.txt );
- 打开迅雷,点击左上角 新建 ,迅雷会自动从剪贴板中读取下载链接,点击 确定 ;
- 设置文件保存路径,点击 确定 ,开始下载。
6. 查漏与分组
下载过程中还需检查所有数据是否都完整下载,另外,下载完后还需对数据进行分组。下面提供两段代码分别用于查漏和数据分组。
(1)查漏
- 基于从WGET脚本中复制出来的链接信息进行检查(例如 gov.txt ),依次遍历每个文件名,判断是否在已下载文件中出现,如果没出现则为遗漏的文件,将其下载链接统一保存在一个文本文件中。
import osif __name__ == '__main__':fw = open("C:\\Users\\xxx\\Desktop\\remain.txt", 'w') # 存放未下载的数据链接with open("C:\\Users\\xxx\\Desktop\\gov.txt", 'r') as fr: # 读取所有下载链接信息for line in fr.readlines(): # 按行读取line = line.strip('\n').split(' ') # 去掉换行符并分割filename = line[0].replace("'", '') # 文件名url = line[1].replace("'", '') # 下载地址if filename not in os.listdir("F:\\CMIP6"): # 判断文件名是否在已下载文件中出现fw.writelines(url + '\n') # 将下载地址写入保存文件中fw.close() # 关闭文件
(2)分组
- 基于文件名中的信息对数据进行分组,选择分组依据,判断文件是否是这一类型,若是则移动到对应的文件夹内。
import os
import shutil'''
例如:tas_day_NorESM2-LM_ssp370_r1i1p1f1_gn_20150101-20201231.nc
按模式 NorESM2-LM 对数据分组
'''
if __name__ == '__main__':folderpath = "E:\\CMIP6" # 数据存放路径for filename in os.listdir(filepath): # 获取所有文件名并遍历groupname = filename.split('_')[2] # 分组的组名newpath = folderpath + '\\' + groupname # 新存放文件夹if not os.path.exists(newpath): # 判断文件夹是否存在os.mkdir(newpath) # 不存在则创建filepath = folderpath + '\\' + filename # 文件详细路径shutil.move(filepath, newpath) # 将文件移动到新文件夹中
7. 最后
- 内容仅供大家学习参考,若有不足之处,敬请大家批评指正!
批量下载CMIP6数据相关推荐
- 关于批量下载MODIS数据的坑
关于批量下载MODIS数据的坑与正确姿势 1. 第一个坑 1.1 Ladsweb的坑 由于之前做项目的时候去Ladsweb官网下载数据的时候还好好的,于是经过被批评改正之后回来就信心满满地去Ladsw ...
- python脚本--批量下载GNSS数据
文章目录 1. 前言 2. 思路 3. Talk is cheap 4. 总结 1. 前言 应某一瓜皮要求,为其写一个用于批量下载GNSS数据的脚本.恰好前几天研究过如何在教务系统中自动签到,便有了这 ...
- python之批量下载网页数据
python之批量下载网页数据 要下载如下网页所示数据,一个一个点下载繁琐,我们用python代码来批量下载. python代码: import urllib.request # url reques ...
- 批量下载ERA5数据(Python+IDM)
本文介绍了如何通过Python脚本和Internet Download Manager(IDM)软件批量下载ERA5数据. 1. ERA5数据简介 ERA5是第五代ECMWF大气再分析全球气候数据,该 ...
- 使用python批量下载天猫数据并进行合并(非爬虫)
使用python批量下载天猫数据并进行合并(非爬虫) 做电商运营少不了数据分析支持,无论是选品.选关键词.研究竞品还是开直通车.店铺引流都需要有数据支持.不过生意参谋虽然强大,但现在都只能显示&quo ...
- 再谈批量下载Modis数据之Google earth engine
再谈批量下载Modis数据之Google earth engine 最近在学习GEE,就拿Modis数据练个手.本文选用MOD13A1 NDVI产品为例,介绍如何通过gee来批量下载Modis数据到本 ...
- 【Linux-Windows】通过浏览器批量下载图像数据
[Linux-Windows]通过浏览器批量下载图像数据 1.背景 2.浏览器扩展 3.批量下载图像 1.背景 浏览器本博客选的是Microsoft Edge浏览器, Microsoft Edge由微 ...
- 批量下载ECMWF数据的正确姿势
前言 之所以要写这篇文章,是因为我发现网上这方面的教程比较重复并且有一些大家很关系的问题都没有给出解答.因此我希望自己写一篇指导文章,帮助那些想要批量下载ECMWF数据的小伙伴跳过各种坑,能用正确的姿 ...
- 用python批量下载modis数据的速度怎么样_MODIS数据的简介和下载(五)——应用密钥的Python脚本下载...
接上文,由于NASA官方弃用了FTP改用HTTPS服务,所以关于MODIS数据的下载方式有所改变.完整系列博客可以参照以下链接.本篇主要接着上一篇没有讲完的应用密钥的脚本下载介绍. 1 官方教程与说明 ...
- Cygwin的安装及csh的配置和使用(批量下载FNL数据方法)
安装软件 (1)软件下载官网:Cygwin (2)软件安装教程(不建议安装在C盘)(下面两个网址都是安装教程): Cygwin安装教程_Errol's Blog-CSDN博客_cygwin安装 --- ...
最新文章
- IIS监控--自动重启脚本工具
- 封装、继承和构造函数
- HTTP代理神器Fidder
- c# 学习笔记 (1) 类型转换
- bash: /etc/apt/sources.list: 权限不够的解决办法
- 4000字,25张精美交互图表,开启Plotly Express之旅!
- 如何使用设计模式来构造系统--(7)
- java api math_JAVA 函数 Math API
- bootstrap中导航、导航栏、表单及自定义表单
- java关于excel的导出_[转载]关于JAVA导出Excel
- LeetCode344反转字符串
- 原来查询语句还有这功能,累计变量值
- c语言进度条窗口,【C语言】进度条实现
- 编程基本功:如果可能,不用if,尽量使用switch
- 超强OCR文字识别软件首选ABBYY FineReader
- ldoce6 android,少儿英语学习词典 朗文当代LDOCE6双解词典
- 电脑自带的edge浏览器无法访问解决问题
- PPT打印预览无背景
- python海龟绘图画科比标志(turtle库)
- 安德斯.埃里克森 的研究