Calibration Theory

In the SWIFlow configuration file, max_infiltration (\(R_{max}\)), lower_residence_time (\(\bar{\tau_l}\)), and upper_residence_time (\(\bar{\tau_u}\)) are all model Parameters to be set by the user. These values unfortunately are specific to a basin and thus need calibration.

Most of the following theory depends on the ability to separate the flow into two components of the observed flowrate. The current method utilizes an approach described by Eckhardt 2005 in a paper titled “How to construct recursive digital filters for baseflow separation to be used for calibration.”

Max Infiltration Theory

Solving for \(R_{max}\) means that the scope of the following derivation should only be performed on the lower layer equations. The storage equation is simplified by assuming the change in storage is zero on an annual basis. Using the base component of the separate flow from Eckhardt’s method our storage and infiltration equation becomes:

\[ \begin{align}\begin{aligned}0 = \sum_{t=0}^{T}{I_{res_L}} - \sum_{t=0}^{T}{\frac{Q_L}{A_{subbasin}}}\\I_{res_L} = min(I_{swi}, R_{max})\end{aligned}\end{align} \]

Substituting the infiltration equation into the storage equation, it then becomes:

\[0 = \sum_{t=0}^{T}{min(I_{swi}, R_{max})} - \sum_{t=0}^{T}{\frac{Q_L}{A_{subbasin}}}\]

\(R_{max}\) is a constant value so using the above equation allows us to iteratively estimate the value. This is performed by bisection where the solution is driving the residual to 0 in the following manner where A is always less than B:

\[ \begin{align}\begin{aligned}C = \frac{A+B}{2}\\ residual = \sum_{t=0}^{T}{min(I_{swi},C)} - \sum_{t=0}^{T}{\frac{Q_L}{A_{subbasin}}}\\ B = \bigg\{_{B}^{C, residual > 0} A = \bigg\{_{A}^{C, residual < 0}\end{aligned}\end{align} \]

The steps to solve for max infiltration:

  1. Separate the flow into direct and base flow using Eckhardt’s method
  2. Calculate the cumulative volumes from the Inputted SWI and the observed flowrate
  3. Calculate the derivative of the difference between SWI and Observed volumes
  4. Calculate the mean of this timeseries to estimate the infiltration value

TIP: The configuration file sets the time period for analysis. Use a time period of most importance to weight the average towards a high volume period

Residence Time Theory

After estimating \(R_{max}\), the next step is to solve for residence times for the upper and lower layers (\(\bar{\tau}_{L}\) and \(\bar{\tau}_{U}\)). This is performed in a similar fashion as in max infiltration.

The steps to estimate the upper and low residence times

  1. Separate the flow into direct and base flow using Eckhardt’s method
  2. Insert the separated components into the model’s states \(Q_{base} \rightarrow Q_{L}\) and \(Q_{direct} \rightarrow Q_{U}\)
  3. Run the model, skipping solving for \(Q\)
  4. Solve for \(\bar{\tau}_{L}\) and \(\bar{\tau}_{U}\)
  5. Use the min/max to bound an iterative solution via bisection. e.g. \(A = min(\bar{\tau}_{L})\) \(B = max(\bar{\tau}_{L})\)
  6. Assume \(\bar{\tau}_{U}\) is constant, and run model as in step #3 with \(\bar{\tau_C} = \frac{A + B}{2}\)
  7. Rerun the model as in step #3.
  8. Iterate on the solution picking the new bounds as described above.
  9. Repeat Steps 1-8 leaving the new \(\bar{\tau_L}\) constant and iterate on \(\bar{\tau_U}\)

Fair Warning

The calibration process is in still in development. Estimating for \(R_{max}\), \(\bar{\tau}_{L}\) and \(\bar{\tau}_{U}\) is highly interconnected and thus in these early stages of development some user intuition made need to be applied and even iterated upon. E.g. Calibrate, adjust, calibrate.