Scikit-beam Core¶
The vision of scikit-beam
is to provide simple
functions useful for the X-ray, Neutron and Electron communities. The
primary goal of the scikit-beam project is to provide a centralized
repository for algorithms that are used in these three scientific
domains. scikit-beam
functions accept and return standard Python
and numpy datatypes, so they integrate well with other packages from
the scientific Python community. Further, the modular design of
scikit-beam allows its components to be easily reused in ways not
envisioned by the authors.
Scikit-beam is being developed at the National Synchrotron Light Source II at Brookhaven National Lab and also in collaboration with scientists at the LCLS-II and APS.
Supported techniques¶
Differential Phase Contrast (
dpc
)CDI (
cdi
)MultiTau correlation (
correlation
)X-Ray Speckle Visibility Spectroscopy (XSVS) (
speckle
)X-ray Fluorescence (
fluorescence
)Fast histograms
Other utilities¶
Basic constants (
constants
)Logical convenience functions (
arithmetic
)Utilities to estimating the center of a ring pattern and the sample-to-detector distance of a powder pattern (
calibration
)Peak extraction (
feature
)Mask pixels based on a threshold; as a statistical outlier within a bin; for proximity to canvas edge (margin). (
mask
)Compute reciprocol space coordinates of pixels. (
recip
)Draw and manipulate ROI mask; draw kymograph; compute statistics on ROIs. (
roi
)Misc. utilities (
utils
)A thin wrapper around
scipy.stats.binned_statistic
(stats
)
Installation¶
Reporting Issues¶
If you have found a bug in scikit-beam please report it. The preferred way is to create a new issue on the scikit-beam GitHub issue page; that requires creating a free account on GitHub if you do not have one.
Please include an example that demonstrates the issue that will allow the developers to reproduce and fix the problem. You may be asked to also provide information about your operating system and a full Python stack trace; the Skbeam developers will walk you through obtaining a stack trace if it is necessary.
Contributing¶
The scikit-beam project is made both by and for its users, so we highly encourage contributions at all levels. This spans the gamut from sending an email mentioning a typo in the documentation or requesting a new feature all the way to developing a major new package.
The full range of ways to be part of the Skbeam project are described at Contribute to scikit-beam. To get started contributing code or documentation (no git or GitHub experience necessary):
Developer Documentation¶
The developer documentation contains instructions for how to contribute to Skbeam or affiliated packages, as well as coding, documentation, and testing guidelines. For the guiding vision of this process and the project as a whole, see Vision for a Common Python Package for x-ray, electron and neutrons.
- Project organization
- How to make a code contribution
- Coding Guidelines
- Writing Documentation
- Testing Guidelines
- Writing Command-Line Scripts
- Building Scikit-beam and its Subpackages
- C or Cython Extensions
- Release Procedures
- Workflow for Maintainers
- How to create and maintain an Skbeam affiliated package
- Vision for a Common Python Package for x-ray, electron and neutrons
- Development Guide
- API Changes
- Supported versions of Python
- Python warnings system