ITPASS 実習レポート1

田畑 陽彩

Joho08

初めに

今回、惑星学実習Eの計算機実習のレポートとして2つのテーマを決め図の作成を行った。実習では、RubyでのGphysを用いた図の作成方法などを学んだ。私は「ある地点における気温と晴天時の太陽放射フラックスの関係」、「東太平洋赤道域における1997年11月と1988年12月の月平均海面水温の平年値からの偏差の分布」のテーマを選択し行なった。

なお、課題に取り組むにあたり惑星学実習E 計算機実習のGphysスクリプト課題のページからデータファイルを取得した。下記にページのリンクを掲載する。

使用したデータファイルの取得先

このレポートでは、読者にプログラミングに対する基礎知識があることを前提としている。それぞれのテーマに関する基礎知識はそれぞれの問題に添えた。

課題に取り組み図を作成することで、視覚的に現象を捉えることができ、その重要性を感じることができた。また、より分かりやすい図にするための試行錯誤を行うことでRuby、Gphysに対する知識や経験を得ることができたと感じる。

問題1

問題1では「ある地点における気温と晴天時の太陽放射フラックスの関係」をテーマとし、図の作成を行った。

・スクリプトのURL

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

スクリプトは合計で5つあり、それぞれ注目した地点が異なる。flux1.txt、flux2.txt、…、flux5.txtのスクリプトは、実行するとそれぞれ(緯度、経度)=(35.2375、135)、(0.952368、135)、(88.542、135)、(35.2375、15)、(35.2375、255)の地点におけるグラフを1枚作成する。

①ターミナルにおいて、「wget https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Dailies/surface_gauss/air.2m.gauss.2021.nc」を実行することで気温のデータを入手する。また、「wget https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Dailies/surface_gauss/csdsf.sfc.gauss.2021.nc」を実行することで太陽放射フラックスのデータを入手する。

(②以降ではflux1.txtに関する使い方の解説である。)

②ターミナルにおいて、「emacs flux1.rb &」を実行しRubyのファイルを作成する。

③index.html中のリンク「flux1.txt」を押し、flux1.txtの内容を表示する。

④flux1.txtの内容をコピーし、②で作成したflux1.rbに貼り付けて保存する。

⑤ターミナルにおいて、「ruby flux1.rb &」を実行する。これにより「flux1_0001.png」という図が作成される。

⑥ターミナルにおいて「open flux1_0001.png &」を実行する。これにより、図が表示される。

⑦flux2.txt、flux3.txt、flux4.txt、flux5.txtについても同様に行う。

・作成した図へのリンク

・図から読み取れること

flux1.txt、flux2.txt、…、flux5.txtのスクリプトで作成した図はそれぞれflux1_0001.png、flux2_0001.png、…、flux5_0001.pngである。これらを図1、図2、…、図5とする。この5枚の図において、縦軸が太陽放射フラックス[W/m^2]、横軸が温度[K]を表している。

まず、低緯度地域である図2に注目する。この図では点が気温、太陽放射フラックス共に非常に集中して分布している事が分かる。このことから、低緯度地域では年間を通して気温の変化が小さく、太陽放射フラックスも変動が小さいと考えられる。

次に、高緯度地域である図3に注目する。低緯度地域と比べ、点が分布する範囲が広い事が分かる。このことから、高緯度地域では一年の中で夏と冬における日射量の差が大きく、これがよく示されていると考えられる。また、図3を見ると気温約275[K]以上の範囲には点が存在しておらず、太陽放射フラックスが160[W/m^2]から440[W/m^2]の範囲で直線上に点が連なっている。すなわちこの範囲では、太陽放射フラックスの値が変化しても温度の変化がない。このことから、太陽放射フラックス以外の要因、例えば海流や風などにより気温が大きく制御されているのではないかと考えた。

最後に、中緯度地域である図1、図4、図5に注目する。これら3つのグラフを見ると、経度の違いはあるが点の分布する範囲の大きさは高・低緯度地域と比べ同程度であると言える。しかし、図4では点が重なっている部分が多く、図5では反対の傾向が見られる。このことから、中緯度地域に特徴的な四季の変化の中で、図4の地域では気候が比較的安定しており、反対に図5の地域では不安定なのではと考えた。同様に考えると、図1の地域は図4と図5の中間の傾向を持つと思われる。

・参考資料

秋岡眞樹『太陽からの光と風 ー意外と知らない?太陽と地球の関係ー』(2008)技術評論社, pp.34-35

・工夫した点、感想

工夫した点に関して、2つ挙げる。

