2008年 4月 1日 掲載, 2009年 9月 3日 修正(advection scheme)
このページはもとが KDO の個人的なメモであり, 内容の正しさは保証できません.
使ってみておかしいと感じたら, ただちに使用を中止して, 自分で調べなおすなり, 計算しなおすなりしてください.
1958年 1月 1日 0時において世界時 UT2 と原点を一致させスタート 原子時計によって刻まれる時系.
原子時計の刻む 1秒は 「Ce133原子の基底状態の 2つの超微細準位間の遷移に対応する放射の9,192,631,770周期の継続時間」 である.これは 1967年の国際度量衡総会で採用された秒の定義.
うるう秒調整(世界時 UT に対して UTC を ±0.9秒以内に保つよう, 1秒ステップで行われる調整)により UT1(地球回転観測から決定)に近似させている原子時. 1972年から. 1972年に TAI にうるう秒 10秒を加えたものを UTC としてスタートした. 1961〜1971年は標準周波数のオフセットと時刻のステップ調整により世界時 UT に近似させていた. うるう秒は 1972〜2001年に 22回挿入され,現在(2002年 9月)UTC は TAI から 32秒遅れている.
の差分化.
エイリアシングにより特定周波数へのエネルギーの集中が起こり,発散する.
上の式は次のように書ける.
第2項が数値粘性になる.計算は安定するが高レイノルズ流れの計算には向かない.
衛星海面高度計データから力学的海面高を求める方法を図解する. 図中の赤線はもとになる値(主に観測)を,青線は求められる値を表している.
基準楕円体(Reference Ellipside)からの衛星の高度(Satellite Altitude)を決める.
衛星の高度からレーダー測った海面までの距離(Range)を引いて, 海面高度(Sea Surface Height)を計算する.
複数回の衛星観測から平均海面高度(Mean Sea Surface Height)を計算し, 以後,海面偏差(Sea Level Anomary)を算出できる.
船舶観測(CTD観測)により,鉛直密度分布を測定し, 海面の無流面(≒ジオイド)からの高度, 力学的海面高度(Sea Surface Dynamic Height)を計算する.
船舶観測によって得られた力学的海面高度から, 衛星観測によって得られた海面偏差を引いて, 平均海面の力学的海面高度(Mean Sea Surface Dynamic Height)が計算できる.
衛星海面高度計によって得られた海面偏差を, 平均海面の力学的海面高度に加えることにより, 力学的海面高度が得られる.
2次元の方形セルの近傍には 2種類ある.
上下左右の 4セルがノイマン近傍(Neumann neighborhood)である.
これに斜め上,斜め下の 4セルを加えた 8セルがムーア近傍(Moore neighborhood).
人工衛星のグランドトラック(航跡)を計算する適当なスクリプトをつくってみた.
簡単にするため,
とした.
どのくらい適当な計算かというと衛星が回帰したときの位置がずれないように, 衛星が回帰する間に地球がまわる回数を整数であたえるという適当さである.
ソースはこちら(sgte.pl).
#!/usr/bin/perl # sgte.pl : Satellite Ground Track Easy 〜 衛星のグランドトラック簡易計算 # # 円軌道をとる人工衛星のグランドトラックを計算する. # # 使いかた # # 引数として, # ・衛星の回帰日数(太陽日) # ・計算タイムステップ(太陽日) # ・衛星が回帰するまでに地球が何周するか(整数) # ・衛星が回帰するまでに衛星が何周するか(整数) # ・赤道面に対する軌道傾斜角 i(度,真東 0度で半時計回りとする) # ・赤道を通過する経度(度) # を順に与える. # # 例: # TOPEX/POSEIDON: $ ./sgte.pl 9.9156 0.001 10 127 66.04 99.9249 # 静止衛星 : $ ./sgte.pl 1.0 0.1 1 1 0.00 135.0 # 順天頂衛星 : $ ./sgte.pl 1.0 0.01 1 1 37.00 137.5 # 初期設定 $pi=atan2(1,1)*4; # 引数の入力 $period = $ARGV[0]; # 衛星の回帰日数(太陽日) $step = $ARGV[1]; # 計算タイムステップ(太陽日) $earth_num = $ARGV[2]; # 地球の回転数 $cycle_num = $ARGV[3]; # 衛星の周回数 $incl = $ARGV[4]; # 軌道傾斜角(度) $lon0 = $ARGV[5]; # 開始経度(度) # 諸定数の計算 $incl *= $pi/180; # 度 → ラジアン $lon0 *= $pi/180; # 度 → ラジアン $v0 = 2 * $pi * $earth_num / $period; # 地球の角速度(ラジアン/太陽日) $v = 2 * $pi * $cycle_num / $period; # 衛星の角速度(ラジアン/太陽日) # グランドトラックの計算 for($t = 0 ; $t < $period + $step ; $t += $step){ $d = $v * $t; $x = cos($d); $y = cos($incl) * sin($d); $z = sin($incl) * sin($d); $lat = atan2($z, sqrt($x * $x + $y * $y)); $lon = atan2($y, $x) + $lon0 - $v0 * $t; $lon -= int($lon / (2 * $pi)) * 2 * $pi; if($lon < 0){ $lon += 2 * $pi; } $lon *= 180 / $pi; $lat *= 180 / $pi; printf("%f\t%f\n", $lon, $lat); }
計算結果例を 2つほど掲載する
TOPEX/POSEIDON:./sgte.pl 9.9156 0.001 10 127 66.04 99.9249
準天頂衛星:./sgte.pl 1.0 0.01 1 1 37.00 137.5
図表のレイアウトの仕方.なお,本文は 2段組みを想定している.
○きれいな配置はこんな感じ:
△不可ではないが,あまりない:
×絶対駄目:
[ KDO's Note Index にもどる ] [ KDOホームにもどる ]
(C) 2008 KDO