pyadps 0.2.0b0__tar.gz → 0.3.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.
Files changed (51) hide show
  1. {pyadps-0.2.0b0 → pyadps-0.3.0}/PKG-INFO +63 -33
  2. {pyadps-0.2.0b0 → pyadps-0.3.0}/README.md +51 -20
  3. pyadps-0.3.0/pyproject.toml +46 -0
  4. pyadps-0.3.0/src/pyadps/Home_Page.py +48 -0
  5. pyadps-0.3.0/src/pyadps/pages/01_Read_File.py +698 -0
  6. pyadps-0.3.0/src/pyadps/pages/02_View_Raw_Data.py +184 -0
  7. pyadps-0.3.0/src/pyadps/pages/03_Download_Raw_File.py +380 -0
  8. pyadps-0.3.0/src/pyadps/pages/04_Sensor_Health.py +905 -0
  9. pyadps-0.3.0/src/pyadps/pages/05_QC_Test.py +493 -0
  10. pyadps-0.3.0/src/pyadps/pages/06_Profile_Test.py +971 -0
  11. pyadps-0.3.0/src/pyadps/pages/07_Velocity_Test.py +600 -0
  12. pyadps-0.3.0/src/pyadps/pages/08_Write_File.py +623 -0
  13. pyadps-0.3.0/src/pyadps/pages/09_Add-Ons.py +168 -0
  14. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/__init__.py +5 -3
  15. pyadps-0.3.0/src/pyadps/utils/autoprocess.py +573 -0
  16. pyadps-0.3.0/src/pyadps/utils/logging_utils.py +269 -0
  17. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/metadata/config.ini +22 -4
  18. pyadps-0.3.0/src/pyadps/utils/metadata/demo.000 +0 -0
  19. pyadps-0.3.0/src/pyadps/utils/metadata/flmeta.json +422 -0
  20. pyadps-0.3.0/src/pyadps/utils/metadata/vlmeta.json +613 -0
  21. pyadps-0.3.0/src/pyadps/utils/multifile.py +292 -0
  22. pyadps-0.2.0b0/src/pyadps/utils/cutbin.py → pyadps-0.3.0/src/pyadps/utils/plotgen.py +332 -14
  23. pyadps-0.3.0/src/pyadps/utils/profile_test.py +782 -0
  24. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/pyreadrdi.py +164 -92
  25. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/readrdi.py +436 -186
  26. pyadps-0.3.0/src/pyadps/utils/script.py +205 -0
  27. pyadps-0.3.0/src/pyadps/utils/sensor_health.py +120 -0
  28. pyadps-0.3.0/src/pyadps/utils/signal_quality.py +539 -0
  29. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/velocity_test.py +79 -31
  30. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/utils/writenc.py +222 -39
  31. pyadps-0.2.0b0/pyproject.toml +0 -45
  32. pyadps-0.2.0b0/src/pyadps/Home_Page.py +0 -42
  33. pyadps-0.2.0b0/src/pyadps/pages/01_Read_File.py +0 -286
  34. pyadps-0.2.0b0/src/pyadps/pages/02_View_Raw_Data.py +0 -128
  35. pyadps-0.2.0b0/src/pyadps/pages/03_Download_Raw_File.py +0 -247
  36. pyadps-0.2.0b0/src/pyadps/pages/04_QC_Test.py +0 -334
  37. pyadps-0.2.0b0/src/pyadps/pages/05_Profile_Test.py +0 -575
  38. pyadps-0.2.0b0/src/pyadps/pages/06_Velocity_Test.py +0 -341
  39. pyadps-0.2.0b0/src/pyadps/pages/07_Write_File.py +0 -452
  40. pyadps-0.2.0b0/src/pyadps/utils/autoprocess.py +0 -282
  41. pyadps-0.2.0b0/src/pyadps/utils/metadata/flmeta.json +0 -422
  42. pyadps-0.2.0b0/src/pyadps/utils/metadata/vlmeta.json +0 -567
  43. pyadps-0.2.0b0/src/pyadps/utils/plotgen.py +0 -229
  44. pyadps-0.2.0b0/src/pyadps/utils/profile_test.py +0 -187
  45. pyadps-0.2.0b0/src/pyadps/utils/regrid.py +0 -279
  46. pyadps-0.2.0b0/src/pyadps/utils/script.py +0 -155
  47. pyadps-0.2.0b0/src/pyadps/utils/signal_quality.py +0 -135
  48. {pyadps-0.2.0b0 → pyadps-0.3.0}/LICENSE +0 -0
  49. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/__init__.py +0 -0
  50. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/__main__.py +0 -0
  51. {pyadps-0.2.0b0 → pyadps-0.3.0}/src/pyadps/pages/__init__.py +0 -0
