PyTuflow: Difference between revisions

Content deleted Content added
No edit summary
Line 52:
|''str'' Format
|-
|rowspan='2'|<b>[[#getAdverseGradients|getAdverseGradients]] ()</b>
|rowspan='2'|Returns locations of any adverse water level or energy level (if result type available) gradients in long profile. Note getLongProfileData method must be called prior to calling this method
|''tuple'' Adverse Water Level Gradient Locations ( ''list'' x data, ''list'' y data )
Line 436:
# print to console
print('Results format: {0}'.format(format)
else:
# did not load correctly, print error message to console
print(message)
</pre>
 
==getAdverseGradients==
<b>getAdverseGradients ()</b><br>
Returns locations of any adverse water level or energy level (if result type available) gradients in long profile. Note getLongProfileData method must be called prior to calling this method<br>
;Parameters:
: -
;Returns:
: '''Advserse water level gradients:''' ''tuple''
:: ( ''list'' x data, ''list'' y data ) e.g. ([0, 5], [10, 12])
: '''Adverse energy level gradients:''' ''tuple''
:: ( ''list'' x data, ''list'' y data ) e.g. ([0, 5], [11, 14])
'''Example'''
<pre>
import matplotlib.pyplot as plt
import pytuflow as tu
 
# Initialise result class
res = tu.ResData()
 
# load .tpc result file
path = r'C:\TUFLOW\results\M04_5m_001.tpc'
err, message = res.load(path)
 
# check results were loaded successfully before calling function
if not err:
# initialise plot
fig, ax = plt.subplots()
 
# get long profiles and add to plot
chan = 'Chan_A'
timestep = '1.0'
result_types = ['Bed Level', 'H']
for rt in result_types:
errlp, messlp, data = res.getLongProfileData(timestep, rt, chan)
# check for error before plotting
if not errlp:
x, y = data
ax.plot(x, y, label=rt)
else:
# error occurred getting long profile data, print error message to console
print(messlp)
 
# check for adverse gradients
adv = res.getAdverseGradients()
for i, data in enumerate(adv):
x, y = data
if i == 0:
label = 'Adverse Water Levels'
else:
label = 'Adverse Energy Levels'
 
# add to plot as points
ax.plot(x, y, label=label, marker='o', linestyle='None')
# show plot
fig.show()
else:
# did not load correctly, print error message to console