まず1つ目として、地点ごとの分布の違いを分かりやすくするため縦軸と横軸の範囲を統一したことである。これには以下のコマンドを用いた。GGraph.set_fig( 'itr'=> 1, 'window'=>[230,320,0,440]

次に2つ目として、注目する地点を選ぶ際に、緯度と経度の違いによる関係への影響を選ぶために北半球において5つの地点を選んだことである。高緯度、中緯度、低緯度の3種類に加え、中緯度において経度の違いについて見るために360÷3=120として東西にそれぞれ120度ずつ動かした2種類を選び、計5箇所としている。

この課題に取り組み、表現による捉え方の違いを非常に強く感じた。図を作成している際、初めは縦軸と横軸の指定を行っていなかった。その場合、実際は最も密集している、低緯度地域の図2の点の散らばりが最も広く表示された。図を用いると直感的に傾向を捉える事ができるため大変便利であるが、表現の仕方に注意すべきであると感じた。

問題2

問題2では「東太平洋赤道域における1997年11月と1988年12月の月平均海面水温の平年値からの偏差の分布」をテーマとし、図の作成を行った。

・スクリプトのURL

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

スクリプトは合計で4つあり、監視海域の分布図と世界全体の分布図の2種類を1997年11月、1988年12月それぞれで作成した。これらのスクリプトを実行すると、図をそれぞれ1枚作成する。

それぞれのスクリプトの役割について説明する。epcff6.txt、epcff7.txtは監視海域の分布図を作成するスクリプトであり、epcff6.txtが1997年11月、epcff7.txtが1988年12月について示す。epcff8.txt、epcff9.txtは世界全体の分布図を作成するスクリプトであり、epcff8.txtが1997年11月、epcff9.txtが1988年12月について示す。

①ターミナルにおいて、「wget https://psl.noaa.gov/thredds/fileServer/Datasets/ncep.reanalysis/Monthlies/surface_gauss/skt.mon.mean.nc」を実行することで海水温のデータを入手する。

(②以降ではepcff6.txtに関する使い方の解説である。)

②ターミナルにおいて、「emacs epcff6.rb &」を実行しRubyのファイルを作成する。

③index.html中のリンク「epcff6.txt」を押し、epcff6.txtの内容を表示する。

④epcff6.txtの内容をコピーし、②で作成したepcff6.rbに貼り付けて保存する。

⑤ターミナルにおいて、「ruby epcff6.rb &」を実行する。これにより「epcff6_0001.png」という図が作成される。

⑥ターミナルにおいて「open epcff6_0001.png &」を実行する。これにより、図が表示される。

⑦epcff7.txt、epcff8.txt、epcff9.txtについても同様に行う。

・作成した図へのリンク

・図から読み取れること

epcff6.txt、epcff7.txt、epcff8.txt、epcff9.txtのスクリプトで作成した図はそれぞれepcff6_0001.png、epcff7_0001.png、epcff8_0001.png、epcff9_0001.pngである。これらをそれぞれ図6、図7、図8、図9とする。

まず、エルニーニョ現象が発生した監視海域についての図である図6に注目する。これを見ると、監視海域の全てで平年値より海面水温が1.5度以上高いという事がわかる。また、特に差が大きいのは東側に分布している。このことから、この時南風が特に弱いことにより暖水の影響が南アメリカ大陸付近にまで及んでいるのではと考えた。

次に、ラニーニャ現象が発生した監視海域についての図である図7に注目する。これを見ると、監視海域の大部分で平年値より海面水温が0.5度以上低いという事がわかる。ただし、ある場所では0~0.5度低い部分があり、全域で0.5度以上低いとは言えない。これに関して、ラニーニャ現象が発生したと言える基準を考える際5ヶ月移動平均値を用いており、今回私はそれを用いていない。そのため、ラニーニャ現象が発生したとされる日付でもこのような部分ができているのではと考えた。また、特に差が大きいのは監視海域の中央に分布している。このことから、この時貿易風が特に強い影響で暖水がインドネシア近海の方へより押されることで、南アメリカ大陸から離れた場所でも冷水の湧き上がりが強く起こっているのではと考えた。

次に、エルニーニョ現象が発生した世界全体についての図である図8に注目する。これを見ると、太平洋において主に東側で温度が平年より高く、反対に西側において平年より温度が低いという偏りが生まれている事が分かる。また、特に監視海域では世界全体の分布図で見ても温度が高くなっていることが分かる。このことから、世界全体の図で見ても分かるほど監視海域の海水温が高くなっていると言える。

最後に、ラニーニャ現象が発生した世界全体についての図である図9に注目する。これを見ると、太平洋において監視海域付近の海水温が平年値より低いことがわかる。このことから、この現象の影響は広範囲に及ぶと考えられる。

・参考資料

柏野祐二『海の教科書 波の不思議から海洋大循環まで』(2016)講談社, pp.254-258

・工夫した点、感想

工夫した点に関して、3つ挙げる。

まず1つ目として、地点の場所をわかりやすくするために、海岸線を重ねて描画したことである。この操作を行うことで、直感的に分布の状況を理解する事ができるようになったと思う。

次に2つ目として、切り取ったスクリプトにおいてエルニーニョ現象、ラニーニャ現象は0.5度が一つの大きな基準となるため、0.5度がカラーバーの区切り間隔となるように指定したことである。

最後に3つ目として、ラニーニャ現象の世界全体の分布図を作成した際に、0度付近の色の違いがわかりづらかったためカラーバーの調節を行ったことである。デフォルトで作られたカラーバーでは0~5度、0~-5度の色がとても似ていた。しかし、この2つの区間について注目したかったためカラーバーの範囲を広げ色の位置を変更した。結果的に、見やすさは改善されたように思う。

この課題に取り組み、プログラムにおいて演算の操作を加えることの難しさを感じた。今回、ある30年間の11月、12月の海水温の平均値をそれぞれ求める必要があった。その際に、切り出しの操作において範囲での切り出しではなく間隔をおいて切り出す方法が分からず、実習の先生方にご助言をいただいた。切り出しの基本や、繰り返しの用い方など多くの知らなかったことを教えていただいて、とても成長できたように思う。このような操作を組み合わせ、自分が求めている動きを円滑にプログラムにさせることができるようになりたいと感じた。