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」あたりまで表示されます。

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

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

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

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

Tuesday, 29 October 2024

氷河合宿その3b:ECMWF提供のコードをPCに登録:Windows編

ECMWFサイトでの下準備はOSに依存しないので、Ubuntu編の前編を参照してください。

Windowsの人は、「WindowsにAnaconda(もしくは別途Python)をインストールしてある」状態であることを前提にします。WSL/Ubuntuを使用している場合については、後述します。

sublime textで新規ファイル開き、そこに先ほどのECMWFのcdsapiに関するページに表示されていた二行の情報

url: https://cds.climate.copernicus.eu/api
key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

をコピペして【ここが肝心】「C:\Users\username」のフォルダに「.cdsapirc」として保存します。
※username(ユーザー名)はあなたのPC固有情報だからね。
※未確認だけど、ユーザー名は日本語でない方がよいはず。

確認がてら、上記のフォルダにいき、ファイルがあるか確認しましょう。

Windows10:
Windowsメニューから「Windowsシステムツール」にある「コマンドプロンプト」を右クリック。
「その他」から「ファイルの場所を開く」を選択すると、「コマンドプロンプト」へのショートカットが含まれたフォルダが開く。
「コマンドプロンプト」へのショートカットをコピーし、どこかよく使うフォルダにペースト(ついでにcmdとか、英語にしておこう)。
コピーしたショートカットを右クリックし、「プロパティ」を選択。
「ショートカット」タブの「作業フォルダー」に書かれている情報を全削除して保存


保存したショートカットは今後頻繁に使うので、どこにあるか把握しておきましょう。(私の場合はDドライブのトップに入れておいて、そこからコピペしてる)
ショートカットを上記の「C:\Users\username」にコピペし、ダブルクリックしてターミナルを立ち上げる。

Windows11:右クリックをして、「ターミナルを開く」を選択。(表れない場合は「そのほかのオプションを確認」で出るはず)

「pip install 'cdsapi>=0.7.2'」

でcdsapiのライブラリをインストール。Pythonがちゃんとインストールされているなら、ターミナルで上の「 」内をコピペしすれば行けるはず。これで準備完了。


WSL/Ubuntuの場合の保存先

動作確認まではできていませんが、たぶんここのはず。

なにかフォルダを開き、左のフォルダ一覧の下の方にある、「Linux」をクリックすると「Ubuntu」というネットワークっぽいフォルダがあるので、それを開く。すると、フォルダがたくさん表れるので、そこの「home」をクリック。中にはWSL/Ubuntuをインストールした時に設定した自身のユーザー名のフォルダがあるので、そこに「.cdsapirc」を保存/コピペする。
※素のUbuntuだとHomeなのに、WSL/Ubuntuの場合はユーザー名フォルダに保存するところがトリッキー

ちなみに、WSL/Ubuntuの立ち上げは、Windowsメニューの「Ubuntu on Windows」からおこなう。上記のLinux>Ubuntu>home>usernameでターミナルを立ち上げてもダメ。そこで動くのはWindowsに導入したAnacondaであって、WSL/Ubuntuではない。)

これでPCの設定はだいたいOK。次はERA5データの単発ダウンロードにトライしてみよう。

Friday, 25 October 2024

氷河合宿その3a:ECMWF提供のコードをPCに登録:Ubuntu編

お次はERA5を自動ダウンロードするために必要な情報を用意したPCに登録する作業です。

まずはこちらのサイトにいってください。

https://cds.climate.copernicus.eu/how-to-api

ログインしていない状態では、黄色の部分に<PERSONAL-ACCESS-TOKEN>と書かれているはずです。ログインしてからもう一度確認すると、
なにやら長い文字と数字が表示されているはずです。これは各自固有の情報なので、他人に教えないようにしましょう。
※ここまではOSによらず※

Ubuntuの人はホームフォルダを開きます。
右上の三本線マークをクリックして、「隠しファイルを表示する□」にチェックを入れると、「.cdsapirc」というファイルが出てくるので、これをsublime textで開き、そこに先ほどのページに表示されていた二行の情報

url: https://cds.climate.copernicus.eu/api
key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

をコピペして保存します。もしそんなファイルがない、という人は、とにかくsumlime textを立ち上げ、この二行をコピペし、ホームへ「.cdsapirc」という名前で保存します。

隠しファイルが表示される状態で、このファイルが見えているかどうかを確認できたらOK。

で、次の黒いところに書かれている、

「pip install 'cdsapi>=0.7.2'」

でcdsapiのライブラリをインストールします。ターミナルを立ち上げ、上の「 」内をコピペしすれば行けるはず。これで準備完了。

次回はいよいよ試しのダウンロードをやってみることにしましょう。
※その前に、3bとして「Windows編」を用意します。しばしお待ちを。


Thursday, 24 October 2024

氷河合宿その2:PCの用意

 ERA5データのダウンロードには時間がかかるため、専用のPCを用意することをお勧めします。一応Windowsでのやり方についての説明(関連サイトへのリンク)はつけますが、LinuxPCを推奨しています。

Ubuntuの場合
研究室などで使っていないPCにUbuntuをインストールしましょう。「ubuntu インストール」で検索して出てくるサイトを参考にしてください。【10/24追記】以前はdual bootでwin-linux併用PCにすることが流行ってましたが、最近は推奨されてないようです。

