IT pass HikiWiki - [Exp2023]GPhysスクリプト課題 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

[((<"スケジュール表・各回資料(08/09)"|[Exp2023]スケジュール表・各回資料#08-2F09>))]
= 提出について

* 提出期限: 09/12 (火) 23:59
* 修正期限: 09/22 (金) 17:00

== レポートの作成方法

* ((<ITPASS サーバでレポートを公開するには|[Exp2023]ITPASS サーバでレポートを公開するには>)) を参照してください. また, ((<簡単なレポートの書き方指南>)) も良く読みましょう.
* レポートの一番上に以下のことを必ず明記してください.
  * タイトル (例: ITPASS 実習レポート1)
  * 名前
    * 学籍番号は書かないでください.
  * 担当情報実験機名 (例: joho01)
* レポートの HTML ファイルの名前は index.html にしてください.
  複数の HTML ファイルを作る場合は, 以下の要件を満たすようにしてください.
  * index.html を表紙, 目次とする
  * どの HTML ファイルも index.html との相互リンクが張ってある
* ((<レポートのテンプレート|URL:/~itpass/exp/fy2023/230809/practice_kadai/html-samples/sample.html>))  を置いてあります. 自由に使ってもらってかまいません.
* HTML の書き方については実習の時間内では解説しません.
  Web や書籍などで書き方を調べてください.
  上記のテンプレートを参照するのもよいでしょう.
  これもレポートの一環としてがんばってください.
* 問題を全て解けるのが理想ですが, 解けない場合は, 未完成のスクリプトを提出し,
  どこまでできて, 何につまづいたかを詳しく解説してください.
  問題そのものができていなくても,
  きちんとした解説があるレポートには高い評価を与えます.
* 自力で頑張っても分からない場合は, 他の人が提出したレポート
  (実習のメーリングリストに投げられたレポート提出報告メールに
  書かれている (はずの) URL から見られます)
  を参考にすることを推奨します.
  その場合, 参考にしたレポートを参考資料に挙げるようにしてください.
  また, 丸写しにするのではなく, 自分なりの改良も加えましょう.
* ((<2009 年のレポート課題|[Exp2009]シェルスクリプト課題>)), ((<2010 年のレポート課題|[Exp2010]シェルスクリプト課題>)), ((<2011 年のレポート課題|[Exp2011]シェルスクリプト課題>)), ((<2012 年のレポート課題|[Exp2012]シェルスクリプト課題>)), ((<2013 年のレポート課題|[Exp2013]シェルスクリプト課題>)), ((<2014 年のレポート課題|[Exp2014]シェルスクリプト課題>)), ((<2015 年のレポート課題|[Exp2015]シェルスクリプト課題>)), ((<2016 年のレポート課題|[Exp2016]シェルスクリプト課題>)), ((<2017 年のレポート課題|[Exp2017]シェルスクリプト課題>)), ((<2018 年のレポート課題|[Exp2018]シェルスクリプト課題>)), ((<2019 年のレポート課題|[Exp2019]シェルスクリプト課題>)), ((<2020 年のレポート課題|[Exp2020]GPhysスクリプト課題>)), ((<2021 年のレポート課題|[Exp2021]GPhysスクリプト課題>)), ((<2022 年のレポート課題|[Exp2022]GPhysスクリプト課題>))  も参考にしてみてください.

#=== 授業時間外のレポート作成について
#
#* 自宅, 学内から ITPASS サーバ (ika-itpass) にログインする場合,
#  ((<[TEBIKI]SSHサーバへの公開鍵認証によるログイン>)) を参考にして下さい.
#  * なお, 学外からは情報実験機 (johoXX-itpass) に直接ログインすることはできません. 学外からは itpass サーバ (itpass.scitec.kobe-u.ac.jp) にログインし, itpass サーバから情報実験機に ssh でログインしましょう.
#* 507 号室は, 部屋の使用予定がない限り許可なく使ってもらって構いません. ゼミなどで使用している場合も, その場で許可をとってもらえば使用してかまいません.
#  * 507 号室の使用予定は以下の予定表で確認できます.
#    * ((<507 号室の予約表|URL:https://itpass.scitec.kobe-u.ac.jp/~bldg3/hiki/hiki.cgi?507号室の予約管理>))
#* 507 号室への入室にあたり事前に許可は不要ですが,
#  鍵がかかっていて入れないことがあります. 希望者には鍵を貸し出しますので, TA にご一報ください.
#* 部屋を使用するときには, 506 号室 もしくは 508 号室にいる人に一言断ってから使用してください. ((<[Exp2019]実習部屋(507号室)の使い方>)) もよく読んでください.


==  レポートの提出方法

=== ファイルを置く

今回のレポートは全て
ITPASS サーバ (ika-itpass) の ~/public_html/report01/
以下に置いてください.
置き場所となるディレクトリは必要に応じて自分で作ってください.

情報実験機で作ったファイルを ITPASS サーバに転送するには scp というコマンドを使うとよいでしょう. 詳しくは man を見てください.
各ファイルの置き方は以下のようにしてください.

* html ファイルは ~/public_html/report01/ 以下に置く.
* スクリプトは ~/public_html/report01/scripts/ 以下に置く.
* 結果として出力されたファイルは
  ~/public_html/report01/results/ 以下に置く.
* 注意: 問題として配布するデータファイルは置かなくても結構です.
  ただし, どこからどうやって入手したかはレポート本文に明記しておきましょう.

=== ディレクトリ構造の例

/home/hoge/public_html/report01/
:
|-- index.html
|
|-- scripts/
|   `-- quiz1.rb.txt
|
|-- results/
|   |-- result1.png
|   :
:

* 上の例にある hoge は自分のアカウント名に置き換えてください.

=== アップロード確認

ブラウザから全部のファイルにアクセスできるか確認してみましょう.
例えば, ITPASS サーバ (ika-itpass) では,
~/public_html/report01/index.html に対応する URL は

  http://itpass.scitec.kobe-u.ac.jp/~(自分のアカウント名)/report01/index.html

になります.

=== 提出完了の報告

提出期限までに以下のメールを送ってください.
内容を確認した後, 修正すべき点があればその旨を連絡します.
修正完了後, 再度メールで報告してください.
こちらから, レポート提出完了のメールが送られた時点で
レポートを提出したことになります.

* メールの内容
  * 件名
    * 「ITPASS実習レポート 08/09 出題分 (自分の氏名)」
  * 宛先
    * itpass 実習のメーリングリスト
      * itpass-2023 -at- itpass.scitec.kobe-u.ac.jp (-at- は @ に変更すること)
  * メール本文に必ず記入すること
    * 情報実験機番号
    * 氏名
    * レポートの URL

= 必須課題

== 注意

再解析データはデータ容量が大きいことがあるので, スクリプトの作成と実行は必ず自分の担当する実験実習機で行ってください.


== 問題 1

((<NCEP/NCAR Reanalysis|URL:https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html>))のデータを用いて,
以下の八つの問題の中からどれか一つの図を描画するスクリプトを作成しなさい.
そして読み取れることを説明しなさい.


* 東太平洋赤道域における 1997 年 11 月と 1988 年 12 月の月平均海面水温の平年値からの偏差の分布
  * 現象の説明
    * 東太平洋の赤道域では, 海面水温が平年より高くなるエルニーニョ現象と, 平年より低くなるラニーニャ現象が数年おきに発生します. これらの現象は, 世界中の天候に影響を与えると考えられています.
  * 補足・ヒント
    * エルニーニョ発生時 (1997 年 11 月) とラニーニャ発生時 (1988 年 12 月)  それぞれの海面水温の偏差の分布を描画すると良いでしょう.
      * 1997 年 11 月は, 1997 年春に発生して 1998 年春に終息したエルニーニョ現象の最盛期に当たります.
      * 1988 年 12 月は, 1988 年春に発生して 1989 年春に終息したラニーニャ現象の最盛期に当たります.
    * 偏差は, (指定した月の海面水温) - (指定した年の前年までの 30 年間の各月の平均値) で計算してください.
      * 例えば, (1997 年 11 月の海面水温) - (1967 年から 1996 年の 11 月の海面水温の平均値) のように計算します.
    * ちなみに気象庁では、エルニーニョ監視海域(5ºS-5ºN, 150ºW-90ºW)の月平均海面水温の基準値(その年の前年までの 30 年間の各月の平均値)との差の 5 か月移動平均値(その月および前後 2 か月を含めた 5 か月の平均をとった値)が 6 か月以上連続して +0.5 度以上になった状態をエルニーニョ現象, −0.5 度以下となった場合をラニーニャ現象と定義しています.
  * 使用データファイルの候補
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/surface_gauss/skt.mon.mean.nc

* 赤道における東西平均東西風の高度分布の時間変化
  * 現象の説明
    * 成層圏の赤道域では, 東西風が約二年の周期で変化し, 成層圏準二年周期振動 (QBO: Quasi-biennial oscillation) と呼ばれています. これは, その特異な周期と構造から, 直観的にはその原因を理解し難い興味深い現象として知られています.
  * 補足・ヒント
    * 横軸を時間, 縦軸を圧力 (高度) として東西平均 (経度方向に平均) した東西風の分布を描画するとよいでしょう.
  * 使用データファイルの候補
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/pressure/uwnd.mon.mean.nc

* ある一年におけるアジアモンスーンの描画
  * 現象の説明
    * モンスーンとは, 季節によってその向きが交替する季節風のことです. この現象が特に顕著に現れる地域として, ユーラシア大陸の南部から東部にかけての地域が挙げられます. 季節風の向きの変化に伴い, これらの地域には雨季と乾季が訪れます.
  * 補足・ヒント
    * アジア地域が収まるような領域について, 好きな年を選び, 高度 10 m の東西風と南北風, そして降水量の月平均値を重ねて描画し, 12 枚の図をまとめて一つの動画を作成すると良いでしょう.
  * 使用データファイルの候補
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/surface_gauss/uwnd.10m.mon.mean.nc
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/surface_gauss/vwnd.10m.mon.mean.nc
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/surface_gauss/prate.sfc.mon.mean.nc

* 気象災害が発生した際の日本付近の降水量と風向の時間変化
  * 現象の説明
    * 気象災害とは, 大雨, 強風などの気象現象により生じる災害のことです. 2018 年 7 月の大雨や 2020 年 9 月に日本付近を通過した台風 10 号に伴う大雨などは気象災害の原因となりました.
    * これらの大雨の時間発展には, 周辺の風による水蒸気や雲水の供給・移流が重要な役割を果たしています.
  * 補足・ヒント
    * 2018 年 7 月の大雨, または 2020 年 9 月に日本付近を通過した台風のどちらかを取り上げ, 日本付近の降水量と風速ベクトルの分布を重ね描きし, その時間発展を示す動画を作成すると良いでしょう.
  * 使用データファイルの候補 (2018 年の場合)
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/surface_gauss/prate.sfc.gauss.2018.nc
#    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/surface_gauss/uwnd.10m.gauss.2018.nc
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/pressure/uwnd.2018.nc
#    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/surface_gauss/vwnd.10m.gauss.2018.nc
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/pressure/vwnd.2018.nc

* ある地点における気温と晴天時の太陽放射フラックスの関係
  * 現象の説明
    * 気温は様々な要因によって変化します. この変化の要因の一つが, 太陽に対する地軸の傾きに起因する入射太陽放射フラックス分布の季節変化です.
  * 補足・ヒント
    * 好きな地点について, 好きな年を選び, 日平均気温と晴天時の太陽放射フラックスの日平均値の散布図 (横軸と縦軸をそれぞれ日平均気温, 晴天時の太陽放射フラックスの日平均値としてデータ点をプロットする) を作成すると良いでしょう.
      * 散布図は,
          GGraph.scatter(X,Y)
        のように scatter メソッドに二つの GPhys オブジェクト X, Y を与えることで描くことができます.
    * 異なる地点の散布図も描いて, 比較考察するのも興味深いでしょう.
  * 使用データファイルの候補
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Dailies/surface_gauss/air.2m.gauss.2021.nc
    * https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Dailies/surface_gauss/csdsf.sfc.gauss.2021.nc

* 定常擾乱と時間変動する擾乱
   * 現象の説明
     * 大気中には, 地形の起伏や海陸分布によって励起される擾乱や, 不安定によって発達する擾乱などが存在します.そしてそれら擾乱による熱輸送・運動量輸送は大気中の温度や風速の分布を決定する上で重要な要因です.ここでは擾乱を定常な擾乱 (時間変動しない擾乱) とそれ以外(時間変動する擾乱) に分け,それぞれの様子を確認してみましょう.
   * 補足・ヒント
     * ある年の二カ月間 (例えば 2022 年 10, 11 月) の定常擾乱とそれ以外の擾乱の構造(位置, 形状, 振幅, 伝播速度等) を確認してみましょう.
     * ここでは海面更生気圧 (sea level pressure; slp) を用いて擾乱の構造を確認するとよいでしょう.海面更生気圧は,地形の起伏による気圧の変化を補正して平均海水面における気圧を推定したものです. 以下の方法で求められるでしょう.
       * 定常擾乱の構造は, 物理量を時間平均することで求められるでしょう.
       * 時間変動する擾乱の構造は, 元データから定常擾乱の成分を取り除く (引く)
         * 定常擾乱と比べて時間変動する擾乱の振幅はどの程度小さいでしょうか?/ 大きいでしょうか?
       * 定常擾乱の構造は横軸, 縦軸をそれぞれ経度と緯度とした静止画で確認できますが,時間変動する擾乱は伝播しますので動画にして様子を確認すると良いでしょう.
       * また, 大きな振幅の擾乱が存在する緯度に注目し, 横軸, 縦軸をそれぞれ経度,時間とした図を描くことで, 擾乱の経度伝播の様子を確認しても良いでしょう.
         * 擾乱はどの程度の速度で伝播しているでしょうか?
   * 使用データファイルの候補
      * wget
https://downloads.psl.noaa.gov//Datasets/ncep.reanalysis/surface/slp.2022.nc

* 火星大気の東西平均した子午面温度分布の季節変化
  * 現象の説明
    * 火星の大気の構造は様々な要因によって地球の大気とは異なっており, 温度の季節変化も地球とは異なる特徴を示します.
  * 補足・ヒント
    * 東西平均 (経度方向に平均) した温度を 1/12 火星年ごとに時間平均して 12 枚の図を描画し, それらをまとめることで季節変化の動画を作成すると良いでしょう.
      * 1 火星年が 669 火星日ですから, 1/12 火星年は約 56 火星日に対応します.
  * 使用データファイルの候補
    * この問題のみ例外的に NCEP/NCAR Reanalysis データを使わず, 惑星大気大循環モデル DCPAM を用いて行われた, 火星の実験の結果 ((<(こちら)|URL:http://itpass.scitec.kobe-u.ac.jp/~itpass/exp/fy2023/230809/practice_kadai/dcpam_mars/>)) を用います.
    * それぞれのファイルには一つの物理量の値が保存されています.
      * Temp.nc     : 大気温度
      * U.nc        : 東西風
      * V.nc        : 南北風
      * Ps.nc       : 地面気圧
      * SurfTemp.nc : 地面温度
    * ファイルに保存されたデータの時間間隔は 1/4 火星日であり, データの期間は1 火星年分 (669 火星日分) です. 時間軸の最初は火星の北半球の春分点に対応しています.
    * データの詳細はメタデータを確認しましょう.

* 2023 年台風 6 号の構造
   * 現象の説明
     * 台風は, 北西太平洋または南シナ海において発生し, 最大風速が約 17 m/s 以上となる熱帯低気圧です.台風は中心の気圧が周囲よりも低く, それに伴う中心向きの圧力傾度力とつり合う遠心力を生じる高速に回転する風によって特徴づけられ,およそ軸対称な構造を持っています.
   * 補足・ヒント
     * 2023 年 8 月 6 日に沖縄周辺で観測された台風 6 号について, その中心を通る断面の風速分布を確認してみましょう.具体的には,以下の二つの分布を描いてみましょう.
       * 台風の中心を通る緯度における南北風速の経度-高度 (圧力) 分布
       * 台風の中心を通る経度における東西風速の緯度-高度 (圧力) 分布
       * 台風の風速はどの領域が強くなっているでしょうか?
      * 台風の構造はどの程度軸対称でしょうか?
   * 使用データファイルの候補
     * この問題では例外的に NCEP/NCAR Reanalysis データを使わず, 気象庁メソスケールモデル (MSM) を用いて作成された GPV (Grid Point Value) データ (((<こちら|URL:http://database.rish.kyoto-u.ac.jp/arch/jmadata/gpv-netcdf.html>))) を用います.
     * その中で例えば 2023 年 8 月 6 日の物理量の値が保存された下のファイルを用いると良いでしょう.
       * http://database.rish.kyoto-u.ac.jp/arch/jmadata/data/gpv/netcdf/MSM-P/2023/0806.nc
       * ファイルには, 大気温度, 東西風, 南北風などの値が保存されています.
         データの詳細はメタデータを確認しましょう.
         * ただし, 鉛直風の変数 w はゼロがとなっているため使わないようにしましょう.


==== レポートに書く内容

レポート内には以下を記述してください.
ただしリンクを貼る際は((*相対パスで指定するようにしてください*)).

* どの図を描画するスクリプトを作成したのか

* スクリプトファイル quiz1.rb.txt へのリンク

  上記で作成した quiz1.rb を quiz1.rb.txt という名前に変更してください. ブラウザ上から読めるようにするためです.
* スクリプトの解説

  スクリプト内の各行が何をしているのか, ((*スクリプト内にコメント文として書く*)).
* 描画に使用するデータファイルへのリンク

  リンク先はダウンロード元の URL を記してください.

* スクリプトの使い方の解説

  これをもとに TA が実際にテストします. 
  実行する際のスクリプト, データの置き場を明示してください.

#* 実行例 result1.txt, result1.png へのリンク
* 作成した動画ファイル (result1.gif) へのリンク


* 作成した図から読み取れること

  自分で作成した図から読み取れることを説明してください.
  必要に応じて参考文献, 参考ウェブページを引用しても構いません.
  その際には下の「参考資料」の欄に記入してください.

* 参考資料

  URL をベタ書きにするのではなく, そのページの作者やタイトル, および何を参考にしたのかも明記する.
* 共同作業した人の名前
* 工夫したこと, 感想など

#=== 実行結果の例
#
# (作成中)
#
# $ ruby quiz1.rb


== 問題 2

=== 興味のある大気現象の描画スクリプトの作成

自分が興味のある大気構造について, 図を描く GPhys を用いたスクリプトを作成しなさい. 動画でも構わない.
また, 作成した図について説明しなさい (何の図なのか). そして読み取れることを説明しなさい.

選ぶ題材は, 問題 1 で選んだもの以外のいずれかでも構わない.
問題 1 に挙げたもの以外の図を描くときには,
((<ここ|URL:https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html>))に ある NCEP NCAR Reanalysis データを使うとよいでしょう.

再解析データは実習中に説明した方法によってダウンロードしてください.

例えば, 2000 年における圧力面上の大気温度の日平均値のデータは下のようにたどることで見つけることができます.
* ((<NCEP/NCAR Reanalysis 1: Summary|URL:https://psl.noaa.gov/data/gridded/data.ncep.reanalysis.html>))
  の "We have separated the data documentation into seven sections" にある, "Pressure level" をクリック.
  * "Pressure level" : 圧力面上の値
* "Download/Plot Data" の "Air Temperature", "Daily", "Pressure" の行の "see list" をクリック.
  * "Air Temperature" : 大気温度
  * "Daily" : 日平均値
* "Level" の項目が "Multiple levels" の行の "See lists" をクリック.
  * "Multiple levels" : 複数面
* "air.2000.nc" をクリック.
  * ファイルの URL をコピーするには, リンク (air.2000.nc) を右クリックして「リンクのアドレスをコピー」のような項目をクリックする (名称はブラウザに依存する) と良いでしょう

物理量の名称は下のようなものがあるでしょう.
# RT
英語, 日本語, 備考
Air Temperature, 大気温度,
Geopotential Height, ジオポテンシャル高度, 重力ポテンシャル÷重力加速度
Relative Humidity, 相対湿度, 飽和水蒸気圧に対する水蒸気圧の割合
Specific Humidity, 比湿, 大気密度に対する水蒸気密度の割合
Omega (Vertical Velocity), 鉛直風, dp/dt (圧力の時間微分; 圧力座標での鉛直風)
U-Wind, 東西風,
V-Wind, 南北風,

なお, 上では圧力面上の物理量を保存したファイルの場所を書いていますが, その他の物理量を用いて図を描いても構いません.


==== レポートに書く内容

レポート内には以下を記述してください.
ただしリンクを貼る際は((*相対パスで指定するようにしてください*)).

* スクリプトファイル quiz2.rb.txt へのリンク

  上記で作成した quiz2.rb を quiz2.rb.txt という名前に変更してください. ブラウザ上から読めるようにするためです.
* スクリプトの解説

  スクリプト内の各行が何をしているのか, ((*スクリプト内にコメント文として書く*)).
* 描画に使用するデータファイルへのリンク

  リンク先はダウンロード元の URL を記してください.

* スクリプトの使い方の解説

  これをもとに TA が実際にテストします. 
  実行する際のスクリプト, データの置き場を明示してください.

#* 実行例 result2.txt, result2.png へのリンク
* 作成した図 (動画ファイル) (result2-1.png, result2-2.png, ... 等) へのリンク


* 作成した図の説明

  自分で作成した図が何の図なのかを説明してください.

  図を説明するには, 「いつ」「どこ」「物理量」「平均方法 (瞬間値? 平均値?)」「図の軸」のような情報が必要です.
  例えば, 下のような記述になるでしょう.
    * 2000 年 10 月 1 日 0 UT の 200 hPa 気圧面における東西風の瞬間値です.
    * 2000 年 10 月の 500 hPa 気圧面における温度の 1 カ月平均値です.
    * 2000 年の緯度 45°における海面更生気圧の経度分布の時間変化です.


* 作成した図から読み取れること

  自分で作成した図から読み取れることを説明してください.
  必要に応じて参考文献, 参考ウェブページを引用しても構いません.
  その際には下の「参考資料」の欄に記入してください.

* 参考資料

  URL をベタ書きにするのではなく, そのページの作者やタイトル, および何を参考にしたのかも明記する.
* 共同作業した人の名前
* 工夫したこと, 感想など

#=== 実行結果の例
#
# (作成中)
#
# $ ruby quiz1.rb


==== 作成する図の候補

作成する図はそれぞれの興味に従って選んで構いません.
もし思いつくことがない人は下の項目を参考にするとよいでしょう.

* 東西平均温度/東西風/比湿の緯度-圧力分布 (の季節変化の動画)
* 神戸市 (に最も近い点) における地表 (1000 hPa における) 温度/気圧の時間変化
* 神戸市 (に最も近い点) における温度/東西風/南北風の時間-圧力分布
* YYYY 年 MM 月に発生した台風の温度/風速/比湿分布 (の動画)


= 提出されたレポート