天体のセンサー上の位置を求める
能書きを含め延々と書いてありますが結果は最後の二つの式だけです。
それから念のために書いておくとここで書いたような諸問題を考慮してセンサー上の未知の天体の位置を算出するようなソフトウェアが存在します。もし結果だけほしいなら自分で計算するよりそういうソフトウェアを使った方がずっと楽でしょう。
「IRAF」
天体の画像の処理全般に関わるソフトウェアで画像処理なんかにも使えるんだったともいます。というかそっちがメインなのかも....
他にも
「CHARON 位置測定 ソフトウェア: ユーザーズ マニュアル」
なんてものがあって、これも画像を与えると撮影された領域やその撮影条件(乾板定数)を自動的に求めてくれるようです(+未知の天体の発見?、さらに別のソフトにデータを渡しその天体の軌道要素決定とか)
こういうのは私は使ったことがないので使い方を聞かれても困りますが (^^;;
----------
----------
天文計算の本なんか読むと天体の位置や見かけの高度・方位の計算の仕方がいろいろ書いてあるわけです。
眼視での観望・観測がメインの方はそれでもいいんでしょうが私みたいに写真を撮るのが基本という人間にとっては肝心なところが書いてありません。
つまり
天体を写真にとったら画像(センサー)のどの位置に写るか
という点です。
-----
と書き始めたら惑さんの記事「標準座標」があり同じような内容が記事になってました。
さらに「天体計算入門」という本にはそういうのがちゃんと書いてあるそうです (^^;;
それでこの記事書く必要ないのかなとも思ったんですが惑さんの記事は一般化された形で話が進みそうですし、赤経・赤緯から写真上の位置を求めるのが目的のようです。
そこで私の方は方位角・高度から求めるやり方をできるだけ単純化したところからはじめてじょじょに一般化して行くという方法で書いてみることにします。
二三注意すれば赤経・赤緯から求めるのも同じ考え方でできるはずです。
考えて見れば赤経・赤緯から計算する方が合理的なようにも思えますが、私の場合は地上の構造物との位置関係が気になります。だからそういう方はこっちの方がいいかも。
赤経・赤緯から求めるやり方は需要があれば書きますが....
なお図は面倒なので省略します。これも希望があれば追加します。
------
センサー上の天体の位置を計算するというのは計算としてはそんなにむずしいことではないのですが__だから本にもあんまり書いてないのかもしれませんが__じっさいにやってみると「落とし穴」つまり勘違いしやすい点がいくつかあります。
------
ここでは天体の視位置つまり方位角・高度がすでに求められているものとします。
そしてこれをカメラで撮るわけですが、どういう要素がパラメータになるかを考えます。
まずカメラの向きですね。どちらの方位を向いているか(ヨー?)、そして仰角(ピッチ?)、さらに傾き(ロール?)の三つがあります。
それからカメラのスペックがあります。焦点距離(正しくはレンズとセンサーの距離)、センサーのサイズ、画素数です。
------
じつはここでちょっと問題があります。カメラの向きやスペックがわかれば天体のセンサー上の位置を計算できます。ところが現実の応用ではカメラの向きやスペックがわからないのがふつうです。たとえば簡単なのはカメラの方位角が0、仰角も傾きも0というケースです。しかし実際にいずれも0にするのはなかなかむずかしいです。コンパスがあてにならないのはとうぜんとして水準器での水平出しにしても誤差が1ピクセル以下になるようにして行った計算なんかだと突き合わせられるだけの精度はありません。
レンズの焦点距離などについてもおんなじです。ピントを合わせ直しただけで天体の位置は数ピクセルくらいすぐに変わってしまいます。またカメラの取説にあるセンサーの実寸なんていうのは信用しないほうがいいです。
だからじっさいに応用するときは既知の天体のセンサー上の位置からカメラの向きやスペックを求め、それをもとに未知の天体のセンサー上の位置を求めるというような手順が必要になります。
他に歪曲収差の影響などもあり「現実は厳しい」のですが、そこのところは目をつぶって話しを進めます。
--------
さて最初はいちばん簡単な場合を考えます。
カメラの方位角は0、仰角も0、傾きも0というケースです。ところで方位角が0とはどっちの向きか?北でも東でもどっちでもいいんですがここでは真南を0として話を進めます。
次のような座標系を考えます。
x軸 南
y軸 東
z軸 天頂
そして天体の方位角、高度を(A,h)とします。
上の座標系の原点を中心とする半径1の円を考えこれを天球とします。
そうすると天体の座標(方向余弦)は
L = cos(h) * cos(A)
M = -cos(h) * sin(A) (赤経とは測り方の向きが違うので方位角の場合はマイナスがつきます)
N = sin(h)
となります。
さてここで天体が写真にどう写るか考えるんですが、カメラの原理__ピンホールカメラのようなもの__を考慮すると、座標の原点と天体を通る直線が天球のx座標(のプラス側)と交わる点での天球の接平面と交わる点と考えることができます(正しくはこの点の座標をセンサー上の座標系に変換したもの)
接平面のx座標は常に1ですから上の天体の座標をL=1になるように変換すると接平面上に投影された天体の座標が得られます。上のL,M、NをLの値で割ると
L = 1
M = - tan(A)
N = tan(H) / cos(A)
が得られます。これをセンサー上のピクセル座標に変換します。
x = M * f / Sx * Px
y = N * f / Sy * Py
ここでfはレンズ・センサー間距離、SxとSyはセンサーのサイズ、PxとPyはセンサーの画素数です。これらは撮影条件で決まる定数なので
Cx = f / Sx * Px
Cy = f / Sy * Py
とします。とうぜん Cx=Cy になるはずなんですが、カメラのカタログ値から計算したりすると一致しないなんてこともあります (^^;;
ここでは C = Cx = Cy とします。
x = C * tan(A) (西がプラスなんですがもとの式はy軸が東向きなのでマイナスがなくなります)
y = C * tan(H) / cos(A)
となります。これはセンサーの中心を原点としていますのでセンサーの左上を原点とする座標に変換します。
x = C * tan(A) + Px / 2
y = - C * tan(H) / cos(A) + Py / 2
となり、これが方位角A,高度Hの天体のセンサー上の位置となります。
ここでこの二つの式を見て気づくことがあります。
つまり上の式から
同じ方位角にある天体のx座標は高度には無関係に一定である。
下の式から
同じ高度であっても画像の端に行くほど画像上のy座標は小さくなる(上にずれる)
(もちろん高度が0であればy座標は一定です)
建物の写真を撮ると屋上は一直線になっているはず、だから上の結果はおかしいのではないかと思われる方がいらっしゃるかもしれませんが、それは建物の高さ(地上高)が一定なのであって建物の見かけの高度は一定ではないです。
それから上の結果は仰角が0の場合です。0でない場合はまた結果は違ってきます。仰角が0でないのに仰角が0のときの結果から類推するというのもありがちな勘違いです。
(2013-04-19 17:12:45)
それから念のために書いておくとここで書いたような諸問題を考慮してセンサー上の未知の天体の位置を算出するようなソフトウェアが存在します。もし結果だけほしいなら自分で計算するよりそういうソフトウェアを使った方がずっと楽でしょう。
「IRAF」
天体の画像の処理全般に関わるソフトウェアで画像処理なんかにも使えるんだったともいます。というかそっちがメインなのかも....
他にも
「CHARON 位置測定 ソフトウェア: ユーザーズ マニュアル」
なんてものがあって、これも画像を与えると撮影された領域やその撮影条件(乾板定数)を自動的に求めてくれるようです(+未知の天体の発見?、さらに別のソフトにデータを渡しその天体の軌道要素決定とか)
こういうのは私は使ったことがないので使い方を聞かれても困りますが (^^;;
----------
----------
天文計算の本なんか読むと天体の位置や見かけの高度・方位の計算の仕方がいろいろ書いてあるわけです。
眼視での観望・観測がメインの方はそれでもいいんでしょうが私みたいに写真を撮るのが基本という人間にとっては肝心なところが書いてありません。
つまり
天体を写真にとったら画像(センサー)のどの位置に写るか
という点です。
-----
と書き始めたら惑さんの記事「標準座標」があり同じような内容が記事になってました。
さらに「天体計算入門」という本にはそういうのがちゃんと書いてあるそうです (^^;;
それでこの記事書く必要ないのかなとも思ったんですが惑さんの記事は一般化された形で話が進みそうですし、赤経・赤緯から写真上の位置を求めるのが目的のようです。
そこで私の方は方位角・高度から求めるやり方をできるだけ単純化したところからはじめてじょじょに一般化して行くという方法で書いてみることにします。
二三注意すれば赤経・赤緯から求めるのも同じ考え方でできるはずです。
考えて見れば赤経・赤緯から計算する方が合理的なようにも思えますが、私の場合は地上の構造物との位置関係が気になります。だからそういう方はこっちの方がいいかも。
赤経・赤緯から求めるやり方は需要があれば書きますが....
なお図は面倒なので省略します。これも希望があれば追加します。
------
センサー上の天体の位置を計算するというのは計算としてはそんなにむずしいことではないのですが__だから本にもあんまり書いてないのかもしれませんが__じっさいにやってみると「落とし穴」つまり勘違いしやすい点がいくつかあります。
------
ここでは天体の視位置つまり方位角・高度がすでに求められているものとします。
そしてこれをカメラで撮るわけですが、どういう要素がパラメータになるかを考えます。
まずカメラの向きですね。どちらの方位を向いているか(ヨー?)、そして仰角(ピッチ?)、さらに傾き(ロール?)の三つがあります。
それからカメラのスペックがあります。焦点距離(正しくはレンズとセンサーの距離)、センサーのサイズ、画素数です。
------
じつはここでちょっと問題があります。カメラの向きやスペックがわかれば天体のセンサー上の位置を計算できます。ところが現実の応用ではカメラの向きやスペックがわからないのがふつうです。たとえば簡単なのはカメラの方位角が0、仰角も傾きも0というケースです。しかし実際にいずれも0にするのはなかなかむずかしいです。コンパスがあてにならないのはとうぜんとして水準器での水平出しにしても誤差が1ピクセル以下になるようにして行った計算なんかだと突き合わせられるだけの精度はありません。
レンズの焦点距離などについてもおんなじです。ピントを合わせ直しただけで天体の位置は数ピクセルくらいすぐに変わってしまいます。またカメラの取説にあるセンサーの実寸なんていうのは信用しないほうがいいです。
だからじっさいに応用するときは既知の天体のセンサー上の位置からカメラの向きやスペックを求め、それをもとに未知の天体のセンサー上の位置を求めるというような手順が必要になります。
他に歪曲収差の影響などもあり「現実は厳しい」のですが、そこのところは目をつぶって話しを進めます。
--------
さて最初はいちばん簡単な場合を考えます。
カメラの方位角は0、仰角も0、傾きも0というケースです。ところで方位角が0とはどっちの向きか?北でも東でもどっちでもいいんですがここでは真南を0として話を進めます。
次のような座標系を考えます。
x軸 南
y軸 東
z軸 天頂
そして天体の方位角、高度を(A,h)とします。
上の座標系の原点を中心とする半径1の円を考えこれを天球とします。
そうすると天体の座標(方向余弦)は
L = cos(h) * cos(A)
M = -cos(h) * sin(A) (赤経とは測り方の向きが違うので方位角の場合はマイナスがつきます)
N = sin(h)
となります。
さてここで天体が写真にどう写るか考えるんですが、カメラの原理__ピンホールカメラのようなもの__を考慮すると、座標の原点と天体を通る直線が天球のx座標(のプラス側)と交わる点での天球の接平面と交わる点と考えることができます(正しくはこの点の座標をセンサー上の座標系に変換したもの)
接平面のx座標は常に1ですから上の天体の座標をL=1になるように変換すると接平面上に投影された天体の座標が得られます。上のL,M、NをLの値で割ると
L = 1
M = - tan(A)
N = tan(H) / cos(A)
が得られます。これをセンサー上のピクセル座標に変換します。
x = M * f / Sx * Px
y = N * f / Sy * Py
ここでfはレンズ・センサー間距離、SxとSyはセンサーのサイズ、PxとPyはセンサーの画素数です。これらは撮影条件で決まる定数なので
Cx = f / Sx * Px
Cy = f / Sy * Py
とします。とうぜん Cx=Cy になるはずなんですが、カメラのカタログ値から計算したりすると一致しないなんてこともあります (^^;;
ここでは C = Cx = Cy とします。
x = C * tan(A) (西がプラスなんですがもとの式はy軸が東向きなのでマイナスがなくなります)
y = C * tan(H) / cos(A)
となります。これはセンサーの中心を原点としていますのでセンサーの左上を原点とする座標に変換します。
x = C * tan(A) + Px / 2
y = - C * tan(H) / cos(A) + Py / 2
となり、これが方位角A,高度Hの天体のセンサー上の位置となります。
ここでこの二つの式を見て気づくことがあります。
つまり上の式から
同じ方位角にある天体のx座標は高度には無関係に一定である。
下の式から
同じ高度であっても画像の端に行くほど画像上のy座標は小さくなる(上にずれる)
(もちろん高度が0であればy座標は一定です)
建物の写真を撮ると屋上は一直線になっているはず、だから上の結果はおかしいのではないかと思われる方がいらっしゃるかもしれませんが、それは建物の高さ(地上高)が一定なのであって建物の見かけの高度は一定ではないです。
それから上の結果は仰角が0の場合です。0でない場合はまた結果は違ってきます。仰角が0でないのに仰角が0のときの結果から類推するというのもありがちな勘違いです。
(2013-04-19 17:12:45)
« 写真から恒星の光度を求めるには? | トップページ | カメラの回転を考慮する »
「編集用」カテゴリの記事
- メモ(2013.11.04)
- 天体望遠鏡・拡大撮影の原理 (1)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (2)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (3)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (0)(2013.07.26)
この記事へのコメントは終了しました。
コメント