SatNOGS CSVからJPG画像を再構成するためのRubyツール on Linux


● (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画像化



トップ へ戻る.
前のページ へ戻る.
次のページ へ移る.(編集中)
ホームページ(目次) へ戻る.