Creating a storage elevation curve for a TSF is a commonly requested feature. This tutorial demonstrates how to create a storage curve for a simple ring dyke with downstream construction.
The code for the example with no pond is shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
from muk3d.ooze import get_deposition_result
volumes = []
for discharge_elevation in range(110, 120):
# running command Single stream no pond, auto flow path fixed elevation
# Parameters from dialog
cmd = get_command('Single stream no pond, auto flow path fixed elevation')
result = cmd({ 'base': u'grid+dam.mgrid',
'deposition model': 'Single stream no pond, auto flow path fixed elevation',
'dischargeElevation': discharge_elevation,
'dischargePoints': u'discharge_119.mcurve',
'maxPondIterations': 1,
'pond_location': None,
'tailings': u'Sand',
'verticalOffset': 0.0})
dep_result = get_deposition_result(result)
dep_volume = dep_result.get_property('total volume')
volumes.append([discharge_elevation, dep_volume])
with open('securve.csv', 'wt') as fh:
fh.write('Elevation, Volume\n')
for d in volumes:
fh.write('{}, {}\n'.format(d[0], d[1]))
|
The code for the example with a fixed pond elevation is shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
from muk3d.ooze import get_deposition_result
volumes = []
for discharge_elevation in range(110, 115):
# running command Single stream fixed pond elevation, auto flow path fixed elevation
# Parameters from dialog
cmd = get_command('Single stream fixed pond elevation, auto flow path fixed elevation')
result = cmd({ 'base': u'grid+dam.mgrid',
'deposition model': 'Single stream fixed pond elevation, auto flow path fixed elevation',
'dischargeElevation': discharge_elevation,
'dischargePoints': u'discharge_119.mcurve',
'maxPondElevation': 119.0,
'maxPondIterations': 1,
'pond': 'pond',
'pondElevation': discharge_elevation - 3,
'pond_elevations': u'',
'pond_location': ( 2409.014700659405,
-3006.3937803704803,
107.44865441108986),
'seCurveIncrement': 0.1,
'tailings': u'Sand',
'verticalOffset': 0.0})
dep_result = get_deposition_result(result)
dep_volume = dep_result.get_property('total volume')
pond_volume = dep_result.get_pond_property('fluid volume')
volumes.append([discharge_elevation, dep_volume, discharge_elevation - 3, pond_volume, ])
with open('securve+pond.csv', 'wt') as fh:
fh.write('Elevation, Volume, Pond elevation, Pond volume\n')
for d in volumes:
fh.write('{}, {}, {}, {}\n'.format(d[0], d[1], d[2], d[3]))
|