sedimentsourceanalysis.jl
Science Score: 44.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
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: njericha
- Language: Julia
- Default Branch: main
- Homepage: https://njericha.github.io/SedimentSourceAnalysis.jl/dev/
- Size: 14.9 MB
Statistics
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 1
- Releases: 3
Metadata Files
Readme.md
Sediment Source Analysis
Summary of Features
- Import grain data from Excel files
- Perform kernel density estimation on grain data by sinks and features
- Decompose sink distributions into weighted combination of sources
- Label grains based on learned sources
- Plot kernel densities, sink, and source distributions
Repo organization
Our main numerical experiment can be found in knownsources median bandwidth.jl under the examples folder.
The data used in our main numerical experiment knownsources median bandwidth.jl can be found here under data/sundell2022. The exact grains selected and number of grains from each sink can be found in data/20sinks from 3Sources from Sundell et al 2022.xlsx.
The data handling and backend functions can be found in src/SedimentTools.
Our main decomposition algorithm can be found in the more general repo MatrixTensorFactor.jl.
How to run the code
In Browser
- Go to https://github.com/njericha/SedimentSourceAnalysis.jl
- Click "<> Code" and press "+" to "Create a codespace on main". It make take a few moments to set up.
- Open the command palett with
Ctrl+Shift+P(Windows) orCmd+Shift+P(Mac) - Enter
>Julia: Start REPL - In the REPL, resolve any dependency issues with
pkg> resolveandpkg> instantiate(usejulia> ]to get to the package manager). It may take a few minutes to download dependencies.
Run one of the example files by opening the file and pressing the triangular "run" button, or >Julia: Execute active File in REPL.
OR
On your own device
- Clone the repo at https://github.com/njericha/SedimentSourceAnalysis.jl
- Navigate to the root of the repository in a terminal and run
julia - Activate the project with
pkg> activate .(usejulia> ]to get to the package manager) - resolve any dependency issues with
pkg> resolve
Importing the package
Type julia> using SedimentSourceAnalysis load the package, or using SedimentSourceAnalysis.SedimentTools to load the submodule directly.
Examples
See the examples folder for the following files.
knownsources median bandwidth.jl: Uses data from Sundel et al where we know the sources of each Grain. Use this to see how well the factorization performs with realistic data.
knownsources.jl: Similar to knownsources median bandwidth.jl, but uses the bandwidth from the first sink.
measurementcorrelation.jl: Checks the validity of representing the grain distributions as a product distribution. In particular, we would like the measurements to be independent.
unknownsources.jl: Uses data from Lee et al where we don't have a ground truth. Showcases how the method would be used in practice.
randomtensor.jl: Factorizes a random 50x50x50 tensor. See how the factorization performs in theory when a perfect factorization exists.
Submodules
The main submodule of this repo is SedimentTools. The submodule MTF has been moved to a separate repo MatrixTensorFactor.
SedimentTools
Holds various types at the [Grain], and [Sink] level, importing ([read_raw_data]) and processing data ([make_densities]) functions, and additional methods of some Plots.jl functions for visualization with these custom types.
MatrixTensorFactor
Defines the main factorization function nnmtf and related mathematical functions. See the repo here MatrixTensorFactor.jl.
Citation
If you find this repo helpful, please cite the associated paper:
@misc{graham_tracing_2024,
title = {Tracing {Sedimentary} {Origins} in {Multivariate} {Geochronology} via {Constrained} {Tensor} {Factorization}},
url = {https://friedlander.io/publications/2024-sediment-source-analysis/},
author = {Graham, Naomi and Richardson, Nicholas and Friedlander, Michael P. and Saylor, Joel},
month = may,
year = {2024},
}
or feel free to reach out to us with an email to njericha at math.ubc.ca.
Owner
- Name: Nicholas Richardson
- Login: njericha
- Kind: user
- Location: Vancouver, BC
- Website: njerichardson.myportfolio.com
- Repositories: 1
- Profile: https://github.com/njericha
Applied Mathematics PhD Student at the University of British Columbia
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: SedimentSourceAnalysis.jl
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Nicholas
family-names: Richardson
email: njericha@math.ubc.ca
affiliation: University of British Columbia
orcid: 'https://orcid.org/0009-0006-9382-7227'
- given-names: Naomi
family-names: Graham
affiliation: University of British Columbia
email: naomigra@cs.ubc.ca
- given-names: Michael P.
family-names: Friedlander
email: mpf@cs.ubc.ca
affiliation: University of British Columbia
orcid: 'https://orcid.org/0000-0003-0222-5222'
- orcid: 'https://orcid.org/0000-0001-7746-862X'
given-names: Joel
family-names: Saylor
email: jsaylor@eoas.ubc.ca
affiliation: University of British Columbia
repository-code: 'https://github.com/njericha/SedimentSourceAnalysis.jl'
abstract: >-
Decomposes sediment data into unknown sources and
proportions with kernel density estimation and
matrix-tensor factorization.
keywords:
- tensor
- factorization
- decomposition
- NMF
- sediment
GitHub Events
Total
- Release event: 3
- Push event: 7
- Create event: 4
Last Year
- Release event: 3
- Push event: 7
- Create event: 4
Dependencies
- actions/checkout v2 composite
- julia-actions/setup-julia v1 composite