Radial growth of delta through time¶
The growth pattern of a delta can be predicted from the volume of a cylinder. The expectation is that a delta’s planform area grows according to a power law that is a function of basin depth, sediment input, and time.
\[r = \sqrt{\frac{2 t Q_s}{h_b \pi}}\]
Note
This formulation ignores deposit porosity (as is true for the sample data from pyDeltaRCM below).
golf = dm.sample_data.golf()
# measure the delta shoreline distance at five differet times
time_idxs = np.linspace(15, golf.shape[0]-1, num=5, dtype=int)
shoredist_mean = np.zeros(time_idxs.shape)
shoredist_std = np.zeros(time_idxs.shape)
for i, time_idx in enumerate(time_idxs):
# compute the shoreline mask
SM_mpm = dm.mask.ShorelineMask(
golf['eta'][time_idx, :, :],
elevation_threshold=0,
method='MPM',
contour_threshold=0.75,
max_disk=8)
SM_mpm.trim_mask(length=3)
# compute the mean shoreline distance
shoredist_mean[i], shoredist_std[i] = dm.plan.compute_shoreline_distance(
SM_mpm, origin=(golf.meta['CTR'].data, golf.meta['L0'].data))
Now plot
# make a predictive model
def predict_for_t(t, Qs, hb):
"""Predict the delta shoreline radius.
"""
return np.sqrt((2*t*Qs) / (hb * np.pi))
# set up the parameters
hb = golf.meta['hb'].data # basin depth, m
Qs = (golf.meta['h0'].data *
golf.meta['u0'][0].data *
golf.meta['N0'].data *
golf.meta['dx'].data *
(golf.meta['C0_percent'][0].data / 100)) # sediment input, m3/s
t = np.linspace(0, float(golf.t[time_idxs[-1]]), num=100)
# make the figure
fig, ax = plt.subplots()
ax.plot(
t, predict_for_t(t, Qs, hb))
ax.errorbar(
golf.t[time_idxs], shoredist_mean, shoredist_std,
c='r', ls='none')
ax.plot(
golf.t[time_idxs], shoredist_mean,
c='r', marker='o')
ax.set_ylabel('radius (m)')
ax.set_xlabel('time (s)')
plt.show()
(Source code
, png
, hires.png
)
Why do the data not line up with the prediction?
A likely possibility is that the shoreline location determined from the MorphologicalPlanform
does not include the full area of the deposit.
Hint
Try passing the elevation_offset parameter to the MPM method, which is then passed along to the ElevationMask
.