Deep Sky Memories

横浜の空で撮影した星たちの思い出

月末は水星を見るチャンス

新月期の週末なのにあいにくの雨。月末は水星を撮るチャンスですが晴れるかなー。

位置が南寄りなので南向きベランダで撮影できそう。でも高度10度とかで鏡筒がベランダの手すりにぶつからないか心配。三脚伸ばせば大丈夫かな?でもベランダの奥行きが限界に近いのでそんなに伸ばせなかったり。いきなり自動導入して手すりにぶつけたら大変なので事前に確認は必要ですね。

まあ28日は日の出20分前に15度近くまで昇るのでなんとかなるかなー… とはいえ導入に手間取ると太陽が出てしまうので前もってスピカか火星でアライメント取っておくべきですね。ピント合わせも火星あたりで先にやっておかなくては。と思ったけど火星の視直径まだ3.9秒!? これじゃ無理ですね。恒星で合わせるしかないかな。

ちなみに当日の水星の視直径は6.8秒。先日撮った天王星(3.7秒)の1.8倍の大きさ。

結構見応えがありそうですが、シーイングが悪そうでちゃんと写るのかどうか。半月より少し太った形に欠けた姿がとらえられるでしょうか?

https://rna.sakura.ne.jp/share/stellarium-021.png

VirtualSkySlideShow v0.3.0 (スライド毎の観測地設定追加)

VirtualSkySlideShow (VSSS) v0.3.0 を公開しました。

rna.sakura.ne.jp に設置してあるスクリプトも v0.3.0 に更新してあります。

v0.3.0 では、これまで config でしか設定できなかった観測地の緯度・経度が設定をスライド毎に設定できるようになりました。これで海外に遠征する人も安心です。僕みたいなひきこもり天文家は使わない機能ですが… いや、いつかは使えるといいな…

緯度・経度の設定を省略すると config の設定が適用されるので過去のスライドデータはそのまま使えます。

スライド切替時のアニメーションでは時間の移動(日周運動早回し)に続けて観測地の移動が始まります。観測地の移動にかける時間は config の move_duration で設定しますが、観測地が変わらない場合はすぐに方位の回転のアニメーションが始まります。

詳細は https://github.com/rnanba/VirtualSkySlideShow/blob/master/README.md を参照してください。

あと、最近のエントリで紹介した flickr から VSSS 用データを収集するのに使う Greasemonkey スクリプトも同梱しました。

なんかこのところ VSSS 関係のエントリばかりですが、需要あるんですかねぇ… 他に使ってる人を見ないけれど。まあ、基本自分が使うために作っているのでいいのですが。逆に言うと、自分が使わない機能は気が向かなければ実装しない、ソースは公開するから自分で作ってね!ということです。

astrometry 連携と wikipedia 連携 (Re: Flickr から VSSS 用のデータを抜き取る Greasemonkey スクリプト)

昨日のこれなんですが、

天文リフレクションズさんにピックアップしていただいて、プレートソルビングで座標も取れたらいいのにな的な話が。

というわけで作ってみました。

ボタン一つで表示中の写真を astrometry.net に送信してプレートソルビングを実行します。成功すると [VSSS] ボタンで取れるデータに写野中心の座標が埋め込まれます。

が、やはり数分待たされるのと、あまり astrometry.net に負荷をかけるのもなー、ということで wikipedia 連携も作ってみました。こちらは手動。ボタンを押すと Wikipedia の検索ページが開き、検索結果から天体のページを開くとそこに [VSSS] ボタンが表示されるので、それを押すと flickr 側のスクリプトに座標が埋め込まれます。

使用法等の詳細は README_GM.md を見てください。

ページ内のフォームを操作したり DOM からデータを引っこ抜いたりするのでサイトデザインが変わると動かなくなるタイプのものですが、自己責任でご利用ください。

Flickr から VSSS 用のデータを抜き取る Greasemonkey スクリプト

VirtualSkySlideShow (VSSS) 用のスライドデータを作るのに、Flickr にアップロードした画像を使うのですが、画像URL を引っこ抜くのが面倒だったので Greasemonkey スクリプトを書いてみました。Firefox で閲覧中の Flicker の写真ページにボタンを追加して、ボタンを押すと、以下の情報を抽出して VSSS 用のJSON断片をクリップボードにコピーします。

  • 写真のタイトル
  • 写真の撮影時刻(Exif から取得)
  • 長辺2048ピクセル(またはそれに近い)の画像のURL
