お気楽天体観測

肩ひじ張らずに天文を楽しむ記録です。メイン機材はSpaceCat51、CelestronC5、SkyMemoS、CRUX140Traveler、AZ-GTi。カメラはPentaxKP、K70とZWOASI533MCP

シリーズ:電子ファインダーを整えてみたい(2) Androidスマホ内でAstrometry.netを動かしてプレートソルブする

本シリーズ、第1話で終わってしまうかと思いきや、続きそうです!

第2話は、Androidスマホ内でAstrometry.netを動かす!です。

第1話は、ASTAPを使ってみる、というところでしたが、Androidでもっと手軽にAstrometry.netが動かせそうだ、ということで、方針転換ですw

こちらも、いろいろ試行錯誤したのちではありましたが、結論としては非常に簡単です!
※試行錯誤の記録はつけていませんがw

端的には、AndroidのUserLAndというソフトがあり、これをインストールした後にUbuntu環境をセットアップして、その中にAstrometry.net環境を構築する、というものです。

Linuxのコマンドがわかる人は、正直この記事を見たらすぐできるくらい、非常に簡単でした!

自分の備忘もかねて綴ります。

注意

UserLAndのアプリの画面キャプチャ、画面遷移は、2023年3月時点ものです。
ネットで調べながらやったんですが、昨年以前の画面遷移と最新版だと、ちょっと変わっているようです。
今後も変わる可能性があることに注意が必要です。※難しくないですけど

UserLAndのインストール→Ubuntuのインストール

AndroidのアプリストアからUserLAndをインストールします。

インストール後は、こんな画面が出ます。

ここで、「Ubuntu」をタップしますと、こんな画面が出ます。

「Minimal」を選択した状態で「CONTINUE」をタップします。

すると、次にこんな画面が出ます。

こちらは、「Terminal」を選択し、同じく「CONTINUE」をタップします。

すると、Ubuntuのセットアップが始まります

セットアップが終わると、以下のようにTerminalが開きます。

この状態でポート2022でSSH接続ができる状態となっています。

Ubuntuのパッケージインストール

あると便利なパッケージを先にインストールしてしまいます。
sshのcliから以下を入力します。

sudo apt update
sudo apt install vim net-tools less software-properties-common -y


net-toolsはifconfigとかnetstatとかが入っているパッケージ
software-properties-commonは、apt-add-repositoryとかを使えるようにするパッケージ

です。

UserLAndで使用されるデフォルトのUbuntuのユーザやパスワードの確認方法

セットアップ完了後、下のメニューバーの「Filesystems」をクリックすると、こんな画面が表示されます。

ここの、1行目の「apps」を長押しすると、メニューが表示され、「Edit」を押すと以下の画面が表示されます。

ユーザ名は、何回インストールしても「userland」です。
パスワードは、右側の目のアイコンをクリックすると、マスク化が解除され確認できます。
当方、パスワードがどこで確認できるのかわからず、ずいぶんネットを彷徨いましたw

(Linux/Ubuntuの話)セットアップ後のUserLAndのSSH接続(Dropbear)について

UserLAndのUbuntuでは、DropBearというSSH実装が起動しています。
ですので、sshdプロセスは、当然ながらいません。
スマホから触っていると、Console接続しているような感覚ですが、DropBearのSSHサーバに接続しています。

公式HP
matt.ucc.asn.au

UserLAnd+SSHで検索すると、DropBearのことは一切語らずにOpenSSH-Serverをインストールする記事が散見されますが、2023年3月現在のUserLAndでセットアップしたUbuntuでは、Open-SSH-Serverをインストールする必要は全くありません。
※当方、ググって調べた記事にずいぶん惑わされてしまったので、自戒を込めて。ちなみに、プロセスツリーの中にdropbearという文字列を見つけて調べて、そういうことか、と自己解決しました。

Astrometryのインストール

さて、気を取り直してAstrometryのインストールですが、非常に簡単です。

sshから以下を入力します。

sudo apt install astrometry.net -y

パッケージのインストールは以上です!なんと簡単w

続いて、インデックスファイルのダウンロードをします。
インデックスファイルの配置先は以下のディレクトリとなります。

/usr/share/astrometry

電子ファインダーで使用する画角を想定しつつ、いったん4100系を全部ダウンロードしました。
ダウンロードは以下のコマンドで実行しました。

 cd /usr/share/astrometry/
 wget http://data.astrometry.net/4100/index-4107.fits
 wget http://data.astrometry.net/4100/index-4108.fits
 wget http://data.astrometry.net/4100/index-4109.fits
 wget http://data.astrometry.net/4100/index-4110.fits
 wget http://data.astrometry.net/4100/index-4111.fits
 wget http://data.astrometry.net/4100/index-4112.fits
 wget http://data.astrometry.net/4100/index-4113.fits
 wget http://data.astrometry.net/4100/index-4114.fits
 wget http://data.astrometry.net/4100/index-4115.fits
 wget http://data.astrometry.net/4100/index-4116.fits
 wget http://data.astrometry.net/4100/index-4117.fits
 wget http://data.astrometry.net/4100/index-4118.fits
 wget http://data.astrometry.net/4100/index-4119.fits

これで、インデックスファイルの配置まで完了です!

あと、作業用ディレクトリも作っておきます。

mkdir ~/astrometry_tmp

Astrometry.netの動作確認@Android上

さて、続いて、感動の動作確認のターンです!
ASICAPで以前撮影した画像を使います。
ASICAPで撮影した画像は、`/DCIM/ZWO/YYMMDD`のようなディレクトリに格納されていますので、作業用ディレクトリに、「target.jpg」という名前に変更し、コピーしています。
※リネームはしなくてもOKです。