@@ -1,8 +1,7 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pyadps
3
- Version: 0.2.0b0
3
+ Version: 0.3.0
4
4
  Summary: A Python package for ADCP data processing
5
- Home-page: https://example.com
6
5
  License: MIT
7
6
  Keywords: adcp,data-processing,oceanography
8
7
  Author: P. Amol
@@ -13,27 +12,39 @@ Classifier: Operating System :: OS Independent
13
12
  Classifier: Programming Language :: Python :: 3
14
13
  Classifier: Programming Language :: Python :: 3.12
15
14
  Classifier: Programming Language :: Python :: 3.13
16
- Provides-Extra: tests
17
15
  Requires-Dist: cmake (>=3.30.2)
18
- Requires-Dist: matplotlib (>=3.8.4)
16
+ Requires-Dist: matplotlib (>=3.8.4,<3.9.0)
19
17
  Requires-Dist: meson (>=1.4.1)
20
- Requires-Dist: netCDF4 (>=1.7.1)
21
- Requires-Dist: numpy (>=1.26.4)
22
- Requires-Dist: pandas (>=2.2.2)
23
- Requires-Dist: plotly (>=5.22.0)
24
- Requires-Dist: plotly-resampler (>=0.10.0)
25
- Requires-Dist: scipy (>=1.14.0)
26
- Requires-Dist: streamlit (>=1.36.0)
27
- Requires-Dist: wmm2020 (>=1.1.1)
28
- Project-URL: Documentation, https://example.com/docs
18
+ Requires-Dist: netCDF4 (>=1.7.1,<1.8.0)
19
+ Requires-Dist: numpy (>=1.26.4,<1.27.0)
20
+ Requires-Dist: pandas (>=2.2.2,<2.3.0)
21
+ Requires-Dist: plotly (>=5.22.0,<5.23.0)
22
+ Requires-Dist: plotly-resampler (>=0.10.0,<0.11.0)
23
+ Requires-Dist: pygeomag (>=1.1.0,<2.0.0)
24
+ Requires-Dist: scipy (>=1.14.0,<1.15.0)
25
+ Requires-Dist: streamlit (>=1.36.0,<1.37.0)
26
+ Project-URL: Documentation, https://pyadps.readthedocs.io/en/latest/index.html
29
27
  Project-URL: Repository, https://github.com/p-amol/pyadps
28
+ Project-URL: homepage, https://pyadps.readthedocs.io/en/latest/index.html
30
29
  Description-Content-Type: text/markdown
31
30
 
32
31
  # pyadps
33
32
 
34
- `pyadps` is a Python package for processing moored Acoustic Doppler Current Profiler (ADCP) data. It provides various functionalities such as data reading, quality control tests, NetCDF file creation, and visualization.
33
+ `pyadps` is a Python package for processing moored Acoustic Doppler
34
+ Current Profiler (ADCP) data. It provides various functionalities
35
+ such as data reading, quality control tests, NetCDF file creation,
36
+ and visualization.
35
37
 
