python处理era5_python环境下实现ERA5逐小时数据的自动下载和简单处理
ERA5提供的下载代码
#!/usr/bin/env python
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-land',
{
'format': 'netcdf',
'variable': [
'2m_temperature', 'leaf_area_index_high_vegetation', 'leaf_area_index_low_vegetation',
'snow_cover', 'soil_temperature_level_1', 'surface_pressure',
'total_precipitation', 'volumetric_soil_water_layer_1',
],
'year': [
'2015',
],
'month': [
'01',
],
'day': [
'01',
],
'time': [
'06:00',
],
},
'20150101.nc')
在ERA5提供的下载代码上做了些改动,可以实现逐小时下载。为了加速下载,还使用简单的多线程(根据电脑性能确定线程数目根据电脑性能确定线程数目)。Overview - CDO - Project Management Service在ERA5提供的下载代码上做了些改动,可以实现逐小时下载。为了加速下载,还使用简单的多线程(根据电脑性能确定线程数目根据电脑性能确定线程数目)。https://code.mpimet.mpg.de/projects/cdocode.mpimet.mpg.de
#!/usr/bin/env python3
import time
import multiprocessing
from multiprocessing import Pool
import cdsapi
def job1(z):
"""
:param z:
:return:
"""
return f(z[0], z[1])
def f(start,end):
c = cdsapi.Client()
ff=open('inputpar.filelist','r')
filelist=ff.read()
lines=filelist.split('\n')
# print(len(lines)-1)
for i in range(start,end,1):
fields = lines[i].split('-') #split data
year = fields[0]
month = fields[1]
day = fields[2]
print('Download %s-%s-%s data'% (year,month,day))
c.retrieve(
'reanalysis-era5-land',
{
'format': 'netcdf',
'variable': [
'2m_temperature',
],
'year': year,
'month': month,
'day': day,
'time': [
'12:00',
],
'format': 'netcdf'
},
'CDS%s%s%s'% (year,month,day)+'.nc')
print('Datafile CDS%s%s%s'% (year,month,day)+'.nc download successful')
# return start,end
if __name__ == '__main__':
time1=time.time()
pool = multiprocessing.Pool(16)##根据电脑性能确定线程数目:https://blog.csdn.net/weixin_45775343/article/details/102694881
data_list=[]
for i in range(10,70,10):
a,b=i-10,i
data_list.append((a,b))
print(data_list)
res = pool.map(job1, data_list)
time2=time.time()
print(res)
pool.close()
pool.join()
print('总共耗时:' + str(time2 - time1) + 's')
利用cdo选择和裁剪区域。Climate Data Operators (CDO)处理NC文件比较快捷,具体操作见官方说明文档Overview - CDO - Project Management ServiceOverview - CDO - Project Management Servicecode.mpimet.mpg.de
script_abs=$(readlink -f "$0")
script_dir=$(dirname $script_abs)
mkdir cutted
dir=./CDS
for file in $dir/*
do
new_file=${file##*/}
cdo selvar,t2m -sellonlatbox,0,360,-90,90 $file $script_dir/cutted/$new_file
done
为了加速数据处理,shell脚本可采用并行操作
bash data_selected1.sh &
bash data_selected2.sh &
wait
echo "Finish"
python处理era5_python环境下实现ERA5逐小时数据的自动下载和简单处理相关推荐
- Python TimedRotatingFileHandler 多进程环境下的问题和解决方法
Python TimedRotatingFileHandler 多进程环境下的问题和解决方法 原文:https://my.oschina.net/lionets/blog/796438 Python ...
- Windows+Python 3.6环境下安装PyQt4
Windows+Python 3.6环境下PyQt4安装不上 文章目录: 一.PyQt4安装不上 二.正确安装PyQt4库包 最近在写的程序需要用到UI界面显示,然后又闻PyQt4可以干这个事,然后走 ...
- python3.8与pyinstaller_pyinstaller 3.5 在python 3.8 环境下出现不兼容的问题
在python 3.8环境下使用pyinstaller 3.5版本打包制作*.exe文件总是如下报错, # pyinstaller -F abc.py ... 21100 INFO: checking ...
- Python在指定环境下安装第三方库的报错解决办法
Python在指定环境下安装第三方库的报错解决办法 在python安装第三方库时,如果直接打开cmd命令提示符,并输入下列安装命令,则会默认安装在base环境下 但base环境下的包新建的虚拟环境是无 ...
- 在windows环境下ftp服务器的文件上传和下载
在windows环境下ftp服务器的文件上传和下载 mo 一.上传本地文件 第一步:登录FTP服务器.在开始菜单中输入cmd,回车进入.输入ftp进入服务器,输入命令格式:open FTP服务器地址 ...
- ERA5-Land 逐小时数据_累积值(如辐射数据)处理的注意事项
目录 1.累积变量定义 2.累计值转换为瞬时值 2.1计算1小时内的平均瞬时辐射 2.2计算1天内的平均瞬时辐射 3.提取全天累积量的技巧 1.累积变量定义 ERA5数据文档中对"累积变量& ...
- linux安装python虚拟环境_linux环境下安装python虚拟环境及注意事项
创建python虚拟环境virtualenv.virtualenvwrapper 1,为什么需要搭建虚拟环境 由于当机器上两个项目依赖于相同包的不同版本时,会导致项目运行失败,此时可以安装虚拟环境 . ...
- linux中python安装_linux环境下的python安装过程图解(含setuptools)
这里我不想采用诸如ubuntu下的apt-get install方式进行python的安装,而是在linux下采用源码包的方式进行python的安装. 一.下载python源码包 打开ubuntu下的 ...
- python安装环境配置linux_[Python学习] Linux环境下的Python配置,必备库的安装配置...
1.默认Python安装情况 一般情况,Linux会预装Python的,版本较低,比如Ubuntu15的系统一般预装的是Python2.7.10. 使用命令:which python可以查看当前的py ...
最新文章
- hbase原理与实践_HBase 性能调优第一弹:内存篇
- python循环输入若干成绩_完美解决在oj中Python的循环输入问题
- mysql对数据库的操作_MySQL数据库对数据库的操作
- php常用功能代码,10段PHP常用功能代码(1)_PHP教程
- 浅入浅出 Android 安全 翻译完成!
- 请插入多卷集的最后一张磁盘_聊一聊插入排序和选择排序
- 自定义简单控件之标题控件
- Java直接遍历并读取zip压缩文件的内容以及错误处理
- 史上最简明八皇后问题分析与套路总结
- 手机的小窗口怎么弄_vivo怎么弄小窗口 vivo怎样弄小窗口
- tp6 阿里云短信接口 php
- 一份优秀的前端开发工程师简历是怎样的?
- Speedpdf——无需下载软件,就可以免费轻松搞定CAJ转word
- 导出 MySQL 数据库表结构设计文档
- 交叉编译arm版linaro-1.13.1-4.7-2013.03
- [Java并发-14] Future: 优雅的使用多线程
- http协议之response响应详解
- python web开发--web前端开发介绍
- 免抠图PNG素材网站
- 【LIDC-IDRI】 CT 肺结节 XML 标记特征良恶性标签PKL转储(一)
热门文章
- EasyAR-Web手把手基于官方demo的实现
- 软件加密系统Themida应用程序保护指南(四):虚拟机的选择
- 海鸥算法的改进及其在工程设计优化问题中的应用
- Yoga14s 2021锐龙集显版蓝牙失效问题的解决方法
- 网易邮箱大师 代收/发 Gmail 邮件教程
- 数据可视化之数据可视化展示平台
- 在linux用utorrent下载文件,教你在 Ubuntu 安装 uTorrent
- 进入Sic-Hub的办法
- JAVA调用mq时做心跳检测,[翻译]RabbitMQ 心跳
- debian、ubuntu:使用apt包管理器可能存在的问题! 让新手望而却步!