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
How setup the environment
Prefered Method
- Run
julia
- Add the package with
pkg> add https://github.com/njericha/Sediment-Source-Analysis.jl.git
(use julia> ]
to get to the package manager)
- Resolve dependency issues with
pkg> resolve
and check it works withpkg> precompile
(if you have an error with dependencies not downloading, trypkg> instantiate
) - Import with
using SedimentAnalysis
OR
In Browser
- Go to https://github.com/njericha/Sediment-Source-Analysis.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> resolve
andpkg> 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/Sediment-Source-Analysis.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 SedimentAnalysis
to load all submodules (currently only SedimentTools
), or if only one of the modules is desired, type using SedimentAnalysis.XXX
.
Examples
knownsources.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. 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
: Factorizes a random 50x50x50 tensor. See how the factorization performs in theory when a perfect factorization exists.
Submodules
The main submodule is SedimentTools. SedimentAnalysis also builds off of MatrixTensorFactor.jl.
MatrixTensorFactor
Defines the main factorization function and related mathematical functions. See the full documentation here Matrix Tensor Factorization.
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.
Index
SedimentAnalysis.SedimentTools
SedimentAnalysis.SedimentTools.DensityTensor
SedimentAnalysis.SedimentTools.Grain
SedimentAnalysis.SedimentTools.Rock
SedimentAnalysis.SedimentTools.Sink
SedimentAnalysis.SedimentTools.Source
Base.getindex
Base.names
MatrixTensorFactor.make_densities
MatrixTensorFactor.make_densities2d
Plots.heatmap
SedimentAnalysis.SedimentTools.array
SedimentAnalysis.SedimentTools.confidence_score
SedimentAnalysis.SedimentTools.eachdensity
SedimentAnalysis.SedimentTools.eachmeasurement
SedimentAnalysis.SedimentTools.eachsink
SedimentAnalysis.SedimentTools.eachsource
SedimentAnalysis.SedimentTools.estimate_which_2d_source
SedimentAnalysis.SedimentTools.estimate_which_nd_source
SedimentAnalysis.SedimentTools.estimate_which_source
SedimentAnalysis.SedimentTools.getdomain
SedimentAnalysis.SedimentTools.getdomains
SedimentAnalysis.SedimentTools.getmeasurements
SedimentAnalysis.SedimentTools.getsink
SedimentAnalysis.SedimentTools.getsource
SedimentAnalysis.SedimentTools.getsourcename
SedimentAnalysis.SedimentTools.getsourcenames
SedimentAnalysis.SedimentTools.getstepsizes
SedimentAnalysis.SedimentTools.label_accuracy
SedimentAnalysis.SedimentTools.match_sources!
SedimentAnalysis.SedimentTools.measurement_heatmaps
SedimentAnalysis.SedimentTools.namedarray
SedimentAnalysis.SedimentTools.normalize_density_sums
SedimentAnalysis.SedimentTools.normalize_density_sums!
SedimentAnalysis.SedimentTools.plot_convergence
SedimentAnalysis.SedimentTools.plot_densities
SedimentAnalysis.SedimentTools.plot_source_index
SedimentAnalysis.SedimentTools.read_raw_data
SedimentAnalysis.SedimentTools.setsourcename!
SedimentAnalysis.SedimentTools.source_heatmaps