JPEG creating test #132023年04月01日 09時20分

JPEG 100%-creation method

最終1行がいつも Rubyスクリプトを実行した後、取り残される理由がわかった。
JPEGフッター 「FFD9」 のある1行だけは、パケットサイズが他の行の256(hex100)
よりも小さい(ファイルごとにそれは異なる)ので、Ruby構文から外れて、いつも
取りこぼすのだ。最終1行だけは、csvファイルから手動で見つけ、整形した後に
貼り付ける必要がある。次に、新しい Photo-No.7 を作成しながら、それを追認
することで、[JPEG 100%-creation method, 100%-JPEG作成方法] を確立する。

Request CAS-5A data to SatNOGS
Rename from long file name to 30401ng7.csv
Find [0298 and FFD8] line in 30401ng7.csv
This file is CAS-5A JPEG image file No_7.
This line can be found on line 93846.
[0298] frame size, [FFD8] jpg header
[0298] hexadecimal = [664] decimal

[ext007.rb]
> for i in 1..0x298
> printf("grep 030298%04X0100160C090B2E0F080707 30401ng7.csv | head -1 | cut -c 59- >> 30401ng7.hex\n", i)
> end

$ cat 30325ng5-org.csv > 30401ng7.csv
$ ruby ext007.rb
$ ruby ext007.rb > 30401ng7.sh
$ sh 30401ng7.sh [---generate "30401ng7.hex" after this command]

As the next step, make one line "30401ng7-last.txt" after coping
only one line 92759,which should contain 'hex0298' and jpg footer
'FFD9' in "30401ng7.csv". After making "30401ng7c59-last.txt" as
follows, add this "30401ng7c59-last.txt" to "30401ng7.hex" file
with Geany. And rename from "30401ng7.hex" to "30401ng7-full.hex".
And rename it to "30401ng7-full.txt". Then, proceed the steps below.

$ cut -c 59- 30401ng7-last.txt > 30401ng7c59-last.txt
$ cat 30401ng7-full.hex > 30401ng7-full.txt
$ cut -c 27- 30401ng7-full.txt > 30401ng7-full-less-27.txt
$ tr -d '\n' < 30401ng7-full-less-27.txt > 30401ng7-full-one-line.txt
$ cat 30401ng7-full-one-line.txt | xxd -r -p > 30401ng7-completion.jpg

This "30401ng7-completion.jpg" is Photo-No.7 of 100%.

grep条件改良2023年04月01日 15時05分

