CUTE-1.7+APDII 画像結合ソフト公開


● (No.585) CUTE-1.7+APDII 画像結合ソフト公開 (2008年6月27日)
 ------------------------------------------------------------

Photo-Integrater [画像結合ソフト] 入手先:
http://lss.mes.titech.ac.jp/ssp/cute1.7/software.html


Windows Vista 上の『画像結合.xlsm』で解説していますが、Windows XP 上でも『画像結合.xls』を
使えば同様です。


《readme.txt を補足》

@ 受信バイナリファイルを、「サンプル.txt」と同様に編集し名前付け保存。
A 『画像結合.xlsm』 を起動 on Windows Vista。
B @の txt ファイルを開き、ctr+A, ctr+C としてすべてコピー。
C 『画像結合.xlsm』 の Sheet1_A1 セル上で ctr+V として貼り付け。
D A列に入っているデータセルがすべて選択された状態で、Excel データタブをクリック。
E さらに「区切り位置」をクリックし、、
  「スペース右または左に揃えられた固定長フィールドのデータ」をクリックし、完了をクリック。
  個々の 2バイト数値が、各セルに格納されたことを確認。
F 「画像結合」ボタンをクリックし、データを結合したい画像ファイルを選択して保存。
G このデータが新たにこの画像.jpgファイルに追加保存される。
H 「サンプル.txt」を使った場合は、綺麗な地球画像が描画される。

※ ・結合ソフトなので、最初は空の画像ファイルが必要。(解凍時に入っている:SAMPLE.jpg)
  ・これをコピーして「(適当な名前).jpg」として、Eでの「データを結合したい画像ファイル」で選択。
  ・画像データは初めの 12セグメント分が header となっており、ここがない場合には jpg が作れない。












《Re: CUTE-1.7+APDII 画像結合ソフト 補足》

東工大管制局からの私信ですが、大変参考になる内容のため公開いたします。
これを参考に、受信したバイナリファイルを編集加工して追試をしてみます。

----------------------------------------------------------------------
Subject: [cute1.7_receive 18545] CUTE-1.7+APDII Jun.27 21:34
From: Mineo Wakita
To: CUTE-1.7+APDII
Sent: Friday, June 27, 2008 9:53 PM

画像結合ソフト、サンプル.txt を使うと、綺麗な地球画像が
復調できます。 自局が受信したバイナリデータではダメです。
1行あたりのフォーマット(バイト数)が決まっているのでしょうか?
だとすると、TNC のタイムスタンプ等があってはいけないようです。

JE9PEL/1 脇田

----------------------------------------------------------------------
RE:[cute1.7_receive 18545] CUTE-1.7+APDII Jun.27 21:34
From: Miura Yoshiyuki
To: Mineo Wakita
Date: Fri, 27 Jun 2008 23:05:43 +0900

脇田様

本日の午後パスを担当していました 東京工業大学 三浦と申します。
まずはいつも受信協力ありがとうございます。
東工大地上局は相変わらずのノイズ状況でしたが、皆様のご協力もあり順調に画像
データを取得しております。メールに書いてありました質問についてお答えします。

> 1行あたりのフォーマット(バイト数)が決まっているのでしょうか?

まだβ版であるため、自局のパケット長に合わせております。(96バイト)
例えば下が脇田様の 1フレームだと思われます。

4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 20 5B 30 36 2F 32 37 2F 30 38 20 20
32 31 3A 34 33 3A 33 31 5D 20 3C 55 49 20 43 3E 3A 55 8C 20 3E 69 06 01 02
04 D5 00 05 82 00 00 DB 14 64 79 62 AB A8 85 20 DA 6A 06 51 98 75 FD 2A 25
E0 D4 14 5B 4B 93 BF 70 E4 0E 80 D7 41 A7 F9 17 16 BB 0E 16 42 3A D5 C4 96
49 1E 91 FB BC 83 CF 52 6B 6A C2 21 E5 A8 CF DD EF 5D 10 46 6D 7E 1F 0D 0A

このうち「4A 51 31 59 54 43 3E 4A 51 31 59 43 5A」(コールサイン) 以下の
28バイト (JE9PEL/1 注: ファイルサイズ 83バイト)
「20 5B 30 36 2F 32 37 2F 30 38 20 20 32 31 3A 34 33 3A 33 31 5D 20 3C 55
49 20 43 3E」(タイムスタンプ?) と末尾の「0A」を消してもらうと、解析できる
形になります。参考までに上のパケットでは、次の 96バイト となります。

