#####################################################
#  OrigamiSat-2 Image Creator(OSIC) ver.1.0
#  Windows Console Program written in Python3
#  Released on May 27, 2026
#  (c) 2026- JA3TDW/Fumio Asai All Rights Reserved.
#####################################################


1.OrigamiSat-2 Image Creator(OSIC)とは
　OSICはオーブン衛星データーベースSatNOGS DBに蓄積された
CubeSat OrigamiSat-2の16進数フレームデータから撮影画像を
生成するためのソフトです。Nuitkaを使用してPython 3のスク
リプトから実行プログラム(osic.exe)を作成しています。

2.動作環境
　Winmdows 11 Home 64bit日本語版で動作を確認しています。
Python 3の実行環境は必要ありません。・
　
3.使用方法
1)SatNOGSからOrigamiSat-2のデータファイル(Last week版)を
　ダウンロードしておきます。
2)osic.exeを実行し、データファイル名と画像番号を入力すると
　以下のように抽出・解析・生成の各結果が表示され、画像データ
　が抽出されたファイル(image_output.csv)とjpeg画像ファイル
　(image_output.jpg)がそれぞれ生成されます。

------------------- 実行画面例 -----------------------
OrigamiSat-2 Image Creator(OSIC) ver.1.0

Input csv file:input.csv
Press Enter key if csv file name is OK
Enter input csv file name:satnogs_input.csv
Enter image number:00

Found jpeg start marker
Found jpeg end marker
Sequence numbers:00-14
Total number of frames:21
Number of missing frames:0
Missing frames:none
Created image file
OSIC is going to close in 10 seconds...
-------------------------------------------------------

4.参考事項
1)画像番号(Image number)は仮の画像識別番号で常に'00'です。
2)image_output.csvの各フレームデータ'00,05,ABCDEFG..'の
　'00'は画像番号、'05'はフレーム順序番号、'ABCDEFG...'は
　画像データです。
3)入力ファイルinput.csvにスタートマーカー'0xFFD8'を含む
　順序番号00のフレームデータが存在しないと画像ファイルは
　生成されません。順序番号が01や02などのフレームデータが
　欠損している場合は画像ファイルが生成されても開くことが
　できない場合があります。
4)sampleのsatnogs_input_csvは分割された画像データのフレ
　ームがすべて含まれる理想的な場合のデータファイルです。
　このような場合のみ完全な画像が生成されます。生成された
　画像が完全かどうかはimage_output.csvを見ればわかります。
　すなわち、sampleの'image_output.csv'のようにフレーム
　順序番号が00から始まり、欠損(欠番)が1つもなく、最後の
　フレームにエンドマーカー'0xFFD9'が含まれていれば画像は
　完全です。
5)input.csvに複数の画像データが含まれていても、同じ画像
　のフレームデータの重複は自動的に解消されて正常な画像が
　生成されます。しかし、異なる画像のデータが含まれている
　と正常な画像は生成されません。生成画像が正常かどうかは
　image_output.csvを見ればわかります。同じ順序番号のフレ
　ームデータが1つだけ存在すれば正常、複数存在すれば正常
　ではありません。
6)正常な画像が得られない場合は手作業で異なる画像のデータ
　を分離する必要があります。これを避けるにはダウンロード
　したcsvファイルをそのままinput.csvとして使うのではなく
　タイムスタンを手掛かりにして特定のパスでアップロードさ
　れたフレームだけを抽出し、入力データとして使用すること
　をお勧めします。

5.リリースノート
1)2026/ 5/27:ver.1.0を公開

6.おまけ
*SatNOGS csvファイルのデータフォーマット
*画像データフレームの場合=>Telemetry ID(TLM ID)=68(d)=44(h)
*画像が違っても同じ画像ID=00が使われているので画像の識別には使えない
Index 0                  19 20                             51     5657                  7677 7879 80                 459     464                       
      2026-05-19 18:34:36|  94A662B29CAA6094A662B2A4AAE103F0  CBFE 44 076A0C177314020002 00   06  5A26BFA6B6A4......A6   B7DD|14104468|JF6FYI-PM53kv
      |<-- Timestamp -->|   |<--- AX.25 Header(16byte)---->|       ||                    ||   ||  <- Data(190byte) ->|   |<>|
            19byte                                               TLM ID            Image ID   SEQ number                Footer(2byte)
                                                                                                          


