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

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