svc-processing 0.1.3__tar.gz → 0.1.5__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. {svc_processing-0.1.3 → svc_processing-0.1.5}/PKG-INFO +34 -15
  2. {svc_processing-0.1.3 → svc_processing-0.1.5}/README.md +32 -14
  3. svc_processing-0.1.5/pipeline/notebook.py +1229 -0
  4. {svc_processing-0.1.3 → svc_processing-0.1.5}/pyproject.toml +4 -2
  5. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/PKG-INFO +34 -15
  6. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/SOURCES.txt +1 -0
  7. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/requires.txt +1 -0
  8. svc_processing-0.1.5/tests/test_pipeline_demo.py +153 -0
  9. svc_processing-0.1.3/tests/test_pipeline_demo.py +0 -107
  10. {svc_processing-0.1.3 → svc_processing-0.1.5}/LICENSE +0 -0
  11. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/__init__.py +0 -0
  12. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/cli.py +0 -0
  13. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/processor.py +0 -0
  14. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/resampler.py +0 -0
  15. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/run_config.py +0 -0
  16. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/runner.py +0 -0
  17. {svc_processing-0.1.3 → svc_processing-0.1.5}/pipeline/sig_processor.py +0 -0
  18. {svc_processing-0.1.3 → svc_processing-0.1.5}/setup.cfg +0 -0
  19. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/dependency_links.txt +0 -0
  20. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/entry_points.txt +0 -0
  21. {svc_processing-0.1.3 → svc_processing-0.1.5}/svc_processing.egg-info/top_level.txt +0 -0
  22. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_cli.py +0 -0
  23. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_processor.py +0 -0
  24. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_resampler_parity.py +0 -0
  25. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_resampler_public_api.py +0 -0
  26. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_run_config.py +0 -0
  27. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_runner.py +0 -0
  28. {svc_processing-0.1.3 → svc_processing-0.1.5}/tests/test_sig_processor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: svc-processing
3
- Version: 0.1.3
3
+ Version: 0.1.5
4
4
  Summary: Pure-Python SVC HR-1024i hyperspectral .sig processing pipeline
5
5
  Author: Gold Lab (GrapeSPEC project), Cornell University
6
6
  Author-email: Cole Regnier <nr466@cornell.edu>
@@ -20,6 +20,7 @@ Requires-Dist: numpy
20
20
  Requires-Dist: pandas
21
21
  Requires-Dist: scipy
22
22
  Provides-Extra: demo
23
+ Requires-Dist: ipykernel; extra == "demo"
23
24
  Requires-Dist: matplotlib; extra == "demo"
24
25
  Requires-Dist: nbclient; extra == "demo"
25
26
  Requires-Dist: nbconvert; extra == "demo"
@@ -77,14 +78,28 @@ svc-pipeline --init-config # command name — different from the package name
77
78
  svc-pipeline
78
79
  ```
79
80
 
80
- **Working from a clone of this repo** (config/config.json already exists):
81
+ **Working from a clone of this repo** (config/config.json already exists) — run the
82
+ setup script once, then activate the environment it created:
83
+
84
+ ```bash
85
+ ./setup.sh # creates .venv and installs the project + notebook tools
86
+ # ./setup.sh --dev # add the test & lint tools for development
87
+
88
+ source .venv/bin/activate # macOS / Linux
89
+ # .venv\Scripts\activate # Windows PowerShell
90
+
91
+ # Edit config/config.json — replace "<PATH_TO_SIG_INPUT_ROOT>" with your data path.
92
+ svc-pipeline config.json
93
+ ```
94
+
95
+ The script always installs into *this* repo's `.venv` no matter which folder you run
96
+ it from, so it avoids the "Directory '.' is not installable" and "No module named …"
97
+ errors that come from being in the wrong directory. Prefer to do it by hand?
81
98
 
82
99
  ```bash
83
100
  python3.11 -m venv .venv
