Rainfall Generator Calibration


Calibrating a Rainfall Generator Using Historical Data


Overview: The objective of calibrating generated rainfall in this model is to develop stochastic daily rainfall series that are able to preserve the daily, monthly and annual statistics of the observed data as well as the probability and magnitude of a wet day.

Using the GoldSim optimization module, random rainfall generator parameters are selected to produce alternative stochastic rainfall series. A rainfall sequence of 200 years is generated and the associated statistics are compared to statistics from measured rainfall data. This process is continued iteratively until the error between the statistics of the generated rainfall and measured rainfall data collected is minimized.

Calibration Set-up: To set up the rainfall calibration, carry out the following instructions:

1) Enter historic rainfall data in the time series element in both the "GetNumberOfStates" and "Historic" SubModels. Double-click on the "HistoricRainfall" element and then click 'Edit Data' in the properties.

2) Go to Model|Array Labels... and edit the following array label sets to reflect the available historic or observed data: "HistoricYears", "id" and "ModelYears". The array label set "HistoricYears" should contain the actual historical years, "id" should go from 1 to the number of days in the historical rainfall sequence and "ModelYears" should go from 1 to the number of years of rainfall to be generated.

3) Change the time settings on both the "GetNumberOfStates" and "Historic" SubModels. To do this, double-click these elements to open the properties and change the simulation duration in the time settings tab. The "id" array label set should match the duration (in days, d).

4) Go to Run|Optimization and run the optimization. The objective function should be \ObjectiveFunction\Sum and the required condition should be as follows:

StateBoundary_1 < StateBoundary_2 and StateBoundary_2 < StateBoundary_3 and StateBoundary_4 < StateBoundary_5 and StateBoundary_5 < StateBoundary_6

Double-clicking on any of the optimization variables allows you to edit the upper and lower bounds for the optimization. When you are ready to optimize, click the ‘Optimize!’ button. Once the optimization has finished, select options to ‘Copy optimized values to initial values…’ and to ‘Copy optimized values to element definitions…’ and then click ‘Close’. Now you can run your simulation with the optimized values.


Making Better Decisions In An Uncertain World