ras-commander 0.34.0__tar.gz → 0.36.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.
- {ras_commander-0.34.0/ras_commander.egg-info → ras_commander-0.36.0}/PKG-INFO +73 -13
- {ras_commander-0.34.0 → ras_commander-0.36.0}/README.md +66 -8
- ras_commander-0.36.0/ras_commander/RasCmdr.py +510 -0
- ras_commander-0.36.0/ras_commander/RasExamples.py +551 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/RasGeo.py +38 -28
- ras_commander-0.36.0/ras_commander/RasGpt.py +142 -0
- ras_commander-0.36.0/ras_commander/RasHdf.py +1619 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/RasPlan.py +123 -167
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/RasPrj.py +213 -136
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/RasUnsteady.py +37 -22
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/RasUtils.py +98 -82
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander/__init__.py +11 -13
- ras_commander-0.36.0/ras_commander/logging_config.py +80 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0/ras_commander.egg-info}/PKG-INFO +73 -13
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander.egg-info/SOURCES.txt +2 -1
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander.egg-info/requires.txt +4 -3
- {ras_commander-0.34.0 → ras_commander-0.36.0}/setup.py +29 -12
- ras_commander-0.34.0/ras_commander/RasCmdr.py +0 -481
- ras_commander-0.34.0/ras_commander/RasExamples.py +0 -354
- ras_commander-0.34.0/ras_commander/RasHdf.py +0 -248
- ras_commander-0.34.0/ras_commander/_version.py +0 -16
- {ras_commander-0.34.0 → ras_commander-0.36.0}/LICENSE +0 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/pyproject.toml +0 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander.egg-info/dependency_links.txt +0 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/ras_commander.egg-info/top_level.txt +0 -0
- {ras_commander-0.34.0 → ras_commander-0.36.0}/setup.cfg +0 -0
@@ -1,23 +1,25 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ras-commander
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.36.0
|
4
4
|
Summary: A Python library for automating HEC-RAS operations
|
5
5
|
Home-page: https://github.com/billk-FM/ras-commander
|
6
6
|
Author: William M. Katzenmeyer
|
7
7
|
Author-email: billk@fenstermaker.com
|
8
|
-
Classifier: Programming Language :: Python :: 3
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
9
10
|
Classifier: License :: OSI Approved :: MIT License
|
10
11
|
Classifier: Operating System :: OS Independent
|
11
12
|
Requires-Python: >=3.9
|
12
13
|
Description-Content-Type: text/markdown
|
13
14
|
License-File: LICENSE
|
14
|
-
Requires-Dist: pandas>=
|
15
|
-
Requires-Dist: numpy>=
|
15
|
+
Requires-Dist: pandas>=2.0
|
16
|
+
Requires-Dist: numpy>=2.0
|
16
17
|
Requires-Dist: h5py>=3.1.0
|
17
18
|
Requires-Dist: requests>=2.25.0
|
18
|
-
Requires-Dist: pathlib>=1.0.1
|
19
19
|
Requires-Dist: scipy>=1.5.0
|
20
20
|
Requires-Dist: matplotlib>=3.3.0
|
21
|
+
Requires-Dist: tqdm>=4.50.0
|
22
|
+
Requires-Dist: psutil>=5.7.0
|
21
23
|
Provides-Extra: dev
|
22
24
|
Requires-Dist: pytest>=6.2.0; extra == "dev"
|
23
25
|
Requires-Dist: flake8>=3.9.0; extra == "dev"
|
@@ -31,14 +33,21 @@ Requires-Dist: twine>=3.3.0; extra == "dev"
|
|
31
33
|
RAS Commander is a Python library for automating HEC-RAS operations, providing a set of tools to interact with HEC-RAS project files, execute simulations, and manage project data. This library is an evolution of the RASCommander 1.0 Python Notebook Application previously released under the [HEC-Commander tools repository](https://github.com/billk-FM/HEC-Commander).
|
32
34
|
|
33
35
|
## Contributors:
|
34
|
-
William Katzenmeyer, P.E., C.F.M.
|
36
|
+
William Katzenmeyer, P.E., C.F.M.
|
35
37
|
|
36
|
-
Sean Micek, P.E., C.F.M.
|
38
|
+
Sean Micek, P.E., C.F.M.
|
37
39
|
|
38
|
-
Aaron Nichols, P.E., C.F.M.
|
40
|
+
Aaron Nichols, P.E., C.F.M.
|
39
41
|
|
40
42
|
(Additional Contributors Here)
|
41
43
|
|
44
|
+
## Don't Ask Me, Ask ChatGPT!
|
45
|
+
|
46
|
+
Before you read any further, you can [chat directly with ChatGPT on this topic.](https://chatgpt.com/g/g-TZRPR3oAO-ras-commander-library-assistant) Ask it anything, and it will use its tools to answer your questions and help you learn. You can even upload your own plan, unsteady and HDF files to inspect and help determine how to automate your workflows or visualize your results.
|
47
|
+
|
48
|
+
There are also [AI Assistant Knowledge Bases](https://github.com/billk-FM/ras-commander/tree/main/ai_tools/assistant_knowledge_bases) with various versions available to directly use with large context LLM models such as Anthropic's Claude, Google Gemini and OpenAI's GPT4o and o1 models.
|
49
|
+
|
50
|
+
FUTURE: TEMPLATES are available to use with AI Assistant Notebooks to build your own automation tools. When used with large context models, these templates allow you to ask GPT to build a workflow from scratch to automate your projects.
|
42
51
|
|
43
52
|
## Background
|
44
53
|
The ras-commander library emerged from the initial test-bed of AI-driven coding represented by the HEC-Commander tools Python notebooks. These notebooks served as a proof of concept, demonstrating the value proposition of automating HEC-RAS operations. The transition from notebooks to a structured library aims to provide a more robust, maintainable, and extensible solution for water resources engineers.
|
@@ -116,18 +125,21 @@ results = RasCmdr.compute_parallel(
|
|
116
125
|
RasPlan.set_geom("01", "02")
|
117
126
|
```
|
118
127
|
|
128
|
+
Certainly! I'll provide you with an updated Key Components section and Project Organization diagram based on the current structure of the ras-commander library.
|
129
|
+
|
119
130
|
## Key Components
|
120
131
|
|
121
|
-
- `RasPrj`: Manages HEC-RAS projects
|
132
|
+
- `RasPrj`: Manages HEC-RAS projects, handling initialization and data loading
|
122
133
|
- `RasCmdr`: Handles execution of HEC-RAS simulations
|
123
134
|
- `RasPlan`: Provides functions for modifying and updating plan files
|
124
135
|
- `RasGeo`: Handles operations related to geometry files
|
125
136
|
- `RasUnsteady`: Manages unsteady flow file operations
|
126
137
|
- `RasUtils`: Contains utility functions for file operations and data management
|
127
138
|
- `RasExamples`: Manages and loads HEC-RAS example projects
|
128
|
-
|
139
|
+
- `RasHdf`: Provides utilities for working with HDF files in HEC-RAS projects
|
129
140
|
|
130
141
|
## Project Organization Diagram
|
142
|
+
|
131
143
|
```
|
132
144
|
ras_commander
|
133
145
|
├── .github
|
@@ -135,9 +147,11 @@ ras_commander
|
|
135
147
|
│ └── python-package.yml
|
136
148
|
├── ras_commander
|
137
149
|
│ ├── __init__.py
|
150
|
+
│ ├── _version.py
|
138
151
|
│ ├── RasCmdr.py
|
139
152
|
│ ├── RasExamples.py
|
140
153
|
│ ├── RasGeo.py
|
154
|
+
│ ├── RasHdf.py
|
141
155
|
│ ├── RasPlan.py
|
142
156
|
│ ├── RasPrj.py
|
143
157
|
│ ├── RasUnsteady.py
|
@@ -155,7 +169,12 @@ ras_commander
|
|
155
169
|
│ ├── 10_arguments_for_compute.py
|
156
170
|
│ ├── 11_Using_RasExamples.ipynb
|
157
171
|
│ ├── 12_plan_set_execution.py
|
158
|
-
│
|
172
|
+
│ ├── 13_multiple_project_operations.py
|
173
|
+
│ ├── 14_Core_Sensitivity.ipynb
|
174
|
+
│ ├── 15_plan_key_operations.py
|
175
|
+
│ ├── 16_scanning_ras_project_info.py
|
176
|
+
│ ├── 17_parallel_execution_ble.py
|
177
|
+
│ └── HEC_RAS_2D_HDF_Analysis.ipynb
|
159
178
|
├── tests
|
160
179
|
│ └── ... (test files)
|
161
180
|
├── .gitignore
|
@@ -190,7 +209,6 @@ projects = ras_examples.list_projects("Steady Flow")
|
|
190
209
|
extracted_paths = ras_examples.extract_project(["Bald Eagle Creek", "Muncie"])
|
191
210
|
```
|
192
211
|
|
193
|
-
|
194
212
|
## RasPrj
|
195
213
|
|
196
214
|
The `RasPrj` class is central to managing HEC-RAS projects within the ras-commander library. It handles project initialization, data loading, and provides access to project components.
|
@@ -218,6 +236,28 @@ custom_project = RasPrj()
|
|
218
236
|
init_ras_project("/path/to/another_project", "6.5", ras_instance=custom_project)
|
219
237
|
```
|
220
238
|
|
239
|
+
## RasHdf
|
240
|
+
|
241
|
+
The `RasHdf` class provides utilities for working with HDF files in HEC-RAS projects, enabling easy access to simulation results and model data.
|
242
|
+
|
243
|
+
Example usage:
|
244
|
+
|
245
|
+
```python
|
246
|
+
from ras_commander import RasHdf, init_ras_project, RasPrj
|
247
|
+
|
248
|
+
# Initialize project with a custom ras object
|
249
|
+
custom_ras = RasPrj()
|
250
|
+
init_ras_project("/path/to/project", "6.5", ras_instance=custom_ras)
|
251
|
+
|
252
|
+
# Get runtime data for a specific plan
|
253
|
+
plan_number = "01"
|
254
|
+
runtime_data = RasHdf.get_runtime_data(plan_number, ras_object=custom_ras)
|
255
|
+
print(runtime_data)
|
256
|
+
```
|
257
|
+
|
258
|
+
This class simplifies the process of extracting and analyzing data from HEC-RAS HDF output files, supporting tasks such as post-processing and result visualization.
|
259
|
+
|
260
|
+
|
221
261
|
## Documentation
|
222
262
|
|
223
263
|
For detailed usage instructions and API documentation, please refer to the [Comprehensive Library Guide](Comprehensive_Library_Guide.md).
|
@@ -255,7 +295,27 @@ ras-commander is released under the MIT License. See the license file for detail
|
|
255
295
|
|
256
296
|
## Acknowledgments
|
257
297
|
|
258
|
-
RAS Commander is based on the HEC-Commander project's "Command Line is All You Need" approach, leveraging the HEC-RAS command-line interface for automation. The initial development of this library was presented in the HEC-Commander Tools repository.
|
298
|
+
RAS Commander is based on the HEC-Commander project's "Command Line is All You Need" approach, leveraging the HEC-RAS command-line interface for automation. The initial development of this library was presented in the HEC-Commander Tools repository. In a 2024 Australian Water School webinar, Bill demonstrated the derivation of basic HEC-RAS automation functions from plain language instructions. Leveraging the previously developed code and AI tools, the library was created. The primary tools used for this initial development were Anthropic's Claude, GPT-4, Google's Gemini Experimental models, and the Cursor AI Coding IDE.
|
299
|
+
|
300
|
+
Additionally, we would like to acknowledge the following notable contributions and attributions for open source projects which significantly influenced the development of RAS Commander:
|
301
|
+
|
302
|
+
1. Contributions: Sean Micek's [`funkshuns`](https://github.com/openSourcerer9000/funkshuns), [`TXTure`](https://github.com/openSourcerer9000/TXTure), and [`RASmatazz`](https://github.com/openSourcerer9000/RASmatazz) libraries provided inspiration, code examples and utility functions which were adapted with AI for use in RAS Commander. Sean has also contributed heavily to
|
303
|
+
|
304
|
+
- Development of additional HDF functions for detailed analysis and mapping of HEC-RAS results within the RasHdf class.
|
305
|
+
- Development of the prototype `RasCmdr` class for executing HEC-RAS simulations.
|
306
|
+
- Optimization examples and methods from (INSERT REFERENCE) for use in the Ras-Commander library examples
|
307
|
+
|
308
|
+
2. Attribution: The [`pyHMT2D`](https://github.com/psu-efd/pyHMT2D/) project by Xiaofeng Liu, which provided insights into HDF file handling methods for HEC-RAS outputs. Many of the functions in the [Ras_2D_Data.py](https://github.com/psu-efd/pyHMT2D/blob/main/pyHMT2D/Hydraulic_Models_Data/RAS_2D/RAS_2D_Data.py) file were adapted with AI for use in RAS Commander.
|
309
|
+
|
310
|
+
Xiaofeng Liu, Ph.D., P.E., Associate Professor, Department of Civil and Environmental Engineering
|
311
|
+
Institute of Computational and Data Sciences, Penn State University
|
312
|
+
|
313
|
+
These acknowledgments recognize the contributions and inspirations that have helped shape RAS Commander, ensuring proper attribution for the ideas and code that have influenced its development.
|
314
|
+
|
315
|
+
3. Chris Goodell, "Breaking the HEC-RAS Code" - Studied and used as a reference for understanding the inner workings of HEC-RAS, providing valuable insights into the software's functionality and structure.
|
316
|
+
|
317
|
+
4. [HEC-Commander Tools](https://github.com/billk-FM/HEC-Commander) - Inspiration and initial code base for the development of RAS Commander.
|
318
|
+
|
259
319
|
|
260
320
|
## Contact
|
261
321
|
|
@@ -3,14 +3,21 @@
|
|
3
3
|
RAS Commander is a Python library for automating HEC-RAS operations, providing a set of tools to interact with HEC-RAS project files, execute simulations, and manage project data. This library is an evolution of the RASCommander 1.0 Python Notebook Application previously released under the [HEC-Commander tools repository](https://github.com/billk-FM/HEC-Commander).
|
4
4
|
|
5
5
|
## Contributors:
|
6
|
-
William Katzenmeyer, P.E., C.F.M.
|
6
|
+
William Katzenmeyer, P.E., C.F.M.
|
7
7
|
|
8
|
-
Sean Micek, P.E., C.F.M.
|
8
|
+
Sean Micek, P.E., C.F.M.
|
9
9
|
|
10
|
-
Aaron Nichols, P.E., C.F.M.
|
10
|
+
Aaron Nichols, P.E., C.F.M.
|
11
11
|
|
12
12
|
(Additional Contributors Here)
|
13
13
|
|
14
|
+
## Don't Ask Me, Ask ChatGPT!
|
15
|
+
|
16
|
+
Before you read any further, you can [chat directly with ChatGPT on this topic.](https://chatgpt.com/g/g-TZRPR3oAO-ras-commander-library-assistant) Ask it anything, and it will use its tools to answer your questions and help you learn. You can even upload your own plan, unsteady and HDF files to inspect and help determine how to automate your workflows or visualize your results.
|
17
|
+
|
18
|
+
There are also [AI Assistant Knowledge Bases](https://github.com/billk-FM/ras-commander/tree/main/ai_tools/assistant_knowledge_bases) with various versions available to directly use with large context LLM models such as Anthropic's Claude, Google Gemini and OpenAI's GPT4o and o1 models.
|
19
|
+
|
20
|
+
FUTURE: TEMPLATES are available to use with AI Assistant Notebooks to build your own automation tools. When used with large context models, these templates allow you to ask GPT to build a workflow from scratch to automate your projects.
|
14
21
|
|
15
22
|
## Background
|
16
23
|
The ras-commander library emerged from the initial test-bed of AI-driven coding represented by the HEC-Commander tools Python notebooks. These notebooks served as a proof of concept, demonstrating the value proposition of automating HEC-RAS operations. The transition from notebooks to a structured library aims to provide a more robust, maintainable, and extensible solution for water resources engineers.
|
@@ -88,18 +95,21 @@ results = RasCmdr.compute_parallel(
|
|
88
95
|
RasPlan.set_geom("01", "02")
|
89
96
|
```
|
90
97
|
|
98
|
+
Certainly! I'll provide you with an updated Key Components section and Project Organization diagram based on the current structure of the ras-commander library.
|
99
|
+
|
91
100
|
## Key Components
|
92
101
|
|
93
|
-
- `RasPrj`: Manages HEC-RAS projects
|
102
|
+
- `RasPrj`: Manages HEC-RAS projects, handling initialization and data loading
|
94
103
|
- `RasCmdr`: Handles execution of HEC-RAS simulations
|
95
104
|
- `RasPlan`: Provides functions for modifying and updating plan files
|
96
105
|
- `RasGeo`: Handles operations related to geometry files
|
97
106
|
- `RasUnsteady`: Manages unsteady flow file operations
|
98
107
|
- `RasUtils`: Contains utility functions for file operations and data management
|
99
108
|
- `RasExamples`: Manages and loads HEC-RAS example projects
|
100
|
-
|
109
|
+
- `RasHdf`: Provides utilities for working with HDF files in HEC-RAS projects
|
101
110
|
|
102
111
|
## Project Organization Diagram
|
112
|
+
|
103
113
|
```
|
104
114
|
ras_commander
|
105
115
|
├── .github
|
@@ -107,9 +117,11 @@ ras_commander
|
|
107
117
|
│ └── python-package.yml
|
108
118
|
├── ras_commander
|
109
119
|
│ ├── __init__.py
|
120
|
+
│ ├── _version.py
|
110
121
|
│ ├── RasCmdr.py
|
111
122
|
│ ├── RasExamples.py
|
112
123
|
│ ├── RasGeo.py
|
124
|
+
│ ├── RasHdf.py
|
113
125
|
│ ├── RasPlan.py
|
114
126
|
│ ├── RasPrj.py
|
115
127
|
│ ├── RasUnsteady.py
|
@@ -127,7 +139,12 @@ ras_commander
|
|
127
139
|
│ ├── 10_arguments_for_compute.py
|
128
140
|
│ ├── 11_Using_RasExamples.ipynb
|
129
141
|
│ ├── 12_plan_set_execution.py
|
130
|
-
│
|
142
|
+
│ ├── 13_multiple_project_operations.py
|
143
|
+
│ ├── 14_Core_Sensitivity.ipynb
|
144
|
+
│ ├── 15_plan_key_operations.py
|
145
|
+
│ ├── 16_scanning_ras_project_info.py
|
146
|
+
│ ├── 17_parallel_execution_ble.py
|
147
|
+
│ └── HEC_RAS_2D_HDF_Analysis.ipynb
|
131
148
|
├── tests
|
132
149
|
│ └── ... (test files)
|
133
150
|
├── .gitignore
|
@@ -162,7 +179,6 @@ projects = ras_examples.list_projects("Steady Flow")
|
|
162
179
|
extracted_paths = ras_examples.extract_project(["Bald Eagle Creek", "Muncie"])
|
163
180
|
```
|
164
181
|
|
165
|
-
|
166
182
|
## RasPrj
|
167
183
|
|
168
184
|
The `RasPrj` class is central to managing HEC-RAS projects within the ras-commander library. It handles project initialization, data loading, and provides access to project components.
|
@@ -190,6 +206,28 @@ custom_project = RasPrj()
|
|
190
206
|
init_ras_project("/path/to/another_project", "6.5", ras_instance=custom_project)
|
191
207
|
```
|
192
208
|
|
209
|
+
## RasHdf
|
210
|
+
|
211
|
+
The `RasHdf` class provides utilities for working with HDF files in HEC-RAS projects, enabling easy access to simulation results and model data.
|
212
|
+
|
213
|
+
Example usage:
|
214
|
+
|
215
|
+
```python
|
216
|
+
from ras_commander import RasHdf, init_ras_project, RasPrj
|
217
|
+
|
218
|
+
# Initialize project with a custom ras object
|
219
|
+
custom_ras = RasPrj()
|
220
|
+
init_ras_project("/path/to/project", "6.5", ras_instance=custom_ras)
|
221
|
+
|
222
|
+
# Get runtime data for a specific plan
|
223
|
+
plan_number = "01"
|
224
|
+
runtime_data = RasHdf.get_runtime_data(plan_number, ras_object=custom_ras)
|
225
|
+
print(runtime_data)
|
226
|
+
```
|
227
|
+
|
228
|
+
This class simplifies the process of extracting and analyzing data from HEC-RAS HDF output files, supporting tasks such as post-processing and result visualization.
|
229
|
+
|
230
|
+
|
193
231
|
## Documentation
|
194
232
|
|
195
233
|
For detailed usage instructions and API documentation, please refer to the [Comprehensive Library Guide](Comprehensive_Library_Guide.md).
|
@@ -227,7 +265,27 @@ ras-commander is released under the MIT License. See the license file for detail
|
|
227
265
|
|
228
266
|
## Acknowledgments
|
229
267
|
|
230
|
-
RAS Commander is based on the HEC-Commander project's "Command Line is All You Need" approach, leveraging the HEC-RAS command-line interface for automation. The initial development of this library was presented in the HEC-Commander Tools repository.
|
268
|
+
RAS Commander is based on the HEC-Commander project's "Command Line is All You Need" approach, leveraging the HEC-RAS command-line interface for automation. The initial development of this library was presented in the HEC-Commander Tools repository. In a 2024 Australian Water School webinar, Bill demonstrated the derivation of basic HEC-RAS automation functions from plain language instructions. Leveraging the previously developed code and AI tools, the library was created. The primary tools used for this initial development were Anthropic's Claude, GPT-4, Google's Gemini Experimental models, and the Cursor AI Coding IDE.
|
269
|
+
|
270
|
+
Additionally, we would like to acknowledge the following notable contributions and attributions for open source projects which significantly influenced the development of RAS Commander:
|
271
|
+
|
272
|
+
1. Contributions: Sean Micek's [`funkshuns`](https://github.com/openSourcerer9000/funkshuns), [`TXTure`](https://github.com/openSourcerer9000/TXTure), and [`RASmatazz`](https://github.com/openSourcerer9000/RASmatazz) libraries provided inspiration, code examples and utility functions which were adapted with AI for use in RAS Commander. Sean has also contributed heavily to
|
273
|
+
|
274
|
+
- Development of additional HDF functions for detailed analysis and mapping of HEC-RAS results within the RasHdf class.
|
275
|
+
- Development of the prototype `RasCmdr` class for executing HEC-RAS simulations.
|
276
|
+
- Optimization examples and methods from (INSERT REFERENCE) for use in the Ras-Commander library examples
|
277
|
+
|
278
|
+
2. Attribution: The [`pyHMT2D`](https://github.com/psu-efd/pyHMT2D/) project by Xiaofeng Liu, which provided insights into HDF file handling methods for HEC-RAS outputs. Many of the functions in the [Ras_2D_Data.py](https://github.com/psu-efd/pyHMT2D/blob/main/pyHMT2D/Hydraulic_Models_Data/RAS_2D/RAS_2D_Data.py) file were adapted with AI for use in RAS Commander.
|
279
|
+
|
280
|
+
Xiaofeng Liu, Ph.D., P.E., Associate Professor, Department of Civil and Environmental Engineering
|
281
|
+
Institute of Computational and Data Sciences, Penn State University
|
282
|
+
|
283
|
+
These acknowledgments recognize the contributions and inspirations that have helped shape RAS Commander, ensuring proper attribution for the ideas and code that have influenced its development.
|
284
|
+
|
285
|
+
3. Chris Goodell, "Breaking the HEC-RAS Code" - Studied and used as a reference for understanding the inner workings of HEC-RAS, providing valuable insights into the software's functionality and structure.
|
286
|
+
|
287
|
+
4. [HEC-Commander Tools](https://github.com/billk-FM/HEC-Commander) - Inspiration and initial code base for the development of RAS Commander.
|
288
|
+
|
231
289
|
|
232
290
|
## Contact
|
233
291
|
|