Changelog
Changes are listed with most recent versions at the top.
Dates are in YYYY/MM/DD format.
Primary (X.-.-) version numbers are used to denote backwards incompatibilities between versions, while minor (-.X.-) numbers primarily indicate new features and documentation.
3.0.1 (2021-07-27)
New
Changed
Added tests for momentum conversion and for Qt tools.
Fixed
Bugfix release to fix Qt API after bumping Qt versions. Tests have been added which hit large parts of the Qt code to prevent problems like this in the future.
3.0.0 (2021-07-27)
New
Numba has been adopted to accelerate k-space conversion resulting in 10-50x speedup compared to the older plain numpy versions of code.
Additional example data has been added so that representative ARPES data covering standard types of experiments are available.
The documentation site has been moved from Netlify to https://arpes.readthedocs.io/ and the content available greatly expanded.
Tutorials for common types of analysis are available as Jupyter notebooks.
An organized API documentation page is availabe.
Docstrings have been massively expanded to cover the public API and most of the internal API.
The documentation build process has been simplified.
The momentum conversion API has been expanded with utility functions
arpes.utilities.conversion.forward.convert_through_angular_point
: Performs a cut in momentum at a particular angle and passing through the angular coordinate provided.arpes.utilities.conversion.forward.convert_through_angular_pair
: Performs a cut in momentum passing through two given angular coordinates.
These are very helpful in getting high symmetry cuts rapidly.
Deep learning utilities upstreamed.
Multithreaded curve fitting.
Fit introspection utilities upstreamed.
Numerous small but compatible changes to the public API.
Changed
The xarray data accessor previously at .T has been named to .G to prevent shadowing the transpose function.
pylint -> black
Bump dependency versions, largely due to compatibility requirements with pyqtgraph.
Old .csv/spreadsheet driven APIs removed.
Fixed
Circular references have been removed from tools which use Qt which previously lead to crashes due to objects being freed in C++/Qt5 but retained in Python/PyQt5.
Additionally, some diagnostics have been added to help deal with similar problems in the future.
2.6.0 (2020-1-20)
New
Igor loader, aliased to ‘pxt’, ‘wave’, etc.
Changed
Improved documentation and intro videos
Fixed
Made loading pxt files more stable by adding a utility to safely decode strings when the encoding used is not known but is a common format
2.5.0 (2019-12-5)
New
Added a Qt-based waypoint data browser similar to what’s available at the Spectromicroscopy beamline,
path_tool
.Added a Qt-based masking tool
mask_tool
Added a Qt-based background subtraction tool
bkg_tool
.Generic Qt tools that interact with “paths” or “regions” are now simple to add with
CoreTool
Changed
Unitful axes on all Qt-based utilities
2.4.0 (2019-11-24)
New
Data loading code for the Spectromicroscopy beamline at Elettra.
Added a number of interactive utilities
Documentation/tutorial on adding interactive utilities
qt_ktool
Borrow code from DAQuiri for UI generation
Changed
Improved the documentation and FAQ.
Refactor file finding to support subfolders and endstation specific behavior
2.3.0 (2019-10-28)
New
More moiré analysis tools including commensurability measures.
FallbackEndstation
, see the changed section below.
Changed
Serious refactor to data loading. On the surface not much is different,
except that most things are more permissive by default now. In
particular, you can often get away with not passing the location=
keyword but it is recommended still.
There is now a FallbackEndstation
that tries to determine which
endstation to use in the case of missing location
key. This is to
reduce the barrier to entry for new users.
Fixed
2.2.0 (2019-08-21)
New
Moiré analysis module with some code to generate primitive moiré unit cells and plot them
Subpixel alignment in 1D and 2D based on image convolution and quadratic fitting this is useful for tracking and correcting shifts in valence data due to work function changes, charging, etc.
More or less fully fledged k-independent self energy analysis module (arpes.analysis.self_energy)
BZ exploration tool
Large refactor to data provenance
Now guaranteed produced for every plot using
savefig
By default we configure IPython to log all code execution
Most recent cell/notebook evaluations are included in provenance information
convert_coordinates
is now nearly an inverse transform toconvert_to_kspace
on the coordinates as is appropriate. In particular, this conversion is exact as opposed to small angle approximated
Some wrappers around getting Jupyter/IPython state
imread
wrapper that chooses backend betweenimageio
andcv2
Plotting utilities
dark_background
context manager changes text and spines to whiteData unit/axis unit conversions (
data_to_axis_units
and friends)mean_annotation
as supplement tosum_annotation
xarray_extensions
:with_values
-> generates a copy with replaced datawith_stanard_coords
-> renames deduped (eV-spectrum0
for instance) coords back to standard on a xr.DataArray.logical_offsets
calculates logical offsets for the ‘x,y,z’ motor setCorrectly prefers
hv
from coords nowmean_other
as complement tosum_other
transform
: Onemap
to rule them all
Changed
Fixed
2.1.4 (2019-08-07)
New
Changed
Prevent PyPI builds unless conda build succeeds, so that we can have a single package-time test harness (run_tests.py).
Fixed
Fix documentation to better explain conda installation. In particular, current instructions avoid a possible error arising from installing BLAS through conda-forge.
colorama now listed as a dependency in conda appropriately.
2.1.3 (2019-08-07)
New
Changed
pylint
ed
Fixed
Fix manifest typo that prevents example data being included
2.1.2 (2019-08-06)
New
Changed
Fixed
Removed type annotation for optional library breaking builds
2.1.1 (2019-08-06)
New
Improved type annotations
Slightly safer data loading in light of plugins: no need to call
load_plugins()
manually.
Changed
Fixed
Data moved to a location where it is available in PyPI builds
2.1.0 (2019-08-06)
New:
Improved API documentation.
Most recent interative plot context is saved to
arpes.config.CONFIG['CURRENT_CONTEXT']
. This allows simple and transparent recovery in case you forget to save the context and performed a lot of work in an interactive session. Additionally, this means that matplotlib interactive tools should work transparently, as the relevant widgets are guaranteed to be kept in memory.Improved provenance coverage for builtins.
Changed:
Metadata reworked to a common format accross all endstations. This is now documented appropriately with the data model.
Fixed:
MBS data loader now warns about unsatisfiable attributes and produces otherwise correct coordinates in the PyARPES format.
Some improvements made in the ANTARES data loader, still not as high quality as I would like though.
2.0.0 (2019-07-31)
New:
Major rework in order to provide a consistent angle convention
New momentum space conversion widget allows setting offsets interactively
Fermi surface conversion functions now allow azimuthal rotations
New
experiment
module contains primitives for exporting scan sequences. This is an early addition towards being able to perform ARPES experiments from inside PyARPES.As an example: After conducting nano-XPS, you can use PCA to select your sample region and export a scan sequnce just over the sample ROI or over the border between your sample and another area.
Changed:
All loaded data comes with all angles and positions as coordinates
All loaded data should immediately convert to momentum space without issue (though normal emission is not guaranteed!)
Documentation changes to reflect these adjustments to the data model
Fixed:
Documentation link in README.rst is now correct.
1.2.0 (2019-07-18)
New:
Ship example data so that people can try what is in the documentation immediately after installing
Users can now load data directly, i.e. without a spreadsheet, with
load_without_dataset
, in the future this will support matches based on the current working directory.Users are better warned when spreadsheets are not in the correct format. Spreadsheet loading is also generally more permissive, see below.
Changed:
Added more tests, especially around data loading, spreadsheet loading and normalization.
Fixed:
Spreadsheet loading no longer relatively silently fails due to whitespace in column names, we might nevertheless consider doing more significant cleaning of data at the very initial stages of spreadsheet loading.
Spreadsheet loading now appropriately uses safe_read universally.
modern_clean_xlsx_dataset
is functionally deprecated, but will stay in at least for a little while I consider its removal.Spreadsheet loading now appropriately handles files with ‘cleaned’ in their name.
Spreadsheet writing will not include the index and therefore an unnamed column when saving to disk.
1.1.0 (2019-07-11)
New:
Add a self-check utility for debugging installs,
import arpes; arpes.check()
PyARPES can generate scan directives to make working at beamlines or nanoARPES endstations simpler. You can now export a region or boundary of a region from a PyARPES analysis to a (first pass) LabView compatible scan specification. For now this consists of a coordinate list and optional spectrum declaration.
local_config.py
now has a programmatic interface inarpes.config.override_settings
.Add
arpes.utilities.collections.deep_update
Changed:
Documentation overhaul, focusing on legibility for new users and installation instructions
Fixed:
Version requirements on
lmfit
are now correct after Nick addedSplitLorentzian
xarray compatible models
1.0.2 (2019-07-08)
New:
Moved to CI/CD on Azure Pipelines (https://dev.azure.com/lanzara-group/PyARPES)
Tests available for data loading and some limited analysis routines
Changed:
Lanzara group Main Chamber data loading code will set a photon energy of 5.93 eV on all datasets by default
Fixed:
arpes.analysis.derivative.dn_along_axis
now properly accepts a smoothing function (smooth_fn
) with the signaturexr.DataArray -> xr.DataArray
.
1.0.0 (June 2019)
New:
First official release. API should be largely in place around most of PyARPES.