JPEG creation test #92023年03月25日 19時07分

JPEG化へ最後の難関

1. まず、ruby をインストールしておく。
   $ sudo apt install ruby

2. rubyスクリプト ext.rb をダウンロード。
   https://gist.github.com/jh4xsy/94c5a7a933148942e90c5295ae68cdaa

3. rubyスクリプトを修正書き換え。(前頁#7参照、0x3AA…#27ファイルサイズ)
   > for i in 1..0x3AA
   > printf("grep 0303AA%04X010017010E033113081B07 30325ng5.csv | head -1 | cut -c 59- >> 30325ng5.hex\n", i)
   > end
   https://jh4xsy.asablo.jp/blog/2023/03/13/ 参照。

4. SatNOGS から、前頁#7の手順で衛星データファイル(Month 2023年3月)を
   ダウンロード。メールで送られてくる長い.csvファイル名を短く書き換える。
   $ cat (long).csv > 30325ng5.csv

5. ruby単体での動作を確認。grep(検索)された羅列データが画面に表示される。
   $ ruby ext.rb

6. 確認後、シェルスクリプトファイルとして出力。
   $ ruby ext.rb > 30326ng5.sh

7. シェルスクリプトを実行する。数分後に 30325ng5.hex が自動生成される。
   $ sh 30325ng5.sh

8. 前頁#6,#7と同様に、ax.25 Header部分(13bytes)をカットして、さらに
   全改行をカットし、最後に hexダンプして一気に jpgファイルを作成する。

   $ cat 30325ng5.hex > 30325ng5.txt
   $ cut -c 27- 30325ng5.txt > 30325ng5-less-27.txt
   $ tr -d '\n' < 30325ng5-less-27.txt > 30325ng5-one-line.txt
   $ cat 30325ng5-one-line.txt | xxd -r -p > 30325ng5-completion.jpg

9. 前頁#8 30325ng5-completion.jpg が目的の地球画像である。

   

JPEG creation test #82023年03月25日 13時52分


遂に、JPEG creation が完成した。
Photo#27, FileSize 03AA(938) frames

JPEG creation test #72023年03月24日 19時42分

wrote JH4XSY/1, (注.JE9PEL/JR6)
> データ送付,TNXでした。確認すると,オリジナルの 1202.hex が不完全でした。
> (注. 1202.hex ・・・ Agw_Online_Kiss で受信した一番最初の hexファイル)
> テキスト・エディタで右スクロールしたら,文字列長がバラバラで,データ長が
> 足りないパケットが散見されます。(注. つまり各パケットの行末が不揃い)
> (注. JPEG creation test #1~#6 で実験していることは論理的には正しい。)

コメント欄参照。
https://jh4xsy.asablo.jp/blog/2023/03/13/

   

SatNOGS からダウンロードした衛星データの形式は、下記ようなタイムスタンプ
と hexファイル(UNIX系の改行コード)なので、まず、シーケンス番号から始まる
ようにカットする。 つまり、10+19=29bytes カットして、29*2+1=59文字以降を
を残すとシーケンス番号から始まる。その後、残り 13bytes = 26文字 カットし
て 27文字以降を残すと、FFD8 から始まる。(Tnx.>JH4XSY/1局の方法)

2023-03-06 00:34:12|86A240404040608682A66A82406103F00303AA0001010017010E033113081B07FFD8...
2023-03-06 00:34:12|86A240404040608682A66A82406103F00303AA0002010017010E033113081B073141...

JPEG creation test #6 (full revision)2023年03月22日 23時20分

AgwOnlineKiss で取得した 1202.hexファイルは、テキストエディタGeanyで開く
と、jpgヘッダー 「FFD8」 が 17バイト目に見えている。最初にバイト間の不要な
全ての半角スペースを除去し、「FFD8」 が行頭に来るように各行の ax.25 Header
の部分の16バイト(32文字)もカットして、33文字以降を表示させるようにした。
さらに段階を踏んで、jpgファイルの作成まで一気に持っていって 確認したが、
まだ jpg画像として認識されない。どこかに重大な間違いがある。後もう一歩。
(Tnx.>JE1CVL,JH4XSY/1)

$ cat 1202.hex | tr -d ' ' > 1202d.txt
$ cat 1202d.txt | cut -c 33- > 1202d33c.txt
$ cat 1202d33c.txt | more
$ cat 1202d33c.txt | tr -d '\r\n' > 1202d33c-oneline.txt
$ cat 1202d33c-oneline.txt | more
$ cat 1202d33c-oneline.txt | xxd -r -p > 1202.jpg

1.不要な全ての半角スペースを除去する。
2.各行の ax.25 Header部分をカットし、 「FFD8」 が行頭に来るように。
3.確認。
4.全改行をカットし、ファイル全体を一行にする。1202.hexは、Windows
  環境作成なので、改行 'CRLF' を除去して LINUX環境にする。
5.確認。
6.hexにダンプし、jpgを作成。

JPEG creation test #52023年03月21日 21時07分

今回は、cutコマンドの実験。似ているcatコマンドはファイルの内容を表示する
コマンドであったが、cutは文字通りカットコマンドである。test.txt の左から
5番目の文字にこだわって実験してみた結果が左図。一目瞭然。 カットコマンド
があるなら、文字を書き足すコマンドもあるのではないか、といろいろ検索して
試行錯誤を繰り返していているうちに、偶然にそれが catコマンドで出来ること
がわかった。 「cat > test.txt」 では上書きしてしまうので、書き足すには >>
と右トンガリを 2個並べて 「cat >> test.txt」 とすると良いことに 偶然うまく
気が付いた。追加文字を入力したら最後 「Ctrl+Cキー」 で終了し、改めて通常の
catコマンドを使って内容を確認すると、3行目に文字(Hello)が追加されていた。

なお、Shift-JIS や EUC-JP では、「あいうえお」 の 5文字は、10bytes (1文字
2bytes) であるが、UTF-8 では日本語部分は、1文字が 3bytesなので、「あいう
えお」 は 15bytes になるので要注意。
https://atmarkit.itmedia.co.jp/ait/articles/1610/31/news026.html

 

ARGOS active2023年03月20日 22時14分

US Air Force (USAF)
465.9875MHz MultiPSK
@K4KDR

ARGOS
1 25634U 99008A   23078.88521437  .00000157  00000-0  93958-4 0  9995
2 25634  98.3948  83.7576 0009195 236.1628 123.8675 14.19501993246119

JPEG creation test #4 (full revision)2023年03月20日 19時14分

次図の ⑦tr は、文字を置換するためのコマンド。指定した文字を削除したり、
文字が連続している場合に一つにまとめることもできる。⑦'-d'オプションで、
指定した数値'5' が確かに削除されている。その他、⑧file は、ファイル形式
の出力コマンド、⑧grep は文字検索のコマンドである。cd(change directory),
ls(list), cp(copy), rm(remove) 等のコマンドがある。
https://academy.gmocloud.com/lesson/20191009/7620

tr の応用例としては、Windows環境で作成したテキストファイルの改行コードを
LINUX環境に置換するといった用途に使用できる。 Windowsでは、改行を 'CR'
(16進数0d) と 'LF'(16進数0a) の 2バイトで表すが、LINUXでは 'LF' のみで表
す。 trコマンドでは、'CR' を '\r' で表すことができるので、「tr -d '\r'」 と
して 'CR' を削除し、LINUX環境用の改行コードに変換できる。
https://atmarkit.itmedia.co.jp/ait/articles/1610/03/news017.html

⑩⑪で、改行'LF'(\n)を削除し、2行を1行にまとめる実験をしていて、改行'LF'
を、⑩では半角スペースに置換し、⑪では完全削除している。なお、⑩⑪の中の
右トンガリ '>' は、右のファイルに出力する、という意味であり、
左トンガリ '<' は、そのファイルを参照する、という意味である。

JPEG creation test #32023年03月19日 21時47分

この先 必要になる、LINUXコマンドのいくつかを紹介する。まず次の 2行の
テストテキスト test.txt を用意する。このテキストがどのように表示出力
されるか実験してみた結果が次図。

test.txt
 > 0123456789
 > ABCDEFGHIJKLMNOPQRSTUVWXYZ

① catコマンド・・・・・・ ファイルの中身を表示する。
② xxdコマンド・・・・・・ バイト列を16進数で表示する。
③ パイプ |(縦棒)・・・ 複数のコマンドを連結する。
④ moreコマンド・・・・・ 長いテキストを1画面ずつ表示する。
⑤ リダイレクト(>)・・ 結果をファイルに出力する。
⑥ catコマンド・・・・・・ ①と同じ。
⑦ trコマンド・・・・・・・ 文字の置換や削除などを行う。(次回)
⑧ その他・・・・・・・・・・・ cd, ls, cp, rm 等。 (その度、紹介)

JPEG creation test #22023年03月19日 14時55分

18032023_1201.hex を Geany上で開き、Telemetry部分の1行目~11行目までを削除
し、ファイル名を 18032023_1202.hexとして名前付け保存した。改めて 1202.hex
ファイルを Terminal上で catコマンドで実行したものが、次図である。
cat は、ファイルの中身を表示する LINUX の基本的なコマンドである。
https://atmarkit.itmedia.co.jp/ait/articles/1602/25/news034.html