Pemetaan Pixel-to-RA / DEC dalam astrofotografi digital

10

Saya memiliki gambar 1443x998 dari bintang-bintang (diambil dengan kamera 35mm dan kemudian dipindai) dengan bintang-bintang berikut di lokasi piksel berikut:

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] 

Apa fungsi matematika yang mengubah lokasi piksel ke RA / DEC dan sebaliknya? Catatan:

  • Bintang terang adalah gumpalan dalam gambar; koordinat di atas kira-kira pusat gumpalan, tetapi mungkin tidak aktif dengan + -2 piksel.

  • Saya tahu saya bisa memutar bola angkasa sehingga bagian tengah gambar saya memiliki koordinat kutub 0,0. Jadi pertanyaan sebenarnya adalah "bagaimana menemukan rotasi ini" (tetapi lihat poin selanjutnya).

  • Jika elevasi / azimuth linear dalam gambar, ini akan mudah (er), tetapi tidak: Mengukur jarak sudut dengan foto

  • Saya dapat memberikan lokasi piksel lebih banyak bintang jika itu membantu. Saya percaya 3 harus cukup, tetapi saya bisa salah.

  • Saya mencoba memilih 3 bintang yang "tersebar" di seluruh gambar (karena saya pikir itu mengurangi kesalahan, tidak yakin), tetapi saya tidak yakin saya berhasil.

  • Saya melakukan ini untuk beberapa gambar dan ingin metode umum.

  • Melakukan ini akan membantu saya mengidentifikasi bintang yang lebih samar / objek Messier / dll dalam gambar.

  • Saya yakin banyak ahli astrofotografi ingin melakukan ini, tetapi belum menemukan perangkat lunak yang ada yang melakukan ini.

EDIT: Terima kasih, wah! Proyeksi gnoni adalah apa yang saya lewatkan. Saya sudah melakukan ini dengan asumsi transformasi linear:

(* 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}]; 
]; 

di mana x, y, dan z adalah masing-masing daftar 4-elemen yang terdiri dari bintang RA, deklinasi, koordinat x pada gambar, dan koordinat y pada gambar. xwid dan ywid adalah lebar dan tinggi gambar. Pada kasus ini:

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} 
} 

Sekarang, merujuk pada "{-2250.51, -1182.52, 385.689}" sebagai $ frow, "{-166.12, -543.746, -2376.73}" sebagai $ srow, dan "{0.480698, -0.861509, 0.163497}" sebagai $ null, subrutin PHP ini menerjemahkan koordinat RA / DEC ke 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)); 
    } 
} 

Sayangnya, saya tidak lagi tahu mengapa ini bekerja, tetapi menggunakannya + menambahkan posisi bintang yang diketahui menghasilkan hasil yang lumayan (gunakan "gambar tampilan" untuk melihatnya ukuran penuh):

teks alternatif

Namun, seperti yang Anda lihat, hasilnya tidak sempurna, meyakinkan saya bahwa transformasi linear bukanlah jawaban yang tepat. Saya pikir gnomonic mungkin adalah cawan yang saya cari.

barrycarter
sumber

Jawaban:

9

Saya akan menguraikan pendekatan yang ketat dan menunjukkan perangkat lunak apa yang dapat membantu dengannya. Sebagian besar akan bersinggungan dengan kepentingan situs fotografi, tetapi karena ada beberapa wawasan bermanfaat yang berlaku untuk keadaan apa pun di mana lokasi akan diperkirakan dari pengukuran pada gambar, situs ini tampaknya merupakan tempat yang masuk akal untuk analisis semacam itu.

Mengambil gambar (dengan lensa yang telah dikoreksi untuk distorsi) memproyeksikan bola surgawi melalui titik fokus lensa ke bidang sensor. Ini adalah aspek miring dari proyeksi gnomonic .