4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 55 8C 20 3E 69 06 01 02 04 D5 00
05 82 00 00 DB 14 64 79 62 AB A8 85 20 DA 6A 06 51 98 75 FD 2A 25 E0 D4 14
5B 4B 93 BF 70 E4 0E 80 D7 41 A7 F9 17 16 BB 0E 16 42 3A D5 C4 96 49 1E 91
FB BC 83 CF 52 6B 6A C2 21 E5 A8 CF DD EF 5D 10 46 6D 7E 1F 0D

JE9PEL/1 注:
 > @「4A 51 31 59 54 43 3E 4A 51 31 59 43 5A」は、
 >  「 J  Q  1  Y  T  C  >  J  Q  1  Y  C  Z」に相当。
 > 
 > A「5B 30 36 2F 32 37 2F 30 38 20 20 32 31 3A 34 33 3A 33 31 5D」は、
 >  「 [  0  6  /  2  7  /  0  8        2  1  :  4  3  :  3  1  ]」に相当。
 > 
 > B「3C 55 49 20 43 3E 」は、
 >  「 <  U  I     C  > 」に相当。
 > 
 > つまり、A,B を削除すると、@ の『JQ1YTC>JQ1YCZ』と『:』だけが残り、
 > これに続くのは画像データだけとなります。

また、はじめのセグメント(セグメント番号 0〜12) に、JPEG の header が入って
いるため、もしこちらをデコードしていない場合には、画像が表示されないことに
なります。

今後の対応として、東工大地上局で header のデータをそろえることができた場合
には、ホームページ等からダウンロードできるようにして、その JPEG ファイルに
結合していくようにしたいと思います。

まだ、試験的な段階ですので、このような意見は大変参考になります。
今後とも何か質問等ありましたら、メールでもチャットでもどちらでもよろしいの
で、ご指摘していただければと思います。

それでは、今後とも Cute-1.7 + APD II をよろしくお願いいたします。
失礼いたします。


《Re^2: CUTE-1.7+APDII 画像結合ソフト 補足》

さらに、補足の続きです。

----------------------------------------------------------------------
Subject: [cute1.7_receive 18549] Re: CUTE-1.7+APDII Jun.27 21:34
From: Mineo Wakita
To: CUTE-1.7+APDII
Sent: Saturday, June 28, 2008 6:21 AM

画像連結ソフトの詳細な解説をありがとうございます。

> はじめのセグメント(セグメント番号0〜12)にJPEGのheaderが入っている...

1. この「セグメント」がないと、JPEG 画像が作成されないこと
   はわかりました。「セグメント番号0〜12」ということですが、
   サンプル.txt には、どの部分にこのセグメントが表示されて
   いるのでしょうか?

2. 聞き慣れない言葉ですが、そもそも「セグメント」とは何なの
   でしょうか?

3. ここ数日 Cute衛星からダウンロードされている画像データの
   「セグメント」をお教えいただけますか?

ここまで理解できたことを、My_Blog および My_HP の方にまとめ
させていただいております。何かあればご指摘お願いいたします。

JE9PEL/1 脇田

----------------------------------------------------------------------
RE: [cute1.7_receive 18549] Re: CUTE-1.7+APDII Jun.27 21:34
From: Miura Yoshiyuki
To: Mineo Wakita
Date: Sat, 28 Jun 2008 11:26:47 +0900

脇田様

東京工業大学 三浦です。
返信が遅れて申し訳ありません。今日は大学に朝行っていなかったため、
メールチェックが遅れました、すみません。
セグメントの件を説明いたします。α版の readme.txt に書いたパケットの説明が
消えてましたので、それをそのままここで使わせていただきます。

(α版 readme.txt より引用)
おそらくデコードした16進のデータが以下のような形となります。
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 2C 20 3E 69 06 01 02 01 E5 00
E8 41 00 00 47 51 DB C1 5A 4A 2C 2B 07 7A 7E DA 4C 5B 08 47 14 CC 7A 50 8D
10 AB 4F E9 43 13 62 05 A5 A4 5D 31 CB 48 45 45 F5 2F 4D 8F FF D1 DC 2A B4
71 8A F7 E2 4C E2 35 53 26 9D 8D A6 AE 24 31 47 5A 7B 82 1C 0D

パケットの内容は以下となります。
詳細は http://lss.mes.titech.ac.jp/ssp/cute1.7/fm_mode_picture.html に公開。

4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A (コールサイン)
53 2C 20 3E (ステータス)
69 06 01 02 01 (Last Command,Last Command Result,PDA Number,Image Format,Image ID)
E5 00 (セグメント番号 ※この場合は10進に直して 210番目 (01E5(16進)→210(10進)))
                JE9PEL/1 注:229番目 (00E5(16進)→229(10進))?
E8 41 00 00 (画像全データのサイズ、この場合は 000041E8(16進) として 16,872byte(10進))
47〜1C (64Byte分が画像データ、JE9PEL/1 注:66Byte?)
0D (改行(ASCIIコード))