// ==UserScript==
// @name     VSSS用データ取得
// @namespace https://rna.hatenablog.com/
// @version  1.0
// @include  https://www.flickr.com/photos/*
// @grant    none
// ==/UserScript==
addEventListener("DOMContentLoaded", function(){
  
  const TARGET_SIZE = 2048;
  
  const getImageAndLabel = function (context, photoId, obj) {
    let model = null;
    try {
      model = context.modelRegistries["photo-models"]._data[photoId];
    } catch (e) {
      return null;
    }
    console.log("photo:model = " + model);
    if (!model) {
      return null;
    }
    const sizes = model.sizes;
    let dMin = TARGET_SIZE;
    let url;
    let sizeMax;
    for (const name in sizes) {
      // console.log("photo:size: " + name);
      const sz = sizes[name];
      let size = Math.max(sz.width, sz.height);
      let d = TARGET_SIZE - size;
      if (d >= 0 && d < dMin) {
        dMin = d;
        url = sz.displayUrl;
        sizeMax = size;
      }
    }
    obj.image = 'https:' + url;
    obj.label = model.title;
    return obj;
  };
  const getDate = function (context, photoId, obj) {
    let model = null;
    try {
      model = context.modelRegistries["photo-exif-models"]._data[photoId];
    } catch (e) {
      return null;
    }
    console.log("exif:model = " + model);
    if (!model) {
      return null;
    }
    let date = null;
    let tz = null;
    for (let tag of model.data) {
      // console.log("exif:tag: " + tag.label);
      switch (tag.label) {
        case "Date and Time (Original)":
          let m = /^(\d+):(\d+):(\d+)\s+(\d+:\d+:\d+)$/.exec(tag.value);
          date = m[1] + "-" + m[2] + "-" + m[3] + "T" + m[4];
          break;
        case "Offset Time":
          tz = tag.value;
          break;
      }
      if (date && tz) {
        break;
      }
    }
    obj.date = date + tz;
    return obj;
  };
  const onClick = function () {
    const wait = function () {
      button.innerText = '[wait...]';
      console.log("wait...");
      setTimeout(onClick, 100);
    };
    const photoId = /^https?:\/\/www\.flickr\.com\/photos\/[^\/]+\/(\d+)\//.exec(window.location.href)[1];
    console.log("photo_id = " + photoId);
    const context = window.wrappedJSObject.appContext;
    console.log("context:" + context);
    if (!context) {
      wait();
      return;
    }
    let obj = getDate(context, photoId, {});
    if (!obj) {
      wait();
      return;
    }
    console.log(obj.date);
    obj = getImageAndLabel(context, photoId, obj);
    if (!obj) {
      wait();
      return;
    }
    console.log(obj.image);
    const json = JSON.stringify(obj, null, "  ");
    console.log(json);
    navigator.clipboard.writeText(json);
    button.innerText = '[VSSS]';
  };
  
  const button = document.createElement('div');
  button.innerText = '[VSSS]';
  button.style.position = 'absolute';
  button.style.padding = '0.2rem';
  button.style.right = '0';
  button.style.color = '#77e';
  button.style.zIndex = '3000';
  button.style.cursor = 'copy';
  button.style.fontWeight = 'bold';
  button.addEventListener('click', onClick);
  document.body.insertBefore(button, document.body.firstChild);
})

たとえば https://www.flickr.com/photos/rnanba/48346830907/ にアクセスしてページ右上に表示される [VSSS] ボタンを押すと以下のようなテキストがクリップボードにコピーされます(ボタンの表示が [wait...] の間は待ってください)。

{
  "date": "2019-01-01T21:54:51+09:00",
  "image": "https://live.staticflickr.com/65535/48346830907_20a9a09643_k.jpg",
  "label": "ばら星雲 (2019/1/1 21:54) (StarNet++使用(3))"
}

これに "ra", "dec" (あるいは "planet")の情報を足せば VSSS のスライドオブジェクトになります。これでスライド作りがだいぶ楽になりました。

TARGET_SIZE はスライドショーの再生環境に応じて適当な値を設定してください。設定した値を越えない範囲で一番大きなサイズの画像が選択されます。

技術的なこと

Flickr のページ上で動く JavaScript アプリケーションが保持するデータにアクセスすることで実現しています。window.appContext.modelRegistries 以下に色んなデータがあるのでそこから引っこ抜くわけです。

