??本文介紹在ERA5氣象數(shù)據(jù)的官方網(wǎng)站中,手動(dòng)下載、Python代碼自動(dòng)批量下載逐小時(shí)、逐日與逐月的ERA5氣象數(shù)據(jù)各類產(chǎn)品的快捷方法。
??ERA5(fifth generation ECMWF atmospheric reanalysis of the global climate)是由歐洲中期天氣預(yù)報(bào)中心(European Centre for Medium-Range Weather Forecasts,ECMWF)開發(fā)和維護(hù)的一種全球范圍內(nèi)的高分辨率大氣再分析數(shù)據(jù)集,提供了多種氣象和氣候變量的連續(xù)、一致和高質(zhì)量的數(shù)據(jù)。ERA5基于全球觀測(cè)數(shù)據(jù)、數(shù)值模型和物理參數(shù)化方案,通過數(shù)據(jù)同化和數(shù)值模擬的技術(shù),對(duì)過去數(shù)十年(1940年至今)的天氣狀況進(jìn)行再構(gòu)建和模擬,從而生成了高時(shí)空分辨率的大氣和地表變量數(shù)據(jù)。ERA5提供了廣泛的氣象和氣候變量,包括溫度、濕度、風(fēng)速、降水、云量、地表輻射等。這些數(shù)據(jù)以固定的時(shí)間間隔(逐小時(shí)或逐月)和空間分辨率(從數(shù)公里到數(shù)十公里)提供,可以用于氣候研究、天氣分析、氣候模型驗(yàn)證、環(huán)境監(jiān)測(cè)等眾多應(yīng)用領(lǐng)域。
??我們可以通過ERA5的官方網(wǎng)站,或者在谷歌地球引擎等平臺(tái)中,下載這一氣象數(shù)據(jù)。由于在谷歌地球引擎中下載這一數(shù)據(jù)相對(duì)而言比較麻煩,而且速度也并不算友好,我們這里就主要介紹一下基于其官方網(wǎng)站,通過手動(dòng)下載、Python代碼下載等2種方式,下載不同ERA5數(shù)據(jù)產(chǎn)品的方法。
??首先,需要明確,我們一般常用的ERA5數(shù)據(jù)產(chǎn)品包括ERA5和ERA5-Land等2種;其中,前者ERA5包含全球全部區(qū)域,而后者ERA5-Land僅包含全球的陸地區(qū)域,但是后者的空間分辨率(最高是0.1 °)要高于前者(最高為0.25 °)。其次,在ERA5的官方網(wǎng)站,無論是上述的ERA5數(shù)據(jù),還是ERA5-Land數(shù)據(jù),我們通過手動(dòng)下載或者代碼下載的方式,都只能直接下載到逐小時(shí)或逐月的氣象數(shù)據(jù);如果需要逐日的數(shù)據(jù),大家可以在其官方網(wǎng)站提供的逐日統(tǒng)計(jì)數(shù)據(jù)計(jì)算工具中加以自動(dòng)計(jì)算后手動(dòng)下載,或者是在GEE中下載,再或者就是先下載逐小時(shí)的數(shù)據(jù),然后自行撰寫代碼批量計(jì)算逐日或者其他時(shí)間分辨率的數(shù)據(jù)。當(dāng)然,也還有一種用Python代碼批量下載逐日數(shù)據(jù)的方法,但是那個(gè)方法的速度受到網(wǎng)絡(luò)情況影響,我發(fā)現(xiàn)還不如我手動(dòng)下載來得快,所以這里就沒有介紹;之后如果用到這個(gè)代碼了,就再和大家介紹一下。
0 準(zhǔn)備工作
??需要注意,只要不是選擇用上述逐日統(tǒng)計(jì)數(shù)據(jù)計(jì)算工具來下載數(shù)據(jù),那么無論我們選擇手動(dòng)下載數(shù)據(jù),還是用Python代碼批量下載數(shù)據(jù),都需要進(jìn)行本部分的操作。
??首先,我們找到需要下載的數(shù)據(jù)首頁,如下圖所示。

??其次,如果我們沒有登錄的話,需要在上圖右上角所示的位置登錄或者注冊(cè)一下賬號(hào)。如下圖所示,我這里就新注冊(cè)一個(gè)賬號(hào)。

??完成注冊(cè)后,需要在我們注冊(cè)時(shí)填寫的郵箱中激活一下賬號(hào),如下圖所示。

??隨后,登錄賬號(hào)即可;如下圖所示。

