投稿者: librarian

  • 雲の向こうは竜巻

    昨日、9月2日14時頃、埼玉県越谷市から千葉県野田市にかけて竜巻が発生しました。わが家をかすめた雨雲の向こうのほうでした。こちら側では気が付かなかったので、なにが起こっていたのか推測してみました。

    20130902-1410_digital-typhoon
    デジタル台風:リアルタイム気象(雨雲)レーダーGPV画像(Google Maps/グーグルマップ版)」  2013年09月02日 14:10:00 JST、 埼玉県越谷市の周辺 をキャプチャ

    時刻は熊谷地方気象台が竜巻注意情報を発表した頃です。雨で赤くなっている(概ね50 mm を超える)のは北隣の春日部市で、越谷市の竜巻のあたりはあまり降っていません。NHK がヘリの中継をしていたときに流れていた地名は、埼玉県越谷市小曽川、砂原、桜井南小学校、北陽中学校、大松、千葉県野田市岩名などの線上です。丸い雨雲(スーパーセル)の南端(または南から東にかけての雨雲の端の方)を竜巻が通過したと思われます。テレビで流れる映像でも、青空のものがありましたし、雨が降っているように見えないところを竜巻が通っていました。

    その前後の時間帯を上記サイトでコマ送りすると、13:30 頃にふじみ野市あたりで雨が強くなってきて、13:50頃に大宮の周辺大雨のとき「大雨注意報,洪水注意報,雷注意報」が発表されたようです。14:10 に春日部で大雨(たぶん雷→停電)、14:11に熊谷地方気象台が竜巻注意情報発表(このときには竜巻は発生していたのでは?)。 14:20 には雨の中心は千葉県(野田市)のほうへ。

    気象庁 | レーダー・ナウキャスト(降水・雷・竜巻) の「竜巻発生確度」では、

    20130902-1400_TornadoP_radnowc(14:00)  20130902-1410 _TornadoP_radnowc(14:10)

    なぜこんなに細かく見ているのかというと、わが家はこの積乱雲の越谷とは逆側のはずれにあったのです。当時、雨がパラパラと降ったかな、風もごく普通、遠雷があったかなという程度でしたし、窓の外が暗くもなりませんでした。屋外で見上げれば、このスーパーセルを目撃できたのかもしれませんけれど。

    ふつうは天候が悪化すると「埼玉県防災情報メール」で注意報・警報・竜巻注意情報が届くのですが、9/2に来たのは、13時50分頃発表の「大雨注意報,洪水注意報,雷注意報」と、14:11の「竜巻注意情報」の2通だけ。前日9/1は風雨が激しくて、警報注意報のメールが4通と竜巻注意情報が4通、続々と届いたのと対照的です。こんな天気で竜巻が起こってしまうのか!? はじめ、埼玉(越谷、春日部)で竜巻と聞いて、また誰かがふざけてるよ…と思っていたくらいです。

    今回の個人的な教訓は、

    • 竜巻は積乱雲・雷雨の真下で起こるとは限らない(主観的には、晴れかもしれない)
    • 雷注意報も竜巻注意情報も発表時には手遅れかもしれない
    • 雲は速い(出先で避難は間に合わないかも)

    気象庁の情報

    (2013/9/3)

    追記

    詳しい竜巻の経路、雨、風、積乱雲が載っています。おすすめ。上述の私の推測が合っていたところ、間違っていたところもわかります。

    (2013/9/4)

  • いるか座の新星 Nova Delphini 2013

    いるか座の新星 2013 (2013/8/18)

    いるか座の新星 2013 位置

    いるか座の新星が埼玉から見えました。新星を見たのは初めてです。私の肉眼(眼鏡)ではカシオペアがぎりぎり見えるくらいの光害の空なので、8×42 の双眼鏡です。この双眼鏡では7~8等星くらいが見えているようです。天頂近いと暗い星までわかりますね。

    見つけ方ですが、まず、夏の大三角のアルタイルはすぐにわかります。双眼鏡で少しずらすと、いるか座の特徴的な集団が視野に入ります。アルタイルといるか座から、や座を探します。や座を延長して、矢の先端の星と新星が双眼鏡の同じ視野(使用したのは約6°)内に入ります。いるか座とや座をそれぞれ延長した先の交わる辺りという見つけ方もあります。新星のすぐ近くに 5.7 等星があります。8/17~8/18 では、この 5.7 等星よりだいぶ明るく、5.0 等星くらいだったそうです。天の川が見えるようなところなら肉眼で見えますが、お天気が問題です。

    写真は無理かなと思ったのですが、やってみたら一応は写りました。新星はやや左上、いるか座が左下、や座が右上、右下はアルタイル。Canon EOS Kiss Digtal N、EF-S 60mm、F3.2、3.2秒、ISO 800。三脚で固定撮影です。月齢11.6。

    参考リンク

    素晴らしい写真やきちんとした解説はネットを探すとたくさん見つかります。

    (2013/8/18)

    追記

    (2013/8/19)

  • スピカ食 (2013/8/12)

    スピカ食 2013/8/12 潜入 (潜入)

    スピカ食 2013/8/12 出現 スピカ食 2013/8/12 出現 (出現)

    毎年この時期はペルセウス座流星群ですが、今年はスピカ食がありました。東京は雷雨で停電していたようですが、埼玉では雲が多いものの、ギリギリで見えました。潜入時は双眼鏡でスピカが確認できず。出現時は数分後にスピカがチラッと見えました。その後埼玉の自宅も雷、雨となりました。

    カメラは EOS Kiss Digital N、レンズは 3 BEACH DIGITAL 60E 600mm F12 です。あとで確認したら、カメラの時計は約4分進んでいました。

    スピカ食 2013/8/13 潜入 ステラナビゲータ スピカ食 2013/8/12 出現 ステラナビゲータ

    写真も拡大して探さないとよくわからないのですが、ステラナビゲータ Ver.9.1 で表示される位置と合っているものと思われます。

    解説:

    望遠鏡や赤道儀が欲しい…。

    (2013/8/13)

  • バイナリエディタで .mov を回転

    先日、携帯で QuickTime の .mov 動画を撮ったら、90°傾いて撮れてしまいました。iPhone 3GS のカメラでは、ときどき向きがおかしくなります。.mov を .mov のまま90°回転する無料のソフトを探したものの見つからず、直接バイナリエディタで向きを書き換えてみました。

    以下、自分用のメモです。たまたまうまくいったように思えるだけで、実はファイルがめちゃくちゃに壊れているかもしれませんのであしからず。

    要約

    1. iPhone 3GS で撮影した QuickTime の .mov ムービーを前提とする。
    2. 元の .mov ファイルは保存して、コピーした .mov ファイルをバイナリエディタで開いて編集。
    3. 文字列 ‘moov’ を検索。その下の文字列 ‘mvhd’ を探す。ファイルの下の方にあるはず。
    4. Figure 2-3  The layout of a movie header atom | QuickTime File Format Specification: Movie Atoms を参考に、アフィン変換の行列、Matrix structure (a, b, u, c, d, v, x, y, w) を見つける。w の 40 00 00 00(16進) の並びが目安。
    5. The Transformation Matrix | QuickTime Movie Creation Guide: Creating Movies の回転行列の式を参考に、(a b c d) を書き換える。x軸は右向き、y軸は下向き、角度は時計回りが正。固定小数点 16.16 形式なので、1 なら 00 01 00 00、-1 なら ff ff 00 00 。90度ごとの回転なら、値は 0 か 1 か -1 の組み合わせとなる。よく見かける回転行列の転置行列になっている。
    6. 再生してみて、希望通りに回転していれば O.K. のはず。
    7. (ファイルによっては、ほかの ‘mvhd’ のところの (a b c d) を書き換える必要があるかもしれない)

    詳細と雑談

    ランドスケープ(横長)のつもりで撮影したのに、ポートレイト(縦長)で記録された映像:

    このファイルをバイナリエディタで開きます。直接書き換えるので、オリジナルのファイルは保存、コピーした作業用のファイルに対して操作します。無理やり操作するので、たいてい何回も間違えます。さて、QuickTime ムービー (.mov) ファイルの構造を仕様書で調べます。

    まず、書き換えるべき値 Matrix structure の目印の文字列を探します。

    より、バイナリエディタで Movie atom の文字列 ‘moov’ を検索し、すぐ下の Movie header atom の文字列 ‘mvhd’ を探します。(今回扱っている動画ファイルの場合、ヘッダと言いつつ、頭のほうではなくファイルの一番下の方にあります。’mvhd’ だけで検索すると、上の方にもありますが、こちらを書き換えても動画の向きは変わりませんでした。)

    20130731a_mov_bin_moov 20130731c_mov_bin_mvhd

    文字列 ‘mvhd’ がある Movie header atom の構造は、

    qt_l_095 (図:同上より)

    この Matrix structure のうち、[a b c d] を使って回転します。文字列 ‘mvhd’ があるのが Movie header atom の5~8バイトめ。次の Version から Reserved まで 1 + 3 + 4 + 4 + 4 + 4 + 4 + 2 + 10 ( = 36 )バイトあるので、Matrix structure の要素 a の先頭は ‘mvhd’ の ‘d’ の次から 37 バイト目です。こんな感じにがんばって数えていくと、この .mov ファイルの場合は

    20130731e_mov_bin_matrix_org
    a = &h 00 01 00 00 = 1.0
    b = &h 00 00 00 00 = 0.0
    u = &h 00 00 00 00 = 0.0
    c = &h 00 00 00 00 = 0.0
    d = &h 00 01 00 00 = 1.0
    v = &h 00 00 00 00 = 0.0
    x = &h 00 00 00 00 = 0.0
    y = &h 00 00 00 00 = 0.0
    w = &h 40 00 00 00 = 1.0

    $$  \left( \begin{array}{ccc} a & b & u \\ c & d & v \\ t_x & t_y & w \end{array}\right) = \left( \begin{array}{ccc} 1.0 & 0.0 & 0.0 \\ 0.0 & 1.0 & 0.0 \\ 0.0 & 0.0 & 1.0 \end{array}\right) $$

    となっています。各 4 バイトは固定小数点で、a, b, c, d, x, y は 16.16 ビット、u, v, w は 2.30 ビットの区切りです。行列と数値の形式は次の通り:

    qt_l_054 (図:同上より)

    アフィン変換というもので、一次変換と平行移動を同時に表現しているそうです。

    QuickTime では、高校数学の回転行列や一次変換で見慣れた行列の形式と違って、その転置行列で表現しているようです。

    このへんのことは、別の文書にもう少し詳しく書いてありました。

    によると、平面の x 軸、y 軸の向きは

    track_trans_movie_coord (図:同上より)

    となっているようで、y 軸が上でなく下に向いています。

    によると、常に u = v ≡ 0.0 、w ≡ 1.0 と書いてあります。つまり w は常に &h 40 00 00 00 となります。変換行列の末尾に必ず 40 が現れるので、これが探す目安になります。

    回転行列のところでは、

    rotation_matrix (図:同上より)

    角度が q、θ、A と混乱していますが、同じ文字の誤植でしょう。また、回転の向きが反時計回り counterclockwise に角度 q と書いてありますが、その逆で、画面を見る人から見れば時計回りと考えられます。一般的な平面座標では x 軸が右向きで y 軸が上向きであり、x 軸から y 軸に向かう方向となる反時計回りが角度の正の向きです。しかし、QuickTime のように y 軸が下向きならば、x 軸から y 軸に向かう方向となる時計回りが正と考えるのが自然です。式の形からも、そうでないとおかしいでしょう。

    さて、画像の中心が原点なら平行移動は不要なので、回転は (a b c d) の組だけ考えればいいはずです(原点は左上ではないかと思うのですが、勝手にセンタリングしてくれるようです)。

    問題の映像ファイルの回転に関わる数値だけ行列で抜き出すと、

    $$ \left( \begin{array}{cc} a & b \\ c & d\end{array}\right) = \left( \begin{array}{cc} 1.0 & 0.0 \\ 0.0 & 1.0\end{array}\right) $$

    $$ \left( \begin{array}{cc} x^\prime & y^\prime \end{array} \right) = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} a & b \\ c & d\end{array}\right) = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} 1.0 & 0.0 \\ 0.0 & 1.0\end{array}\right) = \left( \begin{array}{cc} x & y \end{array} \right) $$

    つまり、単位行列です。90°回転されているようにみえるこの映像は、内部的に QuickTime のファイルとしては回転されていませんし、ほかの変換(マッピング)もされていません。

    試しに、x と y を入れ替えるような行列にすると、

    $$
    \left( \begin{array}{cc} x^\prime & y^\prime \end{array} \right)
    = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} a & b \\ c & d\end{array}\right)
    = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} 0.0 & 1.0 \\ 1.0 & 0.0\end{array}\right)
    = \left( \begin{array}{cc} y & x \end{array} \right) $$

    w の &h40 を目安に、その上の方の &h01 の2カ所をバイナリエディタで探して、それぞれ別の場所に書き換えます。

    20130731d_mov_bin_xy-yx

    90°の傾きは解消しましたが、天地が反転した映像になりました。駅名の文字も裏返っています。この動画を、さらに y’ を反転させればよさそうです。

    $$
    \left( \begin{array}{cc} x^\prime & y^\prime \end{array} \right)
    = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} a & b \\ c & d\end{array}\right)
    = \left( \begin{array}{cc} x & y \end{array} \right) \left( \begin{array}{cc} 0.0 & -1.0 \\ 1.0 & 0.0\end{array}\right)
    = \left( \begin{array}{cc} y & -x \end{array} \right) $$

    20130731h_mov_bin_rot90

    -1.0 は整数部を2の補数にして &h ff ff 00 00

    映像の最後のほうで駅のホームの文字が読めるので、裏返しにはなっていません。空と海の位置関係から上下も合っています。正常に反時計回りに 90° 回転できたように思われます。’mvhd’ で検索するともう一ヵ所あるので、そちらも直すべきなのかもしれませんが、今回は放置しました。ともかく、これで書き換えは成功したということにします。

    さて、よく見かける回転行列は、角度をθとして

    $$
    \left( \begin{array}{c} x^\prime \\ y^\prime \end{array}\right)
    =\left( \begin{array}{cc} \cos \theta & -\sin \theta \\ \sin \theta & \cos \theta \end{array}\right)
    \left( \begin{array}{c} x \\ y \end{array}\right) $$

    ですが、QuickTime では転置した形で書いてあるので

    $$
    \left( \begin{array}{cc} x^\prime & y^\prime \end{array}\right)
    =\left( \begin{array}{cc} x & y \end{array}\right)
    \left( \begin{array}{cc} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{array}\right) $$

    です。Matrix structure(アフィン変換)全体も同じく転置行列になっています。

    反時計回りに 90° 回転するとき、上述のように時計回りが正なので θ = -90° 、QuickTime の方の式で

    $$
    \left( \begin{array}{cc} x^\prime & y^\prime \end{array}\right)
    =\left( \begin{array}{cc} x & y \end{array}\right)
    \left( \begin{array}{cc} \cos (-90) & \sin (-90) \\ -\sin (-90) & \cos (-90)\end{array}\right)
    =\left( \begin{array}{cc} x & y \end{array}\right)
    \left( \begin{array}{cc} 0 & -1 \\ 1 & 0 \end{array}\right)
    =\left( \begin{array}{cc} y & -x \end{array}\right) $$

    試行錯誤的に成功したときの行列と一致します。回転方向が普通と逆で時計回りが正だということに気がつくまでずいぶんかかりました。試行錯誤で回転はできたものの、Apple の解説に書いてあることと一致しないので、どこを間違えたのだろうかと悩みました。(もちろん、今でも私が間違っている可能性があります)

    ところで、映像の回転については、はじめは iPhone の splice というアプリを試しました。

    しかし、この動画についてはうまく読み込めないようです。いろいろ検索語をかえながら探していたら、PC の QuickTime Pro なら回転の編集が一瞬で終わるとのこと。一瞬ということなら、ヘッダを書き換えるだけでよいはず。それでみつけて参考にしたのが、

    Apple のデベロッパーセンターからダウンロードできる dumpster というツールを使うのですが、運が悪いことに、

    の直後であちこちダウンしたまま、登録できず、なにもダウンロードできずという状態でした。ほかのサイトからダウンロードできるのは dumpster の Win32 ビット版のみで、そのサイトによると、もともと 64 ビット版はないらしい。QuickTime atom をいじるほかのツールも Apple デベロッパー センターがダウンしていてダウンロードできず。

    で概要を読むと、自分でプログラムを作って利用できなくはないようでした。さらに検索していたら

    などがでてきて、バイナリエディタだけでもちょっとした書き換えならどうにかなりそう。ということでやってみました。

    正規の QuickTime のライブラリをきちんと使っているソフトなら変換行列を使うのでしょうが、向きを決め打ちで表示しているソフトでは90°傾いたままなのでしょうね。それ以前に、ひょっとして、この書き換えで不整合を生じて、読み込みさえ不能の可能性もあり? いやいや、この程度の書き換えなら大丈夫ですよね。仕様書や解説は matrix のところを拾い読みしただけなので、一抹の不安が残っています。

    (2013/7/31)

    (2013/8/8) サムネイル画像追加

    (2025/2/8) 数式描画を MathJax に変更

  • mathTeX.cgi のキャッシュ

    LaTeX 数式の表示は、サーバに latex と dvipng の実行ファイル( TeX Live 2010 )を入れ、mathTeX の CGI から呼び出しています。(一部は mimeTeX)

    昨日気がついたのですが、このサイトのところどころで mathTeX のエラー(7) が発生しています。

    エラーメッセージ ☞ (7) Can't run latex program... mathtex.cgi

    (7) Can’t run latex program:
    check -DLATEX=\”path\”, etc.
    See mathtex.html#message7

    対処療法的には、ページ記述の際に数式に mathtex.cgi の \cache オプションを付加して明示的にサーバにキャッシュを生成するようにすれば、何度かページを再読み込みする間に解消するようです。明示しなくてもデフォルトでサーバにキャッシュ画像を生成するはずなのですが、うまくいかないことがあるようです。latex や dvipng で処理した画像のキャッシュファイルが一度生成できれば、次からはキャッシュ画像を返すようになります。

    サイトをご覧の方の側では、ブラウザで何度か再読み込みを繰り返すと、そのうちに数式画像が表示されるようになります。(たいていは…… orz )

    このエラーは複数の LaTeX 数式画像があるページで発生していて、ブラウザで再読み込みするたびに違う数式画像がエラーになります。サーバ上の mathtex.cgi 用キャッシュ ディレクトリを眺めていると、エラーになるような場合、数式画像のキャッシュが残っていません。

    エラーメッセージによると latex プログラムが実行できないと言っているので、処理が間に合わずに多重起動で失敗が連鎖していくような状況でしょうか。何がおこっているのかはよくわかりません。場合によっては、dvipng が実行できないエラーのこともあります。以前のサーバでは発生していなかったようにも思えるので、CGI や実行ファイルの起動数など、サーバ側の設定による可能性もあります。

    だいたい、LaTeX の処理系自体、シェルログインできないサーバにFTP でファイル一式コピーして、無理やり動かしています。そんな状態なので、現象や問題の切り分けからして難しいんですよね。

    mathtex.cgi は 1.05 が出ていたので 1.03 からバージョンアップしましたが、同じ現象が起こっているようです。

    mathTeX version 1.03 → mathTeX version 1.05

    mathtex.cgi に \version を渡すと、

    現在:(略)

    なお、一度キャッシュが生成されると自動的には書き換わらないので、バージョンアップしたらキャッシュをクリアしておかないと、いつまでも古いバージョンとして表示され続けます。

    < img src=”…/mathtex.cgi?… ” / > で直接書くより、 [ tex ] ~ [ /tex ] で呼び出すほうがエラーの率が高いように思えますが、はっきりしません。問題は mathtex.cgi ではなく、[ tex ] のほうのプラグインかもしれません。

    以下、適当に数式を載せてみます。

    TeX入門/簡単な数式(2) – TeX Wiki より

    mathTeX manual (mathtex.html) より

           

    エラー(7)にならずに表示されているでしょうか。このページ作成時には表示可能でしたが……。私のサイトには LaTeX 処理系のサブセットしか入れていないので、表示不能の例もいろいろありました。そういう場合もエラー(7)が表示されるようです。

    (2013/7/13)

    (2025/2/8) MathJax 化にともない、一部画像を削除。

検索(WordPress内)

カテゴリー一覧

マキシマ文庫

Makisima Library, Vol.3

Twenty Twenty-Five Child

Proudly powered by WordPress