「大気上端」に入射する太陽放射
主題: 地球の公転・自転にともなって、
「大気上端」に入射する太陽放射 (単位時間・単位面積あたりのエネルギーの流れ)は
どのように変化するか。
手段: プログラム言語 Python を使い、数値計算と作図のプログラムを動かす。
(2) 季節変化と、万年のけたの時間スケールの変化
ここでは、各地点の「大気上端」に入射する太陽放射を日平均したものの季節変化を計算する。
日平均すると、経度にはよらなくなり、緯度と日付とによる。
【「日射量」ということばは、ここでは、「大気上端」に入射する太陽放射の
面積あたり・時間あたりのエネルギーの流れをさすことにする。
ほかの文脈では地上に達する太陽放射をさすこともあるが、ここではそれはあつかわない。】
緯度別・日付別の日射量は、
地球の公転と自転の軌道要素 (離心率、地軸の傾き、近日点黄経) によって
いくらか変化する。
(ここでいう「近日点黄経」は、だいたい、近日点の方向と春分点の方向とのあいだの角度であり、
近日点と季節との関係をあらわす。)
地球の軌道要素は、他の惑星の重力によって、万年から十万年のけたの周期で変化しており、
その変化は、天体力学の理論にもとづいて精密に計算されている。
この日射量の変化は、
第四紀 (地球の歴史のうちで最近の約2百万年間)の「氷期・間氷期サイクル」の
主要な原因(複数の原因のひとつという意味だが)だと考えられている。
ここでは、
ベルギー(フランス語圏) ルーヴァン カトリック大学の
Michel Crucifix 教授
[外][Michel Crucifix 研究室]が作成した
Rの応用パッケージ
[外][palinsol]の内容をみて、
必要なところをとりだし、実習用プログラムを作成した。
プログラム例
- 年の毎日(365日)、緯度5度きざみで、日平均の「大気上端」の日射量を計算する
- ex1 と同じだが、軌道要素ひとつの数値をかえたもの (近日点黄経の数値を 180°ずらした)
- ex1 で書き出された数値の表のテキストファイルを読んで、等値線図の画像をつくる。
- 2つの数値の表のテキストファイルを読み、差の等値線図の画像をつくる。
注
- 日付は1月1日を1とした年ごとのとおしの日付を使っている。
「月・日」とのあいだの相互変換は、Python の datetime パッケージを使う方法も、
自まえでプログラムする方法もあるが、例文にはまだくみこんでいない。
- 日本語文字をあつかうところで、Windows 10 上の Python では、
文字コードを 「UTF-8」にする必要があるようだ。
ほかのソフトウェアでは「Shift_JIS」にする必要があるかもしれない。
文字化けしたらコード変換をこころみてほしい。
- 例文のプログラムを画面に表示させて保存すると、
ブラウザによっては、ファイル名の「拡張子」部分がが「.txt」になったり、
文字コードが変わったりする。
プログラムを表示させず、ファイルへのリンクが書かれているページで、
リンクを(たいていのブラウザでは)右クリックして、
(Firefoxのばあいでいえば)「名まえを付けてリンク先を保存」の機能で保存するのがよい。
- 等値線の色は Python の matplotlib の contour プログラムの既定値にまかせている。
今後、色もくふうしたプログラムに改訂したい。
(とくに、数値の差の図など、正と負の値があるばあい、正の値は赤、負の値は青、ゼロは黒の線にしてみたいのだが、まだできていない。)
演習課題
- 今回の ex1.py をもとに、次の変数に代入される数値のうち、すくなくともひとつをかえて、
ex1 の結果との差を等値線図にし、結果の特徴を簡単にのべてください。
- ecc 地球の軌道の離心率 [無次元] 現在の値は 0.0167。第四紀の変化範囲は 0 .. 0.06 ぐらいだが、太陽系の惑星にある 0 .. 0.2 ぐらいの範囲で変えてみる。
- epsdeg 地軸の傾き [度] 現在の値は 23.44。第四紀の変化範囲は 22 .. 25 ぐらいだが、0 .. 90 の範囲で変えてみる。
- perihdeg 地球の近日点黄経 [度] ... 現在の値は 103.002。0 .. 360 の範囲で変えてみる。
- 結果がはいるファイルの名まえも、それぞれ変える。(ex1のところを変えるとよい)。
- outtablefile ... 数値の表のテキストファイル。
- outimagefile ... 等値線図の画像ファイル。
- outparamfile ... 軌道要素を書きだされるテキストファイル。
- s0 (いわゆる太陽定数 [W/m2]) をかえてみてもよいが、定数倍されるだけなので、あまりおもしろくない。
それで、いまのプログラムでは、s0 の値を書きだしていない。
結果の例
年の毎日(365日)、緯度5度きざみで、日平均の「大気上端」の日射量を計算する
- 現在の軌道要素
- 近日点黄経を180度ずらした。あとは現在の軌道要素と同じ。
- 離心率を 0 (つまり円軌道)にした。地軸の傾きは現在の地球と同じ。
- 離心率を 0.1 にした(現在よりだいぶ大きい)。近日点黄経と地軸の傾きは現在の地球と同じ。
- 地軸の傾き(obliquityという)を 22度にした。離心率と近日点黄経は現在の地球と同じ。
- 地軸の傾きを 25度にした。離心率と近日点黄経は現在の地球と同じ。
2つの数値の表のテキストファイルを読み、差の等値線図の画像をつくる
- 読んだ順に「データ1」「データ2」とすると、
「データ2 - データ1」を表示する。
そして、プログラムや結果のファイル名には、まず「データ2」のほうのパラメータを書くことにした。
- 近日点黄経が現在と180度ちがう場合 - 現在の軌道要素の場合
- 離心率が 0.1 の場合 - 現在の軌道要素の場合
- 地軸の傾きが 25度の場合 - 23度の場合 (他の軌道要素は現在の地球と同じ)
2021-06-20, 2022-06-19, 2024-06-15
増田 耕一 (MASUDA Kooiti)