Example #1
0
# plot
plt.figure()
plt.plot(t, response, 'k-')
plt.plot(t_peaks, peaks, 'go')
plt.plot([0, t[-1]], [0, 0], 'k--')
plt.xlabel('Time, $t$ [s]')
plt.ylabel('Response, $x$')
plt.grid(True)
plt.ticklabel_format(style='sci', axis='y', scilimits=(0, 0))

# get the 1-hour extreme distribution using the Weibull tail fit method
x_e = np.linspace(0, 2 * np.max(peaks), 10000)
t_x = (t[-1] - t[0])
t_st = 1. * 60. * 60.
stextreme_dist, peaks_dist, _, _, _ = ste.extremeDistribution_WeibullTailFit(x=peaks, x_e=x_e, t_x=t_x, t_st=t_st)

# plot
plt.figure()
ax = plt.subplot(2, 1, 1)
plt.plot(x_e, peaks_dist.pdf(x_e), 'g-', label='Peak distribution')
plt.plot(x_e, stextreme_dist.pdf(x_e), 'r-', label='Extreme distribution')
xlim = ax.get_xlim()
ylim = ax.get_ylim()
plt.ylim([0, ylim[1]])
plt.xlim([0, xlim[1]])
plt.ylabel('$PDF(x)$')
plt.ylabel('Response, $x$')
plt.grid(True)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0, 0))
plt.ticklabel_format(style='sci', axis='y', scilimits=(0, 0))
Example #2
0
mmax = []
x = []
for ii in range(n):
    ss = 'ss_%03d' % ii
    x.append(np.array(modResFile['/x/' + ss]))
    peaks.append(ste.globalPeaks(t, x[ii])[1])
    mmax.append(np.max(peaks[ii]))

# Short-term extreme response at each sea state
tPer = 1 * 60 * 60  # storm period
x_t = np.linspace(0, 1.5 * np.max(mmax), 100)
edist = []
ev = []
r975 = []
for ii in range(n):
    edist.append(ste.extremeDistribution_WeibullTailFit(
        x=peaks[ii], x_e=x_t, t_x=tSim, t_st=tPer)[0])
    ev.append(edist[ii].getExpVal())

# Find largest response
mi = np.argmax(ev)
x0 = edist[mi].getRthVal(0.00001)
x1 = edist[mi].getRthVal(1 - 0.00001)
x = np.linspace(x0, x1, 500)
r95 = edist[mi].getRthVal(0.95)
print 'design state (Hs, Te): (%.1f, %.1f)' % (Hs_sample[mi], T_sample[mi])
print 'extreme value: %e' % (r95)

# Plot data
plt.figure()
plt.plot(T, Hs, 'bo', alpha=0.1, label='NDBC data')
plt.plot(T_Return, Hs_Return, 'k-', label='100 year contour')
Example #3
0
for ii in range(n):
    ss = 'ss_%03d' % ii
    x.append(np.array(modResFile['/x/' + ss]))
    peaks.append(ste.globalPeaks(t, x[ii])[1])
    mmax.append(np.max(peaks[ii]))

# Short-term extreme response at each sea state
tPer = 1 * 60 * 60  # storm period
x_t = np.linspace(0, 1.5 * np.max(mmax), 100)
edist = []
ev = []
r975 = []
for ii in range(n):
    edist.append(
        ste.extremeDistribution_WeibullTailFit(x=peaks[ii],
                                               x_e=x_t,
                                               t_x=tSim,
                                               t_st=tPer)[0])
    ev.append(edist[ii].getExpVal())

# Find largest response
mi = np.argmax(ev)
x0 = edist[mi].getRthVal(0.00001)
x1 = edist[mi].getRthVal(1 - 0.00001)
x = np.linspace(x0, x1, 500)
r95 = edist[mi].getRthVal(0.95)
print 'design state (Hs, Te): (%.1f, %.1f)' % (Hs_sample[mi], T_sample[mi])
print 'extreme value: %e' % (r95)

# Plot data
plt.figure()
plt.plot(T, Hs, 'bo', alpha=0.1, label='NDBC data')
Example #4
0
# plot
plt.figure()
plt.hold(True)
plt.plot(t, response, 'k-')
plt.plot(t_peaks, peaks, 'go')
plt.plot([0, t[-1]], [0, 0], 'k--')
plt.xlabel('Time, $t$ [s]')
plt.ylabel('Response, $x$')
plt.grid(True)
plt.ticklabel_format(style='sci', axis='y', scilimits=(0, 0))

# get the 1-hour extreme distribution using the Weibull tail fit method
x_e = np.linspace(0, 2 * np.max(peaks), 10000)
t_x = (t[-1] - t[0])
t_st = 1. * 60. * 60.
stextreme_dist, peaks_dist, _, _, _ = ecm.extremeDistribution_WeibullTailFit(x=peaks, x_e=x_e, t_x=t_x, t_st=t_st)

# plot
plt.figure()
ax = plt.subplot(2, 1, 1)
plt.hold(True)
plt.plot(x_e, peaks_dist.pdf(x_e), 'g-', label='Peak distribution')
plt.plot(x_e, stextreme_dist.pdf(x_e), 'r-', label='Extreme distribution')
xlim = ax.get_xlim()
ylim = ax.get_ylim()
plt.ylim([0, ylim[1]])
plt.xlim([0, xlim[1]])
plt.ylabel('$PDF(x)$')
plt.ylabel('Response, $x$')
plt.grid(True)
plt.ticklabel_format(style='sci', axis='x', scilimits=(0, 0))