Windowsの場合
以下のサイトを参考に、WSLとUbuntuをWindowsPCにインストールしてください。
https://learn.microsoft.com/ja-jp/windows/wsl/install
https://highreso.jp/edgehub/machinelearning/windowsubuntu.html

【10/24追記】
WindowsにWSL/Ubuntuをインストールしなくても、Anacondaで大丈夫なことが確認できました。以下を参考にインストールして、netcdfを入れてください。
https://www.python.jp/install/anaconda/windows/install.html

Windowsへのgfortranのインストールはこちらを参考にしてください。
https://labo-code.com/fortran/fortran-basics/install-gfortran-into-windows/

Macの場合
しばらく使ってないのでわかりませんが、MacのベースはLinuxなので、terminalを開けばUbuntuと同じことができるはずです。

テキストエディタのインストール
藤田のお勧めは「Sublime Text 4」です。
https://www.sublimetext.com/
pythonやfortranのコードを書く時に、主要コマンドに色がついて識別しやすかったり、ワード検索せずとも同じワードがどこにあるかがわかるので便利です。Package Controlで「Minimal Fortran」を入れておけば、本合宿の用途には十分機能します。Windows、Ubuntu、Macそれぞれに対応しています。

pythonのインストール
Ubuntuをインストールすれば、一緒にpythonもインストールされているはずです。が、Windowsの場合、Windows上にAnacondaやpythonが入っていても、WSL上のUbuntuでは利用できないので注意。
【10/25追記】
Windowsにしろ、(WSL上のも含む)Ubuntuにしろ、Anacondaをインストールしておくと、netcdfのインストールが楽なことが判明しました。以下を参考にしてください。

https://www.pc-koubou.jp/magazine/38846

netcdfのインストール
Anacondaが入っていれば、netcdf4のインストールはかなり簡単です。以下のリンク先の4を参照
http://www.rain.hyarc.nagoya-u.ac.jp/~nishii/tech/python3/install_anacon_py_win.html

同じく、gfortranもAnaconda上でインストールできるみたい
https://qiita.com/jsasaki/items/75de30f3f14a20886cd8

gcc、gfortranのインストール
以下のサイトを参照のこと。
https://mtkbirdman.com/ubuntu-gcc-gfortran-install
https://www.linuxmania.jp/aptget-site.html#gsc.tab=0

netcdfのインストール
pythonでnetcdfファイルをいじるために必要。各自検索してインストール。
https://aquabreath.jp/2022/10/12/netcdf4

wgribのインストール
ERA5のデータをダウンロードした後に、あれこれいじるために必要。こちらを参照のこと。
http://www.hysk.sakura.ne.jp/Linux_tips/GRIBwgribInfo
gccがインストールされている必要がある。
【10/24追記:netcdfが手に入れば、あとは自分で何とか出来る、という人はスルーしてOK】


Wednesday, 23 October 2024

氷河合宿その1:ECMWFへの登録

まずはERA5データをダウンロードできるようにしましょう。昨今では、Google Earth Engineなどでも指定ポイントのデータをゲットできるようですが、ここではある程度広い領域、長い期間のデータを一括してダウンロードし、扱えるようになることを目指します。

で、準備をしていて驚いたのが、ごく最近(8月?)、ERA5のダウンロードの仕組みやコードが大幅に改訂され、過去に利用していたスクリプトが使えなくなったこと、また、データそのものも一部改良&差替えがおこなわれたとのことです。

なので、講師側も一から習得し直ししながら本資料を用意しています。過去にダウンロードできていた人も、ここ最近使っていなかった場合はいろいろやり直すことがあります。

最初にECMWFにユーザー登録します。下記のサイトにアクセスします。

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


右上のlogin/registerをクリック

このポップアップが出てくるので、【I understand】をクリック。(Create an ECMWF account をクリックすると、上位ページに飛ばされて迷子になるので注意)

すでにアカウントを持っている人はLog in、持ってない人はRegisterへいって登録。

ログインが済んだら、最初のページに戻り、検索窓に「ERA5」を入れて検索します。

この画面が出てきたら、とりあえずの登録作業は終了。

次は、ダウンロードするパソコンの準備に取り掛かります。

氷河合宿その0:はじめに

 雪氷学会の分科会「氷河情報センター」が「氷河分科会」に改名された記念?として、分科会会員のスキルアップを目的とする「氷河合宿」を実施することになりました。

とはいえ、氷河に行って観測するにはお金も時間もありませんので、本合宿では、

・ERA5データの【自動】ダウンロード
・バイナリデータからテキストデータの抽出
・気温データの標高補正
・ERA5と観測データの比較
・質量収支モデルの実行
・結果の比較と調整方法

をおこないます。後々のために、長らく休眠していた本ブログを資料置場とし、ダウンロードのためのスクリプトなどを公開しようと思います。

対面合宿(11/21-22)までにどこまで進めるかは、成り行き次第ですが、主催者としては、ERA5と観測データの比較を紹介してもらうところから始められるとよいな、と考えています。

合宿に参加者登録された人は、メールにて案内するスプレッドシートに、どこまでできたかをチェックしてください。

ではでは、よろしくお願いします。

ふじた