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

Repository

Basic Info
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 3
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Citation

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

  1. Go to https://github.com/njericha/SedimentSourceAnalysis.jl
  2. Click "<> Code" and press "+" to "Create a codespace on main". It make take a few moments to set up.
  3. Open the command palett with Ctrl+Shift+P (Windows) or Cmd+Shift+P (Mac)
  4. Enter >Julia: Start REPL
  5. In the REPL, resolve any dependency issues with pkg> resolve and pkg> instantiate (use julia> ] 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

  1. Clone the repo at https://github.com/njericha/SedimentSourceAnalysis.jl
  2. Navigate to the root of the repository in a terminal and run julia
  3. Activate the project with pkg> activate . (use julia> ] to get to the package manager)
  4. 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

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

.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite