NeXLCore
Core algorithms and data for X-ray microanalysis calculations
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
3 of 24 committers (12.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.3%) to scientific vocabulary
Keywords from Contributors
Repository
Core algorithms and data for X-ray microanalysis calculations
Basic Info
Statistics
- Stars: 10
- Watchers: 4
- Forks: 8
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
Core
Core X-ray Microanalysis Data and Algorithms
| Documentation |
|:----------------------------------------:|
| |
Installation
Install NeXLCore using the Julia package manager
> ]add NeXLCore
or
> using Pkg
> Pkg.add("NeXLCore")
While you're at it, you might as well also add DataFrames and Gadfly, two libraries that you'll probably also want...
> ]add DataFrames, Gadfly
or
> Pkg.add(["DataFrames", "Gadfly"])
NeXLCore is part of the NeXL collection of Julia language packages.
Released
- NeXLUncertainties - Basic data structures and algorithms for single uncertain values and collects of related uncertain values
- NeXLCore - Core data and algorithms for X-ray microanalysis (elements, shells, transitions and their properties)
- NeXLSpectrum - Data structures and algorithms for EDS spectrum and hyperspectral data (reading/writing/fitting/etc.)
- NeXLMatrixCorrection - Data structures and algorithms for matrix correction of electron excited X-ray k-ratios
Under rapid development but largely functional (pre-α)
- NeXLDatabase - A database for handling NeXL library datatypes
- NeXLParticle - Data structures and algorithms for dealing with particle data (particularly ASPEX Zeppelin datasets)
Standards in NeXL
To reduce ambiguity, the following X-ray microanalysis-standard units are used by all packages even when there are more common or accessible units for a quantity. Thus stage position is in cm (not mm), coating thicknesses are in cm (not nm), etc. This means you never need to consult the documentation to know what units a function expects.
- Mass is measured in grams (g)
- Length is measured in centimeters (cm)
- Time is measured in seconds (s)
- Energy is measured in electron-volts (eV)
- Pressure is measured in Pascal (p)
- Mixed units are expressed in combinations of these units (MACS are in cm2/g)
NeXLCore implements a @n_str macro to parse Element, SubShell and Transition objects at compile time. The n"???" notation is used throughout NeXL.
julia
n"Fe" # constructs an Element representing iron
n"L3" # constructs a SubShell object representing an L3 shell (not element specific)
# Note: The ambiguiuty between potassium K and shell K is handled by calling the shell n"K1"
n"Fe L3" # constructs an AtomicSubShell representing the iron L3 sub-shell.
n"L3-M5" # constructs a Transition representing the L3-M5 transition (not element specific)
n"Fe L3-M5" # Constructs a CharXRay representing the L3-M5 transition in iron.
To access the characteristic energies associated with these items, use the function energy(...) which returns eV.
julia
energy(n"Fe K") # 7112.0
energy(n"Fe K-L3") # 6403.9
NeXL uses https://github.com/JuliaPhysics/PeriodicTable.jl for elemental data.
NeXLCore also implements many generally useful X-ray and electron physics algorithms including Bremstrahlung generation, Bethe energy loss, mean-ionization potential, elastic scattering cross-sections and others.
NeXL implements spectrum file support in the NeXLSpectrum package including spectrum file input/output. Various different X-ray microanalysis related file types are recognise by a combination of file extension and file content and can be read using code like
julia
using FileIO
using NeXLSpectrum
spec = loadspectrum("~/home/data/spectrum.msa") # To read an EMSA spectrum
NeXL uses Gadfly (https://github.com/GiovineItalia/Gadfly.jl) to plot data items. However, the Gadfly support is not loaded unless/until the user using Gadfly elsewhere in their code. Thus Gadfly support is lightweight and doesn't hinder those who don't want to use it. However, NeXL implements different specializations of the Gadfly.plot(...) method to handle NeXL-related data types.
julia
using Gadfly
plot([ n"K-L3", n"L3-M5" ]) # plots the edge-energies associated with these shells over the range of supported elements
or (when using NeXLSpectrum)
julia
using Gadfly
plot(spec,klms=[n"Fe",n"Si",n"O",n"Al"])# To plot a spectrum with KLM lines.
plot([spec1,spec2,spec3],klms=[n"Fe",n"Si",n"O",n"Al"]) # To plot a list of spectra with KLM lines.
NeXL uses DataFrames to tabulate data. To convert an object or list of objects to a DataFrame use asa(DataFrame,item).
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
GitHub Events
Total
- Issue comment event: 2
- Push event: 3
- Pull request review event: 1
- Pull request event: 2
- Fork event: 3
Last Year
- Issue comment event: 2
- Push event: 3
- Pull request review event: 1
- Pull request event: 2
- Fork event: 3
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 449
- Total Committers: 24
- Avg Commits per committer: 18.708
- Development Distribution Score (DDS): 0.432
Top Committers
| Name | Commits | |
|---|---|---|
| Nicholas W. M. Ritchie | n****e@n****v | 255 |
| Nicholas Ritchie | N****e@u****m | 69 |
| Nicholas W.M. Ritchie | n****e@g****m | 51 |
| Stefan Karpinski | s****n@k****g | 12 |
| Jiahao Chen | j****o@m****u | 10 |
| Tony Kelman | t****y@k****t | 8 |
| Iain Dunning | i****g@g****m | 7 |
| Viral B. Shah | v****l@m****g | 6 |
| Alex Arslan | a****n@c****t | 5 |
| Avik Sengupta | a****k@s****t | 4 |
| Elliot Saba | s****t@g****m | 4 |
| Valentin Churavy | v****y@g****m | 3 |
| Kristoffer Carlsson | k****n@c****e | 2 |
| Milan Bouchet-Valat | n****n@c****r | 2 |
| Mus M | m****m@o****m | 2 |
| José Bayoán Santiago Calderón | n****r@g****m | 1 |
| Kristoffer Carlsson | k****9@g****m | 1 |
| Sean Garborg | s****g@g****m | 1 |
| Simon Byrne | s****e@g****m | 1 |
| Jake Bolewski | j****i@g****m | 1 |
| Yeesian Ng | n****n@g****m | 1 |
| Nathan Daly | N****y@g****m | 1 |
| Valentin Churavy | v****y@u****m | 1 |
| Sam Morrison | m****5@m****a | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 2 days
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 2.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 2 days
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 2.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- tam724 (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 1 total
- Total dependent packages: 3
- Total dependent repositories: 0
- Total versions: 27
juliahub.com: NeXLCore
Core algorithms and data for X-ray microanalysis calculations
- Documentation: https://docs.juliahub.com/General/NeXLCore/stable/
- License: Unlicense
-
Latest release: 0.3.16
published almost 2 years ago