トップページに戻る
データ変換プログラム (filter)
公開対象: D2MatE拠点、神谷・片瀬研究室
注:
本ページは2023/8以前の古い仕様です
必要ファイル:
・ tklib (必要ないプログラムもあります)
参考プログラム
以下の参考プログラムが mdx_conv\filter に入っています
- json2json.py
JSONファイルを見やすく整形したJSONファイルに変換
tklibを使用しない。
一番単純なtemplate
JSONファイル読み書きの例
- xml2json.py
XMLファイルをJSONファイルに変換
XML => 辞書型変数への変換に xmltodict
モジュールを使用
tklibを使用しない
一番単純なtemplate
JSONファイル読み書きの例
- ZEM3_conv.py
アドバンス理工 ZEM-3のデータを変換、グラフ描画
tklibを使用しない。グラフ描画があるので若干複雑
- poscar2json.py
VASP POSCARファイルをJSONファイルに変換
必要モジュール: spglib, tklib
tklib.tkcrystal.tkCrystalを結晶構造クラス、tklib.tkcrystal.tkVASPをVASPファイルハンドラーとして利用
出力: 拠点標準JSON (仮)
- cif2poscar.py
CIFファイルをVASPのPOSCARファイルに変換。
tklibを利用
tklib.tkcrystal.tkCIF、tklib.tkcrystal.tkCrystalを結晶構造クラス、tklib.tkcrystal.tkVASPをVASPファイルハンドラーとして利用
CIFファイル読み込みの例
- vasp2json.py
VASPの計算結果のフォルダーからファイルを読み込み、JSONファイルに変換。
tklibを使用
tklib.tkcrystal.tkCIF、tklib.tkcrystal.tkCrystalを結晶構造クラス、tklib.tkcrystal.tkVASPをVASPファイルハンドラーとして利用
外部プログラムファイルの読み込みの例
- ARPESConv_pxt.py
KEK ARPESのバイナリファイルをテキストファイルに変換
tklibを利用
バイナリファイル読み込みの例
プログラム仕様
修正
- 2022/12/10 メタデータファイルに対応するため、出力ファイル名をリスト変数に変更
以下の関数を用意しておくと、将来的にmdx_conv_gui.pyから利用できるようになります。
なお、各関数で app, cparams
の引数がありますが、必要なければ無視してください。以下の使い方ができます。
・ tklib を使う場合は、それぞれ tkApplication、tkParams
のインスタンスです。
tkApplicationを使うと、多国語対応
や他プログラムとの共通機能の拡張が(将来)容易になりますが、ファイル変換プログラムでの必要性は高くはありません。
・
それ以外の場合でも、各関数に付帯情報を渡したい場合、cparams
を使って渡してください。
- def check_file_type(infile, inf = None, app = None, cparams = None):
# infileの一部を読み取り、ファイルタイプを確認して返す
return ファイルタイプ識別子 #
ファイルタイプが一致した場合
return None #
ファイルタイプが一致しない場合
- def get_input_type(inf = None, app = None, cparams = None):
# infileのファイルタイプの文字列を返す
return 入力ファイルタイプ識別子
- def get_output_type(inf = None, app = None, cparams = None):
# outfile (データファイル)
のファイルタイプの文字列を返す
return 出力ファイルタイプ識別子
- def get_output_path(infile, inf = None, app = None, cparams = None):
#
入力ファイル名やデータに応じて出力ファイル名を変えたい場合に使う
return outfiles # 出力ファイル名のリスト outfile[0]:
データファイル、outfile[1]: メタデータファイル
- def read_data(infile, app = None, cparams = None, is_print = False):
# infileを読み込み、ファイル情報をinf辞書型変数に入れて返す
return inf #
データ、メタデータを含む辞書型変数を返す
# データは共通データ形式にして inf["data"]
に入れる
- def save_data(outfiles, inf, app = None, cparams = None, is_print = False):
# infileから読み込んだinf辞書型変数の内容をoutfileに書き出す
return [True|False] # 保存に成功したらTrueを返す
- def print_data(inf, app = None, cparams = None)
# infileから読み込んだinf辞書型変数の内容をコンソールに表示する
- def plot_data(inf, app = None, cparams = None):
# infileから読み込んだinf辞書型変数の内容をグラフに描画する
- プログラムメタデータ (オプショナル)
version = 0.1
written_by = 'Toshio Kmaiya'
copyright = ''
呼び出し例
inf = read_data(infile)
print_data(inf)
if outfiles is None:
outfiles = get_output_path(infile, inf = inf)
inf = read_data(infile,)
outfiles = get_output_path(infile)
print_data(inf)
save_data(outfiles, inf)
plot_data(inf)
使用方法
- 準備:
・
拠点・研究室の共有フォルダーから以下をダウンロードして、適当なディレクトリィに展開します。
適当なドライブのルートに \tkProg をつくり、その下に
tklib、tkprog_MDX あるいはtkprog_COE
をコピーすることをお勧めします。
tkProgのディレクトリィを [tkProg]、tkprog_MDX/tkprog_COE
を [tkprog_XXX] と書きます。
tkProg\tklib
tkProg\tkprog_MDX\mdx_conv (拠点メンバーの場合)
tkProg\tkprog_COE\mdx_conv (まだ未公開。研究室メンバーの場合)
・ 環境変数 PYTHONPATH に [tkProg]\tklib\python を追加する。
- カレントディレクトリィを 「tkprog_XXX]¥mdx_conv\filter に変更します。
[tkprog_XXX] が D: ドライブにある場合の例。
> d:
> cd [tkprog_XXX]\mdx_conv\filter
- このディレクトリィにあるプログラムは、CLIで動きます。
例: python ARPESConv_pxt.py 入力ファイル 出力ファイル
- これらのプログラムは、 GUI mdx_conv\mxd_conv_gui.py
から利用できるようにします
インストール方法
Python、エディタのインストール
condaあるいはpipのインストールで "OpenSSLエラー"
が起こった場合、
> conda/pip install openssl
でOpenSSL モジュールをインストールしてください。
参考: 【Anaconda】ライブラリのインストール時にOpenSSLに関するエラーが発生してしまう場合の対処法について
- 天下一反省会!
- XMLを辞書型変数に変換する xmltodict
をインストールします
> conda install xmltodict
- matplotlibをインストールします
> conda install matplotlib
- pandasをインストールします
> conda install pandas
- openpyxlをインストールします
> conda install openpyxl
tklib / bayes_gp_gui.py を使う場合
- chardetをインストールします
> conda install chardet
- tkinterをインストールします
> conda install tkinter
tclライブラリィが見つからないというエラーが出た場合、環境変数に
TCL_LIBRARY=C:\Pythonインストール先\tcl\tcl8.6
を設定してください
tklibのインストール
- 拠点・研究室の共有フォルダーから以下をダウンロードして、適当なディレクトリィに展開します。
適当なドライブのルートに \tkProg をつくり、その下に
tklib、tkprog_MDX あるいはtkprog_COE
をコピーすることをお勧めします。
tkProgのディレクトリィを [tkProg]、tkprog_MDX/tkprog_COE
を [tkprog_XXX] と書きます。
tkProg\tklib
tkProg\tkprog_MDX¥PHYSBO (拠点メンバーの場合)
tkProg\tkprog_COE¥PHYSBO (研究室メンバーの場合)
- 環境変数 PYTHONPATH に [tkProg]\tklib\python を追加する。