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, 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()

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.