爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15669|回复: 8

[源代码] python下载EC-Interim再分析资料

[复制链接]
发表于 2019-5-7 20:32:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xunmengfei8 于 2019-5-7 23:02 编辑

该程序用于批量下载EC-Interim再分析资料,每次重新启动程序后,具备自检跳过已存在数据,下载不存在数据的功能。

Ec_Interim_Download0.5-z.py

2.92 KB, 下载次数: 34, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2019-5-7 22:42:43 | 显示全部楼层
Masterpiece 发表于 2019-5-7 20:43
????
这个玩意还要5个贡献?
官网上边能自动生成的脚本,这么做有点不够厚道吧?

第一次发帖子,还不会弄呢,望大家见谅。直接贴出来,大家看看,有用大家用用,不好勿喷。

import datetime
import os
import shutil
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
start_time = '19810101'
end_time = '20101231'
path = 'H:/ERA_Interim_daily0.5/'
pathout = 'D:/ERA-Interim-0.5/'

start = datetime.datetime.strptime(start_time,'%Y%m%d')
end = datetime.datetime.strptime(end_time,'%Y%m%d')
# print start
time = start
while time <= end:
    time = datetime.datetime.strftime(time,'%Y%m%d')
    dyear = time[:4]
    dmonth = time[4:6]
    dday = time[6:8]
    filepath = path + dyear +dmonth +dday+'.nc'
    filepathout = pathout + dyear + dmonth + dday + '.nc'
    print(filepath)
    if os.path.exists(filepath):
        print(os.path.getsize(filepath))
        if os.path.getsize(filepath)==399244228:
            time = datetime.datetime.strptime(time,'%Y%m%d')
        else:
            server.retrieve({
                'stream': 'oper',
                'levtype': 'pl',
                'param': '129.128/130.128/131.128/132.128/133.128/157.128',
                'dataset': 'interim',
                'step': '0',
                'grid': '0.50/0.50',
                'time': '00/06/12/18',
                'date': dyear +dmonth +dday,
                'type': 'an',
                'class': 'ei',
                'expver': '0001',
                'repres': 'SH',
                'levelist': '10/20/30/50/70/100/125/150/175/200/225/250/300/350/400/450/500/550/600/650/700/750/775/800/825/850/875/900/925/950/975/1000',
                'domain': 'G',
                'padding': '0',
                'format': 'netcdf',
                'target': filepath
                 })
            time = datetime.datetime.strptime(time,'%Y%m%d')
    else:
        server.retrieve({
            'stream': 'oper',
            'levtype': 'pl',
            'param': '129.128/130.128/131.128/132.128/133.128/157.128',
            'dataset': 'interim',
            'step': '0',
            'grid': '0.50/0.50',
            'time': '00/06/12/18',
            'date': dyear +dmonth +dday,
            'type': 'an',
            'class': 'ei',
            'expver': '0001',
            'repres': 'SH',
            'levelist': '10/20/30/50/70/100/125/150/175/200/225/250/300/350/400/450/500/550/600/650/700/750/775/800/825/850/875/900/925/950/975/1000',
            'domain': 'G',
            'padding': '0',
            'format': 'netcdf',
            'target': filepathout
             })
        shutil.move(filepathout,path)
        time = datetime.datetime.strptime(time,'%Y%m%d')
    time = time + datetime.timedelta(1)

密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

发表于 2019-5-7 20:43:40 | 显示全部楼层
????
这个玩意还要5个贡献?
官网上边能自动生成的脚本,这么做有点不够厚道吧?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-5-7 20:55:17 | 显示全部楼层
Masterpiece 发表于 2019-5-7 20:43
????
这个玩意还要5个贡献?
官网上边能自动生成的脚本,这么做有点不够厚道吧?

气象家园早就有人发过贴,如何用py批下载EC数据。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-7 22:40:25 | 显示全部楼层
Masterpiece 发表于 2019-5-7 20:43
????
这个玩意还要5个贡献?
官网上边能自动生成的脚本,这么做有点不够厚道吧?

第一次发帖子,还不会弄
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-5-8 08:43:39 | 显示全部楼层
不妨写个ERA5的吧,最新的高质量再分析数据。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-5-10 09:31:51 | 显示全部楼层
期待ERA5的脚本
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-5-14 09:08:43 | 显示全部楼层
嗯嗯,期待更新的脚本。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2019-5-14 15:12:38 | 显示全部楼层
不明觉厉,
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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