Secara matematis, konversi dari (RA, DEC) berlangsung melalui serangkaian langkah:

  1. Konversi (RA, DEC) ke koordinat bola. RA harus dikonversi dari jam-menit-detik menjadi derajat (atau radian) dan DEC harus dikonversi dari derajat-menit detik menjadi derajat (atau radian), mengingat bahwa itu adalah ketinggian di atas pesawat, bukan sudut dari kutub utara (yang merupakan konvensi koordinat bola biasa). Kedua konversi adalah aritmatika sederhana.

  2. Hitung (x, y, z) koordinat untuk koordinat bola dari bintang-bintang. Ini adalah konversi koordinat standar (melibatkan trigonometri sederhana).

  3. Putar bola langit untuk menyelaraskan kutubnya dengan sumbu lensa. Ini adalah transformasi linear.

  4. Putar bola langit di sekitar kutubnya agar sesuai dengan orientasi kamera (transformasi linear lain).

  5. Menempatkan bidang pencitraan pada ketinggian konstan z di atas titik fokus, menarik sinar cahaya dari bintang di (x, y, z) melalui titik fokus sampai mereka mencegat bidang. (Ini adalah proyeksi gnonik dan, menurut sifatnya, itu proyeksi dan bukan linier.)

teks alternatif

[Pada gambar, yang dimaksudkan sebagai penampang planar melalui sumbu lensa,

  • A adalah titik fokus.
  • BCD setengah lingkaran adalah bagian kasat mata yang terlihat.
  • Titik-titik AC di sepanjang sumbu lensa.
  • E, F, dan G adalah lokasi bintang.
  • EE, FF, dan GG adalah lokasi yang sesuai pada bidang surgawi (tidak terlihat).
  • E ', F', dan G 'adalah gambar mereka pada sensor KL (sehingga EE', FF ', dan GG' adalah jalur sinar cahaya dari bintang ke sensor).
  • AD adalah cakrawala dari mana deklinasi diukur.
  • Alpha adalah deklinasi bintang E (atau, ekuivalen, koordinat sudut EE). Bintang F dan G memiliki deklinasi yang sama (tidak ditampilkan).

Tugas kita adalah menemukan hubungan matematis antara koordinat sudut untuk E, F, dan G - yang diasumsikan diketahui memiliki akurasi tinggi - seperti alfa, dan koordinat gambar mereka E ', F', dan G ', yang diukur dalam piksel di sepanjang sensor. Setelah ditemukan, hubungan ini dapat terbalik seperti yang dijelaskan di bawah ini untuk memperkirakan koordinat sudut benda langit dari posisi gambar mereka pada sensor. Tidak diperlihatkan, untuk kesederhanaan, adalah perbesaran lensa. Dengan lensa bebas distorsi, ini akan memiliki efek menskors ulang koordinat E ', F', dan G 'secara seragam ke pusat sensor.]

Prosedur ini menjelaskan bagaimana cahaya mendapat dari bintang ke sensor untuk lensa sederhana yang sempurna. Ini melibatkan parameter (tidak dikenal) ini, yang perlu ditentukan:

  • Tiga sudut dalam (3) dan (4) yang menggambarkan orientasi lensa dan kamera.

  • Faktor skala dalam (5) menggambarkan efek gabungan dari ukuran sensor, jarak dari titik fokus, dan pembesaran lensa.

Karena proyeksi (5), ini adalah transformasi nonlinier yang kompleks secara umum, tetapi memiliki deskripsi matematis yang pasti. Jika kita membiarkan x = (RA, DEC) menentukan posisi bintang, biarkan theta mewakili empat parameter untuk proses pencitraan, dan biarkan y = (kolom, baris) mewakili koordinat piksel, maka kita dapat secara abstrak tetapi lebih sederhana menulis

y = f (x, theta).

Berikutnya - dan ini sangat penting - kita perlu memperhitungkan kesalahan. Bintang-bintang yang dicitrakan tidak berada di lokasi yang tepat. Jadi kita harus memasukkan istilah kesalahan dalam rumus kami dan itu konvensional (sejak sekitar 1800) untuk memodelkan kesalahan ini secara probabilistik. Formula baru adalah

y = f (x, theta) + e

Ketika lensa bebas dari distorsi, nilai e yang diharapkan adalah 0 dan standar deviasi ( sigma ) mengukur ukuran kesalahan yang umum. Masuk akal untuk mengasumsikan e kira-kira terdistribusi normal, dengan deviasi standar yang kira-kira sama (yang tidak benar, tetapi untuk analisis awal itu adalah asumsi yang masuk akal) dan kami dapat berharap kesalahan ini secara statistik independen satu sama lain (yang lagi-lagi tidak benar tapi itu asumsi awal yang bagus). Ini membenarkan solusi kuadrat terkecil menggunakan kemungkinan maksimum . Hingga konstanta universal, yang nilainya tidak perlu kita ketahui, probabilitas log dari observasi tertentu (x, y) sama dengan

