localPDF
view on github / ohara-lab-su (doc)
localPDF は、Web ブラウザ上で操作する webPDF の PDF 計算機能を、
ローカルの Python から API として利用するためのプロジェクトです。
webPDF では、ファイルの選択や計算の実行を Web UI
上の操作で行いますが、 localPDF では実験データや計算条件を Python
から与え、 S(Q)、G(r) などの計算・取得・保存をプログラムから行えます。
数値計算の基本部分には webPDF の計算コアをそのまま利用しています。
これは、webPDF 本家の実装が更新された場合にも、
基本的にはそのまま置き換えて利用できるようにするためです。
そのため、原則として webPDF は変更しません。
webPDF
のソースコードをローカル実行用に直接書き換えることは簡単ですが、
それを避けるため、ブラウザ / PyScript 実行環境に依存する部分をローカル環境へブリッジし、
既存の計算コアを利用する方式を採用しています。
使い方
localPDF では、Web 版で行っていた
「実験データを選択して計算条件を設定し、S(Q)、G(r) を計算して保存する」
という操作を Python API から実行します。
基本的な流れは次のとおりです。
Config
↓
LocalPDF
↓
load_xy()
↓
run_all()
↓
run_bft()
↓
get_*() / save_*()
最小限のコードは次のようになります。
from localPDF import Config, LocalPDF
config = Config("config.json")
pdf = LocalPDF(config=config)
pdf.load_xy("data.dat")
pdf.load_bg_xy("background.dat", factor=1.0) # background がある場合のみ
pdf.run_all()
pdf.run_bft()
q, sq = pdf.get_sq()
r, gr = pdf.get_gr_lorch()
pdf.save_sq("sq.dat")
pdf.save_gr_lorch("gr_lorch.dat")
Config で計算条件を読み込み、LocalPDF に実験データを与えます。
run_all() で標準的な PDF 計算を実行し、続けて run_bft() で back
Fourier transform と Lorch 処理を実行します。 計算結果は get_*() で
Python 上に取得するか、save_*() でファイルに保存できます。
background がない場合は load_bg_xy() は不要です。
計算結果を表示する場合は LocalPDFPlot を利用できます。
詳細な利用方法は「localPDF チュートリアル」、各 API の仕様は 「localPDF API リファレンス」、内部構造を含む説明は「localPDF マニュアル」を参照してください。