#author("2022-10-05T14:22:00+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]]~ ※ ここの気象庁予報データは、研究教育の目的のために利用できます。 --- ファイル名の例 #style(class=table_left) | ファイル名の末尾 | 意味 |h |GSM_GPV_Rjp_L-pall_FD0000-0312_grib2.bin | 全球数値予報モデルGPV / 日本領域/気圧面についてのデータ/予報時間 | |MSM_GPV_Rjp_L-pall_FH00-15_grib2.bin | メソ数値予報モデルのGPV / 日本領域/気圧面についてのデータ/予報時間 00〜15時間 | #clear *** 扱い方 [#e62a6560] - 準備 ※ 個人的にはLinuxを使うが、授業なので、Windows を使うことを前提にして書く。 -- wgrib2~ 気象庁予報データは、grib2 という形式のデータで提供されている。これを netCDF 形式に変換するために、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") tim <- as.POSIXct(ncvar_get(nc, "time"),origin="1970-01-01",tz="Asia/Tokyo") -- 入っている変数(MSM_GPV_Rjp_L-pallの場合) #style(class=table_left) |変数名 | 意味 | 単位|h |HGT_500mb | 500hPa ジオポテンシャル高度| m | |UGRD_500mb | 500hPa 東向き風速 | m/s | |VGRD_500mb | 500hPa 北向き風速 | m/s | |TMP_500mb | 500hPa 気温 | K | |VVEL_500mb | 500hPa 鉛直速度 | Pa/s | |RH_500mb | 500hPa 相対湿度 | % | #clear -- 気圧面~ // 100, 150, 200, 250, 300, 400, 500, 600, 700, 800, 850, 900, 925, 950, 975, 1000 1000, 975, 950, 925, 900, 850, 800, 700, 600, 500, 400, 300, 250, 200, 150, 100 *** 作図例 [#a152da87] - 水平面内の等値線図 filled.contour( lon, lat, gph1000[,,1] ) -- 海岸線の追加~ 水平面内で図を描く場合には、地図を入れると見通しが良くなる。 --- 準備~ 次のコマンドを実行する。RStudio にパッケージがインストールされる。1回だけ行えば良い。 install.packages("devtools") 次のコマンドを実行する。RStudio を起動するたびに1回行えば良い。 library(devtools) source_url("https://www2.obirin.ac.jp/moriat/OpenData/addmap.R") --- 水平面内の図に地図を入れる例 filled.contour( lon, lat, gph1000[,,1], plot.axes={axis(1); axis(2); addmap()} ) - 特定の地点の値の時間変化~ 経度lon は、0.125°ごと、緯度lat は 0.1° ごとに入っている。緯度と経度を指定して、値の時間変化を図にする。 plot( tim, gph1000[lon=140.125,lat=35.7,], type='b') - 特定の経度の、緯度と時刻による値の変化 filled.contour( tim, lat, t(gph1000[lon=140.125,,]) ) *** データの加工 [#tfe53bc4] - 温位のデータを作る ** 連成振動 [#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); ~ #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] ** 過去の専攻演習(ゼミ)のページ [#vb16f810] -- [[2015年度>../Seminar2015]] -- [[2014年度>../Seminar2014]] -- [[2013年度>../Seminar2013]] -- [[2012年度>../Seminar2012]] -- [[2009年度>../Seminar2009]]