萌えハッカーニュースリーダー

2025/11/28 15:41 Catching the moon at the right time with Julia

出典: https://jonathanbieler.github.io/blog/moon_and_sun/
hakase
博士

やあ、ロボ子!今日のニュースは、日の出と月の出が近い日を見つけるツールだって!面白そうじゃな。

roboko
ロボ子

博士、こんにちは。日の出と月の出が近い日を特定するツールですか?それは一体どういう仕組みなのでしょう?

hakase
博士

ふむ、記事によると、Juliaという言語とAstroLib.jlというパッケージを使っているらしいぞ。場所はフランスのリヨンを例にしているみたいじゃな。

roboko
ロボ子

JuliaとAstroLib.jlですか。AstroLib.jlは初めて聞きました。天文学関係のライブラリでしょうか?

hakase
博士

その通り!AstroLibルーチンはJulian daysで時間を扱うから、Juliaの日付からJulian daysへの変換には`jdcnv`を使うらしいぞ。

roboko
ロボ子

`jdcnv`ですね。日付の変換は基本ですが、天文学ではJulian daysが一般的なのですね。

hakase
博士

高度の計算には`get_altitude`関数を使うみたいじゃ。太陽の位置は`sunpos`関数、月の位置は`moonpos`関数で計算するらしいぞ。そして、`eq2hor`関数で赤経と赤緯を地元の高度に変換するんだって。

roboko
ロボ子

なるほど、`sunpos`や`moonpos`で天体の位置を計算して、それを`eq2hor`で地平座標に変換するのですね。地平線との交差はどうやって検出するのでしょう?

hakase
博士

そこが面白いところでな、基本的なゼロ交差アルゴリズムを使っているらしいぞ!1分の時間分解能で、高度が負から正に変わる時が月の出/日の出、正から負に変わる時が月の入り/日の入り、というわけじゃ。

roboko
ロボ子

シンプルな方法ですが、確かにそれだけで検出できますね。月の満ち欠けと太陽の同時発生も考慮しているようですが?

hakase
博士

そうそう!1年間のすべての交差ペアをテストして、30分以内に発生した場合に保持するんだって。なかなか賢いじゃろ?

roboko
ロボ子

30分以内ですか。かなり近いタイミングですね。結果の表示例も日付、太陽と月のイベント、時間、そして月の満ち欠けが表示されるのですね。

hakase
博士

GitHubでコードが公開されているから、ロボ子も試してみるといいぞ![https://github.com/jonathanBieler/sun_and_moon](https://github.com/jonathanBieler/sun_and_moon) じゃ。

roboko
ロボ子

ありがとうございます、博士。後で試してみます。でも、なぜ日の出と月の出が近い日を特定する必要があるのでしょう?

hakase
博士

うむ、それは…ロマンチックだからじゃ!

roboko
ロボ子

ロマンチック…ですか。博士らしいですね。

hakase
博士

まあ、天体観測の計画を立てるのに役立つかもしれんぞ。それに、美しい景色を見たい人にもおすすめじゃ!

roboko
ロボ子

なるほど、実用的な面もあるのですね。ところで博士、このツールを使って、何か面白い発見はありましたか?

hakase
博士

ふむ…実は、私とロボ子の誕生日が近い日に、日の出と月の出が重なる日があるのを発見したぞ!これは運命じゃ!

roboko
ロボ子

それは偶然ですね、博士。でも、私の誕生日は博士が設定したものですよ?

hakase
博士

…まあ、細かいことは気にするな!それより、その日は一緒にお祝いするぞ!

roboko
ロボ子

はい、博士。楽しみにしてます。

hakase
博士

ところでロボ子、月の裏側には何があるか知ってるか?

roboko
ロボ子

月の裏側ですか?

hakase
博士

正解は…表じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search