??接下來,我們回到剛剛的數(shù)據(jù)首頁中,選擇“Download data”選項(xiàng);如下圖所示。隨后,選擇當(dāng)前數(shù)據(jù)產(chǎn)品對(duì)應(yīng)的產(chǎn)品類型,一般情況下,我們選擇第一個(gè),也就是“Reanalysis”選項(xiàng)就可以。

??隨后,選擇我們需要的氣象數(shù)據(jù)指標(biāo);可以在“Popular”這一欄選擇用戶常用的熱門指標(biāo),也可以自己依據(jù)需要在下面的類別中搜索。如下圖所示。

??接下來,選擇我們需要的年份和日期、時(shí)刻。這里需要注意,對(duì)于不同的ERA5產(chǎn)品,其能一次性下載的數(shù)量也是不同的;如下圖所示,我這張圖下載的是ERA5數(shù)據(jù),它就可以一次性選擇多年、多月的數(shù)據(jù);但是后面我下載ERA5-Land數(shù)據(jù),發(fā)現(xiàn)就不能多選年份和月份了,也就是說一次性只能下載一年中一個(gè)月的數(shù)據(jù)。這個(gè)可能是由于,ERA5-Land數(shù)據(jù)的空間分辨率比較高,數(shù)據(jù)量更大,導(dǎo)致官方限制了ERA5-Land數(shù)據(jù)的一次性下載的限額。

??隨后,選擇我們要下載的數(shù)據(jù)的空間覆蓋范圍,并選擇下載的數(shù)據(jù)格式(建議選擇NetCDF格式)如下圖所示。

??隨后,選擇下圖中左上方的“Accept terms”選項(xiàng)。

??至此,我們就完成了數(shù)據(jù)下載的準(zhǔn)備部分工作。
1 手動(dòng)下載
??首先,我們介紹一下手動(dòng)下載的方法。手動(dòng)下載其實(shí)就很簡(jiǎn)單了,在完成上一個(gè)“Accept terms”選項(xiàng)步驟之后,上圖右下角就會(huì)變成下圖右下角所示的“Submit Form”選項(xiàng);選擇這一項(xiàng)即可。這個(gè)的意思是,將我們前面配置好的下載信息作為一個(gè)請(qǐng)求,發(fā)給服務(wù)器,服務(wù)器只要處理好這個(gè)請(qǐng)求,我們就可以開始下載了。

??隨后,可以在新的界面中,看到我們剛剛發(fā)起的這個(gè)請(qǐng)求;如下圖所示。需要注意的是,此時(shí)我們只是將請(qǐng)求發(fā)送給了官方網(wǎng)站的服務(wù)器,服務(wù)器還需要一段時(shí)間來處理我們的請(qǐng)求。

??如下圖所示,在提交了一個(gè)請(qǐng)求之后,我們可以用前文的方法再提交其他的請(qǐng)求;這些請(qǐng)求都在“Your requests”界面中有所顯示。

??當(dāng)服務(wù)器處理完畢我們的請(qǐng)求后,可以看到請(qǐng)求列表右側(cè)出現(xiàn)了“Download”選項(xiàng),點(diǎn)擊它就可以下載數(shù)據(jù)了。

??一般情況下,服務(wù)器處理我們請(qǐng)求的時(shí)間是不一定的,受到所要下載數(shù)據(jù)的大小、服務(wù)器繁忙情況等影響;如下圖所示,我這兩個(gè)請(qǐng)求,一個(gè)是不到200 MB的數(shù)據(jù),一個(gè)是不到20 MB的數(shù)據(jù),分別經(jīng)過了將近1個(gè)小時(shí)、20分鐘才請(qǐng)求完畢、可以下載,這個(gè)速度不算很快。

2 基于Python下載
??接下來,我們介紹一下基于Python代碼批量下載數(shù)據(jù)的方法。
??首先,我們進(jìn)入這個(gè)網(wǎng)頁;這里需要注意,進(jìn)入這個(gè)網(wǎng)頁后,首先需要通過如下的超鏈接,重新注冊(cè)一下;我感覺這個(gè)步驟的意義就是將我們注冊(cè)好的ERA5官方網(wǎng)站賬號(hào)再賦一個(gè)API權(quán)限。

??其中,如下圖所示,這里的“Current password”也要輸入。

??隨后,我們進(jìn)入這個(gè)網(wǎng)站,并找到如下圖所示的網(wǎng)頁位置,將右側(cè)黑色區(qū)域內(nèi)的全部信息復(fù)制一下。

