eemkit 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eemkit-0.1.0/.gitignore +13 -0
- eemkit-0.1.0/CHANGELOG.md +35 -0
- eemkit-0.1.0/CITATION.cff +20 -0
- eemkit-0.1.0/LICENSE +674 -0
- eemkit-0.1.0/PKG-INFO +195 -0
- eemkit-0.1.0/README.md +151 -0
- eemkit-0.1.0/docs/absorbance.md +61 -0
- eemkit-0.1.0/docs/api.md +96 -0
- eemkit-0.1.0/docs/app-guide.md +378 -0
- eemkit-0.1.0/docs/campaigns.md +70 -0
- eemkit-0.1.0/docs/corrections.md +55 -0
- eemkit-0.1.0/docs/data_model.md +52 -0
- eemkit-0.1.0/docs/gui.md +93 -0
- eemkit-0.1.0/docs/img/app/1_project.png +0 -0
- eemkit-0.1.0/docs/img/app/2_corrections.png +0 -0
- eemkit-0.1.0/docs/img/app/3_indices.png +0 -0
- eemkit-0.1.0/docs/img/app/4a_parafac_ranks.png +0 -0
- eemkit-0.1.0/docs/img/app/4b_parafac_outliers.png +0 -0
- eemkit-0.1.0/docs/img/app/4c_parafac_final.png +0 -0
- eemkit-0.1.0/docs/img/app/4d_parafac_by_model.png +0 -0
- eemkit-0.1.0/docs/img/app/5a_rivers_time.png +0 -0
- eemkit-0.1.0/docs/img/app/5b_rivers_composition.png +0 -0
- eemkit-0.1.0/docs/img/app/5c_rivers_tests.png +0 -0
- eemkit-0.1.0/docs/img/app/6_export.png +0 -0
- eemkit-0.1.0/docs/index.md +80 -0
- eemkit-0.1.0/docs/indices.md +29 -0
- eemkit-0.1.0/docs/parafac.md +44 -0
- eemkit-0.1.0/docs/plotting.md +37 -0
- eemkit-0.1.0/docs/quickstart.md +114 -0
- eemkit-0.1.0/pyproject.toml +72 -0
- eemkit-0.1.0/src/eemkit/__init__.py +51 -0
- eemkit-0.1.0/src/eemkit/absorbance.py +216 -0
- eemkit-0.1.0/src/eemkit/campaigns.py +276 -0
- eemkit-0.1.0/src/eemkit/core/__init__.py +1 -0
- eemkit-0.1.0/src/eemkit/core/dataset.py +91 -0
- eemkit-0.1.0/src/eemkit/core/grid.py +100 -0
- eemkit-0.1.0/src/eemkit/core/history.py +78 -0
- eemkit-0.1.0/src/eemkit/corrections/__init__.py +44 -0
- eemkit-0.1.0/src/eemkit/corrections/_common.py +58 -0
- eemkit-0.1.0/src/eemkit/corrections/blank.py +66 -0
- eemkit-0.1.0/src/eemkit/corrections/crop.py +33 -0
- eemkit-0.1.0/src/eemkit/corrections/inner_filter.py +123 -0
- eemkit-0.1.0/src/eemkit/corrections/raman.py +107 -0
- eemkit-0.1.0/src/eemkit/corrections/scatter.py +191 -0
- eemkit-0.1.0/src/eemkit/corrections/spectral.py +117 -0
- eemkit-0.1.0/src/eemkit/errors.py +37 -0
- eemkit-0.1.0/src/eemkit/gui/__init__.py +30 -0
- eemkit-0.1.0/src/eemkit/gui/__main__.py +5 -0
- eemkit-0.1.0/src/eemkit/gui/campaigns_tab.py +275 -0
- eemkit-0.1.0/src/eemkit/gui/common.py +395 -0
- eemkit-0.1.0/src/eemkit/gui/corrections_tab.py +334 -0
- eemkit-0.1.0/src/eemkit/gui/export_tab.py +137 -0
- eemkit-0.1.0/src/eemkit/gui/indices_tab.py +228 -0
- eemkit-0.1.0/src/eemkit/gui/main_window.py +258 -0
- eemkit-0.1.0/src/eemkit/gui/parafac_tab.py +399 -0
- eemkit-0.1.0/src/eemkit/gui/project_tab.py +332 -0
- eemkit-0.1.0/src/eemkit/gui/state.py +149 -0
- eemkit-0.1.0/src/eemkit/gui/theme.py +125 -0
- eemkit-0.1.0/src/eemkit/indices.py +256 -0
- eemkit-0.1.0/src/eemkit/io/__init__.py +1 -0
- eemkit-0.1.0/src/eemkit/io/_cary_csv.py +174 -0
- eemkit-0.1.0/src/eemkit/io/cary60.py +120 -0
- eemkit-0.1.0/src/eemkit/io/cary_eclipse.py +140 -0
- eemkit-0.1.0/src/eemkit/io/discover.py +176 -0
- eemkit-0.1.0/src/eemkit/io/loader.py +158 -0
- eemkit-0.1.0/src/eemkit/io/pairing.py +115 -0
- eemkit-0.1.0/src/eemkit/parafac/__init__.py +28 -0
- eemkit-0.1.0/src/eemkit/parafac/_cp.py +125 -0
- eemkit-0.1.0/src/eemkit/parafac/diagnostics.py +56 -0
- eemkit-0.1.0/src/eemkit/parafac/export.py +54 -0
- eemkit-0.1.0/src/eemkit/parafac/model.py +191 -0
- eemkit-0.1.0/src/eemkit/parafac/validation.py +111 -0
- eemkit-0.1.0/src/eemkit/pipeline.py +560 -0
- eemkit-0.1.0/src/eemkit/plot.py +437 -0
- eemkit-0.1.0/tests/conftest.py +142 -0
- eemkit-0.1.0/tests/test_absorbance.py +95 -0
- eemkit-0.1.0/tests/test_campaigns.py +101 -0
- eemkit-0.1.0/tests/test_cary60.py +56 -0
- eemkit-0.1.0/tests/test_cary_eclipse.py +112 -0
- eemkit-0.1.0/tests/test_corrections.py +284 -0
- eemkit-0.1.0/tests/test_dataset.py +99 -0
- eemkit-0.1.0/tests/test_grid.py +56 -0
- eemkit-0.1.0/tests/test_gui.py +222 -0
- eemkit-0.1.0/tests/test_indices.py +112 -0
- eemkit-0.1.0/tests/test_pairing.py +61 -0
- eemkit-0.1.0/tests/test_parafac.py +144 -0
- eemkit-0.1.0/tests/test_pipeline.py +224 -0
- eemkit-0.1.0/tests/test_plot.py +115 -0
- eemkit-0.1.0/tests/test_real_data.py +52 -0
eemkit-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes are listed here. Versions follow
|
|
4
|
+
[semantic versioning](https://semver.org/).
|
|
5
|
+
|
|
6
|
+
## 0.1.0 (2026-11-05)
|
|
7
|
+
|
|
8
|
+
First public release.
|
|
9
|
+
|
|
10
|
+
* Readers for Agilent Cary Eclipse 3-D EEMs and Cary 60 absorbance CSV files;
|
|
11
|
+
folder scan, pairing table draft (always excluded until checked) and
|
|
12
|
+
multi-sample `xarray` dataset on common wavelength grids.
|
|
13
|
+
* Corrections in an enforced order: instrument spectral correction,
|
|
14
|
+
absorbance blank, inner filter, blank subtraction, Raman units, scatter
|
|
15
|
+
removal with optional interpolation, crop. Every step is recorded in the
|
|
16
|
+
processing history.
|
|
17
|
+
* Fluorescence indices (FI, HIX, BIX) and Coble peaks.
|
|
18
|
+
* CDOM metrics from the absorbance spectra (`eemkit.absorbance`): a254, a350,
|
|
19
|
+
S275–295, S350–400, SR, E2:E3 and SUVA254 (with a DOC column), after a
|
|
20
|
+
680–700 nm baseline correction; low-signal values are left empty with the
|
|
21
|
+
reason.
|
|
22
|
+
* Non-negative PARAFAC with missing values, random starts, core consistency,
|
|
23
|
+
leverage, split-half validation and OpenFluor export.
|
|
24
|
+
* Comparison of campaigns, sites and rivers (`eemkit.campaigns`): replicate
|
|
25
|
+
means per site and time, design and confounding warnings, Kruskal–Wallis
|
|
26
|
+
and Dunn–Holm tests within each group, Spearman correlations with site
|
|
27
|
+
position and with covariates, PARAFAC composition; optional site and
|
|
28
|
+
covariate tables.
|
|
29
|
+
* Publication figures (`eemkit.plot`), including a Cary Eclipse colour scale.
|
|
30
|
+
* `eemkit.pipeline`: the whole chain driven by one settings file.
|
|
31
|
+
* Desktop application (`eemkit-gui`, PySide6): a sidebar of steps with their
|
|
32
|
+
status, light and dark themes, and a "Rivers and dates" page; a
|
|
33
|
+
PyInstaller recipe for a stand-alone Windows build, which ships the
|
|
34
|
+
licence texts of eemkit, Qt and every bundled package.
|
|
35
|
+
* Benchmarked against staRdom 1.1.32 on 205 river-water samples.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: "If you use eemkit, please cite it as below."
|
|
3
|
+
title: "eemkit: EEM processing and PARAFAC modelling of dissolved organic matter fluorescence"
|
|
4
|
+
type: software
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: Cirrone
|
|
7
|
+
given-names: Riccardo Gaetano
|
|
8
|
+
affiliation: University of Siena
|
|
9
|
+
version: 0.1.0
|
|
10
|
+
date-released: "2026-11-05"
|
|
11
|
+
license: GPL-3.0-or-later
|
|
12
|
+
repository-code: "https://github.com/LowCostSensor/eemkit"
|
|
13
|
+
url: "https://lowcostsensor.github.io/eemkit/"
|
|
14
|
+
keywords:
|
|
15
|
+
- fluorescence
|
|
16
|
+
- excitation-emission matrix
|
|
17
|
+
- PARAFAC
|
|
18
|
+
- dissolved organic matter
|
|
19
|
+
- fDOM
|
|
20
|
+
- CDOM
|