84
101
  source .venv/bin/activate
85
102
  python -m pip install -e ".[dev,demo]"
86
-
87
- # Edit config/config.json — replace "<PATH_TO_SIG_INPUT_ROOT>" with your data path.
88
103
  svc-pipeline config.json
89
104
  ```
90
105
 
@@ -197,6 +212,7 @@ The most-used entry points (all importable from their concrete modules — `pipe
197
212
  ```python
198
213
  from pipeline.sig_processor import SigFileProcessor # truncation + instrument inspection
199
214
  from pipeline.resampler import process_sig_file, resample_spectra
215
+ from pipeline.notebook import Spectrum, SpectraCollection, build_config
200
216
  from pipeline.processor import (
201
217
  SVCDataProcessor, # chainable load/group/average
202
218
  SigSpectraAverager, # facade — pass a DataFrame, get aggregated DataFrame back
@@ -221,18 +237,21 @@ Detailed signatures and behavioural notes in [`pipeline/README.md`](pipeline/REA
221
237
 
222
238
  ## Demo Notebook
223
239
 
224
- The demo notebook uses an external 15-file `.sig` artifact because raw headers
225
- contain GPS/location metadata. Prepare local demo data with:
226
-
227
- ```bash
228
- python3 scripts/prepare_demo_data.py \
229
- --source-dir data/a4any_sb_2025-cn_ch-svc-aviris_bottom
230
- ```
231
-
232
- The notebook is config-driven: edit the settings cell (`DATA_FOLDER`,
233
- `OUTPUT_FOLDER`, `INSTRUMENT`) to run it on your own data and instrument. See
240
+ [`notebooks/pipeline_demo.ipynb`](notebooks/pipeline_demo.ipynb) is designed to
241
+ be shared as a standalone file: its first code cell checks for the notebook
242
+ helpers, installs `svc-processing[demo]>=0.1.5` into the current kernel when
243
+ needed, and falls back to the public GitHub source archive while that release is
244
+ not yet on PyPI. The tutorial assumes you have an authorized folder of raw
245
+ `.sig` scans; set `DATA_FOLDER`, `OUTPUT_FOLDER`, `INSTRUMENT`, and `END_LINE` in
246
+ the opening cells. Raw field scans are not shipped in the public repository
247
+ because their headers can contain time and GPS metadata.
248
+ See
234
249
  [`notebooks/pipeline_demo/README.md`](notebooks/pipeline_demo/README.md).
235
250
 
251
+ Authorized parity work can still stage the separate external field dataset with
252
+ [`scripts/prepare_demo_data.py`](scripts/prepare_demo_data.py); those raw files
253
+ never enter the package or default notebook path.
254
+
236
255
  ---
237
256
 
238
257
  ## Requirements
@@ -241,7 +260,7 @@ Python 3.11 is the supported runtime. Runtime, demo, and development
241
260
  dependencies are declared in [`pyproject.toml`](pyproject.toml).
242
261
 
243
262
  - `numpy`, `scipy`, `pandas` — numerical core.
244
- - `matplotlib` — demo notebook plotting.
263
+ - `matplotlib`, `ipykernel` — demo notebook plotting and execution.
245
264
  - `pytest>=8.3.0` — test runner for local verification.
246
265
 
247
266
  Install with `python -m pip install -e ".[dev,demo]"` for local development and
@@ -44,14 +44,28 @@ svc-pipeline --init-config # command name — different from the package name
44
44
  svc-pipeline
45
45
  ```
46
46
 