??接下來,我們還需要配置一下Python代碼中,用以下載ERA5數(shù)據(jù)的一個(gè)第三方庫cdsapi,也就是ERA5官方開發(fā)的、專門用來供Python代碼下載ERA5數(shù)據(jù)的庫。如果大家此時(shí)還沒有Python環(huán)境,則可以基于文章Anaconda環(huán)境與Python語言的下載與安裝中提到的方法來配置代碼環(huán)境。
??接下來,我們配置cdsapi庫;如果需要在虛擬環(huán)境中下載這個(gè)庫,大家可以參考文章Anaconda創(chuàng)建、使用Python虛擬環(huán)境中提到的方法,創(chuàng)建新的虛擬環(huán)境后再用如下的方法來配置這個(gè)庫。
??配置cdsapi庫也是很簡(jiǎn)單的。我們直接在Python環(huán)境的命令行中分別輸入如下代碼即可(如果大家沒有conda環(huán)境的話,可以用pip來安裝,具體方法參考ERA5的官方網(wǎng)站即可)。其中,第一句代碼用于在conda的配置文件中添加一個(gè)新的軟件源channel,即conda-forge;conda-forge是一個(gè)社區(qū)驅(qū)動(dòng)的軟件源,提供了廣泛的開源軟件包,包括這個(gè)cdsapi庫。第二句代碼就是下載cdsapi庫。
conda config --add channels conda-forge
conda install cdsapi
??運(yùn)行上述代碼,如下圖所示。

??我在第一次配置cdsapi庫的時(shí)候,出現(xiàn)了如下圖所示的報(bào)錯(cuò);這種問題一般就是沒有管理員權(quán)限導(dǎo)致的。

??因此,選擇用管理員權(quán)限打開命令行,如下圖所示。

??隨后,就配置好了cdsapi庫;如下圖所示。

??接下來,我們需要找到.cdsapirc文件,并將前面我們復(fù)制的url和key復(fù)制到其中。這里需要注意,這個(gè).cdsapirc文件,原理上在配置完畢cdsapi庫后,會(huì)自動(dòng)出現(xiàn)在我們電腦中的C:\Users\用戶名文件夾內(nèi);如下圖所示。

??但是實(shí)際上,有的時(shí)候我們?cè)谏鲜鑫募A內(nèi)是看不到這個(gè)文件的;這樣的話,我們可以在這個(gè)文件夾內(nèi)新建一個(gè).txt格式的文本文件,并將我們復(fù)制的url和key復(fù)制到其中,如下圖所示。

??隨后,將這個(gè).txt格式的文本文件重命名為.cdsapirc,如下圖所示。

??隨后,我們回到前面ERA5官方網(wǎng)站中,設(shè)置下載數(shù)據(jù)屬性的那個(gè)網(wǎng)站,并選擇最左側(cè)的“Show API request”選項(xiàng);如下圖所示。

??隨后,會(huì)出現(xiàn)一個(gè)Python代碼;如下圖所示。我們將這個(gè)代碼復(fù)制到自己的Python語言的IDE中,執(zhí)行代碼即可。

??復(fù)制后如下圖所示。

??隨后,執(zhí)行上述復(fù)制后的代碼,如下圖所示??梢钥吹剑呀?jīng)開始代碼的下載了。

??這里需要注意,下載的氣象數(shù)據(jù)默認(rèn)保存在Python代碼所在的文件夾中;如下圖所示。

??此外,我們通過上述方式獲取的數(shù)據(jù),其實(shí)也是一個(gè)向服務(wù)器發(fā)送的請(qǐng)求,也是需要首先處理請(qǐng)求、隨后在Python中開始下載的;我們同樣可以在“Your requests”頁面中看到我們通過Python下載數(shù)據(jù)的請(qǐng)求。下圖中,Python下載數(shù)據(jù)的請(qǐng)求處理數(shù)據(jù)為0,這個(gè)是因?yàn)閷?duì)于同一個(gè)數(shù)據(jù),我先用手動(dòng)下載的方式提交過一次請(qǐng)求了,服務(wù)器處理之后我又用Python提交了一次請(qǐng)求,所以Python下載數(shù)據(jù)時(shí)就不用了再重新處理請(qǐng)求了。

??同時(shí),當(dāng)時(shí)還簡(jiǎn)單對(duì)比了一下手動(dòng)下載和Python下載的速度差異,但是感覺兩者速度差異不大,都不算很快;但是如果用手動(dòng)下載的方法,提交并處理完畢請(qǐng)求后,用IDM等下載軟件來下載,速度就會(huì)很快——至少比用瀏覽器自帶的下載功能,或者Python下載,要明顯快很多。
??至此,大功告成。