36
- This software offers both a graphical interface (`Streamlit`) for those new to Python and direct Python package access for experienced users. Please note that `pyadps` is primarily designed for Teledyne RDI workhorse ADCPs. Other company's ADCP files are not compatible, and while some other RDI models may work, they might require additional considerations.
38
+ This software offers both a graphical interface (`Streamlit`) for
39
+ those new to Python and direct Python package access for experienced
40
+ users. Please note that `pyadps` is primarily designed for Teledyne
41
+ RDI workhorse ADCPs. Other company's ADCP files are not compatible,
42
+ and while some other RDI models may work, they might require additional
43
+ considerations.
44
+
45
+ - Documentation: <https://pyadps.readthedocs.io>
46
+ - Source code: <https://github.com/p-amol/pyadps>
47
+ - Bug reports: <https://github.com/p-amol/pyadps/issues>
37
48
 
38
49
  ## Table of Contents
39
50
 
@@ -43,37 +54,49 @@ This software offers both a graphical interface (`Streamlit`) for those new to P
43
54
 
44
55
  ## Installation
45
56
 
46
- We recommend installing the package within a virtual environment. At present, the package is compatible exclusively with Python version 3.12.
47
- You can create a Python environment using tools like `venv` or `conda`. Below are instructions for both methods.
57
+ We recommend installing the package within a virtual environment.
58
+ At present, the package is compatible exclusively with Python version 3.12.
59
+ You can create a Python environment using tools like `venv` or `conda`.
60
+ Below are instructions for both methods.
48
61
 
49
62
  ### 1. Using `venv` (Built-in Python Tool)
50
63
 
51
64
  #### Step 1: Install Python version 3.12 (if not already installed)
