Compressed Sensing library for 1D Spectroscopic Profiling Data
Project description
TODO: in GUI add more Transforms, DCT defect
cs1
Compressed Sensing library for 1D Spectroscopic Profiling Data
package | module | sub-module | description |
cs1 | |||
cs1.cs | basic functions for CS sensing, recovery, hyper-parameter grid-search, etc. | ||
cs1.basis | cs1.basis.common | commonly used non-adaptive CS transform bases[1] | |
cs1.basis.adaptive | adaptive CS transform bases, e.g., LDA (linear discriminant analysis)-based, EBP (eigenvector-based projection)[2] | ||
cs1.metrics | CS-related metrics, e.g., mutual coherence, sparsity, MSE, KLD | ||
cs1.security | cs1.security.tvsm | time-variant sensing matrix mechanism | |
cs1.domain | cs1.domain.audio | contains functions for audio and other one-dimensional signal processing. e.g., wave file I/O, lossy compression, ECG simulator | |
cs1.domain.image | contains functions for image processing. e.g., image CS, lossy compression | ||
cs1.gui | provides a web-based playground for researchers. users can try different CS bases and sampling ratios |
Publications:
[1] Adaptive compressed sensing of Raman spectroscopic profiling data for discriminative tasks [J]. Talanta, 2020, doi: 10.1016/j.talanta.2019.120681
[2] Task-adaptive eigenvector-based projection (EBP) transform for compressed sensing: A case study of spectroscopic profiling sensor [J]. Analytical Science Advances. Chemistry Europe, 2021, doi: 10.1002/ansa.202100018
Installation
pip install cs1
A simple startup
import cs1
# Generate common non-adaptive bases and save to a local pickle file.
# The generation process can be very slow, so save it for future use.
cs1.basis.common.Generate_PSIs(n, savepath = 'PSIs_' + str(n) + '.pkl') # n is the data/signal dimensionality
# load back bases
file = open('PSIs_' + str(n) + '.pkl','rb')
PSIs = pickle.load(file)
file.close()
# sparsity analysis
cs1.metrics.analyze_sparsity(x, PSIs)
# compare different bases and sampling ratio on a single sample
rmses = cs1.cs.GridSearch_Sensing_n_Recovery(x, PSIs, solver = 'LASSO') # returns relative MSEs
low-level cs functions
from cs1.basis.common import *
dftmtx()
dctmtx()
hwtmtx()
from cs1.cs import *
sensing()
recovery()
from cs1.metrics import *
mutual_coherence()
...
singal processing functions for audio / image domains
from cs1.domain.audio import *
simulate_ECG()
dct_lossy_signal_compression()
dft_lossy_signal_compression()
from cs1.domain.image import *
img_dct()
img_dft()
dct_lossy_image_compression()
dft_lossy_image_compression()
adaptive cs bases
from cs1.basis.adaptive import *
PSI, _ = EBP(X) # X is a m-by-n training dataset. PSI is the EBP basis
PSI, _, _ = LDA(X, y, display = True) # X and y are training dataset. PSI is the LDA basis.
run as a local web server
python -m cs1.gui.run
You can then access the web GUI at the 5006 port:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cs1-0.1.6.tar.gz
.
File metadata
- Download URL: cs1-0.1.6.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b865d7a0dac6e4bb193bdd0c7e9be50a0436a5e8dd042cb6906abbb69efc7d01 |
|
MD5 | 72f04eb8716aa800974313fcda7896b5 |
|
BLAKE2b-256 | 5450a2a73fbc74d1401a018b00ca99cd0d42b4c697fca0add75dac9c0aa8246c |
File details
Details for the file cs1-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: cs1-0.1.6-py3-none-any.whl
- Upload date:
- Size: 2.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4de700a6629df139fb7faf2403409c36a09272b4a8118a8e699898dcf7cae120 |
|
MD5 | d757ec3b7737c2fcbf81b25f864e99de |
|
BLAKE2b-256 | 26015177c0f87813fffce0060a39cd31b09e3dc44605bc980a52d2a1346b6e0d |