2017年4月27日木曜日

JSOrbitで地上の日照も気にするモード


 すでに衛星の日照に応じて表示するモードはありますが、地上の日照も考慮に入れたモードを追加しました。SunLight TLで表示できます。
 このモードでは、観測点から見た太陽の中心が仰角0度以下、かつ衛星から見た太陽の中心が仰角0度以上、くらいのところでオレンジ色、それ以外(地上から太陽が0度以上or衛星から太陽が0度以下)では茶色に表示されます。
 僕の脳内モデルがかなり怪しいので、本当に正しい表示になっているかはわかりません。いちおう、JAXAの計算ページで衛星の日照が始まる時間と、JS Orbitで日照が始まる時間が、だいたい一致しているので、まぁ大丈夫かなーという気がします。

 一般的に、「星が見える暗さ」というのは、日没からかなり後です。おおよそ6等星が見えるのは太陽の俯角が12度以降かららしいです。
 ただ、ISSはかなり明るいのと、プログラムを作り込むのが面倒なので、太陽中心の仰角が0度以下ということにしています。ISSよりも暗い衛星の場合は、JS Orbit上では見えていても、実際には見えない場合もあります。といっても、肉眼で充分に見える衛星ってそもそもがそんなに多くないし、ロケットの残骸とか見ても面白くないと思うので、とりあえず現状のままで良いかなと思っています。

 太陽の位置を計算する際、時刻のタイムゾーンを使用して観測値の補正を行っているわけですが、現在のところ、時間設定で"now"ボタンを押すと、UTCでの時刻が設定されます。Manual modeで時間を設定する場合は、明確にUTC+9:0を設定してください。
 なお、Real timeではコンピューターに設定されたタイムゾーンを使用しています。
 「俺はグローバルな人間だ!だから日本にいようとグリニッジ時間を使っているぜ!」みたいな人は、残念ですがManual modeでお願いします。
 もしかしたら夏時間や冬時間も何らかの影響があるかもしれませんが、日本ではそのような時間運用はされていないので、確認はしていません。



 以降どうでもいい話です。
 ぐろーばるすたんだーどでは、可読性の低いソースコードはスパゲティコードと呼ばれています。これは「プログラムがスパゲティのように複雑に絡み合っている」という状態なわけですが、我々からすれば、絡み合っている食べ物といえば、ラーメンの縮れ麺のほうがごちゃごちゃしていると思います。それに濁点や半濁点を含むスパゲティより、それらを含まないラーメンのほうが発音しやすく、字数や音数も少なくて済みます。ということで、ラーメンコードを推していこうと思います。あ、でも発音しやすいとスルッと流れるきれいなコードっぽさが出ちゃうからダメか。。

0 件のコメント:

コメントを投稿