65
+
52
66
  Ensure you have Python installed. You can download the latest version from [python.org](https://www.python.org/downloads/).
53
67
 
54
- #### Step 2: Create a Virtual Environment
68
+ #### Step 2: Create a Virtual Environment
69
+
55
70
  - Open your terminal or command prompt.
56
71
  - Navigate to your project folder:
72
+
57
73
  ```bash
58
74
  cd /path/to/your/project
59
75
  ```
60
- - Run the following command to create a virtual environment (replace adpsenv with your preferred environment name):
76
+
77
+ - Run the following command to create a virtual environment
78
+ (replace adpsenv with your preferred environment name):
61
79
 
62
80
  ```bash
63
81
  python -m venv adpsenv
64
82
  ```
65
83
 
66
84
  #### Step 3: Activate the Environment
85
+
67
86
  - On Windows:
87
+
68
88
  ```bash
69
89
  adpsenv\Scripts\activate
70
90
  ```
71
91
 
72
92
  - On macOS/Linux:
93
+
73
94
  ```bash
74
95
  source adpsenv/bin/activate
75
96
  ```
76
- You’ll see the environment name in your terminal prompt indicating the environment is active.
97
+
98
+ You’ll see the environment name in your terminal prompt
99
+ indicating the environment is active.
77
100
 
78
101
  #### Step 4: Install Dependencies
79
102
 
@@ -84,44 +107,51 @@ pip install pyadps
84
107
  ```
85
108
 
86
109
  #### Step 5: Deactivate the Environment
110
+
87
111
  When you’re done working in the environment, deactivate it by running:
88
112
 
89
113
  ```bash
90
114
  deactivate
91
115
  ```
92
116
 
93
-
94
-
95
-
96
- ### 2. Using `conda` (Anaconda/Miniconda):
117
+ ### 2. Using `conda` (Anaconda/Miniconda)
97
118
 
98
119
  #### Step 1: Install Conda
120
+
99
121
  First, you need to have Conda installed on your system. You can either install:
100
122
 
101
123
  - [Anaconda (Full Distribution)](https://www.anaconda.com/products/individual)
102
124
  - [Miniconda (Lightweight Version)](https://docs.conda.io/en/latest/miniconda.html)
103
125
 
104
126
  #### Step 2: Create a Conda Environment with Python 3.12
105
- Once Conda is installed, open a terminal or command prompt and run the following to create a new environment (replace `adpsenv` with your preferred environment name):
127
+
128
+ Once Conda is installed, open a terminal or command prompt and run
129
+ the following to create a new environment (replace `adpsenv` with
130
+ your preferred environment name):
106
131
 
107
132
  ```bash
108
133
  conda create --name adpsenv python=3.12
109
134
  ```
110
135
 
111
- #### Step 3: Activate the Environment
136
+ #### Step 3: Activate the Conda Environment
137
+
112
138
  ```bash
113
139
  conda activate adpsenv
114
140
  ```
115
141
 
116
- #### Step 4: Install Dependencies
117
- You can install packages with pip inside Conda environments.
142
+ #### Step 4: Install pyadps Dependencies
143
+
144
+ You can install packages with pip inside Conda environments.
145
+
118
146
  ```bash
119
147
  pip install pyadps
120
148
  ```
121
149
 
122
- #### Step 5: Deactivate the Environment
123
- When done, deactivate the environment by running:
124
- ```
150
+ #### Step 5: Deactivate the Conda Environment
151
+
152
+ When done working in the environment, deactivate the environment by running:
153
+
154
+ ```bash
125
155
  conda deactivate
126
156
  ```
127
157
 
@@ -130,11 +160,11 @@ conda deactivate
130
160
  ### Streamlit web interface
131
161
 
132
162
  Open a terminal or command prompt, activate the environment, and run the command.
163
+
133
164
  ```bash
134
165
  run-pyadps
135
166
  ```
136
167
 
137
-
138
168
  ## License
139
169
 
140
170
  This project is licensed under the MIT License. See the LICENSE file for details.
@@ -1,8 +1,20 @@
1
1
  # pyadps
2
2
 
3
- `pyadps` is a Python package for processing moored Acoustic Doppler Current Profiler (ADCP) data. It provides various functionalities such as data reading, quality control tests, NetCDF file creation, and visualization.
4
-
5
- This software offers both a graphical interface (`Streamlit`) for those new to Python and direct Python package access for experienced users. Please note that `pyadps` is primarily designed for Teledyne RDI workhorse ADCPs. Other company's ADCP files are not compatible, and while some other RDI models may work, they might require additional considerations.
3
+ `pyadps` is a Python package for processing moored Acoustic Doppler
4
+ Current Profiler (ADCP) data. It provides various functionalities
5
+ such as data reading, quality control tests, NetCDF file creation,
6
+ and visualization.
7
+
8
+ This software offers both a graphical interface (`Streamlit`) for
9
+ those new to Python and direct Python package access for experienced
10
+ users. Please note that `pyadps` is primarily designed for Teledyne
11
+ RDI workhorse ADCPs. Other company's ADCP files are not compatible,
12
+ and while some other RDI models may work, they might require additional
13
+ considerations.
14
+
15
+ - Documentation: <https://pyadps.readthedocs.io>
16
+ - Source code: <https://github.com/p-amol/pyadps>
17
+ - Bug reports: <https://github.com/p-amol/pyadps/issues>
6
18
 
7
19
  ## Table of Contents
8
20
 
@@ -12,37 +24,49 @@ This software offers both a graphical interface (`Streamlit`) for those new to P
12
24
 
13
25
  ## Installation
14
26
 
15
- We recommend installing the package within a virtual environment. At present, the package is compatible exclusively with Python version 3.12.
16
- You can create a Python environment using tools like `venv` or `conda`. Below are instructions for both methods.
27
+ We recommend installing the package within a virtual environment.
28
+ At present, the package is compatible exclusively with Python version 3.12.
29
+ You can create a Python environment using tools like `venv` or `conda`.
30
+ Below are instructions for both methods.
17
31
 
18
32
  ### 1. Using `venv` (Built-in Python Tool)
19
33
 
20
34
  #### Step 1: Install Python version 3.12 (if not already installed)
35
+
21
36
  Ensure you have Python installed. You can download the latest version from [python.org](https://www.python.org/downloads/).
22
37
 
23
- #### Step 2: Create a Virtual Environment
38
+ #### Step 2: Create a Virtual Environment
39
+
24
40
  - Open your terminal or command prompt.
25
41
  - Navigate to your project folder:
42
+
26
43
  ```bash
27
44
  cd /path/to/your/project
28
45
  ```
29
- - Run the following command to create a virtual environment (replace adpsenv with your preferred environment name):
46
+
47
+ - Run the following command to create a virtual environment
48
+ (replace adpsenv with your preferred environment name):
30
49
 
31
50
  ```bash
32
51
  python -m venv adpsenv
33
52
  ```
34
53
 
35
54
  #### Step 3: Activate the Environment
55
+
36
56
  - On Windows:
57
+
37
58
  ```bash
38
59
  adpsenv\Scripts\activate
39
60
  ```
40
61
 
41
62
  - On macOS/Linux:
63
+
42
64
  ```bash
43
65
  source adpsenv/bin/activate
44
66
  ```
45
- You’ll see the environment name in your terminal prompt indicating the environment is active.
67
+
68
+ You’ll see the environment name in your terminal prompt
69
+ indicating the environment is active.
46
70
 
47
71
  #### Step 4: Install Dependencies
48
72
 
@@ -53,44 +77,51 @@ pip install pyadps
53
77
  ```
54
78
 
55
79
  #### Step 5: Deactivate the Environment
80
+
56
81
  When you’re done working in the environment, deactivate it by running:
57
82
 
58
83
  ```bash
59
84
  deactivate
60
85
  ```
61
86
 
62
-
63
-
64
-
65
- ### 2. Using `conda` (Anaconda/Miniconda):
87
+ ### 2. Using `conda` (Anaconda/Miniconda)
66
88
 
67
89
  #### Step 1: Install Conda
90
+
68
91
  First, you need to have Conda installed on your system. You can either install:
69
92
 
70
93
  - [Anaconda (Full Distribution)](https://www.anaconda.com/products/individual)
71
94
  - [Miniconda (Lightweight Version)](https://docs.conda.io/en/latest/miniconda.html)
72
95
 
73
96
  #### Step 2: Create a Conda Environment with Python 3.12
74
- Once Conda is installed, open a terminal or command prompt and run the following to create a new environment (replace `adpsenv` with your preferred environment name):
97
+
98
+ Once Conda is installed, open a terminal or command prompt and run
99
+ the following to create a new environment (replace `adpsenv` with
100
+ your preferred environment name):
75
101
 
76
102
  ```bash
77
103
  conda create --name adpsenv python=3.12
78
104
  ```
79
105
 
80
- #### Step 3: Activate the Environment
106
+ #### Step 3: Activate the Conda Environment
107
+
81
108
  ```bash
82
109
  conda activate adpsenv
83
110
  ```
84
111
 
85
- #### Step 4: Install Dependencies
86
- You can install packages with pip inside Conda environments.
112
+ #### Step 4: Install pyadps Dependencies
113
+
114
+ You can install packages with pip inside Conda environments.
115
+
87
116
  ```bash
88
117
  pip install pyadps
89
118
  ```
90
119
 
91
- #### Step 5: Deactivate the Environment
92
- When done, deactivate the environment by running:
93
- ```
120
+ #### Step 5: Deactivate the Conda Environment
121
+
122
+ When done working in the environment, deactivate the environment by running:
123
+
124
+ ```bash
94
125
  conda deactivate
95
126
  ```
96
127
 
@@ -99,11 +130,11 @@ conda deactivate
99
130
  ### Streamlit web interface
100
131
 
101
132
  Open a terminal or command prompt, activate the environment, and run the command.
133
+
102
134
  ```bash
103
135
  run-pyadps
104
136
  ```
105
137
 
106
-
107
138
  ## License
108
139
 
109
140
  This project is licensed under the MIT License. See the LICENSE file for details.
@@ -0,0 +1,46 @@
1
+ [tool.poetry]
2
+ name = "pyadps"
3
+ version = "0.3.0"
4
+ description = "A Python package for ADCP data processing"
5
+ authors = ["P. Amol <prakashamol@gmail.com>"]
6
+ readme = "README.md"
7
+ license = "MIT"
8
+ keywords = ["adcp", "data-processing", "oceanography"]
9
+ include = ["utils/metadata/*.json"]
10
+ classifiers = [
11
+ "Programming Language :: Python :: 3",
12
+ "License :: OSI Approved :: MIT License",
13
+ "Operating System :: OS Independent",
14
+ ]
15
+
16
+ [tool.poetry.urls]
17
+ homepage = "https://pyadps.readthedocs.io/en/latest/index.html"
18
+ Documentation = "https://pyadps.readthedocs.io/en/latest/index.html"
19
+ Repository = "https://github.com/p-amol/pyadps"
20
+
21
+ [tool.poetry.dependencies]
22
+ python = "<4.0.0,>=3.12"
23
+ streamlit = "~=1.36.0"
24
+ numpy = "~=1.26.4"
25
+ matplotlib = "~=3.8.4"
26
+ scipy = "~=1.14.0"
27
+ cmake = ">=3.30.2"
28
+ pandas = "~=2.2.2"
29
+ netCDF4 = "~=1.7.1"
30
+ plotly = "~=5.22.0"
31
+ plotly-resampler = "~=0.10.0"
32
+ meson = ">=1.4.1"
33
+ pygeomag = "^1.1.0"
34
+
35
+ [tool.poetry.group.dev.dependencies]
36
+ pytest = "^7.4"
37
+ ruff = "^0.5.0"
38
+
39
+ [tool.poetry.scripts]
40
+ run-pyadps = "pyadps.__main__:main"
41
+ run-auto = "pyadps.utils.autoprocess:main"
42
+ run-script = "pyadps.utils.script:main"
43
+
44
+ [build-system]
45
+ requires = ["poetry-core>=1.0.0"]
46
+ build-backend = "poetry.core.masonry.api"
@@ -0,0 +1,48 @@
1
+ import streamlit as st
2
+
3
+
4
+ def main():
5
+ st.set_page_config(
6
+ page_title="ADCP Data Processing Software",
7
+ page_icon=":world_map:️",
8
+ layout="wide",
9
+ initial_sidebar_state="auto",
10
+ menu_items={
11
+ "Get Help": "https://github.com/p-amol/pyadps",
12
+ "Report a bug": "https://github.com/p-amol/pyadps/issues",
13
+ "About": "# Python ADCP Data Processing Software (PyADPS)",
14
+ },
15
+ )
16
+
17
+ """
18
+ # **Python ADCP Data Processing Software (pyadps)**
19
+
20
+ `pyadps` is a Python package for processing moored Acoustic Doppler Current Profiler (ADCP) data. It provides various functionalities such as data reading, quality control tests, NetCDF file creation, and visualization.
21
+
22
+ This software offers both a graphical interface (Streamlit) for those new to Python and direct Python package access for experienced users. Please note that pyadps is primarily designed for Teledyne RDI workhorse ADCPs. Other company's ADCP files are not compatible, and while some other RDI models may work, they might require additional considerations.
23
+
24
+ * Documentation: https://pyadps.readthedocs.io
25
+ * Source code: https://github.com/p-amol/pyadps
26
+ * Bug reports: https://github.com/p-amol/pyadps/issues
27
+ ## Features
28
+
29
+ * Access RDI ADCP binary files using Python 3
30
+ * Convert RDI binary files to netcdf
31
+ * Process ADCP data
32
+
33
+ ## Contribute
34
+ Issue Tracker: https://github.com/p-amol/pyadps/issues
35
+ Source Code: https://github.com/p-amol/pyadps
36
+
37
+ ## Support
38
+ If you are having issues, please let us know.
39
+ We have a mailing list located at: adps-python@google-groups.com
40
+
41
+ ## License
42
+ The project is licensed under the MIT license.
43
+
44
+ """
45
+
46
+
47
+ if __name__ == "__main__":
48
+ main()