引き続きやってます^^;;
いまのところ約10秒あれば、自分の撮影した直焦点画像がどこを写したのか候補が挙がるようになってきました。
次は候補から絞込みができないかと、あれこれ考えていました。
三角形から四角形にするといっきに計算量が爆発してしまうのでダメかと思っていましたが・・・
ひらめきました!
三角形を2回探すなら20秒で済む、と。
そして、1回目の結果と2回目の結果の両方に含まれているやつがホシに違いない、と。
この写真の1~3の座標をまず入力します。
time も取ってプログラムの実行時間も出力させてみました。
6つの三角形を10.36秒で見つけてくれました。
ox, oy, oz というのは、見つかった三角形の座標が正しかったとした場合、この写真の中心がどの座標にあるかを計算しています。
次に同じ写真で1、2、は共通ですが、3つ目の星は別のものを選択してみます。
いまのところ約10秒あれば、自分の撮影した直焦点画像がどこを写したのか候補が挙がるようになってきました。
次は候補から絞込みができないかと、あれこれ考えていました。
三角形から四角形にするといっきに計算量が爆発してしまうのでダメかと思っていましたが・・・
ひらめきました!
三角形を2回探すなら20秒で済む、と。
そして、1回目の結果と2回目の結果の両方に含まれているやつがホシに違いない、と。
この写真の1~3の座標をまず入力します。
$ time trisearch.exe 2798 941 2507 1785 4181 1211
angle1 = 0.326388, angle2 = 0.646955, angle3 = 0.515135
6 triangle(s) found.
ox = -0.513802, oy = 0.170381, oz = -0.840819
ox = -0.104977, oy = 0.981747, oz = -0.158593
ox = -0.335938, oy = 0.577114, oz = -0.744369
ox = 0.645170, oy = -0.480893, oz = 0.593716
ox = 0.124465, oy = -0.768181, oz = 0.628018
ox = -0.372187, oy = 0.927831, oz = -0.024623
real 0m10.360s
user 0m0.015s
sys 0m0.046s
6つの三角形を10.36秒で見つけてくれました。
ox, oy, oz というのは、見つかった三角形の座標が正しかったとした場合、この写真の中心がどの座標にあるかを計算しています。
次に同じ写真で1、2、は共通ですが、3つ目の星は別のものを選択してみます。
$ time trisearch.exe 2798 941 2507 1785 3112 2183
angle1 = 0.326388, angle2 = 0.264751, angle3 = 0.468352
4 triangle(s) found.
ox = -0.479961, oy = -0.314304, oz = -0.819055
ox = -0.537645, oy = 0.444828, oz = -0.716286
ox = 0.124464, oy = -0.768184, oz = 0.628014
ox = 0.522188, oy = 0.826708, oz = -0.209461
real 0m10.297s
user 0m0.030s
sys 0m0.046s
今度は10.297秒で4つの三角形を見つけてくれました。
そしてこれらの候補をじーと見るとアンダーラインをつけた行がほぼ一致しているのがわかります。これはコマンド出力ですが、詳細結果はファイルに入っています。
4つ見つかったあとのファイルの3番目を取り出してみます。
今度は10.297秒で4つの三角形を見つけてくれました。
そしてこれらの候補をじーと見るとアンダーラインをつけた行がほぼ一致しているのがわかります。これはコマンド出力ですが、詳細結果はファイルに入っています。
4つ見つかったあとのファイルの3番目を取り出してみます。
TYC 3105-820-1,,278.83975333,38.89484667,6.9989999999999997,6.9660000000000002
TYC 000,91262,279.234125,38.783000,0.030000,0.030000
TYC 3105-1382-1,,279.20290444,38.52082722,8.4890000000000008,8.0609999999999999
2番目に指定した星は、HIP91262でベガとわかりました。
これはまだ実装できていませんが、20秒の実行時間で1つにまで絞れることになりそうです。
写真中央座標は特に計算する必要はないのですが(2結果の照合だけでよい)、ヒッパルコス番号が結果に含まれないときに、ステラリウムなどアプリで表示方向を決めるのに役立つと考えてのことです。
残された問題として、画角がわからないときどうするか。
これには、短い時間で相似三角形を探すアルゴリズムが必要です。
(追記)
入力座標を4組にしたプログラムが完成しました。
2番目に指定した星は、HIP91262でベガとわかりました。
これはまだ実装できていませんが、20秒の実行時間で1つにまで絞れることになりそうです。
写真中央座標は特に計算する必要はないのですが(2結果の照合だけでよい)、ヒッパルコス番号が結果に含まれないときに、ステラリウムなどアプリで表示方向を決めるのに役立つと考えてのことです。
残された問題として、画角がわからないときどうするか。
これには、短い時間で相似三角形を探すアルゴリズムが必要です。
(追記)
入力座標を4組にしたプログラムが完成しました。
$ time tetrasearch.exe 2798 941 2507 1785 4181 1211 3112 2183
angle1 = 0.326388, angle2 = 0.646955, angle3 = 0.515135, angle4 = 0.264751, angle5 = 0.468352
6 triangle(s) found.
4 triangle(s) found.
1 common triangle found. entry 4 in 1st list.
ox = 0.124465, oy = -0.768181, oz = 0.628018
real 0m11.156s
user 0m0.031s
sys 0m0.047s
11.156秒でたったひとつの三角形を見つけてくれました。
詳細結果も以下の内容で、時間が2倍かからなかったのは追加となった2つ目の処理をできるだけループ内に埋め込んだためです。
ほぼ満足のいく結果となりました。
11.156秒でたったひとつの三角形を見つけてくれました。
詳細結果も以下の内容で、時間が2倍かからなかったのは追加となった2つ目の処理をできるだけループ内に埋め込んだためです。
ほぼ満足のいく結果となりました。
answer:
TYC 3105-1089-1,,278.53667361,38.43738222,9.4540000000000006,7.6589999999999998
TYC 000,91262,279.234125,38.783000,0.030000,0.030000
TYC 3105-820-1,,278.83975333,38.89484667,6.9989999999999997,6.9660000000000002
ox = 0.124465, oy = -0.768181, oz = 0.628018, ra = 279.203388, dec = 38.904047