● (No.1200) SatNOGS CSVからJPG画像を再構成するためのRubyツール on Linux (2026年10月8日)
--------------------------------------------------------------------------------------
[第1段階] 欠落Sequence番号を自動検出する [extract_missing.rb]
SatNOGS から取得した Marina衛星csvデータを使って、HEXデータからJPG画像を
再構成する際に、データの一部が欠落していることが多々ある。 今回、JPG画像
データのSequence番号の欠落を、自動的に検出するRubyスクリプトを作成した。
1. Sequence番号について
対象データでは、各行の 51~54文字目に、4桁のSequence番号がある。例えば、
0000 (Note) 0000(h) = 0000(d)
0080 0080(h) = 0128(d)
0100 0100(h) = 0256(d)
0180 0180(h) = 0384(d)
0200
0280 So, the intervals are all 0080(h)=0128(d).
0300
0380
:
というように、0x80ずつ増加する。
JPGデータの先頭から順番にこのSequence番号を調べ、途中で欠落している番号
を検出することが目的である。
2. [extract_missing.rb] の特徴
従来は、欠落しているSequence番号を大量のCSVデータから手動で探していた。
https://www.asahi-net.or.jp/~ei7m-wkt/numb1191.htm#revision
https://www.ne.jp/asahi/hamradio/je9pel/60808mr4.htm#revision
例えば、欠落Sequence:
0200
0480
0780
0C00
など、数個程度なら手作業でも対応できていた。しかし、欠落が 50個,数百個,
数千個となると、確認作業は非常に大変で、事実上、手作業では不可能である。
そこで、Rubyで自動検出するようにした。このスクリプトは、次の処理を行う。
・extract72.txt(例)を読み込む
・全体をJPGデータの有効範囲とする
・各行の51~54文字目から Sequence番号を取得
・0000, 0080, 0100, 0180,..の規則と照合
・欠落している Sequence番号を自動表示
・missing_sequence.txt として結果を保存
特に重要な点
各行の51~54文字目に注目、そのSequence番号を取得し欠落Sequenceを調べる。
3. 実行方法
extract72.txt と extract_missing.rb を同じフォルダに置き、
$ ruby extract_missing.rb と実行する。結果として、
======================
sequence 欠落検索
======================
欠落しているsequence:
0200 欠落
0480 欠落
0780 欠落
0C00 欠落
欠落数: 4
のように表示される。 同時に、
missing_sequence.txt にも結果が保存される。
4. このツールを作った理由
衛星画像のJPG再構成では、データが完全に揃っていないという場合がある。
以前は、欠落しているSequenceを見つけるために、欠落Sequenceの前後のデータ
を前後に広めにコピー → 他の SatNOGS CSVファイルを検索 → 該当するデータ
捜索、という作業を行っていた。
欠落が少ない場合には、この方法でも問題はない。しかし、欠落Sequenceが大量
にある場合には非常に時間がかかる。今回の [extract_missing.rb] によって、
まず,「どのSequenceが欠落しているのか」 が、瞬時に確認できるようになった。
5. 今後の自動化
現在はさらに一歩進めて、
extract72.txt
↓
extract_missing.rb
↓
missing_sequence.txt
↓
複数のSatNOGS CSVを自動検索
↓
欠落Sequenceを含むデータを発見
↓
補完データを作成
↓
Sequence順に再構成
↓
JPG画像
という完全自動化を検討している。
特に、複数のCSVファイルを一括検索して、
0200 → xxxx.csv
0480 → yyyy.csv
0780 → xxxx.csv
0C00 → zzzz.csv
のように、「どのCSVファイルに欠落データが存在するか」 まで自動表示できれば
手作業をさらに大幅に減らすことができる。
[第2段階] 欠落Sequenceを複数のSatNOGS CSVから自動検索する (次回)
最終的には、次の完全自動化の流れを目指す。
・extract72.txt(例)
・欠落Sequence自動検出
・複数CSVを自動検索
・補完データ作成
・Sequence順に再構成
・JPG画像化
トップ へ戻る.
前のページ へ戻る.
次のページ へ移る.(編集中)
ホームページ(目次) へ戻る.