- | f (x, theta) - y | ^ 2 / (2 sigma ^ 2) - 2 log (sigma).

(Baris nilai absolut menunjukkan jarak Euclidean di bidang pencitraan, dihitung seperti biasa dengan Teorema Pythagoras.)

Berdasarkan asumsi independensi kesalahan, probabilitas log dari set data untuk gambar adalah jumlah dari nilai-nilai ini. Ini adalah "kemungkinan log." Estimasi kemungkinan maksimum (ML) dari parameter theta dan sigma (lima angka semuanya) adalah nilai-nilai yang memaksimalkan kemungkinan log.

Kita bisa, dan harus, melangkah lebih jauh. Teori ML juga menunjukkan cara mendapatkan interval kepercayaan untuk perkiraan. Secara intuitif, kesalahan dalam pengamatan kami menciptakan sedikit ketidakpastian dalam nilai gabungan sudut, faktor skala, dan standar deviasi. Kami membutuhkan nilai-nilai ini untuk memperkirakan RA dan DEC untuk setiap piksel dalam gambar kami. Dengan menggunakan nilai tidak pasti, yang tidak dapat dihindari, kami akan mendapatkan hasil yang tidak pasti. Selain itu, jika kami mengidentifikasi piksel dalam gambar kami dengan melihat gumpalan cahaya difus (tersebar di sekitar pi * sigma ^ 2 piksel sekaligus), akan ada ketidakpastian tambahan dalam koordinat piksel. Secara kolektif kedua bentuk ketidakpastian ini bergabung. Ini menyiratkanketidakpastian net dalam memperkirakan RA dan DEC dari gumpalan cahaya pada gambar lebih besar dari yang Anda duga.

Akhirnya, ketika Anda mengambil pengukuran dari gambar dan menggunakannya untuk memperkirakan koordinat sebenarnya dari bintang atau benda langit, Anda melakukan regresi terbalik , yang merupakan bentuk kalibrasi instrumen. Regresi terbalik adalah prosedur untuk menjelaskan ketidakpastian yang baru saja saya jelaskan. Keluarannya tentu saja termasuk perkiraan koordinat bintang untuk gumpalan piksel pada gambar. Ini juga mencakup lingkaran koordinat di sekitar perkiraan itu yang juga konsisten dengan lokasi gumpalan itu. (Ini adalah "interval prediksi terbalik" gabungan atau seperangkat "batas fidusia" untuk RA dan DEC gumpalan.) Dalam praktiknya, jika Anda berkonsultasi dengan katalog benda langit, Anda dapat menggunakan cincin ini untuk mencari semua objek yang diketahui yang konsisten dengan informasi dalam gambar Anda. Jelas ini bisa lebih berharga daripada prosedur sederhana yang memperkirakan - kadang-kadang salah - hanya satu set koordinat.

Singkatnya, yang diperlukan di sini adalah perangkat lunak

  • Lakukan pengoptimalan nonlinear yang diminta oleh ML.

  • Perkirakan kesalahan standar dalam taksiran.

  • Lakukan regresi terbalik.

Keahlian dengan perangkat lunak yang sesuai, seperti perintah ML Stata atau Mathematica , sangat penting jika Anda mengkodekannya sendiri.

Terlepas dari keahlian Anda, berikut adalah beberapa kesimpulan yang dapat Anda gunakan dalam strategi pencitraan Anda:

  • Keakuratan gambar untuk mendapatkan perbaikan pada objek apa pun tidak pernah bisa lebih besar dari ketidaktepatan yang melekat dalam pencitraan (sebagaimana diukur dengan sigma , ukuran khas dari titik cahaya pada gambar).

  • Anda dapat mendekati tingkat akurasi ini dengan mengidentifikasi banyak bintang yang dikenal, bukan hanya tiga. Ini mengurangi ketidakpastian dalam transformasi langit-ke-gambar hampir menjadi nol jika Anda memiliki cukup banyak bintang yang dikenal yang terletak di dalam gambar.

  • Benar bahwa Anda ingin bintang referensi tersebar di gambar. Hal ini juga penting bahwa mereka tidak akan berbaris (yang, sayangnya, adalah kasus dengan tiga lokasi yang diberikan dalam pertanyaan). Jika Anda mampu menemukan hanya tiga bintang, dapatkan mereka dalam segitiga yang bagus. Ketika bintang-bintang berbaris, analisis statistik menunjukkan ada ketidakpastian besar tentang lokasi dalam arah yang tegak lurus terhadap garis. Dalam contoh khusus ini estimasi kesalahan ( sigma ) adalah ratusan piksel. Memiliki satu bintang lagi untuk membuat segitiga yang bagus harus mengurangi kesalahan ini menjadi satu atau dua piksel.

