Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/source/examples/examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ Landing page for diffpy.utils examples.
resample_example
parsers_example
tools_example
mu_calc_examples
123 changes: 123 additions & 0 deletions docs/source/examples/mu_calc_examples.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
.. _mu calc Example:

:tocdepth: -1

X-ray Absorption Coefficient (μ) Examples
#########################################

These examples will demonstrate how to calculate the X-ray absorption
coefficient, μ, using different methods provided in ``diffpy.utils``.


.. admonition:: Methods for obtaining X-ray absorption coefficient

Obtaining μ can be done in **two
different ways** using ``diffpy.utils``.

1. **Using a "z-scan" measurement**: Perform a z-scan measurement
on the sample and use ``diffpy.utils.tools.compute_mud`` to calculate
μ.
2. **Using tabulated values**: Given composition, density, and X-ray energy,
use ``diffpy.utils.tools.compute_mu_using_xraydb`` to calculate μ from
tabulated values.

Why is μ Important?
-----------------------

The X-ray absorption coefficient, μ, quantifies how much X-ray
radiation is absorbed by a material per unit length. It is a critical
parameter in many scientific techniques.

For example, when calculating pair distribution functions (PDFs)
using ``diffpy.pdfgetx``,
a key assumption is that the X-ray absorption is negligible.
This is frequently the case for high-energy X-rays. However,
this must be corrected for when using low energy X-rays, such
as those from a laboratory source. To correct for X-ray absorption,
the X-ray absorption coefficient, μ, must be known.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please double check this


.. admonition:: Correcting for X-ray Absorption with ``diffpy.labpdfproc``

If your objective is to correct for X-ray absorption in PDF calculations,
please refer to our package ``diffpy.labpdfproc``. This package is specifically
designed to correct your laboratory X-ray PDF data for absorption effects.
More information can be found in the
`diffpy.labpdfproc documentation <https://www.diffpy.org/diffpy.labpdfproc//>`_.


Calculating μ from a "z-scan" Measurement
-----------------------------------------

.. note::

The data we will be using for this example can be found here,
`FIXME <https://www.diffpy.org/diffpy.utils/examples/zscan_example_data.txt>`_.

A "z-scan" measurement is the measured transmission of your X-ray incident beam
as a function of sample position. This is obtained by moving the sample
along the X-ray beam (z-direction) and recording the transmitted
intensity at each position. This measured data looks something like this,

.. image:: ../images/FIXME
:alt: Example of a z-scan measurement.
:align: center
:width: 200px

Using this z-scan data, you can calculate **μ·d**, where d is the inner diameter of
your sample capillary. To do this, simply pass your z-scan measurement to the ``compute_mud``
function from the ``diffpy.utils.tools`` module.


First, import the ``compute_mud`` function,

.. code-block:: python

from diffpy.utils.tools import compute_mud

Next, pass the filepath to the function,

.. code-block:: python

filepath = "zscan_example_data.txt"
capillary_diameter = 0.5 # mm
mud = compute_mud(filepath)
print(f"Calculated mu*d: {round(mud, 3)}")
print(f"Calculated mu: {round(mud / capillary_diameter, 3)} mm^-1")

This will output the calculated value of μ·d, which is unitless, and μ in mm\ :sup:`-1`.

.. code-block:: console

Calculated mu*d: FIXME
Calculated mu: FIXME mm^-1

Calculating μ from Tabulated Values
-----------------------------------

The function to calculate μ from tabulated values is located
in the ``diffpy.utils.tools`` module. So first, import the function,

.. code-block:: python

from diffpy.utils.tools import compute_mu_using_xraydb

To calculate μ, you need to know the sample composition, and X-ray energy, and sample mass density (g/cm\ :sup:`3`).

.. code-block:: python

composition = "Fe2O3"
energy_keV = 17.45 # Mo K-alpha energy
sample_mass_density = 5.24 # g/cm^3

Now calculate μ using the ``compute_mu_using_xraydb`` function.

.. code-block:: python

mu = compute_mu_using_xraydb(composition, energy_keV, sample_mass_density)
print(f"Calculated mu: {round(mu, 3)} mm^-1")

This will output the calculated X-ray absorption coefficient, μ, in mm\ :sup:`-1`.

.. code-block:: console

Calculated mu: 13.967 mm^-1
23 changes: 23 additions & 0 deletions news/mu-ex.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
**Added:**

* Add examples for calculating absorption coefficient.

**Changed:**

* <news item>

**Deprecated:**

* <news item>

**Removed:**

* <news item>

**Fixed:**

* <news item>

**Security:**

* <news item>
Loading