nexlspectrum.jl

EDS spectrum analysis tools within the NeXL toolset

https://github.com/usnistgov/nexlspectrum.jl

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
Last synced: 10 months ago · JSON representation ·

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
Created almost 7 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

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.jl to 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

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.

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 Email 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

  • Versions: 22
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Dependent packages count: 23.0%
Forks count: 24.5%
Average: 26.5%
Stargazers count: 48.5%
Last synced: 11 months ago