Beberapa pemikiran perpisahan:

  • Dimungkinkan untuk mendeteksi dan bahkan memperbaiki penyimpangan lensa dengan melakukan analisis statistik yang lebih luas. Idenya adalah untuk merencanakan penyimpangan antara lokasi yang diharapkan dan lokasi sebenarnya dari bintang pada gambar. Ini mirip dengan data peta "warping" atau " georeferencing ". Sebagai solusi cepat dan kotor, Anda dapat menekan GIS atau perangkat lunak pengolah gambar (seperti ENVI ) ke layanan ke georeferensi (atau astroreferensi) gambar apa pun. Perangkat lunak semacam itu biasanya tidak melakukan estimasi ML dari transformasi projektif, tetapi ia dapat melakukan pendekatan polinomial tingkat tinggi. Transformasi polinomial order-2 atau order-3 mungkin melakukan pekerjaan yang cukup baik, tergantung pada aplikasi Anda.

  • Dimungkinkan untuk meningkatkan akurasi dengan menggabungkan beberapa gambar dari objek yang sama.

whuber
sumber
Saya ingin menunjukkan, sebagai tanggapan terhadap komentar yang sekarang dihapus yang muncul di layar selama satu detik (!), Bahwa jika Anda memiliki informasi yang akurat tentang orientasi lensa maka Anda secara efektif mengetahui dua atau bahkan tiga parameter. (sudut). Ini membuatnya lebih mudah untuk menemukan solusi ML untuk parameter yang tersisa (karena ada lebih sedikit dari mereka) dan mengurangi beberapa ketidakpastian, tetapi itu tidak mengubah sifat masalah. Dalam kasus terbaik, Anda juga tahu orientasi kamera. Menemukan faktor skala adalah masalah linier - Anda bahkan bisa menggunakan spreadsheet untuk menyelesaikannya!
whuber
@whuber: Ok, sebelum saya menjawab, temui saya dengan jelas apa yang saya tanggapi. Analisis statistik Anda sangat solid, dan saya hanya berbicara di sini tentang masalah optik. Saya mengabaikan ketidakpastian statistik dan ketidaksempurnaan dalam sistem pencitraan. Dalam praktiknya ketika saya sudah melakukan pekerjaan registrasi gambar, saya memang menggunakan pendekatan kemungkinan maksimum, tetapi saya menemukan itu sedikit di luar ruang lingkup pertanyaan di sini. Jadi yang tersisa dalam jawaban Anda adalah sedikit tentang mentransformasikan (RA, Des) menjadi (x, y). Kelemahan di sini tampaknya berada dalam cara Anda berpikir tentang objek dan bidang gambar ketika objek berada di tak terbatas
Colin K
@whuber: Secara umum, proyeksi gnnomik yang Anda gambarkan memang proyektif, tetapi dalam kasus pencitraan tanpa batas, tidak mungkin ada kemiringan objek "bidang". Jika Anda harus menganggapnya sebagai bidang yang sebenarnya, maka Anda harus menganggapnya sebagai normal pada sumbu optik. Saya juga merasa agak aneh bahwa Anda berbicara tentang "Hitung [ing] (x, y, z) koordinat untuk koordinat bola dari bintang-bintang". Ini tidak perlu. Sepertinya Anda memiliki latar belakang yang kuat dalam analisis numerik, tetapi sedikit di bidang teknik optik?
Colin K
@whuber: Saya merancang lensa dan algoritme pengolah gambar secara profesional, jadi saya mungkin menggunakan kosakata yang memiliki arti sangat spesifik untuk para insinyur optik, dan kami mungkin mengalami masalah komunikasi.
Colin K
1
@whuber: Sekarang, izinkan saya mengajukan beberapa pertanyaan yang dapat membantu pemahaman kita. 1. Pemahaman saya tentang transformasi koordinat sebagian besar otodidak untuk keperluan pemrosesan gambar, jadi saya yakin ada beberapa lubang. Apakah benar mengatakan bahwa transformasi affine adalah transformasi proyektif dengan penskalaan yang sama di kedua dimensi? 2. Bisakah Anda menggambarkan suatu kasus di mana, dengan semua objek tanpa batas, akan ada skala yang tidak sama dalam gambar relatif terhadap posisi sudut objek? Contohnya bisa berupa bidang bintang yang disusun dalam kisi-kisi di ruang angkasa, tetapi pada jarak yang berbeda-beda.
Colin K
0

