orange-spectra 0.1.2__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.
Files changed (28) hide show
  1. orange_spectra-0.1.2/PKG-INFO +81 -0
  2. orange_spectra-0.1.2/README.md +61 -0
  3. orange_spectra-0.1.2/orange_spectra.egg-info/PKG-INFO +81 -0
  4. orange_spectra-0.1.2/orange_spectra.egg-info/SOURCES.txt +26 -0
  5. orange_spectra-0.1.2/orange_spectra.egg-info/dependency_links.txt +1 -0
  6. orange_spectra-0.1.2/orange_spectra.egg-info/entry_points.txt +5 -0
  7. orange_spectra-0.1.2/orange_spectra.egg-info/requires.txt +4 -0
  8. orange_spectra-0.1.2/orange_spectra.egg-info/top_level.txt +1 -0
  9. orange_spectra-0.1.2/orangespectra/__init__.py +3 -0
  10. orange_spectra-0.1.2/orangespectra/core.py +444 -0
  11. orange_spectra-0.1.2/orangespectra/table_io.py +68 -0
  12. orange_spectra-0.1.2/orangespectra/widgets/__init__.py +7 -0
  13. orange_spectra-0.1.2/orangespectra/widgets/_help.py +24 -0
  14. orange_spectra-0.1.2/orangespectra/widgets/icons/aquagram.svg +1 -0
  15. orange_spectra-0.1.2/orangespectra/widgets/icons/category.svg +1 -0
  16. orange_spectra-0.1.2/orangespectra/widgets/icons/importurl.svg +1 -0
  17. orange_spectra-0.1.2/orangespectra/widgets/icons/library.svg +1 -0
  18. orange_spectra-0.1.2/orangespectra/widgets/icons/mixture.svg +1 -0
  19. orange_spectra-0.1.2/orangespectra/widgets/icons/similarity.svg +1 -0
  20. orange_spectra-0.1.2/orangespectra/widgets/owaquagram.py +188 -0
  21. orange_spectra-0.1.2/orangespectra/widgets/owimporturl.py +130 -0
  22. orange_spectra-0.1.2/orangespectra/widgets/owlibrary.py +205 -0
  23. orange_spectra-0.1.2/orangespectra/widgets/owmixture.py +166 -0
  24. orange_spectra-0.1.2/orangespectra/widgets/owsimilarity.py +120 -0
  25. orange_spectra-0.1.2/pyproject.toml +43 -0
  26. orange_spectra-0.1.2/setup.cfg +4 -0
  27. orange_spectra-0.1.2/tests/test_core.py +203 -0
  28. orange_spectra-0.1.2/tests/test_widgets.py +218 -0
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: orange-spectra
3
+ Version: 0.1.2
4
+ Summary: Orange Data Mining widgets for spectroscopy: import spectra from IRUG/SOPRANO URLs, similarity search, spectral libraries (.speclib) and NNLS mixture analysis.
5
+ Author: Tai-Sheng Yeh
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Tai-ShengYeh/spectraview/tree/main/orange-spectra
8
+ Project-URL: Tutorial, https://tai-shengyeh.github.io/spectraview/orange.html
9
+ Keywords: orange3,orange3 add-on,spectroscopy,aquaphotomics,IRUG,SOPRANO,chemometrics,NIR,Raman,FTIR
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Topic :: Scientific/Engineering
14
+ Requires-Python: >=3.9
15
+ Description-Content-Type: text/markdown
16
+ Requires-Dist: numpy>=1.23
17
+ Requires-Dist: scipy>=1.9
18
+ Requires-Dist: matplotlib>=3.6
19
+ Requires-Dist: Orange3>=3.34
20
+
21
+ # orange-spectra — Orange Data Mining 光譜 widgets
22
+
23
+ 五個給 [Orange Data Mining](https://orangedatamining.com/) 的光譜學 widgets,
24
+ 與 [SpectraView](https://github.com/Tai-ShengYeh/spectraview) 共用演算法與
25
+ `.speclib` 光譜庫格式。Five spectroscopy widgets for Orange Data Mining,
26
+ sharing algorithms and the `.speclib` library format with SpectraView.
27
+
28
+ | Widget | 功能 |
29
+ |---|---|
30
+ | **Import Spectrum URL** | 貼上 **IRUG 編號/網址**或 **SOPRANO 網址**(也支援 JCAMP-DX/CSV 直接網址),下載並畫出光譜,輸出成 Orange Table(每列一條光譜、欄名=波數) |
31
+ | **Spectra Similarity** | 兩組光譜間的相似度:correlation / cosine / 光譜角 SAM / Euclidean |
32
+ | **Spectral Library** | 建立參考光譜庫、存成 **`.speclib`(與 SpectraView 互通)**、對庫比對未知譜並輸出排名 |
33
+ | **Mixture Analysis** | 混合光譜的成分分析:非負最小平方(NNLS)解 mixture ≈ Σ cᵢ·refᵢ,回報係數、比例與 R² |
34
+ | **Aquagram** | Aquaphotomics:在水的 12 個特徵吸收帶(WAMACs)取正規化吸光度,畫 12 軸雷達圖(raw / SNV / aquagram 三種正規化) |
35
+
36
+ 輸出的 Table 採 [Orange-Spectroscopy](https://orange-spectroscopy.readthedocs.io/)
37
+ 慣例(欄名=波長/波數、每列一條光譜),可直接接其 Spectra 檢視 widget 或
38
+ PCA / PLS 等化學計量學流程。
39
+
40
+ ## 安裝 Install
41
+
42
+ > ⚠️ **先確認你的 Orange 是哪一種**——桌面版 App 與 pip 版是不同的 Python 環境,裝錯不會出現 widgets。
43
+
44
+ **A. 桌面版 App**(orangedatamining.com 下載的獨立程式):
45
+ `Options ▸ Add-ons… ▸ Add more…` 輸入 **`orange-spectra`**(只吃 PyPI 名稱,**不吃** git 網址)→ 打勾 → OK → 重啟。
46
+ 需先發佈到 PyPI(見 [`PUBLISHING.md`](PUBLISHING.md));發佈前可用 App 的 Python 執行下面 pip 指令裝進 App 環境。
47
+
48
+ **B. pip 版 Orange**(`python -m Orange.canvas` 啟動):
49
+ ```bash
50
+ pip install orange3 PyQt5 PyQtWebEngine # Orange + Qt 綁定(缺 Qt 會開不了)
51
+ pip install "git+https://github.com/Tai-ShengYeh/spectraview.git#subdirectory=orange-spectra"
52
+ python -m Orange.canvas # 用這個開,別點 App 圖示(是另一個環境)
53
+ ```
54
+
55
+ 重新啟動 Orange,工具箱會出現 **Spectra** 分類(5 個 widgets)。
56
+ Restart Orange; a **Spectra** category (5 widgets) appears in the toolbox.
57
+
58
+ 常見錯誤:`ImportError: PyQt5 … not available` = 少裝 Qt,補 `pip install PyQt5 PyQtWebEngine`。
59
+
60
+ ## 快速上手 Quick start
61
+
62
+ 1. 拖出 **Import Spectrum URL**,輸入 `4119`(IRUG 的 PB15 酞菁藍 Raman 譜)→ Fetch。
63
+ 2. 多抓幾條參考譜 → 接 **Spectral Library** 的 *Spectra* 輸入 → *Add input spectra to library* → *Save…* 存成 `.speclib`。
64
+ 3. 未知譜接 Library 的 *Query* 輸入 → *Hits* 輸出就是排名表。
65
+ 4. 混合譜接 **Mixture Analysis** 的 *Mixture*、參考譜(或 Library 的 *Library* 輸出)接 *References* → 得成分比例與 R²。
66
+
67
+ ## 測試 Tests
68
+
69
+ ```bash
70
+ python tests/test_core.py # 純邏輯(免 GUI)
71
+ QT_QPA_PLATFORM=offscreen python tests/test_widgets.py # widget 煙霧測試
72
+ ```
73
+
74
+ ## 注意 Notes
75
+
76
+ - URL 匯入支援 IRUG 詳情頁(jqPlot 內嵌資料)、SOPRANO 頁(Dygraph 內嵌資料)、
77
+ JCAMP-DX(AFFN 純數字格式)與兩欄 CSV/TSV。壓縮的 JCAMP(SQZ/DIF)請改用
78
+ SpectraView 開啟後匯出。
79
+ - 每個 widget 左上角有「ℹ 說明 How to use」盒子與「📖 開啟線上教學」按鈕。
80
+ - 安裝**一次**即可,更新才需重裝(`--upgrade --force-reinstall --no-deps`)+重開 Orange。
81
+ - 教學網頁(含真實數據 Demo):<https://tai-shengyeh.github.io/spectraview/orange.html>([English](https://tai-shengyeh.github.io/spectraview/orange_en.html))
@@ -0,0 +1,61 @@
1
+ # orange-spectra — Orange Data Mining 光譜 widgets
2
+
3
+ 五個給 [Orange Data Mining](https://orangedatamining.com/) 的光譜學 widgets,
4
+ 與 [SpectraView](https://github.com/Tai-ShengYeh/spectraview) 共用演算法與
5
+ `.speclib` 光譜庫格式。Five spectroscopy widgets for Orange Data Mining,
6
+ sharing algorithms and the `.speclib` library format with SpectraView.
7
+
8
+ | Widget | 功能 |
9
+ |---|---|
10
+ | **Import Spectrum URL** | 貼上 **IRUG 編號/網址**或 **SOPRANO 網址**(也支援 JCAMP-DX/CSV 直接網址),下載並畫出光譜,輸出成 Orange Table(每列一條光譜、欄名=波數) |
11
+ | **Spectra Similarity** | 兩組光譜間的相似度:correlation / cosine / 光譜角 SAM / Euclidean |
12
+ | **Spectral Library** | 建立參考光譜庫、存成 **`.speclib`(與 SpectraView 互通)**、對庫比對未知譜並輸出排名 |
13
+ | **Mixture Analysis** | 混合光譜的成分分析:非負最小平方(NNLS)解 mixture ≈ Σ cᵢ·refᵢ,回報係數、比例與 R² |
14
+ | **Aquagram** | Aquaphotomics:在水的 12 個特徵吸收帶(WAMACs)取正規化吸光度,畫 12 軸雷達圖(raw / SNV / aquagram 三種正規化) |
15
+
16
+ 輸出的 Table 採 [Orange-Spectroscopy](https://orange-spectroscopy.readthedocs.io/)
17
+ 慣例(欄名=波長/波數、每列一條光譜),可直接接其 Spectra 檢視 widget 或
18
+ PCA / PLS 等化學計量學流程。
19
+
20
+ ## 安裝 Install
21
+
22
+ > ⚠️ **先確認你的 Orange 是哪一種**——桌面版 App 與 pip 版是不同的 Python 環境,裝錯不會出現 widgets。
23
+
24
+ **A. 桌面版 App**(orangedatamining.com 下載的獨立程式):
25
+ `Options ▸ Add-ons… ▸ Add more…` 輸入 **`orange-spectra`**(只吃 PyPI 名稱,**不吃** git 網址)→ 打勾 → OK → 重啟。
26
+ 需先發佈到 PyPI(見 [`PUBLISHING.md`](PUBLISHING.md));發佈前可用 App 的 Python 執行下面 pip 指令裝進 App 環境。
27
+
28
+ **B. pip 版 Orange**(`python -m Orange.canvas` 啟動):
29
+ ```bash
30
+ pip install orange3 PyQt5 PyQtWebEngine # Orange + Qt 綁定(缺 Qt 會開不了)
31
+ pip install "git+https://github.com/Tai-ShengYeh/spectraview.git#subdirectory=orange-spectra"
32
+ python -m Orange.canvas # 用這個開,別點 App 圖示(是另一個環境)
33
+ ```
34
+
35
+ 重新啟動 Orange,工具箱會出現 **Spectra** 分類(5 個 widgets)。
36
+ Restart Orange; a **Spectra** category (5 widgets) appears in the toolbox.
37
+
38
+ 常見錯誤:`ImportError: PyQt5 … not available` = 少裝 Qt,補 `pip install PyQt5 PyQtWebEngine`。
39
+
40
+ ## 快速上手 Quick start
41
+
42
+ 1. 拖出 **Import Spectrum URL**,輸入 `4119`(IRUG 的 PB15 酞菁藍 Raman 譜)→ Fetch。
43
+ 2. 多抓幾條參考譜 → 接 **Spectral Library** 的 *Spectra* 輸入 → *Add input spectra to library* → *Save…* 存成 `.speclib`。
44
+ 3. 未知譜接 Library 的 *Query* 輸入 → *Hits* 輸出就是排名表。
45
+ 4. 混合譜接 **Mixture Analysis** 的 *Mixture*、參考譜(或 Library 的 *Library* 輸出)接 *References* → 得成分比例與 R²。
46
+
47
+ ## 測試 Tests
48
+
49
+ ```bash
50
+ python tests/test_core.py # 純邏輯(免 GUI)
51
+ QT_QPA_PLATFORM=offscreen python tests/test_widgets.py # widget 煙霧測試
52
+ ```
53
+
54
+ ## 注意 Notes
55
+
56
+ - URL 匯入支援 IRUG 詳情頁(jqPlot 內嵌資料)、SOPRANO 頁(Dygraph 內嵌資料)、
57
+ JCAMP-DX(AFFN 純數字格式)與兩欄 CSV/TSV。壓縮的 JCAMP(SQZ/DIF)請改用
58
+ SpectraView 開啟後匯出。
59
+ - 每個 widget 左上角有「ℹ 說明 How to use」盒子與「📖 開啟線上教學」按鈕。
60
+ - 安裝**一次**即可,更新才需重裝(`--upgrade --force-reinstall --no-deps`)+重開 Orange。
61
+ - 教學網頁(含真實數據 Demo):<https://tai-shengyeh.github.io/spectraview/orange.html>([English](https://tai-shengyeh.github.io/spectraview/orange_en.html))
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: orange-spectra
3
+ Version: 0.1.2
4
+ Summary: Orange Data Mining widgets for spectroscopy: import spectra from IRUG/SOPRANO URLs, similarity search, spectral libraries (.speclib) and NNLS mixture analysis.
5
+ Author: Tai-Sheng Yeh
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/Tai-ShengYeh/spectraview/tree/main/orange-spectra
8
+ Project-URL: Tutorial, https://tai-shengyeh.github.io/spectraview/orange.html
9
+ Keywords: orange3,orange3 add-on,spectroscopy,aquaphotomics,IRUG,SOPRANO,chemometrics,NIR,Raman,FTIR
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Topic :: Scientific/Engineering
14
+ Requires-Python: >=3.9
15
+ Description-Content-Type: text/markdown
16
+ Requires-Dist: numpy>=1.23
17
+ Requires-Dist: scipy>=1.9
18
+ Requires-Dist: matplotlib>=3.6
19
+ Requires-Dist: Orange3>=3.34
20
+
21
+ # orange-spectra — Orange Data Mining 光譜 widgets
22
+
23
+ 五個給 [Orange Data Mining](https://orangedatamining.com/) 的光譜學 widgets,
24
+ 與 [SpectraView](https://github.com/Tai-ShengYeh/spectraview) 共用演算法與
25
+ `.speclib` 光譜庫格式。Five spectroscopy widgets for Orange Data Mining,
26
+ sharing algorithms and the `.speclib` library format with SpectraView.
27
+
28
+ | Widget | 功能 |
29
+ |---|---|
30
+ | **Import Spectrum URL** | 貼上 **IRUG 編號/網址**或 **SOPRANO 網址**(也支援 JCAMP-DX/CSV 直接網址),下載並畫出光譜,輸出成 Orange Table(每列一條光譜、欄名=波數) |
31
+ | **Spectra Similarity** | 兩組光譜間的相似度:correlation / cosine / 光譜角 SAM / Euclidean |
32
+ | **Spectral Library** | 建立參考光譜庫、存成 **`.speclib`(與 SpectraView 互通)**、對庫比對未知譜並輸出排名 |
33
+ | **Mixture Analysis** | 混合光譜的成分分析:非負最小平方(NNLS)解 mixture ≈ Σ cᵢ·refᵢ,回報係數、比例與 R² |
34
+ | **Aquagram** | Aquaphotomics:在水的 12 個特徵吸收帶(WAMACs)取正規化吸光度,畫 12 軸雷達圖(raw / SNV / aquagram 三種正規化) |
35
+
36
+ 輸出的 Table 採 [Orange-Spectroscopy](https://orange-spectroscopy.readthedocs.io/)
37
+ 慣例(欄名=波長/波數、每列一條光譜),可直接接其 Spectra 檢視 widget 或
38
+ PCA / PLS 等化學計量學流程。
39
+
40
+ ## 安裝 Install
41
+
42
+ > ⚠️ **先確認你的 Orange 是哪一種**——桌面版 App 與 pip 版是不同的 Python 環境,裝錯不會出現 widgets。
43
+
44
+ **A. 桌面版 App**(orangedatamining.com 下載的獨立程式):
45
+ `Options ▸ Add-ons… ▸ Add more…` 輸入 **`orange-spectra`**(只吃 PyPI 名稱,**不吃** git 網址)→ 打勾 → OK → 重啟。
46
+ 需先發佈到 PyPI(見 [`PUBLISHING.md`](PUBLISHING.md));發佈前可用 App 的 Python 執行下面 pip 指令裝進 App 環境。
47
+
48
+ **B. pip 版 Orange**(`python -m Orange.canvas` 啟動):
49
+ ```bash
50
+ pip install orange3 PyQt5 PyQtWebEngine # Orange + Qt 綁定(缺 Qt 會開不了)
51
+ pip install "git+https://github.com/Tai-ShengYeh/spectraview.git#subdirectory=orange-spectra"
52
+ python -m Orange.canvas # 用這個開,別點 App 圖示(是另一個環境)
53
+ ```
54
+
55
+ 重新啟動 Orange,工具箱會出現 **Spectra** 分類(5 個 widgets)。
56
+ Restart Orange; a **Spectra** category (5 widgets) appears in the toolbox.
57
+
58
+ 常見錯誤:`ImportError: PyQt5 … not available` = 少裝 Qt,補 `pip install PyQt5 PyQtWebEngine`。
59
+
60
+ ## 快速上手 Quick start
61
+
62
+ 1. 拖出 **Import Spectrum URL**,輸入 `4119`(IRUG 的 PB15 酞菁藍 Raman 譜)→ Fetch。
63
+ 2. 多抓幾條參考譜 → 接 **Spectral Library** 的 *Spectra* 輸入 → *Add input spectra to library* → *Save…* 存成 `.speclib`。
64
+ 3. 未知譜接 Library 的 *Query* 輸入 → *Hits* 輸出就是排名表。
65
+ 4. 混合譜接 **Mixture Analysis** 的 *Mixture*、參考譜(或 Library 的 *Library* 輸出)接 *References* → 得成分比例與 R²。
66
+
67
+ ## 測試 Tests
68
+
69
+ ```bash
70
+ python tests/test_core.py # 純邏輯(免 GUI)
71
+ QT_QPA_PLATFORM=offscreen python tests/test_widgets.py # widget 煙霧測試
72
+ ```
73
+
74
+ ## 注意 Notes
75
+
76
+ - URL 匯入支援 IRUG 詳情頁(jqPlot 內嵌資料)、SOPRANO 頁(Dygraph 內嵌資料)、
77
+ JCAMP-DX(AFFN 純數字格式)與兩欄 CSV/TSV。壓縮的 JCAMP(SQZ/DIF)請改用
78
+ SpectraView 開啟後匯出。
79
+ - 每個 widget 左上角有「ℹ 說明 How to use」盒子與「📖 開啟線上教學」按鈕。
80
+ - 安裝**一次**即可,更新才需重裝(`--upgrade --force-reinstall --no-deps`)+重開 Orange。
81
+ - 教學網頁(含真實數據 Demo):<https://tai-shengyeh.github.io/spectraview/orange.html>([English](https://tai-shengyeh.github.io/spectraview/orange_en.html))
@@ -0,0 +1,26 @@
1
+ README.md
2
+ pyproject.toml
3
+ orange_spectra.egg-info/PKG-INFO
4
+ orange_spectra.egg-info/SOURCES.txt
5
+ orange_spectra.egg-info/dependency_links.txt
6
+ orange_spectra.egg-info/entry_points.txt
7
+ orange_spectra.egg-info/requires.txt
8
+ orange_spectra.egg-info/top_level.txt
9
+ orangespectra/__init__.py
10
+ orangespectra/core.py
11
+ orangespectra/table_io.py
12
+ orangespectra/widgets/__init__.py
13
+ orangespectra/widgets/_help.py
14
+ orangespectra/widgets/owaquagram.py
15
+ orangespectra/widgets/owimporturl.py
16
+ orangespectra/widgets/owlibrary.py
17
+ orangespectra/widgets/owmixture.py
18
+ orangespectra/widgets/owsimilarity.py
19
+ orangespectra/widgets/icons/aquagram.svg
20
+ orangespectra/widgets/icons/category.svg
21
+ orangespectra/widgets/icons/importurl.svg
22
+ orangespectra/widgets/icons/library.svg
23
+ orangespectra/widgets/icons/mixture.svg
24
+ orangespectra/widgets/icons/similarity.svg
25
+ tests/test_core.py
26
+ tests/test_widgets.py
@@ -0,0 +1,5 @@
1
+ [orange.widgets]
2
+ Spectra = orangespectra.widgets
3
+
4
+ [orange3.addon]
5
+ orange-spectra = orangespectra
@@ -0,0 +1,4 @@
1
+ numpy>=1.23
2
+ scipy>=1.9
3
+ matplotlib>=3.6
4
+ Orange3>=3.34
@@ -0,0 +1 @@
1
+ orangespectra
@@ -0,0 +1,3 @@
1
+ """orange-spectra: spectroscopy widgets for Orange Data Mining."""
2
+
3
+ __version__ = "0.1.2"