microstructure-tpw 0.3.0__py3-none-any.whl
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.
- microstructure_tpw-0.3.0.dist-info/METADATA +234 -0
- microstructure_tpw-0.3.0.dist-info/RECORD +119 -0
- microstructure_tpw-0.3.0.dist-info/WHEEL +5 -0
- microstructure_tpw-0.3.0.dist-info/entry_points.txt +7 -0
- microstructure_tpw-0.3.0.dist-info/licenses/LICENSE +674 -0
- microstructure_tpw-0.3.0.dist-info/top_level.txt +1 -0
- odas_tpw/__init__.py +18 -0
- odas_tpw/chi/__init__.py +48 -0
- odas_tpw/chi/batchelor.py +189 -0
- odas_tpw/chi/chi.py +857 -0
- odas_tpw/chi/fp07.py +649 -0
- odas_tpw/chi/l2_chi.py +153 -0
- odas_tpw/chi/l3_chi.py +388 -0
- odas_tpw/chi/l4_chi.py +391 -0
- odas_tpw/config_base.py +423 -0
- odas_tpw/perturb/__init__.py +18 -0
- odas_tpw/perturb/adcp.py +274 -0
- odas_tpw/perturb/atomic_io.py +47 -0
- odas_tpw/perturb/binning.py +761 -0
- odas_tpw/perturb/cli.py +591 -0
- odas_tpw/perturb/combo.py +346 -0
- odas_tpw/perturb/config.py +1046 -0
- odas_tpw/perturb/ctd.py +424 -0
- odas_tpw/perturb/diag/__init__.py +12 -0
- odas_tpw/perturb/diag/_common.py +140 -0
- odas_tpw/perturb/diag/chi.py +42 -0
- odas_tpw/perturb/diag/cli.py +67 -0
- odas_tpw/perturb/diag/data.py +662 -0
- odas_tpw/perturb/diag/epsilon.py +45 -0
- odas_tpw/perturb/diag/inspector.py +342 -0
- odas_tpw/perturb/diag/mixing.py +94 -0
- odas_tpw/perturb/diag/render.py +543 -0
- odas_tpw/perturb/discover.py +40 -0
- odas_tpw/perturb/fp07_cal.py +354 -0
- odas_tpw/perturb/gps.py +458 -0
- odas_tpw/perturb/hotel.py +572 -0
- odas_tpw/perturb/logging_setup.py +181 -0
- odas_tpw/perturb/merge.py +320 -0
- odas_tpw/perturb/mk_sections.py +310 -0
- odas_tpw/perturb/netcdf_schema.py +520 -0
- odas_tpw/perturb/pipeline.py +2654 -0
- odas_tpw/perturb/plot/__init__.py +15 -0
- odas_tpw/perturb/plot/cli.py +107 -0
- odas_tpw/perturb/plot/diagnostics.py +195 -0
- odas_tpw/perturb/plot/eps_chi.py +524 -0
- odas_tpw/perturb/plot/figure.py +679 -0
- odas_tpw/perturb/plot/gamma_scaling.py +1097 -0
- odas_tpw/perturb/plot/grid.py +112 -0
- odas_tpw/perturb/plot/layout.py +361 -0
- odas_tpw/perturb/plot/overview.py +547 -0
- odas_tpw/perturb/plot/presets/eps-chi.yaml +16 -0
- odas_tpw/perturb/plot/presets/profiles.yaml +32 -0
- odas_tpw/perturb/plot/presets/scalar.yaml +21 -0
- odas_tpw/perturb/plot/profiles.py +652 -0
- odas_tpw/perturb/plot/scalar.py +391 -0
- odas_tpw/perturb/plot/sections.py +506 -0
- odas_tpw/perturb/plot/xaxis.py +396 -0
- odas_tpw/perturb/qc_gate.py +177 -0
- odas_tpw/perturb/qc_rules.py +373 -0
- odas_tpw/perturb/resolve.py +306 -0
- odas_tpw/perturb/seawater.py +76 -0
- odas_tpw/perturb/speed.py +14 -0
- odas_tpw/perturb/trim.py +313 -0
- odas_tpw/processing/__init__.py +62 -0
- odas_tpw/processing/bottom.py +215 -0
- odas_tpw/processing/chi_combine.py +300 -0
- odas_tpw/processing/ct_align.py +172 -0
- odas_tpw/processing/epsilon_combine.py +210 -0
- odas_tpw/processing/mixing.py +630 -0
- odas_tpw/processing/thorpe.py +458 -0
- odas_tpw/processing/top_trim.py +274 -0
- odas_tpw/pyturb/__init__.py +3 -0
- odas_tpw/pyturb/__main__.py +5 -0
- odas_tpw/pyturb/_compat.py +204 -0
- odas_tpw/pyturb/_profind.py +124 -0
- odas_tpw/pyturb/bin.py +113 -0
- odas_tpw/pyturb/cli.py +175 -0
- odas_tpw/pyturb/eps.py +353 -0
- odas_tpw/pyturb/merge.py +101 -0
- odas_tpw/pyturb/p2nc.py +76 -0
- odas_tpw/rsi/__init__.py +31 -0
- odas_tpw/rsi/adapter.py +314 -0
- odas_tpw/rsi/bench.py +904 -0
- odas_tpw/rsi/binning.py +193 -0
- odas_tpw/rsi/channels.py +376 -0
- odas_tpw/rsi/chi_io.py +980 -0
- odas_tpw/rsi/cli.py +1411 -0
- odas_tpw/rsi/combine.py +120 -0
- odas_tpw/rsi/config.py +126 -0
- odas_tpw/rsi/config_patch.py +790 -0
- odas_tpw/rsi/convert.py +651 -0
- odas_tpw/rsi/deconvolve.py +119 -0
- odas_tpw/rsi/diss_look.py +343 -0
- odas_tpw/rsi/dissipation.py +669 -0
- odas_tpw/rsi/helpers.py +527 -0
- odas_tpw/rsi/mixing_look.py +509 -0
- odas_tpw/rsi/p_file.py +771 -0
- odas_tpw/rsi/pipeline.py +924 -0
- odas_tpw/rsi/profile.py +624 -0
- odas_tpw/rsi/quick_look.py +758 -0
- odas_tpw/rsi/sensor_inventory.py +684 -0
- odas_tpw/rsi/shear_noise.py +128 -0
- odas_tpw/rsi/speed.py +221 -0
- odas_tpw/rsi/vehicle.py +74 -0
- odas_tpw/rsi/viewer_base.py +1071 -0
- odas_tpw/rsi/window.py +459 -0
- odas_tpw/scor160/__init__.py +36 -0
- odas_tpw/scor160/cli.py +242 -0
- odas_tpw/scor160/compare.py +484 -0
- odas_tpw/scor160/despike.py +227 -0
- odas_tpw/scor160/goodman.py +288 -0
- odas_tpw/scor160/io.py +690 -0
- odas_tpw/scor160/l2.py +311 -0
- odas_tpw/scor160/l3.py +279 -0
- odas_tpw/scor160/l4.py +850 -0
- odas_tpw/scor160/nasmyth.py +208 -0
- odas_tpw/scor160/ocean.py +287 -0
- odas_tpw/scor160/profile.py +231 -0
- odas_tpw/scor160/spectral.py +482 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: microstructure-tpw
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Ocean microstructure turbulence processing: TKE dissipation and chi from Rockland Scientific instruments
|
|
5
|
+
Author-email: Pat Welch <pat@mousebrains.com>
|
|
6
|
+
License-Expression: GPL-3.0-or-later
|
|
7
|
+
Project-URL: Homepage, https://github.com/mousebrains/turbulence
|
|
8
|
+
Project-URL: Repository, https://github.com/mousebrains/turbulence
|
|
9
|
+
Project-URL: Documentation, https://github.com/mousebrains/turbulence/tree/main/docs
|
|
10
|
+
Project-URL: Changelog, https://github.com/mousebrains/turbulence/blob/main/CHANGELOG.md
|
|
11
|
+
Project-URL: Issues, https://github.com/mousebrains/turbulence/issues
|
|
12
|
+
Keywords: oceanography,turbulence,microprofiler,rockland
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Requires-Python: >=3.12
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: numpy<3,>=2.0
|
|
25
|
+
Requires-Dist: netCDF4<2,>=1.6
|
|
26
|
+
Requires-Dist: scipy<2,>=1.12
|
|
27
|
+
Requires-Dist: xarray>=2024.1
|
|
28
|
+
Requires-Dist: gsw<4,>=3.6
|
|
29
|
+
Requires-Dist: ruamel.yaml>=0.18
|
|
30
|
+
Requires-Dist: matplotlib<4,>=3.8
|
|
31
|
+
Requires-Dist: cmocean<5,>=3.0
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: pytest; extra == "dev"
|
|
34
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-xdist; extra == "dev"
|
|
36
|
+
Requires-Dist: ruff; extra == "dev"
|
|
37
|
+
Requires-Dist: mypy; extra == "dev"
|
|
38
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# microstructure-tpw
|
|
42
|
+
|
|
43
|
+
[](https://github.com/mousebrains/turbulence/actions/workflows/ci.yml)
|
|
44
|
+
[](https://www.python.org/downloads/)
|
|
45
|
+
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
46
|
+
[](https://codecov.io/gh/mousebrains/turbulence)
|
|
47
|
+
[](https://github.com/astral-sh/ruff)
|
|
48
|
+
[](https://mypy-lang.org/)
|
|
49
|
+
|
|
50
|
+
Python tools for reading Rockland Scientific microprofiler data and computing turbulent dissipation rates from VMP (Vertical Microstructure Profiler) and MicroRider instruments.
|
|
51
|
+
|
|
52
|
+
## Overview
|
|
53
|
+
|
|
54
|
+
`microstructure-tpw` provides a complete processing pipeline for ocean turbulence measurements from Rockland Scientific instruments equipped with shear probes and fast thermistors (FP07). The package reads proprietary `.p` binary data files, converts channels to physical units, detects profiles, and computes both the rate of dissipation of turbulent kinetic energy (epsilon) and the rate of dissipation of thermal variance (chi), following the methods described in the Rockland Scientific ODAS MATLAB Library and associated Technical Notes.
|
|
55
|
+
|
|
56
|
+
- **Epsilon (TKE dissipation rate)** from shear probe spectra ([detailed mathematics](docs/epsilon_mathematics.md)), including Goodman coherent noise removal, Nasmyth spectrum fitting, and Macoun & Lueck wavenumber correction.
|
|
57
|
+
|
|
58
|
+
- **Chi (thermal variance dissipation rate)** from FP07 thermistor spectra ([detailed mathematics](docs/chi_mathematics.md)), including Batchelor/Kraichnan spectrum models, FP07 transfer function correction, and spectral fitting (iterative Peterson & Fer 2014, the default, or MLE).
|
|
59
|
+
|
|
60
|
+
The package is organized into six subpackages under `odas_tpw`:
|
|
61
|
+
|
|
62
|
+
- **rsi** — Rockland Scientific instrument I/O, NetCDF conversion, profiles, epsilon/chi orchestration
|
|
63
|
+
- **chi** — Chi (thermal variance dissipation) calculation
|
|
64
|
+
- **scor160** — ATOMIX shear-probe benchmark processing and shared physics modules
|
|
65
|
+
- **perturb** — Full campaign processing pipeline (trim, merge, calibrate, compute, bin)
|
|
66
|
+
- **processing** — Instrument-agnostic profile processing (top trim, bottom-crash, CT alignment, multi-probe epsilon combining)
|
|
67
|
+
- **pyturb** — Third-party code ([oceancascades/pyturb](https://github.com/oceancascades/pyturb)) hosted in-repo; maintained upstream, not refactored here
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
pip install -e ".[dev]" # editable install with dev dependencies
|
|
73
|
+
pip install . # standard install
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
See [docs/installation.md](docs/installation.md) for more options.
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
Several CLIs ship with the package (`rsi-tpw`, `perturb`, `perturb-plot`, `perturb-diag`, `scor160-tpw`, `pyturb-cli`); the two primary ones, for different workflows:
|
|
81
|
+
|
|
82
|
+
- **`rsi-tpw`** — single-file or short batch processing on the command line.
|
|
83
|
+
- **`perturb`** — full campaign pipeline driven by a YAML config file
|
|
84
|
+
(trim → merge → profiles → epsilon → chi → bin → combo), with parallel
|
|
85
|
+
workers and stage-aware logging. Use this for cruise-scale runs.
|
|
86
|
+
|
|
87
|
+
The two CLIs use different spectral defaults (`rsi-tpw`: `fft_length=1024`
|
|
88
|
+
with a 4096-sample dissipation window; `perturb`: duration-based
|
|
89
|
+
`fft_sec=1.0` — one second, resolved per instrument sampling rate,
|
|
90
|
+
= 512 samples on a 512-Hz VMP-250 — for both epsilon and chi), so their
|
|
91
|
+
outputs differ in vertical resolution and noise behavior.
|
|
92
|
+
|
|
93
|
+
### `rsi-tpw` (single files / short batches)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Full pipeline: .p files → epsilon → chi
|
|
97
|
+
rsi-tpw pipeline VMP/*.p -o results/
|
|
98
|
+
|
|
99
|
+
# Or run individual stages
|
|
100
|
+
rsi-tpw eps VMP/*.p -o epsilon/ # writes into epsilon/eps_00/
|
|
101
|
+
rsi-tpw chi VMP/*.p --epsilon-dir epsilon/ -o chi/ # finds eps_00/ automatically
|
|
102
|
+
|
|
103
|
+
# Pre-deployment bench test (dummy probes, instrument at rest): raw-count
|
|
104
|
+
# figures + spectra + an auto-evaluated Rockland checklist (see docs/rsi-tpw/bench.md)
|
|
105
|
+
rsi-tpw bench VMP/*.p -o bench/
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
> **Note:** `eps` writes into a hash-tracked subdirectory (`epsilon/eps_00/`,
|
|
109
|
+
> see [output directories](docs/rsi-tpw/output_directories.md)). The chi
|
|
110
|
+
> command searches the given `--epsilon-dir` and its `eps_*` subdirectories
|
|
111
|
+
> (most recently modified first), and matches both single-profile
|
|
112
|
+
> (`{stem}_eps.nc`) and per-profile (`{stem}_prof001_eps.nc`, ...) file
|
|
113
|
+
> names, concatenating the latter along time. Only when no matching epsilon
|
|
114
|
+
> files exist anywhere does chi fall back to Method 2 for that file, with a
|
|
115
|
+
> console warning.
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
from odas_tpw.rsi.pipeline import run_pipeline
|
|
119
|
+
from pathlib import Path
|
|
120
|
+
|
|
121
|
+
# Full pipeline: .p → profiles → epsilon → chi → binning → combine
|
|
122
|
+
run_pipeline([Path("VMP/file.p")], Path("results/"))
|
|
123
|
+
|
|
124
|
+
# Or use the modular API
|
|
125
|
+
from odas_tpw.rsi.dissipation import compute_diss_file
|
|
126
|
+
from odas_tpw.rsi.chi_io import compute_chi_file
|
|
127
|
+
|
|
128
|
+
compute_diss_file("VMP/file.p", "epsilon/")
|
|
129
|
+
compute_chi_file("VMP/file.p", "chi/")
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
> **Note:** `get_diss()` and `get_chi()` still work for backward compatibility
|
|
133
|
+
> but are deprecated in favor of `run_pipeline()` or the modular
|
|
134
|
+
> `compute_diss_file()` / `compute_chi_file()` functions.
|
|
135
|
+
|
|
136
|
+
### `perturb` (campaign-scale batch pipeline)
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Write a template config you can edit (cruise paths, GPS file,
|
|
140
|
+
# instrument-specific overrides, parallelism, etc.).
|
|
141
|
+
perturb init my-cruise.yaml
|
|
142
|
+
|
|
143
|
+
# Run the full pipeline — outputs land in <output_root>/{profiles_NN,
|
|
144
|
+
# diss_NN, chi_NN, ctd_NN, *_binned_NN, combo}, with a per-run log under
|
|
145
|
+
# <output_root>/logs/.
|
|
146
|
+
perturb run -c my-cruise.yaml
|
|
147
|
+
|
|
148
|
+
# Or run individual stages against the same config:
|
|
149
|
+
perturb trim -c my-cruise.yaml
|
|
150
|
+
perturb profiles -c my-cruise.yaml
|
|
151
|
+
perturb diss -c my-cruise.yaml
|
|
152
|
+
perturb chi -c my-cruise.yaml
|
|
153
|
+
perturb bin -c my-cruise.yaml
|
|
154
|
+
perturb combo -c my-cruise.yaml
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
See [docs/perturb/pipeline.md](docs/perturb/pipeline.md) for the full stage list and [docs/perturb/configuration.md](docs/perturb/configuration.md) for the config schema.
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
### rsi-tpw (science library)
|
|
162
|
+
|
|
163
|
+
| Document | Description |
|
|
164
|
+
|----------|-------------|
|
|
165
|
+
| [CLI Reference](docs/rsi-tpw/cli.md) | All `rsi-tpw` subcommands and flags |
|
|
166
|
+
| [Configuration](docs/rsi-tpw/configuration.md) | YAML config file format and all parameter defaults |
|
|
167
|
+
| [Pipeline](docs/rsi-tpw/pipeline.md) | Processing stages and data flow |
|
|
168
|
+
| [Python API](docs/rsi-tpw/python_api.md) | Using microstructure-tpw from Python code |
|
|
169
|
+
| [Output Directories](docs/rsi-tpw/output_directories.md) | Sequential hash-tracked output scheme |
|
|
170
|
+
| [Vectorization](docs/rsi-tpw/vectorization.md) | Vectorized compute internals |
|
|
171
|
+
| [Bench Test](docs/rsi-tpw/bench.md) | Pre-deployment bench check (`bench`): quick_bench figures + auto checklist |
|
|
172
|
+
|
|
173
|
+
### perturb (batch pipeline)
|
|
174
|
+
|
|
175
|
+
| Document | Description |
|
|
176
|
+
|----------|-------------|
|
|
177
|
+
| [Pipeline](docs/perturb/pipeline.md) | Batch processing stages and data flow |
|
|
178
|
+
| [CLI Reference](docs/perturb/cli.md) | All `perturb` subcommands and flags |
|
|
179
|
+
| [Configuration](docs/perturb/configuration.md) | YAML config file format for perturb |
|
|
180
|
+
| [Parallel Scaling](docs/perturb/parallel.md) | Benchmark results for multi-core scaling |
|
|
181
|
+
| [Modules](docs/perturb/modules.md) | Module-level reference |
|
|
182
|
+
| [pyturb Comparison](docs/perturb/pyturb_comparison.md) | Comparison with oceancascades/pyturb |
|
|
183
|
+
|
|
184
|
+
### scor160 (ATOMIX benchmark)
|
|
185
|
+
|
|
186
|
+
| Document | Description |
|
|
187
|
+
|----------|-------------|
|
|
188
|
+
| [CLI Reference](docs/scor160/cli.md) | All `scor160-tpw` subcommands and flags |
|
|
189
|
+
|
|
190
|
+
### Shared
|
|
191
|
+
|
|
192
|
+
| Document | Description |
|
|
193
|
+
|----------|-------------|
|
|
194
|
+
| [Epsilon Mathematics](docs/epsilon_mathematics.md) | TKE dissipation algorithm details |
|
|
195
|
+
| [Chi Mathematics](docs/chi_mathematics.md) | Thermal dissipation algorithm details |
|
|
196
|
+
| [Mixing Efficiency](docs/mixing_efficiency.md) | Mathematics of the dissipation ratio |
|
|
197
|
+
| [Best Practices](docs/best_practices.md) | Guidance for comparing turbulence measurements |
|
|
198
|
+
| [Bibliography](docs/bibliography.md) | Consolidated references |
|
|
199
|
+
| [Installation](docs/installation.md) | Installation options |
|
|
200
|
+
| [Changelog](CHANGELOG.md) | Version history |
|
|
201
|
+
|
|
202
|
+
## References
|
|
203
|
+
|
|
204
|
+
This package is a Python implementation derived from the
|
|
205
|
+
[Rockland Scientific ODAS MATLAB Library](https://rocklandscientific.com/support/software/) (v4.5.1)
|
|
206
|
+
and associated
|
|
207
|
+
[Technical Notes](https://rocklandscientific.com/support/technical-notes/)
|
|
208
|
+
(TN-028, TN-051, TN-061).
|
|
209
|
+
|
|
210
|
+
See [docs/bibliography.md](docs/bibliography.md) for the full list of references.
|
|
211
|
+
|
|
212
|
+
## Testing
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
python -m pytest # run all tests
|
|
216
|
+
python -m pytest tests/test_epsilon.py # epsilon pipeline tests only
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Development
|
|
220
|
+
|
|
221
|
+
This project was developed in collaboration with [Claude Code](https://claude.ai/code).
|
|
222
|
+
|
|
223
|
+
## Citation
|
|
224
|
+
|
|
225
|
+
If you use this software in published work, please cite it. Citation metadata
|
|
226
|
+
lives in [`CITATION.cff`](CITATION.cff) — GitHub renders a **"Cite this
|
|
227
|
+
repository"** button from it (BibTeX/APA export). Each tagged release is
|
|
228
|
+
archived on Zenodo with a DOI; cite the *concept* (all-versions) DOI so the
|
|
229
|
+
reference always resolves to the latest release. The DOI badge and identifier
|
|
230
|
+
are added here once the first release is minted.
|
|
231
|
+
|
|
232
|
+
## License
|
|
233
|
+
|
|
234
|
+
GPLv3 — see [LICENSE](LICENSE) for details.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
microstructure_tpw-0.3.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
2
|
+
odas_tpw/__init__.py,sha256=AkzV_Ntg5xnFFQcNL0daoJCjDWaMvFE1xsEsBlVXNx8,796
|
|
3
|
+
odas_tpw/config_base.py,sha256=phXKTlWw7AzJacNLsW89BgU2QB8h1xadcuTkVCriyHs,17290
|
|
4
|
+
odas_tpw/chi/__init__.py,sha256=dZUm_G0sul7rgDEnTFySPA7kOxgSzsCvbj2x_H7lXUU,1175
|
|
5
|
+
odas_tpw/chi/batchelor.py,sha256=td3b2SnMPvYrftgsRSxzxTXHimRuyxOFUKEkDUBK0Js,6391
|
|
6
|
+
odas_tpw/chi/chi.py,sha256=mADkwNM0G3A57g4QQwNPR05Axj9OhAVCGyYC5jyfyeo,33667
|
|
7
|
+
odas_tpw/chi/fp07.py,sha256=vCPVhRyajMqMptsqBniZgfWmjmBwJLBCWGkYLzgOvaU,21075
|
|
8
|
+
odas_tpw/chi/l2_chi.py,sha256=mIqU8jgkDJwRPPxzGp42rdeH8TTpCAC7e0c99xyIG4w,4791
|
|
9
|
+
odas_tpw/chi/l3_chi.py,sha256=xv_ft4XmsF9HUsn1O9ZjPHCuP4Gm0niMY2Qe4_-pKmE,13292
|
|
10
|
+
odas_tpw/chi/l4_chi.py,sha256=4os6POMgATKd1z0hrQCQkHvebV6CJ8-UcbRLQ4aN-tA,14638
|
|
11
|
+
odas_tpw/perturb/__init__.py,sha256=dx6VoTnVpFHM773F4kcIPVu6IEapqmeLuDhxr3r0xw8,509
|
|
12
|
+
odas_tpw/perturb/adcp.py,sha256=sXtzl6SUS7CVpmgC0VGOAK5g9O2g13801oKEjELAA2I,11314
|
|
13
|
+
odas_tpw/perturb/atomic_io.py,sha256=k2cp-aaYjklk9JGKXZE6XYwLSJ7MzrrGvnFbQZNSP6s,1874
|
|
14
|
+
odas_tpw/perturb/binning.py,sha256=RaT9zS81CDoBv2YkMtvHoplif5p1lQ1-EYaZV4HHOYk,31728
|
|
15
|
+
odas_tpw/perturb/cli.py,sha256=p1T4uEPaLu-gJVsirlT1JY239bY_mr-KV2fc5PqEH4Q,20143
|
|
16
|
+
odas_tpw/perturb/combo.py,sha256=7y5Ha7h268Hoa4REFSQfZHi5emTFiQ0dSR981P9pnjE,15065
|
|
17
|
+
odas_tpw/perturb/config.py,sha256=ipNuOdA8AuZLSBU06jWA9mnOEm0nycM7bGm0vspR6ow,44297
|
|
18
|
+
odas_tpw/perturb/ctd.py,sha256=DBboDbIapQi8JF3vEw-x2KKYvGyRos4cMfhpJDna134,17937
|
|
19
|
+
odas_tpw/perturb/discover.py,sha256=Yf0xLQom4Lr2Jpo6FqURW1nNP9bVO2rcaaDV66KD610,980
|
|
20
|
+
odas_tpw/perturb/fp07_cal.py,sha256=SvzXjcVcwEeynkasjzSB5DcfueB33deVgrW9IUbD5kA,12936
|
|
21
|
+
odas_tpw/perturb/gps.py,sha256=AMwsZpH3PWnu_zF7QdhhKOYJxu5_AmSiy-A8OEPdEgM,17804
|
|
22
|
+
odas_tpw/perturb/hotel.py,sha256=BswArDF27KaxTYmBS5k4c9BZPP0Kb-oOelINlJsb7ew,23693
|
|
23
|
+
odas_tpw/perturb/logging_setup.py,sha256=v0JraPCG8LmemPm4mp7YwdlYxFZWHCeIhzOt1efodmA,5809
|
|
24
|
+
odas_tpw/perturb/merge.py,sha256=YpU0An-a-RNTy87KZ2dzxIXfg2DNdHh1lGmeI-JLxj8,11775
|
|
25
|
+
odas_tpw/perturb/mk_sections.py,sha256=lkWnXRuuHQI53D-zMTs0Zk_65fgY20hOkjmptbL3kEA,11931
|
|
26
|
+
odas_tpw/perturb/netcdf_schema.py,sha256=6Mbd_OLEmWRMBCVPnAbnXJ3guAqZOqbUkhR-kiAzST0,17594
|
|
27
|
+
odas_tpw/perturb/pipeline.py,sha256=0E31Gg8j3YyNaz7nmuXv_Q46gUtt7B-KzQGqfQyrWmw,113809
|
|
28
|
+
odas_tpw/perturb/qc_gate.py,sha256=qmnSh-zt_XVd_LSZSSSIZOoZzGcx2Q2jW5pxGMefm00,6788
|
|
29
|
+
odas_tpw/perturb/qc_rules.py,sha256=MMurGctPX8spLz_KFIUwGWFy5UHmlnDCmunCI8NX3ks,14377
|
|
30
|
+
odas_tpw/perturb/resolve.py,sha256=7Dt2DjlM8iyhykM8Jrp5Vmcgay_VBfVeCcuJ1-D8lHU,13489
|
|
31
|
+
odas_tpw/perturb/seawater.py,sha256=G0C8zcaqASx0FuY_eKZac9WWAurKDPV5f5NylmbTG88,2279
|
|
32
|
+
odas_tpw/perturb/speed.py,sha256=1ngYzK7aUb3Id8fjwpsJlnS6e2YDrkrBEoapgeRwpSQ,496
|
|
33
|
+
odas_tpw/perturb/trim.py,sha256=Um7KNHoM4YM1GfC_FM3X1eAXX-cy2AEm7GiXhI9JaaU,13098
|
|
34
|
+
odas_tpw/perturb/diag/__init__.py,sha256=cMiaz6__G8V8UyPYtqK4hX_-JeaaBz7H3Rk6KLJXlD8,584
|
|
35
|
+
odas_tpw/perturb/diag/_common.py,sha256=bWboEugXCzsyf9kEsA5dU8Pe70WMtzd5vvywdeZw0DE,5759
|
|
36
|
+
odas_tpw/perturb/diag/chi.py,sha256=U7m2l_njTr5zLmayTcGsWy5vwFs5lJBy27LacJ0kVz8,1457
|
|
37
|
+
odas_tpw/perturb/diag/cli.py,sha256=XkLaePzab6Fi8r0Adrvmg6pC0GoJKZMxdDNw3r5ACZc,2266
|
|
38
|
+
odas_tpw/perturb/diag/data.py,sha256=r5PV5gk1OeBYqG2ppg16u0NM3LMstbxzcQODkXKCNb8,26790
|
|
39
|
+
odas_tpw/perturb/diag/epsilon.py,sha256=ytptN8umzRytyCoX2cwtyEg8wMJKNqY5LFNaXiPqMcg,1587
|
|
40
|
+
odas_tpw/perturb/diag/inspector.py,sha256=CgmDyIUFpHjdVPxBAuDLjQWkNO5vHw26e_7wvOOlQ9U,14658
|
|
41
|
+
odas_tpw/perturb/diag/mixing.py,sha256=wwr9NS3MsvWoPFESbpIQLzvMcOPQMCsfawCGGz8ELHA,3706
|
|
42
|
+
odas_tpw/perturb/diag/render.py,sha256=0WBzPRt9juDBwe5xXhx5ZRozoCLcE0nfPP6XlLpu7LE,22084
|
|
43
|
+
odas_tpw/perturb/plot/__init__.py,sha256=TgebWzzdNSh7Dm_It7ekyzpP2MLvd6ueZqUjEOIO7gY,664
|
|
44
|
+
odas_tpw/perturb/plot/cli.py,sha256=Vrekjfx6FIKq3Oljh_hXXdtbq9U88AmMM0Y0LOhcyIg,3431
|
|
45
|
+
odas_tpw/perturb/plot/diagnostics.py,sha256=7GyJAMjfAVVmEN3PgTizQ3yM1h_I_Es1e6EUlmhoRjs,7677
|
|
46
|
+
odas_tpw/perturb/plot/eps_chi.py,sha256=uTnRV2_EIDMz5qoOlsuhkn63W18QGylDTdU5K-8VlpM,22616
|
|
47
|
+
odas_tpw/perturb/plot/figure.py,sha256=i-g_vXrU3OPAWee0-Uyt6_7joAnZq3U9zgCkg179L74,30749
|
|
48
|
+
odas_tpw/perturb/plot/gamma_scaling.py,sha256=rvLWo47LK88t7wWUnBbGUrn0fbDvPUNTWkIcJtaY5rA,42597
|
|
49
|
+
odas_tpw/perturb/plot/grid.py,sha256=f8V2wt5zzf-sHbb4e4Cap55eIte2CWQEX6q-JSSDbSY,4236
|
|
50
|
+
odas_tpw/perturb/plot/layout.py,sha256=YxcQUMUCgnkQZ1Yz1mNHJQwovAyIwHidV4C0TMb-pVE,14267
|
|
51
|
+
odas_tpw/perturb/plot/overview.py,sha256=Ux9-QIEtkTy6DhTrTz4vzJTVMFKCZmYW-qOf8Qe2fec,24336
|
|
52
|
+
odas_tpw/perturb/plot/profiles.py,sha256=1G6Czhmxrk6vGGVlZGBfih7x1WUZXX9gUmhe00tqMUw,30152
|
|
53
|
+
odas_tpw/perturb/plot/scalar.py,sha256=0xr9WI6IrzWlkePRqTr-zmEBejne6TJhgdAeDZTGRFM,15931
|
|
54
|
+
odas_tpw/perturb/plot/sections.py,sha256=_cRsoXHrMnQNOedRoA8oCMMObHpw43MPpT_ctFNDSbg,20847
|
|
55
|
+
odas_tpw/perturb/plot/xaxis.py,sha256=fbBbsPy-r5vIC8YTOCE_zuAVBOGan7m9B6aLHMDpbI0,16040
|
|
56
|
+
odas_tpw/perturb/plot/presets/eps-chi.yaml,sha256=nRrBx5kShijtNT9FCEud1ntOdwS9gKw1XbLyUShsg6E,486
|
|
57
|
+
odas_tpw/perturb/plot/presets/profiles.yaml,sha256=fvu1DJTQsC3cLzjTvIpS7ujTbHXvpQRYsvInkUpGgg4,1276
|
|
58
|
+
odas_tpw/perturb/plot/presets/scalar.yaml,sha256=r4XKSz3h8gEKaOve9x_8XKDwCOK_jHZeJ6v-kWq9Bg0,776
|
|
59
|
+
odas_tpw/processing/__init__.py,sha256=jNZZbtgxpRTyguCgZ5Ful5O9V4r8tBgLxDzqDTGd_mc,2273
|
|
60
|
+
odas_tpw/processing/bottom.py,sha256=90mC-xigh8kXNDDwL-0c2c5vueaiepQMwYbpAmGHg34,9648
|
|
61
|
+
odas_tpw/processing/chi_combine.py,sha256=vlkaekHDxyzpoq4KleW4F0kPh3AANydVrwBM1i86DaY,13515
|
|
62
|
+
odas_tpw/processing/ct_align.py,sha256=hn081ZrbGsp1wCnrYyz_tHY9ycPbv2pPrFVutTfkN5c,5901
|
|
63
|
+
odas_tpw/processing/epsilon_combine.py,sha256=3_RWi4IKV_0TI9TPMeYUwTEN_L7yut-L6NFac--IuIo,8265
|
|
64
|
+
odas_tpw/processing/mixing.py,sha256=YDDQV_E12bBUnylwytppVkWsUjzXM99i52EEoDzm-G4,26152
|
|
65
|
+
odas_tpw/processing/thorpe.py,sha256=vckkJpGLwwkyYncQhpLreqe1zfiUeCsc2T3OLFIiFsU,17724
|
|
66
|
+
odas_tpw/processing/top_trim.py,sha256=PdPOxuK3r1OwXWoulU3W0qg2CVdEXp7hiBMinl2w7go,12324
|
|
67
|
+
odas_tpw/pyturb/__init__.py,sha256=xTtLK7MwklkKzqHbRk8OB4oW0GLAkNFH55hXFEuo43A,93
|
|
68
|
+
odas_tpw/pyturb/__main__.py,sha256=3aJ1l3f5dwe_FHfhohmsbbSa7Xxg3JhxI3ehAmPnaro,100
|
|
69
|
+
odas_tpw/pyturb/_compat.py,sha256=Jd53GZz4Zo0syuJDFDuxGf5YG2GxDkEf7buNVyDE7rs,6323
|
|
70
|
+
odas_tpw/pyturb/_profind.py,sha256=LQFsg6FbhAiAyS6Y-KOAT-UkVMhVyl2tGHPgHdekgQk,3694
|
|
71
|
+
odas_tpw/pyturb/bin.py,sha256=I33Xk7Wf_D2azL1_jK3Nqgsa-keNBfc1FtFum841eHc,3578
|
|
72
|
+
odas_tpw/pyturb/cli.py,sha256=WagMueAbJVNuybgzvnImcrX_h2ViCI6sv4J6NXjHs94,7628
|
|
73
|
+
odas_tpw/pyturb/eps.py,sha256=j4WvIj8hmGibZ3lMZhJ5PRjoHPTnTdIhsyuerdM6aTo,12838
|
|
74
|
+
odas_tpw/pyturb/merge.py,sha256=HTbWKiH_euiVHosTyZqSwf9ElupA8womTBt3zjW4GCo,2914
|
|
75
|
+
odas_tpw/pyturb/p2nc.py,sha256=_TYSsH3JfjzsubE9SGYLC7HlhN-Zh8kNCigVO2betmw,2707
|
|
76
|
+
odas_tpw/rsi/__init__.py,sha256=8Ave6B_PvZ3SFyhqDqIJGN8hHbHHbjcQddqBAZZlfaw,934
|
|
77
|
+
odas_tpw/rsi/adapter.py,sha256=odu8C9nTz3wh2NiY9vLPKpWWZCfE0SSKpRMBqWGyRqA,10785
|
|
78
|
+
odas_tpw/rsi/bench.py,sha256=CQKYbQhHrPH-slbsUjThRe1erfIZhUpzpYAwOurDJr4,34924
|
|
79
|
+
odas_tpw/rsi/binning.py,sha256=wG4LazGpsnRD9AHch8RHvUhcWyN9U5YbP5l1UIlVtIQ,7497
|
|
80
|
+
odas_tpw/rsi/channels.py,sha256=A-qbHtBXJ5q6ckIOor9EnenukwRBGud4qDZIkoMmDBs,15952
|
|
81
|
+
odas_tpw/rsi/chi_io.py,sha256=vOwzj1AT2XulxduzXjaFA47gYbKZyd9sQOxJILnEQUw,34799
|
|
82
|
+
odas_tpw/rsi/cli.py,sha256=t-aGemq6KVVYL3DP--zwpx14tklxyWYlp3hQEZAA1SQ,47447
|
|
83
|
+
odas_tpw/rsi/combine.py,sha256=4F2IXx3LVR48DTnabDc2evkxe0pKajqxW2_au0Zm9a0,4430
|
|
84
|
+
odas_tpw/rsi/config.py,sha256=diSkkMZRaYXkqQ1M3Cg-snFeGLg7yXI2JjwPuMhH3l4,4752
|
|
85
|
+
odas_tpw/rsi/config_patch.py,sha256=8fwnRdwxUoQ9oOvoCW6VtWwEt6uIAwIvfjaoleblbG0,32743
|
|
86
|
+
odas_tpw/rsi/convert.py,sha256=4nRe0pNEUoN42-TA1HNIA5aIB8NUJp6lWLNQ9s-ulEQ,22596
|
|
87
|
+
odas_tpw/rsi/deconvolve.py,sha256=BksaMb6i8L7N_nPqgaPkrQcvjAahEXO7P2elluT0GWk,4092
|
|
88
|
+
odas_tpw/rsi/diss_look.py,sha256=Pv9XGmjGiZEti2j27Nrtk5jzudP_FQIFVVuksRluTJ4,12084
|
|
89
|
+
odas_tpw/rsi/dissipation.py,sha256=rggSgsL2u0FnQLuwfP0PFpwtsvLjAXlUUemeh6Xfz4o,21832
|
|
90
|
+
odas_tpw/rsi/helpers.py,sha256=63ZEOzcnJwMNdEx2A3JGku3ZBveGhzO6XrLhpiRS28c,17191
|
|
91
|
+
odas_tpw/rsi/mixing_look.py,sha256=T0cEQK_U2NcUbp7oPXdQJv8TUGSED7xfRFcth0GkuXs,19893
|
|
92
|
+
odas_tpw/rsi/p_file.py,sha256=JFD0MHPge5RPDOtIiEMMWmwFsk9SHrHv_JeOhVhoZVU,35051
|
|
93
|
+
odas_tpw/rsi/pipeline.py,sha256=z7_UjhnxflzUKF7OyKLuZmqy3YEyc6p6X2e-glByA98,34333
|
|
94
|
+
odas_tpw/rsi/profile.py,sha256=IQYXc8BKgnHYvjuS5Zy7vFt_PflsApSkELuQ9RQj6So,26292
|
|
95
|
+
odas_tpw/rsi/quick_look.py,sha256=Pj1aA6FzOd3oF770puP9UmypjQwg1bWT0_rSi_H5Dbo,27409
|
|
96
|
+
odas_tpw/rsi/sensor_inventory.py,sha256=15naa8r3sQAGKuaGQdORAoCG8P0NTUsX8Ioj_vt2ruE,26066
|
|
97
|
+
odas_tpw/rsi/shear_noise.py,sha256=_HGlgMfth3aIfoRlytJh0T2_WIbnQ3bZqLphK2irOuY,4018
|
|
98
|
+
odas_tpw/rsi/speed.py,sha256=YsVVYX_z43nPIz6N3zFRnbhqxX5h4JH5MDBBkQ9wxF4,9057
|
|
99
|
+
odas_tpw/rsi/vehicle.py,sha256=KP8TSvw8qDgGsGTnOR-ZmlXmMuswQxAmblQgO7l7H44,2099
|
|
100
|
+
odas_tpw/rsi/viewer_base.py,sha256=ApM7n8uPL_6oIc4TtlQenFqrifD9gkqvx_R-1a3IkHw,39106
|
|
101
|
+
odas_tpw/rsi/window.py,sha256=p3NcbbGe5IOkWlLXsudmWppJDbo-ExlV0eyfoVxW5tg,15899
|
|
102
|
+
odas_tpw/scor160/__init__.py,sha256=PgrEipIwi04mi8eUpnVHs9NVuCncykI_Ltw2oygdZCc,820
|
|
103
|
+
odas_tpw/scor160/cli.py,sha256=qVCk7ymRRrNcivLRR88s49KG23sBdApy8ps75e0qeCg,8410
|
|
104
|
+
odas_tpw/scor160/compare.py,sha256=2PzWkc04LofiCHtd2UD3r3YtI3Fp9y_iKwKg9z_vtiA,18940
|
|
105
|
+
odas_tpw/scor160/despike.py,sha256=G6KuY1xHOOltTuqV39W4RnOsHu4Yv8OOWB05YZ_LQnA,8522
|
|
106
|
+
odas_tpw/scor160/goodman.py,sha256=wZsqXimy6hFKR25UyoM1KeVOc6L06p6pndMOMdXHHm8,11820
|
|
107
|
+
odas_tpw/scor160/io.py,sha256=Io-r0xtjEPlj7SOfMafVtgZPGKEN5yGvHLo-m-95eX0,26334
|
|
108
|
+
odas_tpw/scor160/l2.py,sha256=G3OcREnEX020p1FYHEBE4RHRiYBqPahU5gU73a-_Cow,10939
|
|
109
|
+
odas_tpw/scor160/l3.py,sha256=HdPv3953uLLqyg8noTI-vvir3_hlNBhQniGht2OxUdc,10231
|
|
110
|
+
odas_tpw/scor160/l4.py,sha256=36SRn6zhc0szeBQya8aYGcU9IozNm5CmOP3QnT_Uues,34355
|
|
111
|
+
odas_tpw/scor160/nasmyth.py,sha256=IOzjVXiFpnpEmcZeQmP_bGUNsiWaDHd8jNw9e16TWY0,6918
|
|
112
|
+
odas_tpw/scor160/ocean.py,sha256=Z_AUdwtQhOT_HYh668YfTK6wegtR8lvbFFnc38FuBfk,10588
|
|
113
|
+
odas_tpw/scor160/profile.py,sha256=Tgb7u13PM1ol8njGm2DThs22IO2l0ju4kPBtZKC-37E,6927
|
|
114
|
+
odas_tpw/scor160/spectral.py,sha256=uHN2WZwVu4pKErruj3r66Tr32lx3_gD4Z48VYahoiak,17295
|
|
115
|
+
microstructure_tpw-0.3.0.dist-info/METADATA,sha256=UWVv2mSaq177ZUbLmZym7sxbCIIa8U4xDjPtFdc_Mww,11231
|
|
116
|
+
microstructure_tpw-0.3.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
|
|
117
|
+
microstructure_tpw-0.3.0.dist-info/entry_points.txt,sha256=rKGQi6aFDERYNhM6RlHsbH3wAmrGm_ZbBSSI__UAuUg,256
|
|
118
|
+
microstructure_tpw-0.3.0.dist-info/top_level.txt,sha256=LzM_clMmlOp5Oc8Y2mxGdcZ78tIErHutBfFTiLi2rBE,9
|
|
119
|
+
microstructure_tpw-0.3.0.dist-info/RECORD,,
|