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