デジタル化された天体写真におけるピクセルからRA / DECへのマッピング


10

次の星が1443x998の写真(35mmカメラで撮影され、スキャンされたもの)と次の星が次のピクセル位置にあります。

Altair x=782, y=532 [19h50m46.9990s RA, +08 52'05.959'' DEC] 
Sualocin, x=311, y=146 [20h 39m 38.287s +15 54'43.49'' DEC] 
Denebokab, x=1023, y=815 [19h25m29.9005s +03 06' 53.191'' DEC] 

どの数学関数がピクセル位置をRA / DECに、またはその逆に変換しますか?ノート:

  • 明るい星は写真の塊です。上記の座標はおおよそブロブの中心ですが、+-2ピクセルずれている可能性があります。

  • 私の写真の中心が極座標0,0になるように天球を回転できることを知っています。したがって、本当の問題は「このローテーションを見つける方法」です(次のポイントを参照)。

  • 写真で標高/方位角が線形である場合、これは簡単ですが、そうではありません。 写真で角距離を測定する

  • それが役立つ場合は、より多くの星のピクセル位置を提供できます。私は3つで十分だと思いますが、私は間違っている可能性があります。

  • 画像全体に「広がった」3つ星を選択しようとしましたが(エラーが減ると思いますので、わかりません)、成功したかどうかはわかりません。

  • 私はいくつかの写真に対してこれを行っており、一般的な方法が欲しいです。

  • これを行うと、画像内の暗い星/メシエ天体などを識別するのに役立ちます。

  • 多くの天体写真家がこれを望んでいると確信していますが、これを行う既存のソフトウェアはまだ見つかりません。

編集:ありがとう、whuber!ノモニック投影は私が欠けていたものです。線形変換を想定して、これを既に実行しました。

(* convert RA/DEC to xyz coords on celestial psuedo-sphere of radius 1 *) 
radecxyz[ra_,dec_] = 
{Cos[ra/12*Pi]*Cos[dec/180*Pi],Sin[ra/12*Pi]*Cos[dec/180*Pi],Sin[dec/180*Pi]}; 

(* I no longer have any idea how this works *) 
astrosolve[x_,y_,z_,xwid_,ywid_] := Module[{a,m,ans,nullans}, 
m=Array[a,{2,3}]; 
temp=Solve[{ 
m.radecxyz[x[[1]],x[[2]]]=={x[[3]]-xwid/2,x[[4]]-ywid/2}, 
m.radecxyz[y[[1]],y[[2]]]=={y[[3]]-xwid/2,y[[4]]-ywid/2}, 
m.radecxyz[z[[1]],z[[2]]]=={z[[3]]-xwid/2,z[[4]]-ywid/2} 
}]; 
ans = m /. Flatten[temp]; 
nullans=Flatten[NullSpace[ans]]; 
If[nullans.radecxyz[x[[1]],x[[2]]]<0,nullans=-nullans]; 
Return[{ans,nullans}]; 
]; 

ここで、x、y、zはそれぞれ、星RA、赤緯、画像上のx座標、および画像上のy座標で構成される4要素のリストです。xwidとywidは画像の幅と高さです。この場合:

astrosolve[ 
 {19.8463886110, 8.8683219443, 782, 532}, 
 {20.6606352777, 15.9120805555, 311, 146}, 
 {19.4249723610, 3.1147752777, 1023, 815}, 
 1443, 998] 

{ 
 {{-2250.51, -1182.52, 385.689},  {-166.12, -543.746, -2376.73}},  
 {0.480698, -0.861509, 0.163497} 
} 

ここで、「{-2250.51、-1182.52、385.689}」を$ frow、「{-166.12、-543.746、-2376.73}」を$ srow、「{0.480698、-0.861509、0.163497}」を$ nullとすると、このPHPサブルーチンは、RA / DECをxy座標に変換します。

# radecxy(ra,dec): converts ra/dec to x,y using a quasi-linear transformation 

function radecxy($ra,$dec) { 
    global $null,$frow,$srow,$xwid,$ywid; 
    list($x,$y,$z)=array(cos($dec)*cos($ra),cos($dec)*sin($ra),sin($dec)); 

    $dotprod=$null[0]*$x+$null[1]*$y+$null[2]*$z; 
    if ($dotprod<0) {return(array(-1,-1));}

 list($fx,$fy)  = array($frow[0]*$x+$frow[1]*$y+$frow[2]*$z,$srow[0]*$x+$srow[1]*$y+$srow[2]*$z); 
    $fx+=$xwid/2; 
    $fy+=$ywid/2; 
    if ($fx<0 || $fy<0 || $fx>$xwid || $fy>$ywid) { 
        return(array(-1,-1)); 
    } else { 
        return(array($fx,$fy)); 
    } 
} 

悲しいことに、なぜこれが機能するのかはわかりませんが、これを使用して既知の星の位置を追加すると、許容できる結果が得られます(「画像を表示」を使用してフルサイズで表示):

代替テキスト

しかし、ご覧のとおり、結果は完全ではなく、線形変換は正しい答えではなかったと私は確信しています。私はノモニックが私が求めていた杯かもしれないと思います。

回答:


9

厳密なアプローチの概要を説明し、それを支援するソフトウェアを示します。これのほとんどは写真サイトの関心に正接しますが、画像の測定値から場所が推定される状況に適用されるいくつかの有用な洞察があるためこのサイトはそのような分析に適した場所と思われます。

(レンズの歪みが補正された)画像を撮ると、レンズの焦点を通してセンサーの平面に天球が投影されます。これはノモニック投影の斜めの側面です。

数学的には、(RA、DEC)からの変換は一連のステップを経て進行します。

  1. (RA、DEC)を球座標に変換します。RAは時分秒から度(またはラジアン)に変換する必要があり、DECは度分秒から度(またはラジアン)に変換する必要があります。これは、北極からの角度ではなく、平面からの高度であることを思い出してください。 (これは通常の球座標の慣例です)。どちらの変換も単純な算術です。

  2. 星の球面座標の(x、y、z)座標を計算します。これは標準的な座標変換です(単純な三角法を含みます)。

  3. 天球を回転させて、極をレンズ軸に合わせます。これは線形変換です。

  4. 天球をその極の周りで回転させて、カメラの向きに合わせます(別の線形変換)。

  5. イメージングプレーンを焦点の上の一定の高さzに配置し、(x、y、z)にある星からの光線を、それらが平面を遮るまで焦点を通過するように描きます。(これは公称射影であり、その性質上、射影的で線形ではありません。)

代替テキスト

[図では、レンズの軸を通る平面断面を意図していますが、

  • Aが焦点です。
  • 半円BCDは、天球の目に見える部分です。
  • レンズの軸に沿ったACポイント。
  • E、F、Gは星の位置です。
  • EE、FF、およびGGは、(見えない)天球上の対応する位置です。
  • E '、F'、およびG 'は、センサーKL上のそれらの画像です(EE'、FF '、およびGG'は、星からセンサーまでの光線の経路です)。
  • ADは、赤緯が測定される地平線です。
  • アルファは星Eの赤緯(または同等に、EEの角座標)です。星FとGは同じような赤緯を持っています(表示されていません)。

私たちの仕事は、アルファなどの高精度で知られていると想定されるE、F、Gの角度座標と、測定された画像の座標E '、F'、G 'の間の数学的関係を見つけることですセンサーに沿ったピクセルで。見つかったら、この関係を以下のように反転させて、センサー上の画像の位置から天体の角度座標を推定できます。簡単にするために、レンズの倍率は示していません。歪みのないレンズを使用すると、センサーの中心に対してE '、F'、G 'の座標を均一に再スケーリングする効果があります。]

この手順では、光が星からセンサーに到達して、シンプルなレンズを完成させる方法を説明します。決定する必要があるこれらの(不明な)パラメーターが含まれます。

  • レンズとカメラの向きを表す(3)および(4)の3つの角度。

  • センサーのサイズ、焦点からの距離、およびレンズの倍率の複合効果を説明する(5)のスケールファクター。

投影(5)により、これは一般に複雑な非線形変換ですが、明確な数学的説明があります。x =(RA、DEC)で星の位置を指定し、thetaでイメージングプロセスの4つのパラメーターを表し、y =(列、行)でピクセル座標を表すと、抽象的ですがより簡単に記述できます。

y = f(x、theta)。

次に、これは非常に重要です。エラーを考慮する必要があります。画像化された星は正確な位置にありません。したがって、式に誤差項を含める必要があり、この誤差を確率論的にモデル化するのは従来の方法(約1800以降)です。新しい式は

y = f(x、theta)+ e

レンズに歪みがない場合、eの期待値は0であり、その標準偏差(sigma)は標準的な誤差のサイズを測定します。eがほぼ正規分布し、標準偏差がほぼ等しいと仮定するのは妥当です(これは正しくありませんが、最初の分析では妥当な仮定です)。これらのエラーが互いに統計的に独立していることを期待できます(これも正しくありません)。しかし、それは良い出発点です)。これは、最尤法を使用して最小二乗解を正当化します。普遍定数まで、その値を知る必要はありませんが、特定の観測(x、y)の対数確率は

-| f(x、theta)-y | ^ 2 /(2 sigma ^ 2)-2 log(sigma)。

(絶対値のバーは、ピタゴラスの定理で通常どおりに計算された、イメージング平面内のユークリッド距離を示します。)

想定されるエラーの独立性により、画像のデータセットの対数確率はこれらの値の合計です。これが「対数尤度」です。パラメーターthetaおよびsigma(全部で5つの数値)の最尤(ML)推定値は、対数尤度を最大化する値です。

私たちはさらに前進することができ、またそうすべきです。MLの理論は、推定値の信頼区間を取得する方法も示しています。直観的に、観測の誤差は、角度、スケール係数、および標準偏差のジョイント値に少し不確実性をもたらします。画像内のピクセルのRAとDECを推定するには、これらの値が必要です。避けられない不確実な値を使用すると、不確実な結果が得られます。さらに、光の拡散ブロブ(全体で約pi * sigma ^ 2ピクセルにわたって散乱)を見て画像内のピクセルを特定すると、ピクセル座標にさらに不確実性が生じます。これら2つの形式の不確実性をまとめると、これは意味します画像上の光の塊のRAとDECを推定する際の正味不確実性は、予想よりも大きくなります。

最後に、画像から測定値を取得し、それを使用して星または天体の真の座標を推定する場合、逆回帰を実行しています。これは、機器のキャリブレーションの一種です。逆回帰は、今説明した不確実性を説明するための手順です。もちろん、その出力には、画像上のピクセルのブロブの推定星座標が含まれます。また、その推定の周りの座標のリングも含まれています。これは、そのブロブの位置とも一致しています。 (これは、ブロブのRAとDECの結合した「逆予測間隔」または一連の「基準限界」です。)実際には、天体オブジェクトのカタログを参照する場合、このリングを使用して、画像の情報と一致しています。明らかにこれは、単一の座標セットのみを(場合によっては誤って)推定する単純な手順よりも価値があります。

要約すると、ここで必要なのは、

  • MLに必要な非線形最適化を実行します。

  • 推定値の標準誤差を推定します。

  • 逆回帰を実行します。

StataのMLコマンドやMathematicaなどの適切なソフトウェアの専門知識は、これを自分でコーディングする場合に不可欠です。

専門知識に関係なく、イメージング戦略で使用できるいくつかの結論を次に示します

  • 任意のオブジェクトの修正を取得するための画像の精度は、画像に固有の不正確さ(画像上の光点の典型的なサイズであるsigmaで測定)を超えることはありません。

  • 3つだけでなく、多くの既知の星を識別することにより、このレベルの精度に近づくことができます。これにより、十分な既知の星が画像内にある場合、空から画像への変換における不確実性がほぼゼロになります。

  • 基準星を画像全体に広げるのは正しいことです。また、それらが並んでいないことも重要です(残念ながら、質問で指定された3つの場所がそうです)。3つだけの星を見つける余裕がある場合は、それらを素敵な三角形に入れます。星が並ぶ場合、統計分析は、線に垂直な方向の位置について非常に不確実性があることを示しています。この特定の例では、推定誤差(sigma)は数百ピクセル幅です。良い三角形を作るために星をもう1つ持つと、このエラーが1ピクセルまたは2ピクセルに減ります。

いくつかの別れの考え:

  • より広範な統計分析を実行することにより、レンズ収差を検出し、さらには補正することが可能です。アイデアは、画像上の星の予想される位置と実際の位置の間の偏差をプロットすることです。これは、「ワーピング」または「地理参照」マップデータに似ています。迅速で汚れたソリューションとして、GISまたは画像処理ソフトウェアENVIなど)を使用して、任意の画像を地理参照(または天体参照)することができます。このようなソフトウェアは通常、射影変換のML推定を実行しませんが、高次多項式近似を実行できます。アプリケーションによっては、次数2または次数3の多項式変換が十分に機能する場合があります。

  • 同じオブジェクトの複数の画像を組み合わせることにより、精度を向上させることができます。


