前期準(zhǔn)備(煩)
裝好python
傳送 門!
去歐洲中心申請一個(gè)賬號(hào)
Python的前期配置
歐洲中心自帶教程傳送門
簡單來說,就是用python鏈接歐洲中心的api接口調(diào)用并下載數(shù)據(jù)
所以前期配置分兩步
1、讓電腦保留你的登錄用戶信息,并且可以讓Python識(shí)別、使用
2、Python安裝一個(gè)用于調(diào)用歐洲中心api接口的庫
下面介紹詳細(xì)步驟
第一步 獲取ECMWF的 Key
首先
登錄
歐洲中心官網(wǎng)
然后上一個(gè)傳送門就變成這樣
(我打了馬賽克)
你可以得到灰色區(qū)域里的
5
行代碼如下,
包括大括號(hào)
{
"url"
:
"https://api.ecmwf.int/v1"
,
"email"
:
"你的用戶名"
,
"key"
:
"你用戶名對應(yīng)的一串key(相當(dāng)于密碼)"
}
然后復(fù)制你網(wǎng)頁上的這5行
在你桌面創(chuàng)建一個(gè)TXT并粘貼進(jìn)去
保存并關(guān)閉TXT文件
重命名為
.ecmwfapirc.txt
,注意文件名開頭就有個(gè)
.
,后綴是
.txt
然后打開你的計(jì)算機(jī)、c盤、用戶文件夾
win7可能如圖
win10 可能是
C:\Users\
其中USERNAME是你激活win10的用戶名
把上一步的TXT移動(dòng)到這個(gè)目錄下,并重命名為
.ecmwfapirc
,即把后綴名給去掉
結(jié)果如圖:
第二步 安裝ecmwf-api-client庫
官網(wǎng)說明如圖
具體操作為
打開你的
Anaconda Promt
這個(gè)也是命令提示符形式的窗口,
win7不能復(fù)制粘貼只能手動(dòng)輸入,win10可以復(fù)制粘貼
輸入
pip install ecmwf-api-client
按下回車就裝好了
-------------------分割線--------------------
以上步驟為前期配置,配置好了就不用管了
之后的下載就寫腳本運(yùn)行腳本就好了
但是第一步一年要重復(fù)一次
-------------------分割線--------------------
歐洲中心(WCMWF)的Python下載方法
官網(wǎng)登錄
然后找到
Public Datasets
數(shù)據(jù)集傳送門
位勢場 資料下載
#
!
/
usr
/
bin
/
env python
from
ecmwfapi
import
ECMWFDataServer
# python 的庫 需提前安裝 也可以在prompt里pip安裝或conda安裝
server
=
ECMWFDataServer
(
)
server
.
retrieve
(
{
"class"
:
"ei"
,
"dataset"
:
"interim"
,
#數(shù)據(jù)集 不可更改
"date"
:
"19790101/19790201/19790301/19790401/19790501/19790601/19790701/19790801/19790901/19791001/19791101/19791201"
,
# date 時(shí)間 可自己挑選
"expver"
:
"1"
,
"grid"
:
"0.75/0.75"
,
# 網(wǎng)格精度 可以自己改
"levelist"
:
"500"
,
# 高度層 可自己改 如
200
/
300
/
500
"levtype"
:
"pl"
,
"param"
:
"129.128"
,
# 變量代碼 不可更改 格式為 xxx
.
xxx
"step"
:
"0"
,
# 數(shù)據(jù)時(shí)間步長 可更改
"stream"
:
"mnth"
,
"time"
:
"00:00:00"
,
# 每日數(shù)據(jù)時(shí)間 可更改
"type"
:
"an"
,
"target"
:
"output"
,
#文件下載位置 用完整路徑名代換output
# 注意:此下載數(shù)據(jù)格式默認(rèn)為grid格式 換成nc格式需添加一句
# “format”
:
“netcdf”
,
}
)
以下為下載數(shù)據(jù)的完整代碼
#
!
/
usr
/
bin
/
env python
time
=
''
mon
=
[
'01'
,
'02'
,
'03'
,
'04'
,
'05'
,
'06'
,
'07'
,
'08'
,
'09'
,
'10'
,
'11'
,
'12'
]
for
i
in
range
(
1979
,
2019
)
:
for
j
in
range
(
0
,
12
)
:
time
=
time
+
str
(
i
)
+
mon
[
j
]
+
'01/'
time
=
time
[
:
-
1
]
# 自己補(bǔ)足時(shí)間序列 注意:月平均數(shù)據(jù)的時(shí)間格式
19790101
,而
19070102
是錯(cuò)的
from
ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer
(
)
server
.
retrieve
(
{
"class"
:
"ei"
,
"dataset"
:
"interim"
,
"date"
:
time
,
"expver"
:
"1"
,
"grid"
:
"0.75/0.75"
,
"levelist"
:
"500"
,
"levtype"
:
"pl"
,
"param"
:
"129.128"
,
"step"
:
"0"
,
"stream"
:
"mnth"
,
"time"
:
"00:00:00"
,
"type"
:
"an"
,
"target"
:
"C:\\Users\\Administrator\\Desktop\\作業(yè)大白\\weishi79_18.nc"
,
"format"
:
"netcdf"
,
}
)
下載單日
(非月平均)
數(shù)據(jù)時(shí)
date的設(shè)置可以用to連接起始日期和截止日期
注意日期格式
"date"
:
"2017-01-01/to/2017-12-31"
,
即可批量下載2017年一年的逐日數(shù)據(jù)
注意
:下載的數(shù)據(jù)是放在一個(gè)文件里的
若想每個(gè)月的數(shù)據(jù)單獨(dú)存成一個(gè)nc文件,需掌握其他的python語法
例如:
!
/
usr
/
bin
/
env python
from ecmwfapi
import
ECMWFDataServer
server
=
ECMWFDataServer
(
)
for
i in
range
(
2000
,
2018
)
:
server
.
retrieve
(
{
"class"
:
"ei"
,
"dataset"
:
"interim"
,
"date"
:
"{ks}-01-01/to/{js}-12-31"
.
format
(
ks
=
i
,
js
=
i
)
,
"expver"
:
"1"
,
"grid"
:
"0.125/0.125"
,
"levtype"
:
"sfc"
,
"param"
:
"58.162/78.162"
,
"step"
:
"0"
,
"stream"
:
"oper"
,
"time"
:
"00:00:00"
,
"type"
:
"an"
,
"target"
:
"F:\\ecmwf\\%s.nc"
%
str
(
i
)
,
"format"
:
"netcdf"
}
)
以上為2018-2017年每年數(shù)據(jù)單獨(dú)存放
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