という内容ですので、セグメントとは画像全データを 64byte (1パケットあたりの
データ) で分割して何番目のデータという意味です。上の例であれば、264(10進)
セグメント全部であり、そのうちの 210番目(10進) (JE9PEL/1 注:229番目(10進)?)
のデータを落としているパケットとなります。

次に header についてですが、header の内容には姿勢決定をして写真撮影をした
場合の 時刻情報+jpegのheader が入っております。
姿勢決定しての写真撮影とは、ちょうどカメラが地球中心を向いた時に撮影する
というものです。

Header 部分のデータは以下です。基本的に時刻情報以外は常に同じであり、
どの写真でも使えます。
セグメント番号は 00〜0C が必要です。正確にはセグメント 0C の末尾のほうの
「F4 2F E1 A6 A3 F3 5E 9D 16 1C 0D」は画像データとなっており、「3F 00」
までです。

4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 00 00
C9 4A 00 00 FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 00 01 00 00 FF
E1 00 C1 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08 00 04 01 32 00 02 00 00
00 14 00 00 00 3E 01 0E 00 02 00 00 00 4D 00 00 00 52 1D 0B 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 01 00
C9 4A 00 00 01 0F 00 02 00 00 00 0A 00 00 00 9F 01 10 00 02 00 00 00 10 00
00 00 A9 00 00 00 00 4A 44 32 34 35 34 36 31 38 2E 35 30 34 31 34 34 31 36
37 00 4C 61 74 3A 30 2E 33 31 33 39 39 38 4E 2C 4C 6F B0 09 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 02 00
C9 4A 00 00 6E 3A 32 2E 38 33 31 30 37 34 57 2C 51 3A 30 2E 30 37 37 38 38
32 35 31 2C 2D 30 2E 33 34 36 32 34 34 32 34 2C 30 2E 39 30 39 38 33 34 34
39 2C 2D 30 2E 32 31 35 30 35 39 31 36 00 00 54 6F 6B 5F 0D 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 03 00
C9 4A 00 00 79 6F 54 65 63 68 00 43 75 74 65 2D 31 2E 37 2B 41 50 44 20 49
49 00 FF DB 00 43 00 0B 08 08 0A 08 07 0B 0A 09 0A 0C 0C 0B 0D 11 1C 12 11
0F 0F 11 22 18 1A 14 1C 28 24 2B 2A 28 24 27 26 2D 32 B7 0B 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 04 00
C9 4A 00 00 40 36 2D 2F 3D 30 26 27 38 4C 39 3D 42 44 48 49 48 2B 36 4F 55
4E 46 54 40 47 48 45 FF DB 00 43 01 0C 0C 0C 11 0F 11 21 12 12 21 45 2E 27
2E 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 1C 0F 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 05 00
C9 4A 00 00 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45 45
45 45 45 45 45 45 45 45 45 45 45 45 FF C4 00 1F 00 00 01 05 01 01 01 01 01
01 00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08 09 00 0B 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 06 00
C9 4A 00 00 0A 0B FF C4 00 B5 10 00 02 01 03 03 02 04 03 05 05 04 04 00 00
01 7D 01 02 03 00 04 11 05 12 21 31 41 06 13 51 61 07 22 71 14 32 81 91 A1
08 23 42 B1 C1 15 52 D1 F0 24 33 62 72 82 09 0A 16 17 56 0D 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 07 00
C9 4A 00 00 18 19 1A 25 26 27 28 29 2A 34 35 36 37 38 39 3A 43 44 45 46 47
48 49 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76 77 78
79 7A 83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99 69 17 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 08 00
C9 4A 00 00 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3
C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7 E8 E9
EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FF C4 00 1F 01 00 03 C6 2F 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 09 00
C9 4A 00 00 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00 01 02 03 04 05 06
07 08 09 0A 0B FF C4 00 B5 11 00 02 01 02 04 04 03 04 07 05 04 04 00 01 02
77 00 01 02 03 11 04 05 21 31 06 12 41 51 07 61 71 13 7E 57 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 0A 00
C9 4A 00 00 22 32 81 08 14 42 91 A1 B1 C1 09 23 33 52 F0 15 62 72 D1 0A 16
24 34 E1 25 F1 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43 44 45 46 47
48 49 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67 68 69 CA 13 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 0B 00
C9 4A 00 00 6A 73 74 75 76 77 78 79 7A 82 83 84 85 86 87 88 89 8A 92 93 94
95 96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2
C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA E2 B4 29 0D
4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 53 6C 20 3E 69 06 01 02 03 0C 00
C9 4A 00 00 E3 E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5 F6 F7 F8 F9 FA FF C0 00 11
08 02 00 02 80 03 01 21 00 02 11 01 03 11 01 FF DD 00 04 00 28 FF DA 00 0C
03 01 00 02 11 03 11 00 3F 00 F4 2F E1 A6 A3 F3 5E 9D 16 1C 0D