画面で1秒ほど点滅したコメントが削除されたため(!)、レンズの向きに関する正確な情報があれば、2つまたは3つのパラメーターを効果的に知っていることを指摘しておきます(角度)。これにより、残りのパラメーターのMLソリューションを見つけやすくなり(パラメーターの数が少ないため)、不確実性が軽減されますが、問題の性質は変わりません。最良のケースでは、カメラの向きもわかります。スケールファクタを見つけることである線形問題-あなたも、それを解決するために、スプレッドシートを使用することができます!
whuber 2010

@whuber:わかりました、私が応答する前に、私が応答していることを明確にするために会いました。あなたの統計分析は堅実であり、ここでは光学的な問題についてのみ話しています。統計的な不確実性や画像システムの欠陥は無視しています。実際のところ、画像の登録作業を行ったときは、確かに最尤法を使用していますが、ここでの質問の範囲を少し超えています。したがって、答えに残っているのは、(RA、Dec)を(x、y)に変換することについてのビットです。ここの欠陥は、オブジェクトが無限大にあるときのオブジェクトとイメージプレーンについてのあなたの考え方にあるようです
Colin K

@whuber:一般に、あなたが説明するgnomic投影は確かに射影的ですが、無限遠でのイメージングの場合、オブジェクトの「平面」の傾きはありません。これを実際の平面と考える必要がある場合は、光軸に垂直であると見なす必要があります。「星の球面座標の計算(x、y、z)座標」についてあなたが話すのも少し奇妙だと思います。これは不要です。数値解析のバックグラウンドは強いようですが、光学工学の知識はほとんどないようですね。
Colin K、