(#13 補足) [JPEG 120%-creation method]

「最終1行を csvファイルから手動で見つけて、整形した後に貼り付ける」 のは、
非常に手間と時間の掛かる作業であった。本来の JH4XSY/1局作成の Ruby構文の
ext.rb を ほんの少し改良するだけで、この手作業を省略し、一気に jpg画像を
完成させることが出来た。次の朱書きの部分を見れば一目瞭然であろう。つまり
最終行以前のパケットサイズ表記部分以降をカットし、grep条件の最後に「%04X」
が来るように微修正したのだ。(注)下記ファイル名には v2(version2) を付加。
以下の手順が、[JPEG 120%-creation method, 120%-JPEG作成方法] だ。

[ext007v2.rb]
> for i in 1..0x298
> printf("grep 40608682A66A82406103F0030298%04X 30401ng7.csv | head -1 | cut -c 59- >> 30401ng7v2.hex\n", i)
> end

$ ruby ext007v2.rb
$ ruby ext007v2.rb > 30401ng7v2.sh
$ sh 30401ng7v2.sh [---generate "30401ng7v2.hex" after this command]
$ cat 30401ng7v2.hex > 30401ng7v2.txt
$ cut -c 27- 30401ng7v2.txt > 30401ng7v2-less-27.txt
$ tr -d '\n' < 30401ng7v2-less-27.txt > 30401ng7v2-one-line.txt
$ cat 30401ng7v2-one-line.txt | xxd -r -p > 30401ng7v2-completion.jpg

[ext.rv] revision-42023年04月02日 00時01分

(#13 補足2) [ext.rv] の本家 JH4XSY/1局により、第4版(rev4) が公開された。

パケットサイズ表記部分を 「....」 で置換するという、(#13補足)の自局改良版
よりもさらにシンプルで画期的な改良が施されている。これで最終行まで取得が
可能になった。下記は、Photo-No.7用に(rev4)を書き換えてある。地球画像まで
作成されることを確認した。



[ext007rev4.rv]
> for i in 1..0x298
> printf("grep 030298%04X....160C090B2E0F080707 30401ng7.csv | head -1 | cut -c 59- >> 30401ng7rev4.hex\n", i)
> end

$ ruby ext007rev4.rb
$ ruby ext007rev4.rb > 30401ng7rev4.sh
$ sh 30401ng7rev4.sh [---generate "30401ng7rev4.hex" after this command]
$ cat 30401ng7rev4.hex > 30401ng7rev4.txt
$ cut -c 27- 30401ng7rev4.txt > 30401ng7rev4-less-27.txt
$ tr -d '\n' < 30401ng7rev4-less-27.txt > 30401ng7rev4-one-line.txt
$ cat 30401ng7rev4-one-line.txt | xxd -r -p > 30401ng7rev4-completion.jpg

JPEG creating test #142023年04月02日 10時33分

CAS-5A Photo_No.19
[FFD8] line_68521
[042E] frame size 

[ext019.rb]
> for i in 1..0x42E
> printf("grep 03042E%04X....17010914220E081307 30402n19.csv | head -1 | cut -c 59- >> 30402n19.hex\n", i)
> end

$ ruby ext019.rb
$ ruby ext019.rb > 30402n19.sh
$ sh 30402n19.sh [---generate "30402n19.hex" after this command]
$ cat 30402n19.hex > 30402n19.txt
$ cut -c 27- 30402n19.txt > 30402n19-less-27.txt
$ tr -d '\n' < 30402n19-less-27.txt > 30402n19-one-line.txt
$ cat 30402n19-one-line.txt | xxd -r -p > 30402n19-completion.jpg

JPEG hint2023年04月03日 15時18分

膨大な csvファイルからどのようにして目的のファイルを探しているかというと
K4KDR/Scott氏や SP5LOT局Twitterの投稿日時と、csvファイル行頭の日付データ
が大体、合う所に見当を付けて目で探している。あと大きな着眼点は、フレーム
サイズ(hex)が投稿記事からわかっている場合は、csvファイルのその部分を探せ
ば一発で見つけられる。フレームサイズがわかっていない場合が多いのであるが
その時は csv行頭の日付データに見当を付けて、さらにフレームサイズが何百と
連続しているところに注目し、特にフレーム番号'0001'と jpgヘッダー'FFD8'が
ある行を探す。慣れて来るとすぐに見つけることができる。

その行が見つかりさえすれば、後は"Rubyスクリプト"を実行して、所定の手順を
踏むと数分で完全な jpg画像を得ることができる。完成した jpg画像が、たまに
目的の画像番号と違う時もあるが、その時は「残念」ということで、また数分かけ
て同じ作業をして探しに行き、jpg画像を作る。csvファイルに画像番号データが
載っていればもっと楽な作業で確実にできるのであるが、どうも肝心の画像番号
データが載っていないようなので、上記の勘と当てずっぽで探している。

※画像番号は、Photoデータの 14バイト目あたりです。
 管制局が公開しているPDFに、正確に書いてあります。by JH4XSY/1

JPEG creating test #152023年04月03日 21時59分

画像番号の書いてある場所がわかった。>Tnx. JH4XSY/1
例えば、画像番号25(10進数)は、16進数では 19(=1x16^1+9x16^0) なので、その
数値19が、Photoデータの中に書かれていることを確認した。これを今から画像化
する。画像の下部に、Camera-2 の自撮り棒が写っている。

CAS-5A Photo_No.25

[ext025.rb]
> for i in 1..0x1BA
> printf("grep 0301BA%04X....17010C052139101907 30403n25.csv | head -1 | cut -c 59- >> 30403n25.hex\n", i)
> end

$ ruby ext025.rb
$ ruby ext025.rb > 30403n25.sh
$ sh 30403n25.sh
$ cat 30403n25.hex > 30403n25.txt
$ cut -c 27- 30403n25.txt > 30403n25-less-27.txt
$ tr -d '\n' < 30403n25-less-27.txt > 30403n25-one-line.txt
$ cat 30403n25-one-line.txt | xxd -r -p > 30403n25-completion.jpg

   

JPEG creation method Overview2023年04月04日 07時41分

JPEG creation 概要」

1. まず、LINUX (Ubuntu) を構築する。
2. 次に、Rubyプログラムをインストールする。
3. そして、テキストエディタ Geany をインストールする。
4. SatNOGS から CAS-5A の画像データをダウンロードする。
5. Geany上で、画像番号・総フレームサイズ・JPEGヘッダーを探す。
6. Rubyシェルスクリプト(made by JH4XSY/1)を書き換える。
7. Rubyシェルスクリプトを実行して hexファイルを作成する。
8. Terminal上で所定のコマンドを実行する。
9. 最後に、JPEG画像を自動生成する。

「JPEG creation 詳細」

(wrote by JE9PEL/JR6)
CAS-5A(FO-118) Images-Decoder   
CAS-5A(FO-118) earth images     
CAS-5A(FO-118) jpg trick?       
CAS-5A(FO-118) jpg creation pdf 
CAS-5A(FO-118) jpg creation test


[JPEG creation method Overview]

1. Build LINUX (Ubuntu).
2. Install "Ruby" application.
3. Install the text editor "Geany".
4. Download CAS-5A image data from "SatNOGS".
5. Find the image number, total frame size and JPEG header on Geany.
6. Rewrite Ruby shell script(made by JH4XSY/1).
7. Execute Ruby shell script to create a hex file.
8. Execute the given command on Terminal.
9. Finally, automatically create a JPEG image.

[JPEG creation method Details]

The following my_site has the very detailed explanation. so refer to it.
The third site is written in Japanese, so read it with Google Translate.

(wrote by JE9PEL/JR6)
CAS-5A(FO-118) Images-Decoder    (EN)
CAS-5A(FO-118) jpg trick?        (EN)
CAS-5A(FO-118) jpg creation test (JP)

coming soon: new CAS-5A telemetry and image decoder2023年04月04日 08時38分

Re: Release CAS-5A decoder2023年04月04日 10時24分

Apr 03, 2023 *new* CAS-5A telemetry and image decoder v. 0.3 BETA
@DK3WN software

The new "CAS-5A image decoder" was developed by DK3WN.
This is the software that reads the SatNOGS.csv file.
I confirmed that it works on both Windows and LINUX.

LINUX [Ubuntu on Wine] 上でも動作している。(本来は Windows上アプリ。)
SatNOGS.csv の読み込みに10分ほど掛かった。(読込時間はPC性能にもよる)
今までの自局の苦労は何だったのか、というぐらい画像の表示は瞬時だ。
いろいろ調査研究は勉強になった。DK3WN局はどのようなアルゴリズムを
この Decoder に込めているのか、知りたいものだ。

遭難寸前2023年04月04日 15時13分

本日は、新しい前人未到の海岸に達するべく、踏破調査を行った。事前に
国土地理院の地図で道らしき(赤で囲った)箇所を調べておいたが、実際
行ってみると、地図のとおり途中でヤブ道が途切れており、そこから先は
まさにジャングルであった。登山で使うような数十m間隔に目印のテープ
を木に巻き付けながら進み、何とか波の音が聞こえる所まで進み、海岸を
臨める所まで来た。そこが砂浜なのか絶壁なのかヤブに遮られて確認でき
なかった。いざ戻ろうとしたが、目印のテープがなかなか見つからない。
傾斜のあるところだったので、ヤブの中を掻き分け押し分け、何とか道路
まで上がったが、結局来る時に付けてきたテープは、帰りは一本も見つけ
られなかった。教訓として、目印のテープは数十m間隔よりも近くに目視
できる間隔に付けるべきと思った。