nexlspectrum.jl
EDS spectrum analysis tools within the NeXL toolset
Science Score: 41.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 3 committers (33.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.7%) to scientific vocabulary
Repository
EDS spectrum analysis tools within the NeXL toolset
Basic Info
- Host: GitHub
- Owner: usnistgov
- License: unlicense
- Language: Jupyter Notebook
- Default Branch: master
- Size: 8.41 MB
Statistics
- Stars: 8
- Watchers: 4
- Forks: 6
- Open Issues: 1
- Releases: 2
Metadata Files
README.md
Spectrum
Microanalytical X-ray Spectrum Analysis
| Documentation |
|:----------------------------------------:|
| |
Installation
Install NeXLSpectrum using the Julia package manager
julia
julia> ]add NeXLSpectrum
or
julia
julia> using Pkg
julia> Pkg.add("NeXLSpectrum")
Notes
NeXLSpectrum is a library of tools for manipulating EDS spectrum within the
NeXL framework. NeXLSpectrum depends on NeXLUncertainties, NeXLCore and
NeXLMatrixCorrection and loading NeXLSpectrum will also make these
libraries available.
In addition, NeXLSpectrum makes extensive use of the third-party libraries
DataFrames for data tables and Gadfly for plotting. You will also want to
makes these libraries available.
julia
julia> ]add DataFrames, Gadfly
Primarily, NeXLSpectrum
* Implements the Spectrum type to represent individual EDS spectra
* Reads Spectrum objects from disk files (or other streams) in EMSA, Bruker and ASPEX formats
* Writes Spectrum objects to a disk file in EMSA format
* Provides utilities and other low level tools to interogate and manipulate Spectrum objects
* Implements the HyperSpectrum type to represent hyper-spectra (linescan, image, cube, ...)
* The individual pixels in a hyper-spectrum are visible as Spectrum objects
* Reads HyperSpectrum objects from LISPIX-style RPL/RAW files
* Writes HyperSpectrum objects to RPL/RAW files
- Provides data types to define detector properties
- Extends
Gadfly.jlto plot spectra and spectrum-related items - Provides algorithms to perform Schamber-style filter-fitting of spectra
- Implements a basic weighted LLSQ fit algorithm
- Fits characteristic, escape, Compton and other features
- Implements a 'vector-based' quick-quant algorithm for processing hyper-spectra
- Implements a basic weighted LLSQ fit algorithm
NeXL and PackageCompiler
Because Julia uses a just-in-time compiler that recompiles libraries each time Julia
is restarted and the NeXL libraries are quite large, the first time you perform an
operation it can be quite slow. Subsequent calls are much faster. Fortunately, there
is a way around this. The PackageCompiler library can be used to build a version of
Julia in which NeXLSpectrum and the libraries on which it depends are build into the
language much like the base libraries. I recommend that you use the PackageCompiler
to rebuild Julia each time you update the packages (using julia> ]up) or upgrade
to a new version of Julia.
In Windows, this operation looks like:
julia
julia> using NeXLSpectrum, DataFrames, Gadfly # Load the basic libraries
julia> using PackageCompiler
julia> PackageCompiler.create_sysimage(
[ "Gadfly", "DataFrames", "BoteSalvatICX", "NeXLUncertainties", "NeXLCore", "NeXLMatrixCorrection", "NeXLSpectrum" ];
sysimage_path=joinpath(homedir(), ".julia", "NeXLSysimage.dll"),
precompile_execution_file=joinpath(pkgdir(NeXLSpectrum),"scripts", "precompile.jl"))
This operation may take tens-of-minutes to complete but will be worth the effort in terms of saved time
later on.
In other operating systems, you will want to change the extension on the filename in the sysimage_path.
This command creates a sysimage containing the NeXL libraries along with DataFrames and Gadfly. You will now
have to tell Julia to use this sysimage. I usually create multiple links to Julia that both use the default sysimage
and the NeXLSysimage. The sysimage is selected using the -J command line option. In Windows, this looks like:
```
To use the sysimage, start Julia with the -J option
> julia -J"C:\Users\username.julia\NeXLSysimage.dll"
```
You can edit the properties of the link used to start Julia to include the -J option. While you are at it,
you might also want to add the -t option to start Julia with multiple threads. For example,
```
To use the sysimage, start Julia with the -J option
> julia -J"C:\Users\username.julia\NeXLSysimage.dll" -t 4
``
will start Julia with thesysimage` and 4 threads. Usually, selecting the number of threads equal to the number of
cores (not HyperThreads) will produce the optimal performance.
Owner
- Name: National Institute of Standards and Technology
- Login: usnistgov
- Kind: organization
- Location: Gaithersburg, Md.
- Website: https://www.nist.gov
- Repositories: 1,117
- Profile: https://github.com/usnistgov
Department of Commerce
Citation (Citation.bib)
@article{ritchie_2022,
title={Reproducible Spectrum and Hyperspectrum Data Analysis Using {NeXL}},
volume={28},
DOI={10.1017/S143192762200023X},
number={2},
journal={Microscopy and Microanalysis},
publisher={Cambridge University Press},
author={Ritchie, Nicholas W. M.},
year={2022},
pages={478–495}
}
GitHub Events
Total
- Watch event: 2
- Fork event: 3
Last Year
- Watch event: 2
- Fork event: 3
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 469
- Total Committers: 3
- Avg Commits per committer: 156.333
- Development Distribution Score (DDS): 0.26
Top Committers
| Name | Commits | |
|---|---|---|
| Nicholas W. M. Ritchie | n****e@n****v | 347 |
| Nicholas W.M. Ritchie | n****e@g****m | 73 |
| Nicholas Ritchie | N****e@u****m | 49 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 1
- Total pull requests: 3
- Average time to close issues: about 1 year
- Average time to close pull requests: about 11 hours
- Total issue authors: 1
- Total pull request authors: 2
- Average comments per issue: 5.0
- Average comments per pull request: 1.67
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sem-geologist (1)
Pull Request Authors
- NicholasWMRitchie (2)
- sem-geologist (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 1
- Total dependent repositories: 0
- Total versions: 22
juliahub.com: NeXLSpectrum
EDS spectrum analysis tools within the NeXL toolset
- Documentation: https://docs.juliahub.com/General/NeXLSpectrum/stable/
- License: Unlicense
-
Latest release: 0.3.12
published almost 2 years ago