======================================================================
 J-Sentinel (高度防災情報インジェスト・オーケストレーター)
======================================================================

【概要】
J-Sentinel は、気象庁が公開する公式オープンデータ（地震、津波、気象警報、
各種防災情報等）を定期ポーリングによってインジェスト（取得・蓄積）し、
ローカルストレージへ構造化保存・管理するためのスタンドアロン型コアシステムです。

外部の非公式APIや中継サービスに依存せず、気象庁の一次ソースから直接データを
クリーンかつ安全に取得・保持することを目的として設計されています。


【ディレクトリ構造】
\J-Sentinel-Core\
 ├─ config.json            # システム全体の動作・タスク・インターバル設定
 ├─ run_sentinel.py        # メイン・オーケストレーター（常駐ランナー）
 ├─ run_sentinel.bat       # Windows用起動バッチ（依存ライブラリ自動チェック機能付）
 ├─ js_gui_setup.py        # GUI設定管理・マスター編集ツール
 ├─ setup-gui.bat          # GUI設定ツール用起動バッチ
 │
 ├─ fetch_info.py          # 気象庁総合情報・アラート・火山・各種予報取得スクリプト
 ├─ fetch_quake.py         # 地震情報・津波・遠地地震取得スクリプト
 ├─ fetch_warning.py       # 気象警報マップ (map.json) 取得・名称変換スクリプト
 │
 ├─ codemaster/            # 振り分けルールおよび地域・警報コード定義CSV
 │   ├─ areakisyou.csv     # 気象情報エリアコード辞書
 │   ├─ infosorter.csv     # 総合情報カテゴリ振り分けルール
 │   ├─ keiho.csv          # 警報コード・名称定義辞書
 │   └─ quakesorter.csv    # 地震情報振り分けルール
 │
 └─ database/              # 取得した防災データの保存先ルート
     ├─ info/              # 総合情報系 (alert / warning / volcano / yoho / etc)
     ├─ keiho/             # 警報系 (base: 生データ / convert: 整形済みリアルタイムデータ)
     └─ quake/             # 地震系 (japan: 国内地震 / tsunami: 津波 / world: 遠地 / etc)


【主な機能・特徴】
1. 独立したインジェスト・パイプライン
   - 各モジュール（info / quake / warning）が独立して動作し、エラーや外部接続の
     一時的な詰まりがシステム全体へ波及しない堅牢な設計。
2. 冪等性の担保と重複排除
   - 最終同期時刻（*_last_sync.json）を管理し、同一データの二重取得や不要な再処理を防止。
3. マスターCSVによる柔軟な振り分け
   - codemaster 内のCSVを書き換えることで、キーワードに応じたローカルストレージへの
     保存先カテゴリ分類を柔軟にカスタマイズ可能。
4. GUIセットアップ環境
   - `setup-gui.bat` により、巡回秒数や各タスクの有効・無効、マスターCSVの編集や
     デスクトップショートカットの作成を直感的に操作可能。


【クイックスタート】
1. GUIセットアップ・環境初期化
   - `setup-gui.bat` を実行してください。
   - 自動的に Python 環境の確認と必要ライブラリ（requests, psutil, Pillow, customtkinter）
     の導入が行われ、設定画面（J-Sentinel Core Setup）が起動します。
   - 必要に応じて巡回インターバルやタスクの有効/無効を設定し、「設定を保存」を行ってください。

2. システムの本格稼働
   - 設定が完了したら、`run_sentinel.bat` を実行してメインオーケストレーターを常駐させます。
   - GUI画面内の「デスクトップショートカット作成」ボタンから、起動用バッチのショートカットを
     デスクトップに配置することも可能です。