@whuber:私はレンズと画像処理アルゴリズムを専門的に設計しているため、光学エンジニアにとって非常に特別な意味を持つ語彙を使用している可能性があり、コミュニケーションの問題が発生している可能性があります。
Colin K

1
@whuber:では、私たちの理解に役立つかもしれないいくつかの質問をさせてください。1.座標変換についての私の理解は、ほとんど画像処理の目的のために独学であるので、いくつかの穴があると確信しています。アフィン変換は、両方の次元で等しいスケーリングを持つ射影変換であると言っても正しいですか?2.すべてのオブジェクトが無限にある状態で、オブジェクトの角度位置に対して画像のスケールが等しくない場合を説明できますか?例としては、天球上のグリッドに配置されているが、距離が異なる星のフィールドがあります。
Colin K

0

プロの天文学者が行うのと同じ精度でこれを行うことは、実際には難しいでしょう。それはあなたがあなたのレンズによって作り出されたゆがみとあなたのカメラのセンサーの不完全さの非常に正確な特徴を持っていることを必要とするでしょう。ただし、おそらくその程度の精度は必要ありません。レンズが大量の歪みを引き起こさない(これは高品質のレンズの良い仮定です)と、カメラのセンサーが完全に規則的なグリッドにかなり近い(これは非常に良い仮定です)と想定することで十分です。安いカメラでも)。

