データ変換プログラム (filter) (plug-in ver) 仕様書
公開対象: 全ユーザ
必要ファイル: tklib
参考プログラム
参考プログラムが XRD\filter, PES\filter などに収録されています。
詳細リスト: filter-plugin - D2MatE
プログラム仕様
注釈
2023/9/11 仕様更新
全体方針
単独動作の保証: Pythonモジュールを
importlibで読み込む場合、エラーが発生しても「読み込みエラー」としか表示されずデバッグが困難です。そのため、必ず モジュール単独で動作し、動作確認ができるように 実装してください。動的読み込み: プラグインの動的読み込みには
importlibを使用します。 * 1つだけ読み込む場合:tkApplication.load_module()* ディレクトリ内の全プラグインを読み込む場合:tkApplication.load_modules(plugin_dir, "*.py")フレームワークの利用:
tkApplicationおよび変数オブジェクトcparamsの利用を推奨します。標準関数 (API) の引数構成: 見通しを良くするため、フィルタ動作に関する変数は
cparamsの属性として渡すことを推奨します。 *print_level: コンソール出力制御(1: 最小情報、0: 出力なし)。 *app:tklib.tkApplicationオブジェクト。 *cparams:tklib.tkParamsオブジェクト。
データの構造
データは data_list、ラベルは labels 変数として共有し、これらを用いて print, save, plot を行います。
plugin_ver |
Region |
Xデータ変数 |
Yデータ変数 |
data_list の形式 |
|---|---|---|---|---|
0.2 (標準) |
複数可 |
xa |
ya1, ya2... |
|
0.1 (旧形式) |
1つのみ |
x |
y1, y2... |
|
その他 (拡張) |
複数 |
xa1, xa2... |
ya1, ya2... |
|
標準的なスペクトルデータ
Region: 異なるX範囲のデータ。個数を
nregionとします。Spectrum: 各Region内のデータ系列。個数を
nspectrumとします。メタデータ:
inf["meta"] = {"filename": path, "sample_name": "sample1"}のように辞書形式で保持します。
テスト用コード (単独動作)
__name__ == "__main__" 判定により、単独起動時には main() 関数を呼び出すように実装します。
def main():
# 引数・パラメータの初期化
app = tkApplication(usage_str=usage_str, globals=globals(), locals=locals())
cparams = app.get_params()
initialize(app, cparams)
update_vars(app, cparams)
# ログ設定
logfile = app.replace_path(cparams.infile, template=["{dirname}", "{filebody}-out.txt"])
app.redirect(targets=["stdout", logfile], mode='w')
# 処理実行
file_type = check_file_type(cparams.infile)
if file_type is None or 'Error' in file_type:
app.terminate(f"Error: [{cparams.infile}] invalid file type")
inf = read_data(cparams.infile, cparams=cparams)
print_data(inf)
inf = convert(inf, cparams=cparams)
save_data([cparams.outfile], inf, cparams=cparams)
plot_data(inf, cparams=cparams)
app.terminate()
if __name__ == "__main__":
main()
Plug-in グローバル変数
必須項目
plugin_ver: バージョン指定。"data:0.2"(推奨)など。default_ext: 標準の拡張子(例:'.txt')。input_type: 入力フォーマット識別子。output_type: 出力フォーマット識別子。
オプショナル項目
written_by,copyrightextensions: 受理可能な拡張子リスト。input_dir: 複数ファイルをディレクトリごと読み込む場合に指定。
Plug-in 標準関数 (API)
- check_file_type(infile, inf=None, app=None, cparams=None, *args, **kwargs)
入力ファイルのフォーマットを確認します。対応している場合はフォーマット情報の辞書を返し、未対応なら
Noneを返します。
- read_data(infile, app=None, cparams=None, print_level=1, *args, **kwargs)
データを読み込みます。成功時にメタデータとデータを含む辞書
infを返します。inf 辞書の必須キー: *
inf["filename"]: 入力ファイル名。 *inf["data_list_type"]: 型識別("[x, y]"または"[[x, y]]")。 *inf["meta"]: メタ情報の辞書。 *inf["labels"]: グラフ軸ラベル(例:[r"2$\theta$ ($\degree$)", "Intensity"])。 *inf["data_list"]: X, Y データのリスト。 *inf["nregion"]: Region 数。
- save_data(outfiles, inf, app=None, cparams=None, print_level=1, *args, **kwargs)
データをファイルに保存します。
- plot_data(inf, app=None, cparams=None, action='plot', save_file=None, pause=True, print_level=1, *args, **kwargs)
グラフの描画および保存を行います。
データ変換プラグイン(filter)リスト
公開対象: 全ユーザ
仕様詳細
プラグインの設計仕様については、以下のページを参照してください。 filter-plugin 仕様 - D2MatE
プラグイン一覧
以下に挙げるパスは、[tkprog_X_path] (tkprog_base、tkprog_COE など)からの相対パスで示します。
各プラグインは単独で動作し、対応するWindows用バッチファイルが含まれていますが、必ずしもデータファイルは同梱されていません。
サンプル・テスト用 (plugin)
plugin-test.py / .bat
plugin-test_plain.bat * 内容:filterプラグインのサンプルを利用するテスト用プログラム。
共通・基本フィルタ (plugin/filter)
csv2xlsx.py * 内容:CSVファイルをExcel(
.xlsx)ファイルに変換します。csv2xrd_plain.py
csv2xrd.py * 内容:filterプラグインのサンプルプログラムです。
電気特性 (electrical/filter)
atlas_tft2xlsx.py * 対象:SILVACO ATLAS TFT2D。 * 入力:I-V特性を含む出力ファイル(
.log)。 * 出力:VG, VD - ID(データはVGでソートされます)。resitest8300_hdt_T2xlsx.py * 装置:東陽テクニカ Resitest 8300。 * 入力:
.hdtファイル。resitest8300_T2xlsx.py * 装置:東陽テクニカ Resitest 8300。 * 入力:
.CSVファイル。resitest8400_T2xlsx.py * 装置:東陽テクニカ Resitest 8400。 * 入力:異なる温度のHall測定結果の
.xlsxファイルを集めたディレクトリ。 * 出力:T - RH, σ, μ, N。
X線回折 (XRD/filter)
粉末XRDパターンのプロット、2θ-強度データとしての出力 (.xlsx)
結晶構造ファイル関連 * cif2xrd.py:入力データはCIFファイル(
.cif)。 * pdf_xlsx2xrd.py:PDF2などの回折線データ(hkl, dhkl, 2θ, 強度)を含むExcelファイル。一般的なフォーマット * txt2xrd.py:テキストファイル(
.txt)。 * xy2xrd.py:x,yデータが各行に書かれたテキスト(.xy)。 * csv2xrd.py:ラベル行付きのCSV(.csv)。 * xlsx2xrd.py:MS-Excel形式(.xlsx)。装置メーカー別 * bruker2xrd.py:Bruker製装置のテキスト化測定データ。 * miniflex_ras2xrd.py:Rigaku MiniFlex測定データ。 * rint2xrd.py:Rigaku Rint2000等のテキスト化測定データ(
.asc)。解析ソフト・シミュレーション結果 * topas_pro2xrd.py:Bruker TOPASフィッティング結果(
.pro)。 * topas_txt2xrd.py:Bruker TOPASフィッティング結果(.txt)。 * rietan_int2xrd.py:RIETAN-FP入力強度データ(.int)。 * rietan_pat2xrd.py:シミュレーションXRDデータ(RietPlot/gnuplot用、.pat)。
粉末回折パターン (PDF) データベース
pdf_xlsx2xrd.py * 入力:PDF DBの回折角度、指数、強度の
.xlsxファイル。
光電子分光 (PES/filter)
spring8_haxpes2xlsx.py * 装置:SPRing-8 HAXPES (Scientaアナライザ)。
MDR_haxpes2xlsx.py
arpes_pxt2xlsx.py * 入力:IgorPro(
.pxt)形式の測定データ。 * 出力:Energy - Angle - Intensity 行列データ(.xlsx)。vasp2pes.py * 入力:VASP計算出力 / 出力:PESスペクトル。
熱物性 (Thermal/filter)
picotr2band.py * 入力:picoTRの熱反射(thermo reflectance)データファイル。
第一原理計算 (VASP/filter)
vasp2band.py * 入力:INCAR, POSCAR, POTCAR, OUTCAR, EIGENVAL。 * 出力:バンド構造データ(kx, ky, kz, dk, ktotal, E各バンド)。
vasp2dos.py * 入力:INCAR, POSCAR, POTCAR, OUTCAR, DOSCAR, EIGENVAL。 * 出力:Energy - PDOSデータ(lm分解含む、
.xlsx)。vaspkit2dos.py * 入力:VASPKITで出力したPDOSファイル。 * 出力:Energy - PDOSデータ(lm分解含む、
.xlsx)。
デバイスシミュレーション (ATLAS/filter)
atlas_dos2xlsx.py * 入力:ATLAS DOS出力データ / 出力:DOSグラフ。
atlas_tft2xlsx * 入力:ATLAS I-Vシミュレーションデータ(
.log) / 出力:TFT I-Vグラフ。