47
- **Working from a clone of this repo** (config/config.json already exists):
47
+ **Working from a clone of this repo** (config/config.json already exists) — run the
48
+ setup script once, then activate the environment it created:
49
+
50
+ ```bash
51
+ ./setup.sh # creates .venv and installs the project + notebook tools
52
+ # ./setup.sh --dev # add the test & lint tools for development
53
+
54
+ source .venv/bin/activate # macOS / Linux
55
+ # .venv\Scripts\activate # Windows PowerShell
56
+
57
+ # Edit config/config.json — replace "<PATH_TO_SIG_INPUT_ROOT>" with your data path.
58
+ svc-pipeline config.json
59
+ ```
60
+
61
+ The script always installs into *this* repo's `.venv` no matter which folder you run
62
+ it from, so it avoids the "Directory '.' is not installable" and "No module named …"
63
+ errors that come from being in the wrong directory. Prefer to do it by hand?
48
64
 
49
65
  ```bash
50
66
  python3.11 -m venv .venv
51
67
  source .venv/bin/activate
52
68
  python -m pip install -e ".[dev,demo]"
53
-
54
- # Edit config/config.json — replace "<PATH_TO_SIG_INPUT_ROOT>" with your data path.
55
69
  svc-pipeline config.json
56
70
  ```
57
71
 
@@ -164,6 +178,7 @@ The most-used entry points (all importable from their concrete modules — `pipe
164
178
  ```python
165
179
  from pipeline.sig_processor import SigFileProcessor # truncation + instrument inspection
166
180
  from pipeline.resampler import process_sig_file, resample_spectra
181
+ from pipeline.notebook import Spectrum, SpectraCollection, build_config
167
182
  from pipeline.processor import (
168
183
  SVCDataProcessor, # chainable load/group/average
169
184
  SigSpectraAverager, # facade — pass a DataFrame, get aggregated DataFrame back
@@ -188,18 +203,21 @@ Detailed signatures and behavioural notes in [`pipeline/README.md`](pipeline/REA
188
203
 
189
204
  ## Demo Notebook
190
205
 
191
- The demo notebook uses an external 15-file `.sig` artifact because raw headers
192
- contain GPS/location metadata. Prepare local demo data with:
193
-
194
- ```bash
195
- python3 scripts/prepare_demo_data.py \
196
- --source-dir data/a4any_sb_2025-cn_ch-svc-aviris_bottom
197
- ```
198
-
199
- The notebook is config-driven: edit the settings cell (`DATA_FOLDER`,
200
- `OUTPUT_FOLDER`, `INSTRUMENT`) to run it on your own data and instrument. See
206
+ [`notebooks/pipeline_demo.ipynb`](notebooks/pipeline_demo.ipynb) is designed to
207
+ be shared as a standalone file: its first code cell checks for the notebook
208
+ helpers, installs `svc-processing[demo]>=0.1.5` into the current kernel when
209
+ needed, and falls back to the public GitHub source archive while that release is
210
+ not yet on PyPI. The tutorial assumes you have an authorized folder of raw
211
+ `.sig` scans; set `DATA_FOLDER`, `OUTPUT_FOLDER`, `INSTRUMENT`, and `END_LINE` in
212
+ the opening cells. Raw field scans are not shipped in the public repository
213
+ because their headers can contain time and GPS metadata.
214
+ See
201
215
  [`notebooks/pipeline_demo/README.md`](notebooks/pipeline_demo/README.md).
202
216
 
217
+ Authorized parity work can still stage the separate external field dataset with
218
+ [`scripts/prepare_demo_data.py`](scripts/prepare_demo_data.py); those raw files
219
+ never enter the package or default notebook path.
220
+
203
221
  ---
204
222
 
205
223
  ## Requirements
@@ -208,7 +226,7 @@ Python 3.11 is the supported runtime. Runtime, demo, and development
208
226
  dependencies are declared in [`pyproject.toml`](pyproject.toml).
209
227
 
210
228
  - `numpy`, `scipy`, `pandas` — numerical core.
211
- - `matplotlib` — demo notebook plotting.
229
+ - `matplotlib`, `ipykernel` — demo notebook plotting and execution.
212
230
  - `pytest>=8.3.0` — test runner for local verification.
213
231
 
214
232
  Install with `python -m pip install -e ".[dev,demo]"` for local development and