Skip to content

Import/export HEC-RAS geometry files

Notifications You must be signed in to change notification settings

ski907/parserasgeo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parserasgeo

PARSE hec-RAS GEOmetry - Import/Export HEC-RAS geometry files.

Parserasgeo is a python library for importing, editing, and exporting HEC-RAS geometry files and can be used for automating sensitivity analyses, Monte Carlo analyses, and any other work flow that requires changing RAS geometry programmatically. Parserasgeo is a work in progress, however most cross section functionality exists. Lines that are not understand are stored as text and will be rewritten when the geometry is exported. Parserasgeo is known to work with Python 2 and should also work with Python 3.

HEC-RAS models can be run automatically using rascontrol.

Getting Started

Parserasgeo is mostly easily installed from GitHub

C:\> git clone https://github.com/mikebannis/parserasgeo.git

C:\> cd parserasgeo

C:\parserasgeo> pip install .

Example

Open a model, increase all Manning's n values by 50%, and save the geometry as a new file.

import parserasgeo as prg

geo = prg.ParseRASGeo('my_model.g01')

for xs in geo.get_cross_sections():
	n_vals = xs.mannings_n.values 
	
	# n-values are stored as a list of 3-tuples
	new_n = [(station, n*1.5, other) for station, n, other in n_vals]
	
	xs.mannings_n.values = new_n
	
geo.write('my_model.g02')

Contributing

While currently functional, this is very much a work in progress. Well written and tested pull requests are gladly accepted.

One of the goals for this library is that exported geometries will match original geometries to the character. This allows easy testing of new functionality by comparing the original geometry file to one exported from parserasgeo (assuming no changes were made).

About

Import/export HEC-RAS geometry files

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%