------------------------- 空蟬の環境 ------------------------- :著者: 稲村 泰弘 ここでは、インストールされた空蟬の環境について述べる。環境変数や使用するディレクトリなどは、空蟬のインストール時に作成されるが、それらの役割を理解してもらうのがこの項の趣旨である。 コードなどの配置 ------------------- 空蟬のコード(ライブラリも含む)は、主に二つのパートに分けられる。 1. Manyoライブラリパート 2. Pythonコードパート Manyoライブラリパートは、C++でManyoライブラリをフレームワークとして開発されたコード群であり、ManyoライブラリとともにコンパイルされPythonからimportすることで利用出来る。場所は、Manyoライブラリのインストール先 *MANYO_PATH* の下に入っている。 *${MANYO_PATH}/Manyo/Utsusemi* Pythonコードパートは、Pythonで書かれたコード群で、主に 1. データリダクション 2. 可視化(データプロット) 3. グラフィカルインターフェース に分かれる。 これらは、すべて *python-utsusemi* ディレクトリ(空蟬ルートディレクトリ)に格納されている。 また、空蟬を用いるビームライン固有のコード群は、その直下のディレクトリ *python-utsusemi/XXX* に配置される。 その関連図を示す。 |image0| 基本的な配置構造として、 *python-utsusemi* 以下にあるディレクトリは *ana* , *vis* , *facade* の3つである。また装置固有のコードなどを含める *XXX* は、空蟬ルートディレクトリ配下にあり、*XXX* 以下のディレクトリも空蟬ルートディレクトリ同様に *ana* , *vis* , *facade* を含めることにしている。 +-------------------------------------------------------------------------------------------+ | python-utsusemi(空蟬ルートディレクトリ) 以下のディレクトリ | +========+===================+==============================================================+ | ana | SequenceEditor.py | データリダクション用グラフィカルインターフェースソフトウェア | | +-------------------+--------------------------------------------------------------+ | | Reduction | データリダクションモジュールを収める | +--------+-------------------+--------------------------------------------------------------+ | vis | | 可視化用コードを収める | +--------+-------------------+--------------------------------------------------------------+ | facade | | SequenceEditorで扱うコマンドファサードを収める | +--------+-------------------+--------------------------------------------------------------+ | XXX | facade, ana など | 装置固有のコードやパラメータを収める。 | +--------+-------------------+--------------------------------------------------------------+ 特に、*XXX* 以下の *XXX/ana/xml* にはヒストグラム化に必要となる装置固有パラメータである、 - WiringInfo - DetectorInfo などがあるので、留意しておく必要がある。 必要な環境変数 ------------------ 空蟬をパッケージとしてみた場合、必要な環境変数は空蟬ルートディレクトリ( *python-utsusemi* )へのパスを、Pythonの環境変数 *PYTHONPATH* に登録するだけである。しかし MLFソフトウェアとして動作させる(MLFのデータの場所など)ために、他にも幾つかの環境変数の設定が必要である。 その環境変数を以下に示した。 +----------------------------------+-----------------------------------------------------+ | 環境変数 | 役割 | +==================================+=====================================================+ |MANYO_PATH       | Manyoライブラリの実行に必要なパスを与える。 | | | "/opt/mlfsoft/manyo"など。 | +----------------------------------+-----------------------------------------------------+ |UTSUSEMI_BASE_DIR       | 空蟬のPythonコード(python-utsusemi)の場所を与える | | | "/opt/mlfsoft/python-utsusemi"など。 | +----------------------------------+-----------------------------------------------------+ |UTSUSEMI_SYS_NAME       | 実行する環境の装置のコードを与える。 | | | "SIK", "AMR", "HPN"など。 | +----------------------------------+-----------------------------------------------------+ |UTSUSEMI_DATA_DIR       | RAWデータの場所を与える。"/data"など。 | +----------------------------------+-----------------------------------------------------+ |UTSUSEMI_USR_DIR       | 装置用Pythonコードの場所を与える。通常は | | | ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_SYS_NAME}でよい。 | | | "/opt/mlfsoft/python-utsusemi/SIK"など。 | +----------------------------------+-----------------------------------------------------+ |UTSUSEMI_USR_PRIV_HOME      | ユーザーのプライベートフォルダを与える。 | | | この中にana/xmlやana/tmpが存在することが期待される。| | | デフォルトは${HOME}でよい。 "/home/hoge"など。 | +----------------------------------+-----------------------------------------------------+ | PYTHONPATH       | 空蟬のPythonコード実行に必要なパスを全て与える。 | | | 通常は、PYTHONPATH = ${MANYO_PATH}: | | | ${UTSUSEMI_BASE_DIR}:${UTSUSEMI_BASE_DIR}/facade: | | | ${UTSUSEMI_USR_DIR}/facade | +----------------------------------+-----------------------------------------------------+ | LD_LIBRARY_PATH       | 空蟬のC++コード実行に必要なパスを全て与える。 | | | 通常はLD_LIBRARY_PATH=${MANYO_PATH}/lib | +----------------------------------+-----------------------------------------------------+ | PATH | 実行ファイルの置き場所。通常は | | | 通常はPAHT=${MANYO_PATH}/bin:${PATH} | +----------------------------------+-----------------------------------------------------+ 参考のために、これらの環境変数を設定するために使用しているシェルスクリプト(Linux用)を載せる。 Linuxでは、このスクリプトを起動時(ログイン時)に走らせることで、空蟬環境として起動させることが可能である。 :: # BL info XXX=SIK # Path to Manyo-lib export MANYO_PATH=/opt/mlfsoft/manyo # Path to UtsusemiPy PYUTSUSEMI_PATH=/opt/mlfsoft/python-utsusemi # External Library path UTSUSEMI_EXT_LIBRARY_PATH=/usr/local/lib # Utsusemi Environment export UTSUSEMI_BASE_DIR=${PYUTSUSEMI_PATH} export UTSUSEMI_SYS_NAME=${XXX} export UTSUSEMI_DATA_DIR=/data export UTSUSEMI_USR_DIR=${UTSUSEMI_BASE_DIR}/${XXX} export UTSUSEMI_USR_PRIV_HOME=${HOME} # Python Path PYTHONPATH=${MANYO_PATH}:${PYUTSUSEMI_PATH}:${PYUTSUSEMI_PATH}/facade:${UTSUSEMI_USR_DIR}/facade export PYTHONPATH # Shared Library Path export LD_LIBRARY_PATH=${MANYO_PATH}/lib:${UTSUSEMI_EXT_LIBRARY_PATH} # Executable path export PATH=${MANYO_PATH}/bin:${PATH} echo '===========================================' echo ' Welcome to Utsusemi Environment for '${XXX} echo '===========================================' echo ' Ana : Sequencer' echo '===========================================' # Alias alias Ana='python '${PYUTSUSEMI_PATH}'/ana/Sequencer2.py &' 考慮すべきディレクトリ ----------------------------------- また空蟬を動作させる場合に必要なディレクトリを以下に示す。 動作時にはこれらのディレクトリが存在している必要がある。 特にデータは確実にRun Numberごとのフォルダとして、置いておく。 +-----------------------------------------+-------------------+---------------------------------------------------------------------+ | ディレクトリ(環境変数) | 具体例 | 内容 | +=========================================+===================+=====================================================================+ |${UTSUSEMI_DATA_DIR}/${UTSUSEMI_SYS_NAME}| "/data/SIK" | 対象となる装置のRAWデータの場所。 | | | | ここにSIK001234_20150809といったRun Numberごとのフォルダが配される。| +-----------------------------------------+-------------------+---------------------------------------------------------------------+ |${UTSUSEMI_USR_PRIV_HOME} | "/home/hoge" | ヒストグラム化実行時の一時ファイル保存などを行うホームディレクトリ。| | | | 主にこのディレクトリに anaフォルダがあることが空蟬に必要である。 | +-----------------------------------------+-------------------+---------------------------------------------------------------------+ |${UTSUSEMI_USR_PRIV_HOME}/ana | "/holme/hoge/ana" | ヒストグラム化実行時の一時ファイルを保存する。 | | | | 実際にはこのフォルダ内のxmlフォルダやtmpフォルダが使用される。 | +-----------------------------------------+-------------------+---------------------------------------------------------------------+ .. |image0| image:: media/UtsusemiEnvironment_FolderStructure.png :scale: 30 % :alt: figure of folders structure on Utsusemi environment