cd ~/astrometry_tmp
cp /DCIM/ZWO/230304/212328282.jpg ./target.jpg

今回のプレートソルブ対象の画像はこちらです。

面白みに欠ける画像ですが、過去に、足の自由が利かない中、スマホにZWOASI224MC+60mmCマウントレンズを接続してASICAPでベランダから余計なものが映り込まないように撮影した画像です。

続いて、プレートソルブです!

solve-field -z 2 -O target.jpg

オプションの意味は以下の通り

  • -z :ダウンサンプリング
  • -O:アウトプットの上書き

コマンドのオプションのリストはこちらから確認できます。
manpages.debian.org


こちらのコマンドを実行すると、以下のような出力が出て、10秒弱くらいでプレートソルブが完了します。

Reading input file 1 of 1: "target.jpg"...
jpegtopnm: WRITING PPM FILE
Read file stdin: 1304 x 976 pixels x 1 color(s); maxval 255
Using 8-bit output
Extracting sources...
Downsampling by 2...
simplexy: found 184 sources.
Solving...
Reading file "./target.axy"...
Field 1 did not solve (index index-4119.fits, field objects 1-10).
Field 1 did not solve (index index-4118.fits, field objects 1-10).
Field 1 did not solve (index index-4117.fits, field objects 1-10).
Field 1 did not solve (index index-4116.fits, field objects 1-10).
Field 1 did not solve (index index-4115.fits, field objects 1-10).
Field 1 did not solve (index index-4114.fits, field objects 1-10).
  log-odds ratio 96.1094 (5.49251e+41), 13 match, 0 conflict, 19 distractors, 23 index.
  RA,Dec = (117.613,-24.4157), pixel scale 13.6652 arcsec/pix.
  Hit/miss:   Hit/miss: -+-+-+++++-+---++-+---+--------+(best)--------------------------------------------------------------------
Field 1: solved with index index-4113.fits.
Field 1 solved: writing to file ./target.solved to indicate this.
Field: target.jpg
Field center: (RA,Dec) = (117.610577, -24.416526) deg.
Field center: (RA H:M:S, Dec D:M:S) = (07:50:26.539, -24:24:59.494).
Field size: 4.94369 x 3.70432 degrees
Field rotation angle: up is -175.235 degrees E of N
Field parity: neg
Creating new FITS file "./target.new"...
Creating index object overlay plot...
Creating annotation plot...
Your field contains:
  The star Azmidi / Asmidiske (ξ Pup / 7 Pup)
  The star ο Pup
  The star j Pup / 11 Pup
  The star 12 Pup
  The star 188 Pup
  NGC 2447 / M 93
  NGC 2448
  NGC 2482

そして、プレートソルブ実行後に様々ファイルができます。

-rw-------. 1 userland userland 2599618 Mar 30 04:56 target-indx.png
-rw-------. 1 userland userland    8640 Mar 30 04:56 target-indx.xyls
-rw-------. 1 userland userland 2553771 Mar 30 04:56 target-ngc.png
-rw-------. 1 userland userland 2572421 Mar 30 04:56 target-objs.png
-rw-------. 1 userland userland   11520 Mar 30 04:56 target.axy
-rw-------. 1 userland userland   11520 Mar 30 04:56 target.corr
-rw-------. 1 userland userland  422288 Mar 30 04:49 target.jpg
-rw-------. 1 userland userland   17280 Mar 30 04:56 target.match
-rw-------. 1 userland userland 1284480 Mar 30 04:56 target.new
-rw-------. 1 userland userland   11520 Mar 30 04:56 target.rdls
-rw-------. 1 userland userland       1 Mar 30 04:56 target.solved
-rw-------. 1 userland userland   11520 Mar 30 04:56 target.wcs


これらの中の、「target-ngc.png」というファイルが、アノテーションが入った画像ファイルとなります。
結果はこちらです!

電子ファインダーを想定し、60mmくらいのCマウントレンズ+ASI224MCで、公害まみれの空で撮影した画像ですが、仮に双眼鏡でM93を狙っていたら、もう少し右に行けば双眼鏡の画角に入るということがわかります!

なお、Ubuntuの領域はAndroidのほかのアプリ(フォトとかFilesとか)からは見えませんので、例えば以下のように処理済みのファイルをコピーし、Filesで開く、というひと手間が必要です。

cp ~/astrometry_tmp/target-ngc.png /DCIM/Camera/

まとめと今後の方向性

今回は、AndroidスマホでUserLAndというLunux環境でUbuntuをセットアップし、そのうえでAstrometry.netをセットアップしてプレートソルブを実行する、一連の流れを確認できました。
今、手でコマンドを打ったりしている部分について、うまくAndroidアプリを独自に作って自動化すれば、電子ファインダーアプリが作れる気がしてきました!
※UserLAndに強依存しますが。

また、余ったASI224MCを活用する、というところから始まっていますが、別にASI224MCでなくても、スマホに望遠レンズを取り付け撮影しても同じことができそうな気がしてきています。この手のレンズはちゃんと固定することが難しそうですが。

https://www.amazon.co.jp/dp/B07T2GK2FM/


いずれにしても、今絶賛Androidアプリ開発の勉強中のため、時間はかかりそうですが、この話題は継続しそうな雰囲気です。気合い入れて頑張りたいです。


その他

細かくは書きませんが、Astrometory.netではなく、Kstars+EKOSセットアップしたらいいんじゃね?といううことで、UserLAndにKstars+EKOSの環境もセットアップしてみましたが、ZWOのカメラを認識させることができず、断念しました。