#author("2022-10-01T15:53:06+09:00","external:moriat","moriat")
#author("2023-11-23T16:08:08+09:00","external:moriat","moriat")
#topicpath

* 専攻演習(ゼミ)  [#af46c217]
** 気象庁予報データ [#w398d185]
*** データの取得 [#l37191ba]
- [[京都大学生存圏研究所のデータアーカイブ>http://database.rish.kyoto-u.ac.jp/]]
-- [[気象庁データ>http://database.rish.kyoto-u.ac.jp/arch/jmadata/gpv-original.html]]の[[数値予報GPV>http://database.rish.kyoto-u.ac.jp/arch/jmadata/data/gpv/original/]]~
※ 予報モデルGPVのファイル名規則:[[気象業務支援センター/オンライン気象情報/ファイル形式データ>http://database.rish.kyoto-u.ac.jp/arch/jmadata/gpv-original.html]]の[[ファイル形式データ一覧表>http://www.jmbsc.or.jp/jp/online/file/F_filelist.pdf]]~
※ ここの気象庁予報データは、研究教育の目的のために利用できます。
*** 扱い方 [#e62a6560]
 ※ 個人的にはLinuxを使うが、授業なので、Windows を使うことを前提にして書く。
- 準備
** 春学期 [#a0cdef54]
→ [[講義のページ/Pythonのお勉強]]
** 秋学期 [#i70796e2]
*** JRA-3Q [#xfbd606d]
- JRA-3Qとは~
気象庁による新しい長期再解析データ (cf. [[気象庁第3次長期再解析(JRA-3Q)>https://jra.kishou.go.jp/JRA-3Q/index_ja.html]])
- データの入手
-- [[DIAS アカウント申請>https://auth.diasjp.net/account/public/ja/guest/]]
-- [[DIAS によるダウンロードページ>https://data.diasjp.net/dl/storages/filelist/dataset:645]]
- ファイル名 (cf. [[気象業務支援センターによる説明>http://www.jmbsc.or.jp/jp/offline/hd0025.html]])~
基本フルセットの場合
-- Const     不変データ
-- Clim9120   平年値
-- Hist/Monthly  月平均
-- Hist/Daily   日別~
|ファイル名 | 物理量 | 時間間隔(時刻)|h
|anl_surf125|  地表面解析値| 6 時間毎(00, 06, 12, 18UTC) |
|anl_snow125|  積雪深解析値| 日毎(18UTC) |
|anl_p125|  等圧面解析値 |6 時間毎(00, 06, 12, 18UTC) |
|anl_isentrop125|  等温位面解析値 |6 時間毎(00, 06, 12, 18UTC) |
|anl_land125|  陸面解析値 |6 時間毎(00, 06, 12, 18UTC) |
|fcst_surf125|  2 次元物理量瞬間値 |毎時(00, 01, ..., 23UTC)|
|fcst_land125|  陸面予報値 |毎時(00, 01, ..., 23UTC) |
|bnd_ocean125|  海面境界条件 |毎時(00, 01, ..., 23UTC) |
|fcst_phy2m125|  2 次元物理量平均値 |毎時(00(00〜01UTC の平均値), 01, ..., 23UTC)|
|fcst_phyland125|   陸面物理量平均値 |毎時(00(00〜01UTC の平均値), 01, ..., 23UTC) |

*** 気象庁予報データ [#z31c54ba]
- データについて~
-- 気象庁予報データとは~
気象庁が各種気象情報を提供するために数値計算を実行している。その実行結果を、気象予報業務を行うものに提供するためのデータ。~
基本的にはデータ提供に費用がかかりるため、購入するべきもの。しかし、教育・研究目的で公開されている。~
-- MSM~
全球予報モデル(GSM)に対して、日本近辺を計算したメソスケールモデル(MSM)とがある。
- Pythonでの扱い~
※ Rで扱う場合には、[[2022年度専攻演習のページ>../Seminar2022]]を参照のこと。
*** Python と Jupyter Notebook [#s62fef16]
- 背景~
Google Colaboratory は便利でパワフルだ。しかし、例えば長い処理を行うときにはタイムアウトを心配しなければならない。~
そこで、似たような環境を手元のノートパソコンで実現する。~
~
- インストール
-- Python(アップグレードも同じ手続きでできる。)~
--- [[Python.org>https://www.python.org/]] から、Downloads > Windows を選択し、Latest Python 3 Release - Python 3.X.X をクリックする。
--- 環境に合わせて、インストーラーをダウンロードする。64bit なら、Windows installer (64-bit)
--- ダウンロードされたファイルを実行する。~
□ Add python.exe to PATH にチェックを入れておく。~
そのうえで、"Install Now" をクリックする。
-- Jupyter Notebook~
--- Python のインストールを終えたあとで、コマンドプロンプトを開く。管理者である必要はない。
--- インストールのコマンドを入力。
 pip install notebook
--- "pip" の新しいバージョンがある、と、(英語で)表示されたら支持に従って更新しておく。
-- wgrib2~
気象庁予報データは、grib2 という形式のデータで提供されている。これを netCDF 形式に変換するために、wgrib2 コマンドが必要になる。
気象関係のデータを扱うために wgrib2 を導入する。~
wgrib2 は、grib2 形式のファイルを netCDF に変換するために用いる。~
pygrib というパッケージでも使えそうだが、インストールに失敗した。~
そこで、安心して作業するために、原因追求ではなく、wgrib2 を使うことに。
--- ダウンロード~
[[https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/Windows10/v3.1.1/>https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/Windows10/v3.1.1/]]からwgirb2.exe と、dll で終わるファイルをすべてダウンロードする。~
このとき、セキュリティーの警告が出る。すべて、「保存」を選択して保存する。
-- Rstudio
--- ダウンロードとインストール~
[[【2021年11月版】WindowsにR・RStudioをインストールする>https://qiita.com/otsukimi200624/items/b5d35ff3375a5e954878#:~:text=Rstudio%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&text=%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82-,%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%80%E3%83%96%E3%83%AB%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF,%E3%82%A6%E3%82%A3%E3%82%B6%E3%83%BC%E3%83%89%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82&text=%E3%81%B8%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF-,%E7%89%B9%E5%88%A5%E3%81%AA%E7%90%86%E7%94%B1%E3%81%8C%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%A0%B4%E6%89%80%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88,%E4%BD%9C%E6%A5%AD%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82]]などを参照しながらインストールする。~
RStudio だけでなく、R 自身もインストールすること。
--- ncdf4 ライブラリのインストール~
Rstudio を起動し、左下のコマンドプロンプトで
 install.packages("ncdf4")
と入力する。
--- 作業ディレクトリの特定~
Rstudio を起動すると、初期設定として、「ドキュメント」フォルダが利用される。他のファイルと混ざらないように、work ディレクトリを作成して、そこで作業する。~
Rstudio の右下の画面で、「New Folder」をクリックして、「work」と入力してOKボタンを押す。「work」フォルダが現れるので、そこをダブルクリックする。~
「New Folder」の右側に「More▼」があるので、これをクリックして、「Set As Working Directory」をクリックする。
--- wgrib2 の移動~
ダウンロードした wgrib2.exe と dll ファイルを、上述の ドキュメント以下の work ディレクトリに移動する。
-- データの取得と変換~
京都大学生存圏研究所では、気象庁の予報データなどのファイルを保存し、公開してくれている。教育・研究目的に利用できる。これをありがたく使わせていただく。
--- 気象庁の予報データ~
[[http://database.rish.kyoto-u.ac.jp/arch/jmadata/data/gpv/original/>http://database.rish.kyoto-u.ac.jp/arch/jmadata/data/gpv/original/]]から特定の日時を選択してダウンロードする。ファイルは、先程の work ディレクトリに移動しておく。ファイル名の意味については、…後日
--- データ形式の変換~
いろいろと面倒なので、Rstudio を立ち上げた状態で実行する。
 system("wgrib2 ダウンロードしたファイル.bin -netcdf 適当なファイル名.ncdf")
いかにもそれっぽい表示(日付とか、データの変数名とかの表示)がされたら、変換が成功した証である。
// -- ncview~
// quick look に適したプログラム。[[http://meteora.ucsd.edu/~pierce/ncview_home_page.html>http://meteora.ucsd.edu/~pierce/ncview_home_page.html]]から、
- データの扱い~
R で具体的に処理を始める。
 library(ncdf4)
 nc <- nc_open("適当なファイル名.ncdf")
 print(nc)
変数名(var) の一覧が表示されるので、その中から利用する変数を選ぶ。そのデータを読み込む。
 gph1000 <- ncvar_get(nc, "HGT_1000mb")
 lon <- ncvar_get(nc, "longitude")
 lat <- ncvar_get(nc, "latitude")
 filled.contour( lon, lat, gph1000[,,1] )

** 連成振動 [#v244da62]
#divregion()
[[Google Colaboratory>https://colab.research.google.com/drive/1mz7_XzDVadqZrEgyb-MnqFNvDDQZqW6y?usp=sharing]]を参照のこと~
(https://colab.research.google.com/drive/1mz7_XzDVadqZrEgyb-MnqFNvDDQZqW6y?usp=sharing)~
+ 一般の場合~
&ref(00anim.png);
+ 固有振動の場合(周期が長い方) ~
&ref(01anim.png);
+ 固有振動の場合(周期が短い方) ~
&ref(02anim.png);
[[NOAAのサイト>https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/]] から、Windows10 > v3.1.3 (最新版) へ移動し、wgrib2.exe をダウンロードする。
--- 移動~
コマンドプロンプトで、
 path
を実行すると、コマンド名だけでプログラムを実行できる場所が表示される。例えば、~
 C:\Users\ユーザー名\AppData\Local\Programs\Python\Python312\Scripts\
があるだろう。ここに、wgrib2.exe を移動する。エクスプローラーを開いて、上のパス(ディレクトリ名)をコピペしてそこを開き、貼り付ける。
-- Cygwin~
wgrib2.exe は、cygwin で提供されるライブラリ(DLL)を利用している。
--- ダウンロード~
[[Cygwinのサイト>https://cygwin.com/install.html]]からsetup-x86_64.exe をダウンロードして実行~
途中、どのサイトからダウンロードするかを尋ねられる。jp で終わるものを選ぶ。
--- パッケージの選択~
パッケージの選択画面(Select Packages)になったら、View を Full にして、
 gcc-fortran
 gcc-core
を skip から新しめのバージョンを選ぶ。次へ を繰り返してインストールする。
--- パスの設定~
コントロールパネル > システムの詳細設定の表示 > 環境変数 > Path を選んで編集~
新規で
 C:\cygwin64\bin
を追加
-- Visual Studio~
通常必要ないが、Cartopy のようなパッケージを導入する場合に必要になる。
--- ダウンロード~
[[Microsoftの公式サイト>https://visualstudio.microsoft.com/ja/downloads/]]からVisual Studioのインストーラーをダウンロードする。2022 が最新?
--- インストーラーの実行~
ダウンロードしたインストーラーを実行。ワークロードの選択では、「C++によるデスクトップ開発」を選択。~
インストールボタンをクリックする。
~
#enddivregion
** 群速度 [#ta8c521a]
#divregion()
#iframe(https://www.geogebra.org/calculator/fngegjkv?embed,style=width:800px;height:480px;)~
波数と振動数が、それぞれ、 $ \pm {\Delta k \over 2}, \pm {\Delta \omega \over 2} $  だけずれた2つの波があったとする。~
$ A \sin( (k + \Delta k/2) x - (\omega + \Delta \omega /2 )t ) $~
$ A \sin( (k - \Delta k/2) x - (\omega - \Delta \omega /2 )t ) $~
これらの波を足し合わせると、三角関数についての公式から、次のように変形できる。~
$ A \sin( (k + \Delta k/2) x - (\omega + \Delta \omega /2 )t ) + A \sin( (k - \Delta k/2) x - (\omega - \Delta \omega /2 )t ) $~
$ =2 A \sin( kx - \omega t ) \cos( \Delta k x - \Delta \omega t) $~
$ \cos $ で表される部分が、振幅の変調をあたえるようになっており、その部分は群速度$ \frac{\Delta \omega }{\Delta k} $で移動する。
#enddivregion
** [[2021年度受講生用ページ>../Seminar2021/219d0637]] [#t361cddb]
** 力学 [#l5faa403]
*** トピックス [#s2e4d7ae]
- [[円運動と曲率半径>https://robo.mydns.jp/Lecture/PDF/Mechanics/Circular.pdf]]
- [[曲率円に関するページ>https://www.intmath.com/applications-differentiation/8-radius-curvature.php]](外部へのリンク)
*** 国家公務員試験解答例 [#b61bf0d4]

-- パッケージのインストール
--- pip install pickleshare requests cartopy metpy netcdf4
~
- 実行
-- Jupyter Notebook の実行
--- コマンドプロンプトで次のコマンドを実行する。
 jupyter notebook
~
--- ブラウザを選択するように指示されたら、適当なブラウザを選ぶ。~
ユーザーインターフェースは、ブラウザで実現される。
--- Google Colaboratory と同様に、プログラムはセルごとに表示される。Shift+Enterで実行する。~
実行中は、ブラウザの画面右上の表示が
 Python 3 (ipykernel) ○
から
 Python 3 (ipykernel) ●
に変化する。実行が終わると、再び○になる。
~
-- ipynb ファイルをダブルクリックして開く~
Google Colaboratory のファイルをダウンロードすると、ipynb という拡張子がついたファイルがダウンロードされる。~
これをダブルクリップして開くようにしたい。~
--- jupyter-notebook.exe を探す。~
    例: C:\Users\mori\AppData\Local\Programs\Python\Python312\Scripts\
--- 当該ファイルがあるフォルダーをエクスプローラで開き、ファイルにポインタを合わせて右クリック~
--- プログラムから開く > 別のプログラムを選択 > その他のアプリ で、上の jupyter-notebook.exe を指定。~
   このとき、□ 常にこのアプリを使って… にチェックを入れておく。~
~
*** データを扱うサンプルプログラム [#c3fde59d]
| 目的  | Google Colaboratory | Jupyter Notebook |h
|レーダーエコー強度を取得して図にする|CENTER: [[●>https://colab.research.google.com/drive/1hlsyg7GOO8_SgRKndCmkwHe4LxqY-EF5?usp=sharing]] |CENTER: &ref(20231115_レーダーエコー強度の取得と表示.ipynb,,●);|
| 気象庁予報データの風速分布を図にする |CENTER: [[●>https://colab.research.google.com/drive/19sKiuSWS8ktugy2EQB_H3gX_hwP2RZui?usp=sharing]] |CENTER: &ref(20231117_気象庁の予報データから水平風速場を描く.ipynb,,●);|
| 静止画(png)を動画(mp4)に変換する|CENTER:[[●>https://colab.research.google.com/drive/1HUiftB7Z8dHd_ZvMSbZgvhuDrJVehNIU?usp=sharing]] |CENTER: &ref(20231122_静止画pngファイルから動画mp4ファイルを作る.ipynb,,●);|
** 過去の専攻演習(ゼミ)のページ [#vb16f810]
-- [[2022年度>../Seminar2022]]
-- [[2021年度>../Seminar2021]]
-- [[2015年度>../Seminar2015]]
-- [[2014年度>../Seminar2014]]
-- [[2013年度>../Seminar2013]]
-- [[2012年度>../Seminar2012]]
-- [[2009年度>../Seminar2009]]


トップ   新規 検索 最終更新   ヘルプ   最終更新のRSS