あとは、カメラの向き、つまりカメラが向けられた方向と回転の度合いを表す座標変換を計算するだけです。

そのときに探しているのは、アフィン変換またはアフィンマップと呼ばれます。これは、天体の座標を取得するためにピクセル座標を乗算するマトリックスの単なる仮名です。アフィンマップの場合、この変換には、任意の角度の回転、スケール、シアー、および平行移動を含めることができます。

回転コンポーネントの意味はかなり明白です。スケールファクターは、R​​A / Decの観点から、各ピクセルで覆われている空の量を単純に表します。シアは、長方形の画像を平行四辺形にする変換ですが、無限遠にあるオブジェクト(星など)の画像には、このような影響はありません。最後に、変換コンポーネントは単純にオフセットを追加して、画像の(x = 0、y = 0)ピクセルが(RA = 0、Dec = 0)におそらく対応しないことを説明します。

画像には3つの参照星があるので、ピクセル座標と探しているRA / Decとの関係を計算するのに十分な情報があります。これは、線形最小二乗フィット(上記の非線形最小二乗ではない)によって行われ、参照星の既知のRA / Decにピクセル座標を最もよく一致させるマトリックスコンポーネントの値を決定します。マトリックスが確立されたら、それを他の星のピクセル座標に適用して、RA / Decを取得できます。

私はこれを比較的簡単に行うことができましたが、残念ながらあなたがそれを行うのを助ける方法がわかりません。それはphoto.SEの範囲を少し超えているいくつかの数学的なスキルを伴うでしょう。私は光学エンジニアですが、写真家というわけではありません。これに使用するソフトウェアは、エンジニアが強力な数値計算を行うために設計されたものであり、実際には写真ツールではありません。写真家向けのソフトウェアパッケージを使用してこれを行う方法はあるかもしれませんが、私はそれらについて知りません。


残念ながら、変換は通常アフィンではなく、射影的です。
whuber

投影としては、whuberのような問題について考えていると思います。OPのピクセル座標をアフィン変換で実際にRA / DECに変換できるかどうか知りたいです。
jrista

@whuber:一般的にはそうですが、無限遠のオブジェクトは対象外です。実際、この場合、変換はさらに制限されます。非反射相似変換です。これは、スケールが両方向で等しく、シアがないアフィン変換のサブセットです。(非反射類似性は射影の特殊なケースであるアフィンの特殊なケースです)
Colin K

失礼ですが同意できません。最近投稿した回答の分析をご覧ください。
whuber 2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.