そういう仕組みなので Flickr のサイトがリニューアルされると使えなくなったりする可能性が大です。また、元のデータが非同期に更新されるので、タイミングによってはデータの取得に失敗するかも。一応データがなかった場合はリトライするように作ってあります(リトライ中はボタン表示が [wait...] になる)。

VirtualSkySlideShow v0.2.0 (キー操作機能追加)

VirtualSkySlideShow (VSSS) v0.2.0 を公開しました。

rna.sakura.ne.jp に設置してあるスクリプトも v0.2.0 に更新してあります。

今回は機能追加で、キー操作で次のスライドに進めたり前のスライドに戻ったりできるようになりました。キー操作を行うにはスライドショーの表示領域を一度クリックしてフォーカスを当てる必要があります。

また、初期表示にスライドデータの config の設定が反映されるようにしました。これにより緯度経度等を埋め込みスクリプトとスライドデータで二重に設定する必要がなくなりました。

使用法等はこちらにまとめました。

インストール方法の部分は上の zip 版のリリースを使わない方法が書いてあります。zip 版のリリースを使う場合は単にインストールディレクトリに zip の内容を全部展開すれば OK です。

RedCat 51 買いました

William Optics の RedCat 51 買っちゃいました…

IMG_7843

11月入荷分のリニューアルモデルを KYOEI TOKYO でポチりました。11月9日の夜中についふらふらと… 届いたのは15日の朝でした。届いた箱が意外と大きいなと思って開けたら二重梱包になってて中にメーカー元箱が入ってました。

IMG_7844

中を開けると KYOEI 作成の日本語版クイックスタートガイドが。他に英語の説明書があるのかなと思ったのですが見当たりませんでした。これはなくさないように。

IMG_7845

鏡筒は布製のキャリングバッグの中です。北斗七星を見上げるどら猫の絵がかわいい。

IMG_7846

バッグの中のウレタンは上半分が空いてますが切り込みが入れてあって、取り外してオプションを収納できるみたいです。鏡筒接眼側のウレタンブロックは、取り外すとTリングを付けたまま収納できるようになっています。マイクロフォーサーズ用Tリングを付けても大丈夫でした。

手前のビニール袋に入っているのはどら猫シールとヘクスキー2本(2mm, 1.5mm)と検査証明書です。検査で実写した星の写真を印刷した紙も入っていました。

IMG_7847

鏡筒バンドに肉球マーク。アリガタはロングタイプ。Vixen 互換ですが、裏返して取り付けるとアルカスイス互換になります。

IMG_7848

キャップにどら猫マーク。キャップの先端にねじ込まれたプレートを外すと中にクリアタイプのバーティノフマスクが入っています。DIFFRACTION SPIKES と書いてあるのを見て初めて気づいたのですが、どら猫のヒゲの部分がバーティノフマスクで見た星の回折スパイクの形(合焦時)なんですね。

IMG_7850

一緒に買ったビクセン規格のファインダー台座と、マイクロフォーサーズ用Tマウント。ファインダー台座は QHYCCD の miniGuideScope を取り付けるのに使います。

IMG_7851

Tマウントの内側はしっかりつや消し塗装が施されています。

ちなみにファインダー台座を取り付けた状態ではバッグに収納する際にウレタンに引っかかって鏡筒がうまく収納できません。しょうがないのでウレタンをカッターで少し削って収納できるようにしました。

IMG_7856

昨夜は快晴だったのですが、月齢的に本気撮りは無理だったのでとりあえず星像確認だけ。SX2 を出すのもなんなので久しぶりにスカイメモSを引っ張り出して撮影しました。

IMG_7854

IMG_7855

色的にもサイズ的にもベストマッチ?とはいえ RedCat は小さいとはいえ結構ずっしりしているし、ファインダー位置が固定で極軸から一番離れた場所にオートガイダーが取り付けられる形になるので、オートガイダーとカメラ(OM-D E-M5)を付けるとバランスウェイトはほぼ外側いっぱいの位置でした。まあ、このスカイメモSは改造してビクセンのアリミゾがついてたりするので、普通はもっと余裕があるはず。

撮影対象は明るい星の写りも見たかったのでリゲル周辺。

