# localPDF view on [github](https://github.com/ohara-lab-su/local_pdf/) / [ohara-lab-su (doc)](https://ohara-lab-su.github.io/) `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 から実行します。 基本的な流れは次のとおりです。 ``` text Config ↓ LocalPDF ↓ load_xy() ↓ run_all() ↓ run_bft() ↓ get_*() / save_*() ``` 最小限のコードは次のようになります。 ``` python 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 マニュアル」を参照してください。 ```{toctree} :maxdepth: 1 :caption: Contents: api/modules man/localPDF_API man/localPDF_MANUAL man/localPDF_TUTORIAL ```