Thursday, 31 October 2024

氷河合宿その4a:ダウンロードしてみよう

まずはデータを一つダウンロードしてみましょう。
※ホームページ上でもダウンロードできますが、この後の「複数年のデータを連続で自動ダウンロード」をするために、Pythonスクリプトでダウンロードします。

https://cds.climate.copernicus.eu/

(画像はログインしてませんが)ログインした状態で、検索窓に「ERA5」と入力して検索すると、次の画面になるはず。

たくさんデータ候補が出てきますが、今回はお試しなので、「ERA5 monthly averaged data on single levels from 1940 to present」(地表面の月平均データ)を選択します。

Overviewのページを下にいくと、パラメータの説明があります。単位や時間インターバルの確認をする際に大事。その隣の「Download」を選択。
Product type「Monthly averaged reanalysis」を選択

Variable「(Poplularの)10m u-wind、10m v-wind、2m dewpoint temp.、2m temp.、Surface press.、Total precip.」と「(Radiation and heat)のSurface solar rad. downwards、Surface thermal rad. downwards」を選択(これらが質量収支モデルの入力パラメータ)
Year「どれか一年」を選択(複数年はダメ)
Month「Select all」で全部選択
Time「(唯一選択可能な)00:00」を選択
Geographical area「東西南北」の緯度経度を入力(ここではモンゴル西部:テストなので10°×10°くらいにしておきましょう)
Data format「NetCDF」を選択(GRIBの方が圧縮率いいのですが、入手後の扱いがNetCDFの方が簡単なので)
Download format「Unarchived(圧縮無し)」を選択

その下に、Terms of useがありますが、ログインしている状態で「承諾」をチェックすることができるはずなのでチェックを入れる。
API requestに「import cdsapi」から始まるスクリプトが表示されます。この下の方に「Copy」ボタンがあるのでそれをクリック。Sublime Textで新規ファイルを開いてペースト。
Textエディタで、下の方にある

"download_format": "unarchived"
}
(この行に)→「target = "test2020.nc"」を追記する(ファイル名はお好みで)
※サブフォルダ内に保存したいときは(data/test2020.nc)とかにする。

最後の行に
client.retrieve(dataset, request).download()
と書かれているところを
client.retrieve(dataset, request, target)#.download()
とする。(#はコメントアウトなので、単に削除してもOK)

これを「test.py」とか適当な名前をつけて(でも、拡張子は.pyで)ダウンロードをする作業フォルダに保存。

ダウンロードをする作業フォルダへいき、ターミナルを立ち上げる。Ubuntuの場合はファイルのないところか、一つ上の階層で作業フォルダを選択して右クリック→ターミナル。Windows11の場合は右クリックからターミナルを選択。

Window10は前回作ったコマンドプロンプトのショートカットを持ってきて立ち上げればよいと思う(確証無し)。
WSL/Ubuntuの場合はUbuntu on Windowsを立ち上げ、外部メディアの場合はマウントして、cdコマンドでそこにいく(もっと簡単なやり方があるかもしれない)。

「ipython」と打ち込み、Pythonを立ち上げる。
「run test.py」でダウンロード開始。
PCの設定、ダウンロードスクリプトに間違いがなければ、上記のような情報がバーッとでて、最後の方の「accepted」「running」あたりまで表示されます。

その後、しばらくすると※、上のスクリーンショットのようにダウンロードが始まるはず。

※どれくらい待つかは、要求したデータ量とサイトの込み具合でいろいろ。今回くらいだと数分だと思うけど、一時間くらいかかることもある。

合宿参加者で「うまくいかない」人は、エラーがバーッと出た画面をスクリーンショットして送ってください。

部外者の方はコメント欄にどうぞ(気が向いたら対応します)

No comments:

Post a Comment