Untuk melakukan ini dengan tingkat ketepatan yang sama seperti yang dilakukan para astronom profesional tentu akan sulit. Ini akan mengharuskan Anda untuk memiliki karakterisasi yang sangat tepat dari distorsi yang dihasilkan oleh lensa Anda, dan ketidaksempurnaan pada sensor kamera Anda. Namun, Anda mungkin tidak membutuhkan tingkat akurasi itu. Seharusnya cukup bagi Anda untuk mengasumsikan bahwa lensa Anda tidak menimbulkan distorsi dalam jumlah besar (yang merupakan asumsi yang baik untuk lensa berkualitas) dan bahwa sensor kamera Anda cukup dekat dengan kisi-kisi yang sangat teratur (yang merupakan asumsi yang sangat baik untuk bahkan kamera yang murah).

Yang tersisa adalah mengerjakan transformasi koordinat yang menggambarkan orientasi kamera, yaitu arah yang ditunjukkan dan sejauh mana ia diputar.

Apa yang Anda cari saat itu, disebut transformasi affine , atau peta affine. Yang hanya nama mewah untuk matriks yang dengannya Anda akan melipatgandakan koordinat piksel Anda untuk mendapatkan koordinat astronomi Anda. Dalam kasus peta affine, transformasi ini dapat mencakup derajat rotasi, skala, geser, dan terjemahan apa pun.

Arti komponen rotasi cukup jelas. Faktor skala hanya menggambarkan seberapa banyak langit yang dicakup oleh setiap piksel dalam hal RA / Des. Shear adalah transformasi yang akan membuat gambar persegi panjang menjadi jajar genjang, tetapi seharusnya tidak ada efek ini dalam gambar objek di infinity (seperti bintang). Terakhir, komponen terjemahan yang sederhana menambahkan offset ke akun karena fakta bahwa (x = 0, y = 0) piksel pada gambar Anda mungkin tidak sesuai dengan (RA = 0, Dec = 0).

Karena Anda memiliki 3 bintang referensi di gambar Anda, Anda memiliki informasi yang cukup untuk menghitung hubungan antara koordinat piksel Anda dan RA / Des yang Anda cari. Ini akan dilakukan oleh linear kuadrat terkecil (bukan kuadrat non-linear seperti yang disebutkan di atas) untuk menentukan nilai-nilai komponen matriks yang paling cocok dengan koordinat piksel Anda dengan RA / Des yang diketahui dari bintang referensi. Setelah matriks ditetapkan, Anda dapat menerapkannya pada koordinat piksel bintang lain untuk mendapatkan RA / Des.

Meskipun saya bisa melakukan ini dengan relatif mudah, sayangnya saya tidak yakin bagaimana membantu Anda melakukannya. Ini akan melibatkan beberapa keterampilan matematika yang sedikit di luar lingkup photo.SE. Saya seorang insinyur optik, tapi saya bukan fotografer. perangkat lunak yang akan saya gunakan untuk ini dirancang bagi para insinyur untuk melakukan perhitungan numerik tugas berat, dan sama sekali bukan alat fotografi. Mungkin ada cara untuk melakukan ini menggunakan paket perangkat lunak yang ditujukan untuk fotografer, tetapi saya tidak tahu tentang mereka.

Colin K
sumber
Sayangnya, transformasi biasanya tidak affine: itu proyektif.
whuber
Saya kira saya lebih memikirkan masalah seperti whuber, sebagai proyeksi. Saya ingin tahu apakah Anda benar-benar dapat mengubah koordinat piksel OP menjadi RA / DEC dengan transformasi affine.
jrista
@whuber: Secara umum ya, tetapi tidak untuk objek tanpa batas. Bahkan, dalam hal ini transformasi bahkan lebih ketat: itu adalah transformasi kesamaan non-reflektif. Ini adalah himpunan bagian dari transformasi afin yang skalanya sama di kedua arah dan tidak ada geser. (Kesamaan non-reflektif adalah kasus khusus affine yang merupakan kasus khusus proyektif)
Colin K
Saya mohon untuk berbeda. Lihat analisis dalam tanggapan saya yang baru diposting.
whuber