● (No.1129) CAS-5A(FO-118) jpg creating on LINUX (2023年3月21日)
---------------------------------------------------------------
JPEG creating test #1
Windows上で CAS-5A の受信データを使って実験しているJE1CVL局を、LINUX上で
JE9PEL/JR6 が追試してみた。まずは Text Editor 'GEANY' をインストールして
JPEG Header の "FF D8" を見つけるところから始める。(18032023_1201.hex)
JPEG creating test #2
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
JPEG creating test #3
この先 必要になる、LINUXコマンドのいくつかをここで紹介する。まず次の 2行
のテストテキスト test.txt を用意する。このテキストが、どのように表示出力
されるか実験してみた結果が次図。
test.txt
> 0123456789
> ABCDEFGHIJKLMNOPQRSTUVWXYZ
① catコマンド・・・・・・・ ファイルの中身を表示する。
② xxdコマンド・・・・・・・ バイト列を16進数で表示する。
③ パイプ |(縦棒)・・・・ 複数のコマンドを連結する。
④ moreコマンド・・・・・・ 長いテキストを1画面ずつ表示する。
⑤ リダイレクト(>)・・・ 結果をファイルに出力する。
⑥ catコマンド・・・・・・・ ①と同じ。
⑦ trコマンド・・・・・・・・ 文字の置換や削除などを行う。(次回)
⑧ その他・・・・・・・・・・・・ cd, ls, cp, rm 等。(その度、紹介)
JPEG creating test #4
次図の ⑦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'
を、⑩では半角スペースに置換し、⑪では完全削除している。なお、⑩⑪の中の
右トンガリ '>' は、右のファイルに出力する、という意味であり、
左トンガリ '<' は、そのファイルを参照する、という意味である。
(#4 補足)
プログラミングしている際に、改行 hexコードを入力する場面が多々ある。半角
バックスラッシュを入力する時、キーボード右上の円マークをクリックするので
あるが、今回のように解説文章を書く時は気を付けなくてはいけない。入力の時、
ただ円記号をクリックしただけでは、文字通り通貨の半角円記号 ¥ が 表示され
てしまう。特殊文字コード \ に置き換える方法もあるが、万全ではない。
記号の半角バックスラッシュは、日本語のフォントには含まれない記号だからで
ある。どうするかと言うと、半角円記号の部分を、日本語以外のフォントに指定
すれば、確実に半角バックスラッシュが画面上に表示される。
<span style="font-family: arial;">¥</span> ---> \
JPEG creating test #5
今回は、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
JPEG creating test #6
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 creating test #7
wrote JH4XSY/1, (注.JE9PEL/JR6)
> データ送付,TNXでした。確認すると,オリジナル 1202.hex が不完全でした。
> (注. 1202.hex ・・・ Agw_Online_Kiss で受信した一番最初の hexファイル)
> テキスト・エディタで右スクロールしたら,文字列長がバラバラで,データ長
> が足りないパケットが散見されます。(注.つまり各パケットの行末が不揃い)
> (注. JPEG creating test #1~#6 で実験していることは、論理的には正しい。)
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 creating test #8
遂に、JPEG creating が完成した。
Photo#27, FileSize 03AA(938) frames
JPEG creating test #9
[JPEG creating 概要]
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 creating 詳細]
(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 creating pdf
CAS-5A(FO-118) jpg creating test
[JPEG化へ最後の難関]
1. まず、ruby をインストールしておく。
$ sudo apt install ruby
2. SatNOGS から、前頁#7の手順で衛星データファイル(Month 2023年3月)を
ダウンロード。メールで送られてくる長い.csvファイル名を短く書き換える。
$ mv -i (long).csv 30325ng5.csv
3. rubyスクリプト ext.rb をダウンロード。
https://gist.github.com/jh4xsy/94c5a7a933148942e90c5295ae68cdaa
4. rubyスクリプトの中のファイル名を書き換える。(59の意味は前頁#7参照)
(注 0x3AA…#27のフレームサイズ、「%04X」 はJH4XSY/1局によるアイデア)
(下記#10 および JH4XSY/1 参照, Rev4 改訂4)
> for i in 1..0x3AA
> printf("grep 0303AA%04X010017010E033113081B07 30325ng5.csv | head -1 | cut -c 59- >> 30325ng5.hex\n", i)
> end
5. ruby単体での動作を確認。grep(検索)されたコマンドが画面に一行ずつ表示される。
$ ruby ext.rb
6. 確認後、シェルスクリプトファイルとして出力。
$ ruby ext.rb > 30325ng5.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 が目的の地球画像である。
[SatNOGS CSV Download]
Register an account
Login
Search satellite
Choice Data
Choice Data export (frames)
Receive e-mail from SatNOGS
Download CSV file
JPEG creating test #10
CAS-5A_#27のJPEG地球画像化が完了したので、次の新地球画像化に取り組む。
この 「CAS-5A_Image_Index」 サイトを見て、地球が綺麗に撮影されていそうな
#41 に決定した。
1. まず最初に、30325ng5.csvファイル名を、安全のために 30327ng1.csv に
名前変更しておく。(csvファイルは SatNOGS にリクエスして入手した長い
名前のファイルで、5桁の数値は2023年3月27日という自己流のファイル名)
$ mv -i 30325ng5.csv 30327ng1.csv
2. 次に、Geanyアプリで 30327ng1.csv を開く。
3. 今回の #41のフレームサイズは 1577(hex0629) という情報を得ていたので
それと JPEGヘッダーの FFD8 を含む一行を探すと 28846行目 に見つけた。
4. その行の FFD8 までの 16バイト(32文字)を右クリック・コピーして、前頁
でも使用した重要rubyスクリプト ext.rb の中身に貼り付け、書き換える。
「0x629」 は #41のフレームサイズ、「%04X」 は、JH4XSY/1局によるアイデア
で、シーケンス番号にあたる変数iを、16進数で有効桁数の余白を 0(ゼロ)
で埋めて出力するという意味の凄技である。また 「head -1」 は、複数行の
うちの先頭の一行だけを出力するという意味である。
> for i in 1..0x629
> printf("grep 030629%04X0100170111013406082907 30327ng1.csv | head -1 | cut -c 59- >> 30327ng1.hex\n", i)
> end
(#10-4 補足)
Ruby '%04X' にこだわり、簡単な表示実験をしてみた。(Rev4 改訂4)
関連して、CAS-5A JPG画像化する際、Rubyシェルスクリプト ext.rb を作成する
のであるが、SatNOGSデータから必要な箇所を見つけて、慎重にコピペすること。
そして、書き換える所や、バックスラッシュ, 半角スペース, 半角ハイフンなど
見ただけでは違いがわからないような所も細心の注意を払って、ext.rb を作成
しないと、少しでも間違うと、hexファイルや shファイルの作成時に、フレーム
番号順にならなかったり、grep(検索)されずにファイルサイズがゼロになったり
することがある。自局も試行錯誤の連続であった。なお、繰り返し再実験する時
は、直前に作成した shファイルと hexファイルを削除してから新実験すること。
そうしないと、新ファイルが旧ファイルの後ろに追加されて上書きをしてしまう。
JPEG作成時に重要な働きをした Rubyシェル・スクリプト構文の中の '%04X' が、
どういう動きをしているのか簡単なテストファイルを作って、再度JH4XSY/1局の
行ったことの真髄に迫ってみた。検索してみると、Rubyは数あるプログラミング
言語の中でも特に発展性のある言語のようだ。これから少し勉強をしてみよう。
5. ruby単体での動作を確認する。
grep(検索)されたコマンドが PC画面に一行ずつ表示される。
$ ruby ext.rb
6. 確認後、シェルスクリプトファイルとして出力する。
$ ruby ext.rb > 30327ng1.sh
7. シェルスクリプトを実行する。数分後に 30327ng1.hex が自動生成される。
$ sh 30327ng1.sh
8. 残りの ax.25ヘッダー部分(13バイト)をカットし、さらに全改行をカット
して、最後に hexダンプし、一気に jpgファイルを作成する。
$ cat 30327ng1.hex > 30327ng1.txt
$ cut -c 27- 30327ng1.txt > 30327ng1-less-27.txt
$ tr -d '\n' < 30327ng1-less-27.txt > 30327ng1-one-line.txt
$ cat 30327ng1-one-line.txt | xxd -r -p > 30327ng1-completion.jpg
9. この 30327ng1-completion.jpg が、目的の新しい #41地球画像である。
JPEG creating test #11
得られた#41地球画像 30327ng1-completion.jpg は、既に BA1DU管制局によって
撮影地点が公開されている。また、SP5LOT局も Google_Earth によってその場所
を特定している。そこで、自局 JE9PEL/JR6 も、その場所を追跡確認してみた。
#41_jpg画像の左上に薄茶色の筋が2本見えているが、それがブラジルアマゾン川
の河口付近であることがわかった。アマゾン川は宇宙から見ると薄茶色なのだ。
BA1DU twitter
SP5LOT twitter
JPEG creating test #12, [JPEG creating method]
Request CAS-5A data to SatNOGS
Rename from long file name to 30330ng9.csv
Find [0407 and FFD8] line in 30330ng9.csv
This file is CAS-5A JPEG image file No_9.
This line can be found on line 86520.
[0407] frame size, [FFD8] jpg header
[0407] hexadecimal = [1031] decimal
hex-dec conversion Site
[ext009.rb]
> for i in 1..0x407
> printf("grep 030407%04X0100160C090B2E32080907 30330ng9.csv | head -1 | cut -c 59- >> 30330ng9.hex\n", i)
> end
$ ruby ext009.rb
$ ruby ext009.rb > 30330ng9.sh
$ sh 30330ng9.sh [---generate "30330ng9.hex" after this command]
$ cat 30330ng9.hex > 30330ng9.txt
$ cut -c 27- 30330ng9.txt > 30330ng9-less-27.txt
$ tr -d '\n' < 30330ng9-less-27.txt > 30330ng9-one-line.txt
$ cat 30330ng9-one-line.txt | xxd -r -p > 30330ng9-completion.jpg
(#12 補足)
Photo No.9 は、受信率(@SatNOGS)100%で、フレームサイズは 1031(hex0407) で
あることを確認していたが、"30330ng9.hex"を Geanyエディタで開くと1030行で
あと1行足りていないことに気付いた。Geanyで一番下を見ると、JPEGフッターの
「FFD9」 を含むべき最終行の 1031行目が無い。その理由は不明だがここから先は
手作業で、 「hex0407」 と 「FFD9」 を根拠に、大元の SatNOGS_csv ファイルから、
その最終の1行を探し出し、それが 84589行目に存在していることを突き止めた。
それを手作業で行頭の 42(=10+19+13)bytesをカットし、"30330ng9-less-27.txt"
最終1031行目に追加しシェルスクリプトを再実行し、No.9_100%地球画像を得た。
my detailed Site,
https://www.ne.jp/asahi/hamradio/je9pel/cas5ajpg.htm (EN)
https://www.ne.jp/asahi/hamradio/je9pel/cas5atst.htm (JP)
JPEG creating test #13, [JPEG 100%-creating method]
最終1行がいつも Rubyスクリプトを実行した後、取り残される理由がわかった。
JPEGフッター 「FFD9」 のある1行だけは、パケットサイズが他の行の256(hex100)
よりも小さい(ファイルごとにそれは異なる)ので、Ruby構文から外れて、いつも
取りこぼすのだ。最終1行だけは、csvファイルから手動で見つけ、整形した後に
貼り付ける必要がある。次に、新しい Photo-No.7 を作成しながら、それを追認
することで、[JPEG 100%-creating 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%.
(#13 補足) [JPEG 120%-creating method]
「最終1行を csvファイルから手動で見つけて、整形した後に貼り付ける」 のは、
非常に手間と時間の掛かる作業であった。本来の JH4XSY/1局作成の Ruby構文の
ext.rb を ほんの少し改良するだけで、この手作業を省略し、一気に jpg画像を
完成させることが出来た。次の朱書きの部分を見れば一目瞭然であろう。つまり
最終行以前のパケットサイズ表記部分以降をカットし、grep条件の最後に「%04X」
が来るように微修正したのだ。(注)下記ファイル名には v2(version2) を付加。
以下の手順が、[JPEG 120%-creating method, 120%-JPEG作成方法] だ。(改訂4)
[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
(#13 補足2) [ext.rb] の本家 JH4XSY/1局により、第4版(rev4) が公開された。
パケットサイズ表記部分を 「....」 で置換するという、(#13補足)の自局改良版
よりもさらにシンプルで画期的な改良が施されている。これで最終行まで取得が
可能になった。下記は、Photo-No.7用に(rev4)を書き換えてある。地球画像まで
作成されることを確認した。
[ext007rev4.rb]
> 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 #14
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 hint)
膨大な 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 #15
画像番号の書いてある場所がわかった。>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
new CAS-5A telemetry and image decoder
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 に込めているのか、知りたいものだ。
(image decoder 検証)
"CAS-5A image decoder" の動作を、Linux と Windows の両方で実験してみた。
1. SatNOGS.csvファイルの読み込み時間は、Linux 10分、Win 2分。(自局環境)
2. アプリ中段真ん中左端の 1行表示が、Linux では "CAS-5A>CQ" と正確に表示
されているが、Win では この部分、化け字。
3. Telemetryタブは、Linux, Win どちらも同じ数値表示。
4. 肝心の Imagesタブの地球画像は、Linuxは フォルダ内に出来る大体の番号の
地球が完成図。しかし、Win の方はほとんどの番号の地球が縞々縞々で未完。
という結果になった。このアプリは画像に関しては実質的に Linux上でしか使え
ない。恐らく、DK3WN局は Linux環境でこのアプリを開発したのであろう。Win版
で動作するのは、今後のバージョンアップに期待するしかない。
JPEG creating test #16, [No.5 Moon]
SatNOGS.csv の直近一週間分をダウンロードして、No.5を二通りの方法で画像化
してみた。"DK3WN image decoder" は瞬時に画像化できたが、せっかく苦労して
確立した "JH4XSY/1 and JE9PEL/JR6 method" も、味のある方法なので、今回は
それで次の画像を得た。こちらは数分の作成時間である。月と、周辺に星がいる。
露出時間が長い関係で星は少し流れているが、月と星の良いツーショット写真だ。
[ext005.rb]
> for i in 1..0x2D0
> printf("grep 0302D0%04X....160C090B2D32080507 30406n05.csv | head -1 | cut -c 59- >> 30406n05.hex\n", i)
> end
$ ruby ext005.rb
$ ruby ext005.rb > 30406n05.sh
$ sh 30406n05.sh
$ cat 30406n05.hex > 30406n05.txt
$ cut -c 27- 30406n05.txt > 30406n05-less-27.txt
$ tr -d '\n' < 30406n05-less-27.txt > 30406n05-one-line.txt
$ cat 30406n05-one-line.txt | xxd -r -p > 30406n05-completion.jpg
JPEG creating test #17
CAS-5A:停波中(9Apr2023)、撮影データ更新無し。
No.22: 自撮り棒にピントが合ってしまっている。
CAS-5A Photo_No.22
JH4XSY/1 and JE9PEL/JR6 method
OS Ubuntu_18.04 with WINE
Image_Data from SatNOGS
[ext022.rb]
> for i in 1..0x198
> printf("grep 030198%04X....17010C022426101607 30325ng5.csv | head -1 | cut -c 59- >> 30409n22.hex\n", i)
> end
$ ruby ext022.rb
$ ruby ext022.rb > 30409n22.sh
$ sh 30409n22.sh
$ cat 30409n22.hex > 30409n22.txt
$ cut -c 27- 30409n22.txt > 30409n22-less-27.txt
$ tr -d '\n' < 30409n22-less-27.txt > 30409n22-one-line.txt
$ cat 30409n22-one-line.txt | xxd -r -p > 30409n22-completion.jpg
トップ へ戻る.
前のページ へ戻る.
次のページ へ移る.
ホームページ(目次) へ戻る.