# Reanalysis data 下載教學 --- Author : 蘇奕翰 s1000210hank@icloud.com :::info **早安 這是再分析資料的下載手冊 內容僅包含再分析資料的下載 並不提供使用再分析資料的方法** ::: --- [toc] # 網頁註冊以及金鑰設置 ## 步驟 1. 以下是**ECMWF**官網的再分析資料列表 可以在裡面看到不同的再分析資料 https://www.ecmwf.int/en/forecasts/datasets/browse-reanalysis-datasets 建議進行註冊 才可以使用除了常用的**ERA5**以外的資料 紅框標示處會進入到該再分析資料所提供的產品區 與下面黑底方塊中 由ECMWF直接提供的資料不同 ![](https://i.imgur.com/i8snog3.png) 2. 點擊進入**Climate Data Store**的網頁後會看到以下畫面 https://cds.climate.copernicus.eu/cdsapp#!/home 首先需要先點擊右上角進行註冊 註冊完後點擊畫面紅框處 進入**API**的說明文中 ![](https://i.imgur.com/k0YOrLT.png) 3. 註冊後該處會顯示一串**網址**以及一串**API**如紅框處 暫時先別關閉畫面 進行主機上的API金鑰設置 ![](https://i.imgur.com/upjFjio.png) 4. 若為**Linux系統**則按照左邊的提示進行操作 若為**Windows系統**則依照以下步驟進行 1. 開啟**命令提示字元** * `window + R` 後輸入 `cmd` 2. 輸入 `cd %USERPROFILE%` ==移動至使用者資料夾== 3. 輸入 `echo url: https://cds.climate.copernicus.eu/api/v2 >> .cdsapirc` 4. 複製API 5. 輸入 `echo 複製的API >> .cdsapirc` 6. 輸入 `type .cdsapirc` ==確認上述文字有成功輸入== [*Reference*](https://confluence.ecmwf.int/display/CKB/How+to+install+and+use+CDS+API+on+Windows) 5. 進入以下頁面進行認證 https://cds.climate.copernicus.eu/cdsapp/#!/terms/licence-to-use-copernicus-products ![](https://i.imgur.com/2nyZJk3.png) 6. 回到首頁 收尋框中輸入**ERA5**後可以得到以下產品 並自行尋找所需要的產品 點擊進去後即可進行下載 ![](https://i.imgur.com/gxoRCrd.png) --- # 使用 pyhton 下載 :::success **使用程式碼下載較為方便 不需要進入頁面即可下載 這邊則以 python 作為範例 前一個章節的帳號註冊以及金鑰設置仍然為必要手續 必須先完成才可以使用程式碼下載** **若尚未成為 python 使用者 可以參考這篇說明文件 [Python 初學者使用手冊](/sYA718fjS4GSb_OQpZRBhA)** ::: ## 步驟 1. 下載 [範例程式碼](https://drive.google.com/drive/folders/1ZbA7vnHD5BB5_HacdHtrC0jrPrqmybFj?usp=sharing) 內含 `reanalysis_download.py`以及 `__example_meta.json` 2. 進入命令提示字元 下載 **cdsapi**, **pandas** * 輸入 `conda install -c conda-forge cdsapi` * 輸入 `conda install -c anaconda pandas` 3. `__example_meta.json` 為範例設定檔 以下將逐行解釋 最下面的表格是設定檔的參考網站 : [API 名稱及其他參數設定](https://confluence.ecmwf.int/display/CKB/Climate+Data+Store+%28CDS%29+API+Keywords) ```json= { 首行可以自己改名稱 代表意義為官網上看到的產品名稱 也可以改為自己的計畫名稱 "ERA5 monthly averaged data on single levels from 1979 to present" : { "__info" : "set start time and end time" "start" : "2020-05-01" 下載資料的開始時間 "final" : "2021-03-01" 下載資料的結束時間 這行是該產品的 API名稱 不可以改動 由提供的網址查詢 (Datasets Name) "__info" : "the product's API name, can not rewrite", "data_name" : "reanalysis-era5-single-levels-monthly-means", 該產品的資料時間解析度 目前有每月以及每小時的資料 "__info" : "data frequency, monthly, daily or hourly", "data_freq" : "monthly", 資料最重要的設定參數 以下的參數都可以在提供的網址查詢 "__info" : "year, month, time are the keywords you can not change", "setting" : { 產品的型式 必須與上面的 data_name 對應 "product_type" : "monthly_averaged_reanalysis", "format" : "netcdf", 資料格式 "area" : [25,115,20,125], 資料範圍 (N,W,S,E) "grid" : [0.25,0.25], 資料網格大小 (經,緯) 可用的變數 點擊 Datasets Name 的名稱即可連結到變數列 "variable" : ["10m_u_component_of_wind", "mean_sea_level_pressure"], "year" : "YYYY", 年分 勿改動 "month" : "MM", 月份 勿改動 "time" : ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"] 時間 勿改動 } } ``` ![](https://i.imgur.com/l1TsSbX.png) 4. `reanalysis_download.py` 為主程式 需在最下方輸入兩個參數後才可以執行 ```python= if __name__=='__main__': ## set project name ## the only two parameters you HAVE TO type in this code # 產品名稱或是自己的計畫名稱 與設定檔的第一行相同 PROJ_NAME = "" # 資料要下載到的地方 預設會在程式所在位置建立新資料夾存放資料 OUT_PATH = pth('.') run(PROJ_NAME,OUT_PATH) ``` 5. 於命令提示字元執行主程式 * `python reanalysis_download.py` 6. 若出現 **SSH error** 等字眼 則先執行以下命令 * `conda activate base` ## 範例 :::success 計畫名稱為 ***<font color="#00a3d9">test</font>*** 下載從 ***<font color="#00a3d9">2021-02-01 00:00:00</font>*** 到 ***<font color="#00a3d9">2021-02-07 00:00:00</font>*** 的 ***<font color="#00a3d9">hourly</font>*** 資料 要下載的資料名稱為 ***<font color="#00a3d9">reanalysis-era5-pressure-levels</font>*** 以 ***<font color="#00a3d9">netcdf4</font>*** 的格式下載 資料的形式為 ***<font color="#00a3d9">reanalysis</font>*** 範圍從 ***<font color="#00a3d9">$24^oN$</font>*** ~ ***<font color="#00a3d9">$25^oN$</font>***, ***<font color="#00a3d9">$120^oE$</font>*** ~ ***<font color="#00a3d9">$121^oE$</font>*** 空間解析度為 ***<font color="#00a3d9">$0.25^o$</font>*** X ***<font color="#00a3d9">$0.25^o$</font>*** 需要使用的變數有 ***<font color="#00a3d9">Specific humidity</font>*** 以及 ***<font color="#00a3d9">Temperature</font>*** 使用的壓力層為 ***<font color="#00a3d9">1,2,...,950,975,1000</font>*** ::: ```json= { "test" : { "__info" : "set start time and end time", "start" : "2021-02-01 00:00:00", "final" : "2021-02-07 00:00:00", "__info" : "the product's API name, can not rewrite", "data_name" : "reanalysis-era5-pressure-levels", "__info" : "data frequency, monthly, daily or hourly", "data_freq" : "hourly", "__info" : "year, month, time are the keywords you CAN NOT change", "setting" : { "product_type" : "reanalysis", "format" : "netcdf", "area" : [25,120,24,121], "grid" : [0.25,0.25], "variable" : ["Specific humidity","Temperature"], "pressure_level" : ["1","2","3","5","7","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"], "year" : "YYYY", "month" : "MM", "day" : "DD", "time" : ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"] } } } ``` --- # Reference https://confluence.ecmwf.int/display/CKB/General+articles