Changelog
[2.1.0] – 2026-04-24
Added
show_vectorsoption inplot_real()to toggle display of basis vector arrows (default:True).real_lattice_sizeandreciprocal_lattice_sizeproperties inlattice, with validated setters and on-demand lattice regeneration.tqdm_disableargument in matching functions of theewaldclass to control progress bar visibility (Falseenablestqdm).AI generated test for
preparation.filtersmodule.New
transform_stack_to_kxky()function for explicit and efficient transformation of image stacks into kx–ky space.
Changed
Legend is now hidden by default in
plot_real().Progress bars (
tqdm) inmatch_alphaandmatch_scaleare disabled by default.Updated default space size parameters.
Updated
mirror_symmetrybehavior inewald: when enabled, lattice points are generated using both positive and negative Ewald azimuthal rotations (± rotation angle relative to the image azimuth).Introduced clearer and more descriptive azimuth-related properties in
ewald:image_azimuthal_angleewald_azimuthal_angleewald_azimuthal_rotation
These distinguish the RHEED image azimuthal orientation (typically defined with respect to high-symmetry directions such as[11-2]) from the Ewald construction rotation used for rotated lattices (e.g. √7×√7 reconstructions).
Improved line rendering and spot markers in
plot_image().Refactored kx–ky image transformations to use a shared frame-level helper function.
Allow to pass
k_vectin transformations.Rotation of images in kx–ky space is now applied only when the required azimuth/alpha information is available.
Removed unsafe dtype casting during rotation and improved NaN preservation.
Resolved type issues via explicit
float32casting.Deprecated multi-image transformation via
transform_image_to_kxky()in favor of explicit stack handling.Updated example notebooks.
Renamed
test_preparation.pytotest_preparation_alignment.py.
Deprecated
Setting
image_azimuthal_angledirectly.
The image azimuth is now treated as an immutable experimental reference.
A deprecated setter is retained for backward compatibility when the image azimuth is scalar; assignments emit aDeprecationWarningand are interpreted as settingewald_azimuthal_rotation.Passing multi-image stacks to
transform_image_to_kxky(); users should migrate totransform_stack_to_kxky().
Fixed
Corrected FCC primitive vector generation in the
latticemodule.Fixed
azimuthal_angleproperty handling for single images in image stacks.Resolved type issues via explicit
float32casting.Fixed orientation arrows in geometry figures in the documentation to use single-headed arrows for indicating the positive angular direction.
Fixed xarray
FutureWarningrelated to concatenation and coordinate handling.Various minor bug fixes and internal refactors.
Improved
Improved documentation of the geometry convention to clarify angular definitions and rotation directions.
Refactored high-pass filter to use vectorized xarray operations and float-based computations in image filtering.
[2.0.0] – 2025-11-25
Added
Added
file_nameandfile_creation_timeattributes to loaded images.Added new example images for the 3D stacking notebook.
Added support for image stacks with
alphacoordinates inconversion.image.transform_image_to_kxky.Added full support for stack images in
kinematics.Ewald.
Changed
Refactored and simplified data loading logic for maintainability.
Refactored RI accessors to support both 2D and 3D (stacked) images.
Improved profile plotting and representation to allow reduction along
sx,sy, and other dimensions (including 3D stacks).Updated ARHEED
kx–kytransformation visuals with new example images.Updated documentation for advanced
kx–kytransformations using multiple (stack) images.Standardized logging across core modules (module-level loggers, lazy-style messages).
Added documentation on logging usage and configuration (
docs/source/logging.rst).Updated
preparationmodule functions for centering RHEED images and refining incident angle detection.
Removed
Breaking: Removed
load_data_manual(). The unifiedload_data()now handles both automatic and manual loading (manual mode applies when no plugin is provided).Breaking: Removed
apply_image_center()from RI accessors.
Renamed
Breaking: Renamed
ewald_sphere_radius→ewald_radiusin RI accessors for naming consistency.Breaking: Replaced symbolic angle names
betaandalphawith descriptiveincident_angleandazimuthal_anglein the xrheed API (aliases preserved).
Split
Breaking: Replaced
apply_image_center()with two clearer functions:set_center_manual()andset_center_auto().
[1.3.4] – 2025-09-30
Expose
load_dataandload_data_manualat the package root (xrheed.load_data) for simpler importsUpdate documentation and examples to reflect the new recommended loading approach
Adopt setuptools_scm for dynamic versioning from git tags
Expose
__version__in package root
[1.1.2] – 2025-09-19
Fix quick usage in README (use xrheed.loaders)
Minor fixes in example notebooks
Update citation
[1.1.1] – 2025-09-15
Add
load_data_manual()to load RHEED images when no plugin is available.Refactor
io.py→loaders.pyBreaking change: code using
from xrheed.io import ...must now usefrom xrheed.loaders import ...Resolves the naming conflict with Python’s standard library
ioand clarifies the module’s purpose (data loading only).
Documentation fixes and updates:
Updated example notebook sections.
Updated badges.
Updated plugin and xarray_accessors references in the API documentation.
[1.0.0] – 2025-09-11
First stable release of xRHEED.
Project is now officially public and stable.
Automatically uploaded to PyPI.
Documentation hosted on Read the Docs.
Zenodo DOI assigned: 10.5281/zenodo.17099752
No significant changes to core code since v0.5.x.
[0.5.0] – 2025-09-11
PyPI-ready release with automatic publishing via GitHub Actions.
Full Sphinx documentation with myst-nb and API reference.
Added
.readthedocs.yamlfor Read the Docs builds.Updated
docs/source/conf.pyfor autodoc, autosummary, and notebook support.Updated CI workflow (
ci.yml) to build docs, run tests, lint code, and publish releases.Added
CITATION.cfffor formal citation and Zenodo DOI integration.
[0.4.0] – 2025-09-11
Refactored LoadRheedBase to use an abstract base class with init_subclass validation.
Enforced presence of required ATTRS keys in all plugins.
Added dsnp_arpes_bmp plugin to support BMP image loading via Pillow.
Implemented automatic plugin discovery in xrheed/init.py.
Refactored test suite to dynamically validate all supported plugins and file types.
Updated CONTRIBUTING.md
[0.3.0] – 2025-09-09
New argument: show_specular_spot available in plot_image
New example notebook showing how to search for lattice constant and azimuthal orientation for a given RHEED data.
A major update in the Ewald class including:
Ewald matching functions rewritten
Added decorator that saves the matching results to cache dill files
New constants
Type hints
Better docstring
[0.2.0] – 2025-09-04
A major update in the documentation
New example images
Polished and improved markdowns in jupyter notebooks
Docstring added, and API ready
Profile methods used for transformation now use a proper geometry sx -> ky
[0.1.0] – 2025-08-29
First working release with core functionality
Load and preprocess RHEED images
Generate and analyze intensity profiles
Overlay predicted diffraction spot positions (kinematic theory & Ewald construction)
Documentation with few example notebooks