本文介紹在ERA5氣象數(shù)據(jù)的官方網站中,手動下載、Python代碼自動批量下載逐小時、逐日與逐月的ERA5氣象數(shù)據(jù)各類產品的快捷方法~
本文介紹在 ERA5 氣象數(shù)據(jù)的官方網站中, 手動 下載、 Python 代碼自動批量下載 逐小時 、 逐日 與 逐月 的 ERA5 氣象數(shù)據(jù)各類產品的快捷方法。
ERA5
(fifth generation ECMWF atmospheric reanalysis of the global climate)是由
歐洲中期天氣預報中心
(European Centre for Medium-Range Weather Forecasts,
ECMWF
)開發(fā)和維護的一種全球范圍內的高分辨率
大氣再分析數(shù)據(jù)集
,提供了多種氣象和氣候變量的連續(xù)、一致和高質量的數(shù)據(jù)。
ERA5
基于全球觀測數(shù)據(jù)、數(shù)值模型和物理參數(shù)化方案,通過數(shù)據(jù)同化和數(shù)值模擬的技術,對過去數(shù)十年(
1940
年至今)的天氣狀況進行再構建和模擬,從而生成了高時空分辨率的大氣和地表變量數(shù)據(jù)。
ERA5
提供了廣泛的氣象和氣候變量,包括溫度、濕度、風速、降水、云量、地表輻射等。這些數(shù)據(jù)以固定的時間間隔(
逐小時
或
逐月
)和空間分辨率(從數(shù)公里到數(shù)十公里)提供,可以用于氣候研究、天氣分析、氣候模型驗證、環(huán)境監(jiān)測等眾多應用領域。
我們可以通過
ERA5
的
官方網站
,或者在
谷歌地球引擎
等平臺中,下載這一氣象數(shù)據(jù)。由于在谷歌地球引擎中下載這一數(shù)據(jù)相對而言比較麻煩,而且速度也并不算友好,我們這里就主要介紹一下基于其
官方網站
,通過
手動下載
、
Python代碼下載
等
2
種方式,下載不同
ERA5
數(shù)據(jù)產品的方法。
首先,需要明確,我們一般常用的
ERA5
數(shù)據(jù)產品包括
ERA5
和
ERA5-Land
等
2
種;其中,前者
ERA5
包含全球全部區(qū)域,而后者
ERA5-Land
僅包含全球的
陸地
區(qū)域,但是后者的空間分辨率(最高是
0.1
°)要高于前者(最高為
0.25
°)。其次,在
ERA5
的官方網站,無論是上述的
ERA5
數(shù)據(jù),還是
ERA5-Land
數(shù)據(jù),我們通過
手動下載
或者
代碼下載
的方式,都只能直接下載到
逐小時
或
逐月
的氣象數(shù)據(jù);如果需要
逐日
的數(shù)據(jù),大家可以在其官方網站提供的
逐日統(tǒng)計數(shù)據(jù)計算工具
中加以自動計算后手動下載,或者是在
GEE
中下載,再或者就是先下載
逐小時
的數(shù)據(jù),然后自行撰寫代碼批量計算
逐日
或者
其他時間分辨率
的數(shù)據(jù)。當然,也還有一種用
Python
代碼批量下載
逐日
數(shù)據(jù)的方法,但是那個方法的速度受到網絡情況影響,我發(fā)現(xiàn)還不如我手動下載來得快,所以這里就沒有介紹;之后如果用到這個代碼了,就再和大家介紹一下。
同時,應該是在
2024
年的
09
月,
ERA5
數(shù)據(jù)官方網站做了改版,所以本文中的截圖有些和目前最新的網站可能有些不一致,但是整體操作流程是一樣的。后期我也會再更新一下本文中的截圖和具體細節(jié)部分。
需要注意,只要不是選擇用上述 逐日統(tǒng)計數(shù)據(jù)計算工具 來下載數(shù)據(jù),那么無論我們選擇 手動下載 數(shù)據(jù),還是用 Python 代碼 批量下載 數(shù)據(jù),都需要進行本部分的操作。
首先,我們找到需要下載的數(shù)據(jù)首頁,如下圖所示。
其次,如果我們沒有登錄的話,需要在上圖右上角所示的位置登錄或者注冊一下賬號。如下圖所示,我這里就新注冊一個賬號。
完成注冊后,需要在我們注冊時填寫的郵箱中激活一下賬號,如下圖所示。
隨后,登錄賬號即可;如下圖所示。
接下來,我們回到剛剛的數(shù)據(jù)首頁中,選擇“ Download data ”選項;如下圖所示。隨后,選擇當前數(shù)據(jù)產品對應的產品類型,一般情況下,我們選擇第一個,也就是“ Reanalysis ”選項就可以。
隨后,選擇我們需要的氣象數(shù)據(jù)指標;可以在“ Popular ”這一欄選擇用戶常用的熱門指標,也可以自己依據(jù)需要在下面的類別中搜索。如下圖所示。
接下來,選擇我們需要的年份和日期、時刻。這里需要注意,對于不同的 ERA5 產品,其能一次性下載的數(shù)量也是不同的;如下圖所示,我這張圖下載的是 ERA5 數(shù)據(jù),它就可以一次性選擇 多年 、 多月 的數(shù)據(jù);但是后面我下載 ERA5-Land 數(shù)據(jù),發(fā)現(xiàn)就不能多選年份和月份了,也就是說一次性只能下載 一年中一個月 的數(shù)據(jù)。這個可能是由于, ERA5-Land 數(shù)據(jù)的空間分辨率比較高,數(shù)據(jù)量更大,導致官方限制了 ERA5-Land 數(shù)據(jù)的一次性下載的限額。
隨后,選擇我們要下載的數(shù)據(jù)的空間覆蓋范圍,并選擇下載的數(shù)據(jù)格式(建議選擇
NetCDF
格式)如下圖所示。
隨后,選擇下圖中左上方的“ Accept terms ”選項。
至此,我們就完成了數(shù)據(jù)下載的準備部分工作。
首先,我們介紹一下手動下載的方法。手動下載其實就很簡單了,在完成上一個“ Accept terms ”選項步驟之后,上圖右下角就會變成下圖右下角所示的“ Submit Form ”選項;選擇這一項即可。這個的意思是,將我們前面配置好的下載信息作為一個請求,發(fā)給服務器,服務器只要處理好這個請求,我們就可以開始下載了。
隨后,可以在新的界面中,看到我們剛剛發(fā)起的這個請求;如下圖所示。需要注意的是,此時我們只是將請求發(fā)送給了官方網站的服務器,服務器還需要一段時間來處理我們的請求。
如下圖所示,在提交了一個請求之后,我們可以用前文的方法再提交其他的請求;這些請求都在“ Your requests ”界面中有所顯示。
當服務器處理完畢我們的請求后,可以看到請求列表右側出現(xiàn)了“ Download ”選項,點擊它就可以下載數(shù)據(jù)了。
一般情況下,服務器處理我們請求的時間是不一定的,受到所要下載數(shù)據(jù)的大小、服務器繁忙情況等影響;如下圖所示,我這兩個請求,一個是不到
200 MB
的數(shù)據(jù),一個是不到
20 MB
的數(shù)據(jù),分別經過了將近
1
個小時、
20
分鐘才請求完畢、可以下載,這個速度不算很快。
接下來,我們介紹一下基于 Python 代碼 批量下載 數(shù)據(jù)的方法。
首先,我們進入這個 網頁 ;這里需要注意,進入這個網頁后,首先需要通過如下的超鏈接,重新注冊一下;我感覺這個步驟的意義就是將我們注冊好的 ERA5 官方網站賬號再賦一個 API 權限。
其中,如下圖所示,這里的“ Current password ”也要輸入。
隨后,我們進入這個 網站 ,并找到如下圖所示的網頁位置,將右側黑色區(qū)域內的全部信息復制一下。
接下來,我們還需要配置一下
Python
代碼中,用以下載
ERA5
數(shù)據(jù)的一個第三方庫
cdsapi
,也就是
ERA5
官方開發(fā)的、專門用來供
Python
代碼下載
ERA5
數(shù)據(jù)的庫。
配置
cdsapi
庫也是很簡單的。我們直接在
Python
環(huán)境的命令行中分別輸入如下代碼即可(如果大家沒有
conda
環(huán)境的話,可以用
pip
來安裝,具體方法參考
ERA5
的官方網站即可)。其中,第一句代碼用于在
conda
的配置文件中添加一個新的軟件源
channel
,即
conda-forge
;
conda-forge
是一個社區(qū)驅動的軟件源,提供了廣泛的開源軟件包,包括這個
cdsapi
庫。第二句代碼就是下載
cdsapi
庫。
conda config --add channels conda-forge
conda install cdsapi
運行上述代碼,如下圖所示。
我在第一次配置
cdsapi
庫的時候,出現(xiàn)了如下圖所示的報錯;這種問題一般就是沒有管理員權限導致的。
因此,選擇用管理員權限打開命令行,如下圖所示。
隨后,就配置好了
cdsapi
庫;如下圖所示。
接下來,我們需要找到
.cdsapirc
文件,并將前面我們復制的
url
和
key
復制到其中。這里需要注意,這個
.cdsapirc
文件,原理上在配置完畢
cdsapi
庫后,會自動出現(xiàn)在我們電腦中的
C:\Users\用戶名
文件夾內;如下圖所示。
但是實際上,有的時候我們在上述文件夾內是看不到這個文件的;這樣的話,我們可以在這個文件夾內新建一個
.txt
格式的文本文件,并將我們復制的
url
和
key
復制到其中,如下圖所示。
隨后,將這個
.txt
格式的文本文件重命名為
.cdsapirc
,如下圖所示。
隨后,我們回到前面 ERA5 官方網站中,設置下載數(shù)據(jù)屬性的那個網站,并選擇最左側的“ Show API request ”選項;如下圖所示。
隨后,會出現(xiàn)一個 Python 代碼;如下圖所示。我們將這個代碼復制到自己的 Python 語言的 IDE 中,執(zhí)行代碼即可。
復制后如下圖所示。
隨后,執(zhí)行上述復制后的代碼,如下圖所示?梢钥吹,已經開始代碼的下載了。
這里需要注意,下載的氣象數(shù)據(jù)默認保存在 Python 代碼所在的文件夾中;如下圖所示。
此外,我們通過上述方式獲取的數(shù)據(jù),其實也是一個向服務器發(fā)送的請求,也是需要首先處理請求、隨后在
Python
中開始下載的;我們同樣可以在“
Your requests
”頁面中看到我們通過
Python
下載數(shù)據(jù)的請求。下圖中,
Python
下載數(shù)據(jù)的請求處理數(shù)據(jù)為
0
,這個是因為對于同一個數(shù)據(jù),我先用手動下載的方式提交過一次請求了,服務器處理之后我又用
Python
提交了一次請求,所以
Python
下載數(shù)據(jù)時就不用了再重新處理請求了。
同時,當時還簡單對比了一下手動下載和 Python 下載的速度差異,但是感覺兩者速度差異不大,都不算很快;但是如果用手動下載的方法,提交并處理完畢請求后,用 IDM 等下載軟件來下載,速度就會很快——至少比用瀏覽器自帶的下載功能,或者 Python 下載,要明顯快很多。
至此,大功告成。