Red Cat 51 テスト - リゲル周辺 (30s x8、フラットなし)
Red Cat 51 テスト - リゲル周辺 (30s x8、フラットなし)
William Optics RedCat 51 (D51mm f250mm F4.9 屈折) / Kenko-Tokina スカイメモS, D30mm f130mm ガイド鏡 + ASI290MM + PHD2 による自動ガイド/ OLYMPUS OM-D E-M5 (ISO200, RAW) / 露出 30秒 x 8コマ 総露出時間 4分 / DeepSkyStacker 3.3.2, Lightroom CC で画像処理

30秒露出で8枚コンポジット。ダークは使いましたが、周辺減光も見たかったのでフラットはなしです。Lightroom はレベル補正とホワイトバランスのみ。

久々のスカイメモSですが、ガイドは結構荒れました。でも30秒露出なので星像への影響は少ないと思います。ピント合わせはヘリコイドの動きが渋くて、クックッとひっかかるような動きがあって苦労しました。が、後で先端のロックリングを緩めてなかったことが判明。緩めるとヌルヌルとは行きませんがだいぶマシになるようです。

星像は、右側の隅、特に右下隅が若干流れているような… でも鑑賞距離では全く気にならないレベルだし、調整するほどでもないかなぁ。RedCat はリニューアルモデルになってスケアリング調整機構が追加されたのですが、下手にいじるとハマりそうで怖い。輝星の写りは光条の乱れは若干あるようですが、これもそれほど目立たないと思います。

周辺減光は左上から月明かりのカブリのグラデーションがあってよくわかりませんね… でもフラットを見た限りは周辺減光ほとんど見られませんでした。フラットはフードの先にビニール袋をかぶせて iPad で照らす方法で撮ったので、手で構えた iPad の傾きによるムラがあり微妙な周辺減光はわからない状態でしたが… でもフォーサーズの画角ならほぼフラットいらずなのでは?

月も撮ってみました。

Red Cat 51 テスト - 月
Red Cat 51 テスト - 月
William Optics RedCat 51 (D51mm f250mm F4.9 屈折) / Kenko-Tokina スカイメモS, D30mm f130mm ガイド鏡 + ASI290MM + PHD2 による自動ガイド/ OLYMPUS OM-D E-M5 (ISO200, RAW) / 露出 1/500秒 / Lightroom CC で画像処理

Lightroom の現像設定はシャープネス30、カラーノイズ軽減25のみです。等倍ではこうなります。

Red Cat 51 テスト - 月 (トリミング)

なかなかシャープな写りではないでしょうか。月の縁を見ても色収差や色ズレは皆無です。

そんなわけで新月期にはこのまま実戦投入できそうです。ちなみに RedCat を買った理由は BLANCA-80EDT (f=480mm) とフォーサーズの画角だとはみ出してしまう対象がいくつかあるからです。かもめ星雲、勾玉星雲、網状星雲、M31、三裂星雲と干潟星雲のツーショット、等。

モザイク撮影で凌ごうかとも思ったのですが、光害地で長時間露出というスタイルではコマ毎に光害カブリの傾きが変化してしまうのでモザイクのつなぎ目の処理が大変そうです。

レデューサーは0.6倍の画角でもフォーサーズでは厳しいです。それに笠井の0.6倍は、F6の鏡筒は対象外で実際使うと周辺がむっちゃ流れます。対応している0.8倍レデューサーと APS-C 機あるいはフラットナーとフルサイズ機なら… でもそのためにカメラ買うのも…

というわけで買った RedCat ですが一式10万円ちょいだったことを考えると中古でカメラ買った方が安かったかも… でも、まぁ、欲しかったんだ。うん。結局そういうことなんです。赤いし。

以上、Red Cat 51 の細かい機能などは端折りましたが、詳しい話は初期モデルのレビューになりますが天文リフレクションズさんのレビュー記事を見ていただければと。

VirtualSkySlideShow v0.1.2 (IE11フルスクリーン表示対応)

昨日の VirtualSkySlideShow v0.1.1 でIE11対応をうたっていましたが、実はIE11ではフルスクリーン表示が機能していませんでした。VirtualSky 自体がそうだったのでIE11は非対応なのかと思ったら VirtualSky 側のバグで対応し損ねていたと判明。

早速修正したので v0.1.2 として公開しました。

僕のサーバーにあるスクリプトも更新済みです。

しかし今更そこまで IE にこだわらなくても… という気はするのですが、まあ一応。