GGG (Gd3Ga5O12) の THz 透過スペクトル解析用リポジトリです。
現在の作業用コードは主に Programs/ にまとまっており、Bayesian 推定、WLS フィッティング、引き継ぎ資料、既存の解析結果を同じ場所で管理しています。
このリポジトリで主に扱っている内容は次の 2 系統です。
- Bayesian 推定: PyMC + SMC を用いた H-form / B-form の比較
- WLS フィッティング: 参照値作成と初期値評価
Bayesian/
├── README.md
├── bayesian_inputs/
│ ├── BayesianInput_Raw_Transmittance_Temperature.xlsx
│ └── BayesianInput_Raw_Transmittance_Field.xlsx
├── Programs/
├── ggg_bayesian_last.py
├── ggg_bayesian_last.md
├── bayesian_v10_polariton_priority.py
├── handover_document_v10.md
├── wls_v8_mixed_fitting.py
├── WLS_v8_changelog.md
├── BayesFacotr.md
├── test3_regression_tests.py
├── issues/
├── wls_v8_results_20260306_160250/
└── bayesian_v10_results_*/
| パス | 役割 |
|---|---|
Programs/ggg_bayesian_last.py |
現在の Bayesian 解析コード |
Programs/ggg_bayesian_last.md |
上記コードの引き継ぎ資料 |
Programs/bayesian_v10_polariton_priority.py |
v10 系の Bayesian スクリプト |
Programs/wls_v8_mixed_fitting.py |
WLS フィッティングコード |
Programs/wls_v8_results_20260306_160250/ |
Bayesian 側が参照する WLS 結果 |
bayesian_inputs/ |
実験入力データ |
Programs/ggg_bayesian_last.py と Programs/ggg_bayesian_last.md が、現在の引き継ぎ対象として最も見やすい組(code, document)です。
Bayesian 側では、GGG の THz 透過スペクトルに対して次を行います。
- Excel から温度依存・磁場依存データを読み込む
- スペクトルを前処理し、ピーク位置と FWHM を抽出する
- 物理モデルから透過スペクトルを計算する
- PyMC の SMC サンプラーでパラメータを推定する
- H-form と B-form を Bayes factor などで比較する
設計上の特徴は、ポラリトン領域のスペクトル形状を最優先で合わせることです。
共振器領域は補助拘束として使い、主にピーク位置と FWHM で効かせます。
推奨は Python 3.10 以上です。
主要な依存ライブラリは次の通りです。
numpypandasscipymatplotlibpymcarvizpytensoropenpyxl
conda create -n research python=3.11 -y
conda activate researchpip install numpy pandas scipy matplotlib pymc arviz pytensor openpyxl作業ディレクトリはリポジトリ直下でも Programs/ でも構いませんが、現状は Programs/ に入って実行するのが分かりやすいです。
cd Programs現行の入口は次です。
python ggg_bayesian_last.py互換用の v10 スクリプトを使う場合は次です。
python bayesian_v10_polariton_priority.py入力:
../bayesian_inputs/./wls_v8_results_20260306_160250/parameters_H.csv./wls_v8_results_20260306_160250/parameters_B.csv
出力:
Programs/bayesian_v10_results_YYYYMMDD_HHMMSS/
主な出力ファイル:
trace_H.nc,trace_B.ncsummary_H.csv,summary_B.csvparameters_H.csv,parameters_B.csvmodel_evaluation.jsonposterior_predictive_spectra_HB.pngposterior_distributions_H.png,posterior_distributions_B.png
python wls_v8_mixed_fitting.py出力:
Programs/wls_v8_results_YYYYMMDD_HHMMSS/
主な出力ファイル:
parameters_H.csv,parameters_B.csvsummary_H.csv,summary_B.csvcorrelation_H.csv,correlation_B.csvmodel_evaluation.json
Bayesian 推定は SMC を使うため重いです。
ggg_bayesian_last.py では次の環境変数で負荷を調整できます。
BAYES_BLAS_THREADSBAYES_MAX_CHAINSBAYES_MIN_CHAINS
例:
BAYES_BLAS_THREADS=1 BAYES_MAX_CHAINS=4 python ggg_bayesian_last.pyコード内の設定で軽く試したい場合は、DEBUG_MODE = True も使えます。
読む順番は次がおすすめです。
Programs/ggg_bayesian_last.mdPrograms/ggg_bayesian_last.pyPrograms/wls_v8_results_20260306_160250/parameters_H.csvPrograms/BayesFacotr.md
| 症状 | 確認すること |
|---|---|
| 入力ファイルが見つからない | bayesian_inputs/ がリポジトリ直下にあるか |
| WLS 参照 CSV が見つからない | Programs/wls_v8_results_20260306_160250/ の場所と名前 |
ModuleNotFoundError が出る |
仮想環境と依存パッケージ |
| 実行が重い | BAYES_MAX_CHAINS を下げる、BAYES_BLAS_THREADS=1 を使う |
過去の文書や一部テストファイルには march/ や test3.py など旧名称が残っている可能性があります。
現在の実作業では、まず Programs/ggg_bayesian_last.py を基準に読むのが安全です。