IREmodel:落入・回転包絡(IRE)モデルのPython実装
概要
FERIA(Flat Envelope Model with Rotation and Infall under Angular Momentum Conservation)を純粋なPythonで再実装したプロジェクトです。プロトスター周囲の落入・回転包絡(IRE)やケプラー円盤に対する速度場を計算し、その結果を3次元データキューブ(空間×空間×速度)、位置速度(PV)図、モーメントマップとして出力できます。グリッドサーチによる簡易フィッティング機能と可視化ツールを備えており、観測データとの比較やパラメータ探索が手軽に行える点が特徴です。軽量で読みやすいコード構成のため、研究者が独自の拡張や実験的改良を行いやすく設計されています。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 5
- ファイル数: 30
- メインの言語: Python
主な特徴
- IRE(落入回転包絡)とケプラー円盤の速度場を物理モデルに基づいて生成。
- 3Dデータキューブ、PV図、モーメントマップの作成・可視化機能。
- パラメータ探索のためのシンプルなグリッドサーチ実装を提供。
- 純Python実装で読みやすく、研究用途での拡張が容易。
技術的なポイント
IREmodelは、既存のFERIAモデル(YokoOya/FERIA)を参考にしつつ、Pythonで再実装・拡張した点が最大の特徴です。物理背景としては、角運動量保存を仮定した落入・回転運動と、中心質量によるケプラー回転を組み合わせた速度場を扱います。主な技術的要素は以下の通りです。
- モデル計算:coords.pyなどで座標変換と速度場計算を分離して実装しており、球座標・円筒座標間の変換や視線方向への速度射影を明示的に扱います。これは、観測フレーム(RA/Dec/Velocity)に合う形で直接キューブ化するための基盤になります。
- データキューブ生成:3次元格子(空間×空間×速度)を構築し、各ボクセルでの放射強度や速度分布を積分・評価してキューブを生成します。スペクトルプロファイルの幅(ライン幅)やビーム合成の簡易モデルを導入できるため、観測分解能に応じた模擬観測が可能です。
- フィッティング機能:単純なグリッドサーチを備えており、複数パラメータの離散探索により最適一致を探索します。評価指標は観測との差分(例えば二乗誤差)に基づくことを想定しており、ユーザーが独自のスコア関数に差し替えられるよう設計されています。
- 可視化と出力:PVdiagram、moment0/1マップなどの生成ユーティリティを提供し、結果をMatplotlibベースで可視化できます。これにより、モデルと観測の比較が直感的に行えます。
- コード設計と拡張性:config.pyでパラメータ管理を集中させ、モジュールごとに責務を分離しているため、新たな物理過程(例えば温度依存性、非等方ライン強度、放射輸送の近似)を導入しやすい構造です。また、純Python実装のため、NumPyベースの高速化やCython/numbaによるホットスポットの最適化を容易に行えます。
- 外部依存・統合:現状は最小限の依存で動作する設計ですが、観測データとの連携を深めるにはAstropyやSpectralCubeとの統合が想定されます。将来的にはMCMC(emcee等)や最小二乗最適化(lmfit等)でグリッドサーチを置き換えることで、計算効率と推定精度を向上できます。
- 実行性能:小規模なキューブ生成や粗いグリッド探索は問題なく実行できますが、高解像度キューブや高次元パラメータ空間探索では計算負荷が増大します。並列化や専用の最適化が必要な箇所が明確に分離されているため、逐次的な高速化が可能です。
このように、IREmodelは学術研究で必要となるモデリング・可視化の基礎機能を提供すると同時に、ユーザーが自分の観測ケースに合わせて改良・拡張しやすい設計になっています。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- README_CN.md: file
- pycache: dir
- config.py: file
- coords.py: file
…他 25 ファイル
(主な役割)
- coords.py: 座標変換と速度射影のコア実装。
- config.py: モデルパラメータとデフォルト設定。
- README 系: 使い方、理論背景、例(簡単な実行例や可視化方法)が記載されています。
- その他スクリプト群: キューブ生成、PV図作成、パラメータ探索のラッパーやユーティリティ。
まとめ
観測との比較と拡張性を重視した、使いやすいFERIAのPython実装。研究者による改良・統合がしやすい構成です。
リポジトリ情報:
- 名前: IREmodel
- 説明: A Python-based reimplementation and extension of FERIA (https://github.com/YokoOya/FERIA) for building IRE (Infalling and Rotating Envelope) models in star formation studies.
- スター数: 3
- 言語: Python
- URL: https://github.com/BIGcarter/IREmodel
- オーナー: BIGcarter
- アバター: https://avatars.githubusercontent.com/u/23712296?v=4
READMEの抜粋:
FERIA-Python
FERIA (Flat Envelope Model with Rotation and Infall under Angular Momentum Conservation) - Python Implementation
FERIA-Python is a pure Python implementation of the FERIA model, designed for simulating and fitting the kinematics of Infalling-Rotating Envelopes (IRE) and Keplerian Disks around protostars. It provides tools to generate 3D data cubes, Position-Velocity (PV) diagrams, and Moment maps, as well as a simple grid search …