ここ数日で落としているセグメントは weblog で公開した画像のセグメントで、
最初から順次落としている最中です。アマチュア無線家の方も受信しているので、
どこまで公開してよいのかなど、まだ検討段階です。セグメントをすべて公開す
ると自分で受信する楽しみが無くなる可能性があるのではとも考えております。
とりあえず、header 部分については早急に公開しようかと考えております。

説明不足で申し訳ありませんでしたが、以上よろしくお願いいたします。


----------------------------------------------------------------------

CUTE-1.7+APDII 初画像化!

初めて、自局が受信したバイナリデータを編集して画像化することができました。
編集データは、2008年6月20日-26日の一週間にかけて受信保存したファイルです。
東工大管制局が発表した 2枚目の地球画像と同じです。解析ソフトは管制局広報
の画像結合ソフト「Photo-Integrater β版」です。今回、受信データを編集する
のに膨大な時間を要しました。データを切り出し加工する部分が自動化できれば
このソフトの汎用性がさらにバージョンアップするものと思います。Tnx.






CUTE-1.7+APDII 画像化確立

昨日と本日(6月27,28日)の夜パスで受信したデータを編集加工し、画像化して
みました。まだまだデータ不足ですが、地球の一部が僅かに何となく見えます。
[画像結合ソフト]を用いたこの方法も、やっと自局においても確立できました。
なお、データの編集加工のコツですが、セグメント 0〜12 は [サンプル.txt]
のものを最初に差し込みしています。撮影時刻が付加している本物の header
を受信し終わるまでは、画像化のためだけならば、便宜上これでも大丈夫です。
受信データに本物のセグメントフレームが入っている場合は、当面削除します。






CUTE-1.7+APDII 画像識別

次は、本日 6/29 に受信した画像データのうちの 1パケットです。低仰角のパス
でしたが良く取れました。実際は横1行ですが、画面の都合で 4行にしています。

4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 3A 55 8C 20 3E 69 06 01 02 04 B7 01
05 82 00 00 2E 3D 7E 95 2E 76 0F 6E C2 B9 A5 A9 24 33 4E 15 F7 11 9F 6A 6C
D7 7E 6A E1 50 28 AB 8D 1D 98 CC 79 4B C8 E7 9A 95 60 85 06 64 6C D7 A1 B6
C5 09 25 D8 5E 21 18 14 B0 92 FC B5 2B 01 7B 70 03 9A 18 1D 0D

赤い「B7 01」の部分がセグメント番号です。 01B7(16進)→439(10進) ですから
439番目のセグメントということになります。続く青い「05 82 00 00」の部分が
画像全データのサイズです。 00008205(16進)→33285(10進) ですから、33KB の
画像サイズということになります。各パスで受信していると、管制局のコマンド
によって異なる画像が混じってしまう場合があります。その時はこの画像サイズ
を見て目的の画像かどうか識別することができます。

※ 画像連結ソフト・バージョンアップ
  ファイルサイズによるオーバーフローエラーが解除されました。
  http://lss.mes.titech.ac.jp/ssp/cute1.7/software.html



CUTE-1.7+APDII 受信画像データ処理

JISコードを ascii に変換してみると、
@「4A 51 31 59 54 43 3E 4A 51 31 59 43 5A 」は、
 「 J  Q  1  Y  T  C  >  J  Q  1  Y  C  Z 」に相当。
A「5B 30 36 2F 32 37 2F 30 38 20 20 32 31 3A 34 33 3A 33 31 5D 」は、
 「 [  0  6  /  2  7  /  0  8        2  1  :  4  3  :  3  1  ] 」に相当。
B「3C 55 49 20 43 3E 」は、
 「 <  U  I     C  > 」に相当。
つまり、A,B を削除すると、@ の『JQ1YTC>JQ1YCZ』と『:』だけが残り、
これに続くのは画像データだけとなります。

大量の受信画像データから、この A と B を手作業で削除するのは大変です。
そこで別の手段を考えました。 TNC は「MSTAMP OFF」とすると、A のタイム
スタンプが最初から付きません。

B の <UI C> の部分は、テキストエディタで null に置換します。
つまり、「3C 55 49 20 43 3E 」を「(未記入)」で一括して置換します。
これなら削除に膨大な時間を要していたのが、瞬時に作業が完了します。


 トップ へ戻る.
 前のページ へ戻る.
 次のページ へ移る.
 ホームページ(目次) へ戻る.