データ変換プログラム (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...

[[xa, ya1, ya2, ...], [xb, yb1, yb2, ...], ...]

0.1 (旧形式)

1つのみ

x

y1, y2...

[x, y1, y2, ...]

その他 (拡張)

複数

xa1, xa2...

ya1, ya2...

[[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, copyright

  • extensions: 受理可能な拡張子リスト。

  • 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_basetkprog_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グラフ。