IREmodel:落入・回転包絡(IRE)モデルのPython実装

Library

概要

FERIA(Flat Envelope Model with Rotation and Infall under Angular Momentum Conservation)を純粋なPythonで再実装したプロジェクトです。プロトスター周囲の落入・回転包絡(IRE)やケプラー円盤に対する速度場を計算し、その結果を3次元データキューブ(空間×空間×速度)、位置速度(PV)図、モーメントマップとして出力できます。グリッドサーチによる簡易フィッティング機能と可視化ツールを備えており、観測データとの比較やパラメータ探索が手軽に行える点が特徴です。軽量で読みやすいコード構成のため、研究者が独自の拡張や実験的改良を行いやすく設計されています。

GitHub

リポジトリの統計情報

  • スター数: 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実装。研究者による改良・統合がしやすい構成です。

リポジトリ情報:

READMEの抜粋:

FERIA-Python

FERIA (Flat Envelope Model with Rotation and Infall under Angular Momentum Conservation) - Python Implementation

中文文档 (Chinese Documentation)

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 …