KDO's Note 2002

2008年 4月 1日 掲載, 2009年 9月 3日 修正(advection scheme)


注意

このページはもとが KDO の個人的なメモであり, 内容の正しさは保証できません.

使ってみておかしいと感じたら, ただちに使用を中止して, 自分で調べなおすなり, 計算しなおすなりしてください.


目次


2002年 9月 29日:国際原子時と協定世界時

国際原子時(TAI):

1958年 1月 1日 0時において世界時 UT2 と原点を一致させスタート 原子時計によって刻まれる時系.

原子時計の刻む 1秒は 「Ce133原子の基底状態の 2つの超微細準位間の遷移に対応する放射の9,192,631,770周期の継続時間」 である.これは 1967年の国際度量衡総会で採用された秒の定義.

協定世界時(UTC):

うるう秒調整(世界時 UT に対して UTC を ±0.9秒以内に保つよう, 1秒ステップで行われる調整)により UT1(地球回転観測から決定)に近似させている原子時. 1972年から. 1972年に TAI にうるう秒 10秒を加えたものを UTC としてスタートした. 1961〜1971年は標準周波数のオフセットと時刻のステップ調整により世界時 UT に近似させていた. うるう秒は 1972〜2001年に 22回挿入され,現在(2002年 9月)UTC は TAI から 32秒遅れている.


2002年 9月 11日:advection scheme

f du/dx

の差分化.

中央差分:

中央差分

エイリアシングにより特定周波数へのエネルギーの集中が起こり,発散する.

1次上流微分:

1次上流微分

上の式は次のように書ける.

1次上流微分

第2項が数値粘性になる.計算は安定するが高レイノルズ流れの計算には向かない.

3次上流微分(UTOPIAとも):

3次上流微分


2002年 7月 4日:衛星海面高度計で力学的海面高を求める

衛星海面高度計データから力学的海面高を求める方法を図解する. 図中の赤線はもとになる値(主に観測)を,青線は求められる値を表している.

1.観測による衛星の軌道を決定

基準楕円体(Reference Ellipside)からの衛星の高度(Satellite Altitude)を決める.

衛星軌道決定

2.衛星のレーダーによる海面高度を測定

衛星の高度からレーダー測った海面までの距離(Range)を引いて, 海面高度(Sea Surface Height)を計算する.

海面高度測定

3.平均海面高度の計算・海面偏差の算出

複数回の衛星観測から平均海面高度(Mean Sea Surface Height)を計算し, 以後,海面偏差(Sea Level Anomary)を算出できる.

平均海面高度,海面偏差

4.船舶観測による力学的海面高度の測定

船舶観測(CTD観測)により,鉛直密度分布を測定し, 海面の無流面(≒ジオイド)からの高度, 力学的海面高度(Sea Surface Dynamic Height)を計算する.

力学的海面高度の測定

5.平均海面の力学的海面高度を算出

船舶観測によって得られた力学的海面高度から, 衛星観測によって得られた海面偏差を引いて, 平均海面の力学的海面高度(Mean Sea Surface Dynamic Height)が計算できる.

平均海面の力学的海面高度

6.衛星海面高度計データから力学的海面高度を計算

衛星海面高度計によって得られた海面偏差を, 平均海面の力学的海面高度に加えることにより, 力学的海面高度が得られる.

力学的海面高度の測定


2002年 6月 7日:ノイマン近傍とムーア近傍

2次元の方形セルの近傍には 2種類ある.

上下左右の 4セルがノイマン近傍(Neumann neighborhood)である.

ノイマン近傍

これに斜め上,斜め下の 4セルを加えた 8セルがムーア近傍(Moore neighborhood).

ムーア近傍


2002年 5月 31日:人工衛星のグランドトラック簡易計算

人工衛星のグランドトラック(航跡)を計算する適当なスクリプトをつくってみた.

簡単にするため,

とした.

どのくらい適当な計算かというと衛星が回帰したときの位置がずれないように, 衛星が回帰する間に地球がまわる回数を整数であたえるという適当さである.

ソースはこちら(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

TOPEX/POSEIDON

準天頂衛星:./sgte.pl 1.0 0.01 1 1 37.00 137.5

準天頂衛星


2002年 2月 19日:図表のレイアウト

図表のレイアウトの仕方.なお,本文は 2段組みを想定している.

○きれいな配置はこんな感じ:

レイアウト○

△不可ではないが,あまりない:

レイアウト△

×絶対駄目:

レイアウト×


[ KDO's Note Index にもどる ] [ KDOホームにもどる ]


(C) 2008 KDO