Utilizing Seasonal Forecasts to Improve Reservoir Operations in the Como River Basin

Utilizing Seasonal Forecasts to Improve Reservoir Operations in the Como River Basin
Utilizing Seasonal Forecasts to Improve Reservoir
Operations in the Comoé River Basin
A Decision Support Tool based in Multi-stage Stochastic Linear
Programming for a Multi-objective a Reservoir Network.
A thesis submitted by
Derek Etkin
In partial fulfillment of the requirements for the degree of
Master of Science
In
Environmental and Water Resources Engineering
TUFTS UNIVERSITY
February 2009
Advisor: Paul Kirshen
Abstract
A network of reservoirs and diversion structures in the Comoé River Basin in
southwestern Burkina Faso, West Africa, provides municipal water supply and irrigation
water for sugarcane agribusiness and a population of subsistence farmers. The region is
characterized by severe intraseasonal and inter-annual variability with respect to
precipitation and reservoir inflows. Reservoir operations are generally conservative, even
during relatively wet years. This study shows how seasonal precipitation and streamflow
forecasts can provide more efficient and equitable release decisions throughout the entire
irrigation cycle. In collaboration with local partners a deterministic simulation model of
the basin was assembled to build understanding of operational decisions and the deficits
incurred to downstream users. A second experimental decision support tool (DST) is
introduced which translates conditionally weighted scenario-tree of streamflow and
precipitation forecasts into optimal release schedules for reservoir operators to implement
in real-time as forecasts and system conditions change. The DST uses multi-stage
stochastic linear programming (MSSLP). A VBA-based graphic user interface (GUI) is
used to ensure implementation and ease of use by operators.
Acknowledgements
Funded by
NOAA
John R. Freeman Fund, BSCE
The Tufts Institute for the Environment
For my Advisory Committee at Tufts University
Dr. Paul Kirshen, Department of Civil and Environmental Engineering
Dr. Steven Block, Fletcher School, International Economics
Dr Richard Vogel, Department of Civil and Environmental Engineering
Climate Forecasting for Agricultural Resources (CFAR) Team
Paul Kirshen, Tufts University
Moussa Sanon, INERA, Burkina Faso
Adama Alhassane Diallo, DMN, Burkina Faso
Gerrit Hoogenboom, University of Georgia
M. Carla Roncoli, University of Georgia
Judith Sanfo, DMN, Burkina Faso
Leopold Somé, INERA, Burkina Faso
Jacqueline Zoungrana, DGRE, Burkina Faso
For assistance with Seasonal Forecasting and Scenario Programming
David Watkins, Michigan Technological University
For the construction and calibration of the ABCD model
Jesus Sanchez, Tufts University
For support and technical assistance
Becca Bailey
Dagmar Etkin
Don Etkin
Tommy Etkin
Table of Contents
Chapter 1 - Introduction
Chapter 2 – Literature Review
Reservoir Decision Support Systems
Reservoir Operations Optimization
Reservoir Inflow Forecasting
Seasonal Forecasting Applications for Reservoir Management
Stochastic Reservoir Optimization
Generating Scenario Trees for MSSLP
Chapter 3 - Background
Comoé River Basin
Local Climate and Hydrology
Climate Forecasting
Participatory Research
Chapter 4 - Methodology
Deterministic Simulation Model
Multi Stage Stochastic Linear Optimization Model
Deterministic Parameter Estimation
Probabilistic Scenario Tree Generation
Streamflow Scenario Tree Generation
Decisions Support Tool in Operation
Chapter 5 - Evaluation
Decision Support Tool Sensitivity
Operational Mode
Available Data
Evaluation Metrics
Continuous Simulation of DST Application
Perfect Information Simulation
2003 – 2006 Continuous Simulation Experiment
Future Research Needs
References
Appendix A – Excel Workbook for Prescriptive Decision Support Tool
Appendix B – Samples GAMS Code of MSSLP for DST Example Run
Appendix C – Sample Algorithms for Building, Running and Processing
Results for MSSLP
Chapter 1: Introduction
Chapter 1: Introduction
The next century will be one that is characterized by increased uncertainty and risk
associated with climate. In developing countries where the primarily agrarian economy
is directly tied to the availability of water each season, climate uncertainties provide a
unique challenge to livelihoods. The uncertainty of future droughts may be as harmful as
periodic droughts themselves can be to water resources management and reservoir
operations. Water managers, particularly in risk averse economies, tend to make overly
conservative reservoir releases to downstream users in an effort to avoid a catastrophic
shortage late in the dry season. These inefficiencies paired with the challenge of a variety
of stakeholders with competing water demands in the watershed create a need for
improving the information available for making operational decisions in the watershed.
Such information includes a probabilistic understanding of future streamflow,
precipitation, and user demands.
Research Objectives
This thesis describes efforts to improve the operation of a network of reservoirs and
canals in the Comoé River Basin in southwestern Burkina Faso, West Africa. Solutions
were developed closely with African partners of the Climate Forecasting and Agriculture
Resources (CFAR) Project and the local water committee. The focus of this thesis is a
decision support tool (DST) that makes recommendations for release and supply
decisions based on current reservoir elevations and a probabilistic forecast of reservoir
inflows and precipitation. The probabilistic forecast can be improved using long-lead
seasonal precipitation forecasts currently produced every year by the Direction de la
Météorologie Nationale (DMN) of Burkina Faso in collaboration with the African Center
for Meteorological Applications for Development (ACMAD). The optimization routine
in the DST is an example of multi stage stochastic linear programming (MSSLP).
Contents of Thesis
Chapter 2 of this thesis is an extensive literature review of the application of systems
analysis to water resources problems. As hydrologic inputs such as streamflow and
2-1
Chapter 1: Introduction
precipitation are highly uncertain, special attention is given to stochastic approaches
which handle probabilistic parameters for optimization problems.
Chapter 3 describes the participatory approach to the research conducted for this
thesis and includes a description of the institutional and legal context of the problem. A
basic description of the local climate and hydrology is also provided. This includes a
short description of the probabilistic long-lead wet season forecasts developed by
ACMAD.
Chapter 4 describes the two decision support tools developed for the local water
committee over the course of this research project. The first is a deterministic simulation
model, which helps build understanding of different possible scenarios for supply and
demand of water in the basin. The goal is to identify the impact of different release
schedules on the deficits incurred by users. The second DST described is a prescriptive
optimization model which uses MSSLP to make operational recommendations. The
estimation and construction of inputs are described, including the branching scenario tree
hydrologic forecast.
Chapter 5 is an evaluation of the recommendations made by the prescriptive DST.
2-2
Chapter 2: Literature Review
Chapter 2: Literature Review
Reservoir Decision Support Systems
For reservoir systems, climatic variability and the related hydrologic uncertainty are
major sources of vulnerability. This is especially true in West Africa where the already
high interannual variability is exacerbated by trends associated with climate change
(Dow, 2005; Hellmuth et al., 2007). Decision support systems (DSS) can reduce these
vulnerabilities by improving water resources management in the face of climate
variability and change (Yao and Georgakakos, 2002; NRC, 2008), including systems in
Africa (McCartney, 2007).
Georgakakos (2006) describes four scales at which DSS can improve reservoir
network management by improving decision making: (1) Long term infrastructure
planning and construction, (2) interannual and seasonal operational decisions for
overyear storage and water contracts, (3) 1-3 month operational decisions for dry period
conservation or flood management, (4) daily releases for water allocation or hydropower
operation.
Decision support at the first scale is used in a planning capacity, where the decisions
are for changes or improvements in infrastructure. The operational decisions associated
with the other three scales are primarily reservoir release schedules. DSS can help
operators make releases which best meet the objectives of the project: meeting user
demands, suitable deficit allocations during drought periods, and most importantly a
release schedule which appropriately balances the present demands with the value of
storage for future demands.
In a neighboring watershed in the Sudan-Sahel, Obeng-Asiedu (2004) developed a
large scale prescriptive model for the GLOWA-Volta project, which determined annual
water allocations to different demand sectors of the Volta river basin. The water
allocation and maintenance decisions were selected to optimize an economic output
model for a variety of climatic scenarios. Currently, no studies have addressed the
opportunities and constraints for using decision support for operational scale reservoir
management in the Sahel-Sudan climatic zone.
2-1
Chapter 2: Literature Review
Reservoir Operations Optimization
To find efficient operational releases that consider multiple objectives the reservoirhydrologic-demand system can be described mathematically with a prescriptive
optimization model which relies on mathematical programming for solution (Wurbs,
1993). Loucks et al. (1981) describe the classic reservoir system optimization problem in
which mathematical programming is used to find the optimal set of releases given a
description of inflows to a single reservoir. Mathematical programming has been used to
improve the efficiency and reliability of reservoir operations since the 1940s (Masse,
1946; Little, 1955; Yakowitz, 1982; Yeh, 1985; Kirshen and Ginnetti, 1985; Labadie,
2001; McCartney, 2007). The three components of a mathematical programming
problem are (1) decision variables, which are solved to maximize an (2) objective
function, and are subject to a set of (3) constraints.
The decision variables of the reservoir operations optimization problem are the
reservoir releases and network diversions made in each time step of a prescribed time
horizon. The characteristics of the system and the scale of the decision process determine
the length of the model horizon and the discretization of the time steps (Loucks et al.,
1981).
The reservoir operations objective function aims to maximize both the present and
future benefits of releases and storage. Alternatively the objective function can be
formulated in a minimization mode in which deficits incurred to user demands are
penalized. For allocations between multiple users or objectives, each benefit or penalty is
converted into a scalar value which is factored by the weight associated with the
objective (Labadie, 2004).
The constraint set includes equations that describe the reservoir network dynamics,
conservation of mass within each reservoir, the maximum storage capacity, the release
capacity, the demand targets, and the reservoir inflows (Yeh, 1985). The parameters of
the equations, which define the constraint set, are determined from the physical system.
Reservoir Inflow Forecasting
Perhaps the most challenging of the model parameters to determine are the set of
future reservoir inflows, which are associated with every time step of the model horizon.
2-2
Chapter 2: Literature Review
The uncertainty of hydrologic systems requires that these future inflow parameters are
determined using some method of forecasting (Yeh, 1985).
By far the most widely used method for describing anticipated inflows for an
optimization routine relies on a deterministic forecast. These nominal sets of streamflow
values can be historic mean flows, or a forecast based on current meteorological
conditions and basin characteristics (Stedinger et al., 1993). Prescriptive models with
deterministic forecasts have been used effectively for a variety of reservoir systems and
operational planning horizons (Young, 1967; Kirshen, 1992), including continually
updated rolling forecasts (Westphal, 2003).
Many studies have shown that improving the accuracy or the probabilistic description
of the inflow forecast can result in better reservoir operational practices. Yeh et al.
(1982) showed how a reservoir optimization routine improved release decisions for the
California State Water Project, using an inflow forecast based on historic means. Van Do
and Howard (1988) compared several year-long inflow forecasting inputs to a rolling
optimization routine for reservoir releases in a hydropower network in a snowmelt
dominated watershed in British Columbia, Canada. Their results show that improved
inflow forecasting techniques lead to better operational scheduling than the standard
operating procedures at the time. Some projects have improved streamflow forecasts
based on the historic record using auto-regressive nearest neighbor techniques (Jacobs et
al., 1995). The following section describes recent advances in the skill and length of
horizon of seasonal forecasting techniques.
Seasonal Forecasting Applications for Reservoir Management
Recent advances in dynamic climate modeling have made it possible to improve
streamflow and precipitation forecasts that are based on historic climatology (Neelin et
al., 1998; Croley, 2000; Doblas-Reyes et al., 2006; Goddard et al., 2006). While current
meteorological forecasts, based on atmospheric modeling, have skill for only a two week
horizon, forecasts based on sea-surface temperatures (SST) have been shown to be
skillful at a seasonal or interannual (SI) scale (Sivakumar, 2006). SI forecasts rely on
dynamic SST models coupled with dynamic atmospheric models. The large degree of
uncertainty both in the initial conditions, and in the models themselves, makes
2-3
Chapter 2: Literature Review
deterministic SI forecasting impractical, requiring a stochastic approach (Moura and
Hasterath, 2004; Doblas-Reyes et al., 2006). Many institutions that produce SI forecasts,
including the International Research Institute for Climate and Society (IRI) and NOAA’s
Climate Prediction Center (CPC), use an ensemble approach, which considers a range of
models and initial conditions. For the forecast output, these ensembles can be used to
describe a probability distribution of likely hydrologic conditions in the future. To
describe future conditions as predicted by the ensemble forecasts, an adjusted
climatology distribution is presented as shown in Figure 2.1. A common formulation is
the tercile forecast, which assigns an adjusted probability to each tercile of the
climatological distribution for the hydrologic variable (Hartmann et al., 2002, Kabore and
Yaka, 2000).
Using SI forecasting to improve streamflow and precipitation forecasts has been
applied to many water resources management projects, including reservoir operations
(Watkins and Griffis, 2008). There are many challenges facing the application of SI
forecasts to real-time decision support for water resources systems, including the timing
of the forecast, institutional inflexibility, lack of confidence in SI forecasting,
misunderstanding regarding the probabilistic nature of the forecast, among many others
(Hartmann et al., 2002; Sivakumar, 2006). Applications in several watersheds have
revealed that SI forecasts have only marginally improved decision support for reservoir
operations including some of the following studies.
A nonparametric probabilistic rainfall forecast was developed for reservoir operations
near Sydney Australia (Sharma, 2000). The forecast was based on two separate predictor
sets each representing a different phase of the ENSO climate index, which is based on
SST conditions in the Pacific Ocean. The improved forecast significantly reduced the
variability of the rainfall forecast and offered reservoir operators slightly better
information about anticipated inflows.
Using advanced reservoir modeling and optimization techniques, Yao and
Georgakakos (2001) showed how a range of streamflow forecasting techniques would
improve the reliability of the Folsom Lake reservoir system under a variety of historic
condition and climate change scenarios. Among the forecasts was an ensemble generator
developed by Carpenter and Georgakakos (2001) which took into consideration both
2-4
Chapter 2: Literature Review
hydrologic uncertainty and atmospheric forcing. The increased hydrologic variability
anticipated by climate change scenarios increased the utility of improved forecasts inputs
to the decision model.
Hamlet et al. (2002) found significant economic value in using improved forecasts
which relied on snowpack and climatic indices for a hydroelectric project in British
Columbia. Probabilistic ensemble streamflow forecasts with 12-month horizons were
constructed from six separate predictor sets associated with six different phases of the
ENSO and PDO climate indices.
In southeastern Australia, decision support was applied to two reservoir networks
serving irrigation demands using streamflow forecasts built from the historic record and
improved with serial correlation and ENSO climate signals (Chiew et al., 2002). The
decision module determined contract allocations with different levels of acceptable risk
to the irrigators. The study found that SI forecasts did not provide a significant
improvement over climatological probability distributions. The authors concluded that
the source of the inutility was the low variability and low vulnerability of the system.
Arumugam et al. (2003) performed a reliability study on a water allocation
framework for the Oros reservoir system in Brazil. Decisions were made in consideration
of an ensemble seasonal streamflow forecast with an 18-month horizon developed by
DeSouza and Lall (2002). Reliability was improved most significantly during dry
periods.
In the Senegal River basin, a seasonal forecast was used to improve the management
of a reservoir network with multiple objectives including hydropower, flood control, and
water supply (Bader et al., 2006). The decision support module used the ARPEGE
forecast developed by Météo-France and the local water management collective. The
forecast was based on SST-based climate signals related to regional precipitation around
the associated catchment. Evaluation of the project revealed marginal benefits from the
application of SI forecasting
Using an ensemble of historic streamflow scenarios, Watkins and Wei (2008)
developed an economic-optimization model with a one year horizon for the Lower
Colorado River reservoir system in central Texas. Optimized system deficits were
evaluated using two forecasts: (1) ensemble of equally probable scenarios representing
2-5
Chapter 2: Literature Review
climatology, and (2) ensemble of scenarios weighted by the tercile forecast developed by
the US CPC. Despite good skill in the tercile forecasts, the authors found virtually no
improvement in contract allocation decisions prescribed by the model.
Chapter 3 will include a section describing the seasonal climate forecast which is
currently produced every year for southwestern Burkina Faso by the African Center for
Meteorological Applications for Development (ACMAD), a regional meteorological
organization.
Stochastic Reservoir Optimization
A major challenge of reservoir optimization is the inherent uncertainty of the
hydrologic inputs, on which reservoir operation is dependent. Deterministic descriptions
of future inflows are misleading, especially for highly variable systems. Many projects
have found it necessary to probabilistically describe future inflows (Yeh, 1985). For real
time operation, this requires stochastic optimization methods, which can process
probabilistic inflow constraints.
The operations research literature abounds with methodologies for optimization under
uncertainty (Sahinidis, 2004), starting with the seminal works by Dantzig (1955), Beale
(1955) and Bellman (1955). Many of these approaches have been used for the stochastic
optimization of reservoir systems (Yeh, 1985), including multi-reservoir systems
(Labadie, 2004). These approaches include implicit stochastic optimization (ISO),
chance constrained linear programming, stochastic linear programming (SLP), stochastic
dynamic programming (SDP), and nonlinear programming (NLP). While this thesis
represents a program that exclusively uses SLP, all of the major optimization approaches
are reviewed here.
Implicit stochastic optimization
Implicit stochastic optimization (ISO), which relies on Monte Carlo sampling of a
variety of possible hydrologic scenarios, has been used to capture the uncertainty of
hydrologic inputs (Labadie, 2004). Sets of selected deterministic scenarios are
independently solved for optimal decisions and evaluated. ISO solutions have been found
using a variety of formulations including linear programming (Dorfman, 1962; Crawley
2-6
Chapter 2: Literature Review
and Dandy, 1993), discrete dynamic programming (Yakowitz, 1982), and successive
linear programming (Yeh et al. 1979). Hamlet et al. (2002) used an ISO approach to
develop rule curves for a Columbia River project, which were adjusted by the present
ENSO/PDO phase. The major drawback to ISO is that solutions are unique to each
deterministic future hydrologic scenario. This is particularly problematic for reservoir
systems with highly variable hydrologic regimes.
Chance Constraints
A mathematical program that uses chance constraints offers an alternative stochastic
approach to optimization. Chance constraints use an acceptable system reliability
minimum to constrain the solution space. Loucks et al. (1981) explain how the
deterministic equivalent of a set of chance constraints can be incorporated into a reservoir
operations LP. Sankarasubramanian et al. (2003) used chance constraints to build a water
allocation model for the Oros reservoir system in Brazil. A linear program was able to
maximize releases given desired system reliability and an 18 month ensemble forecast of
reservoir inflows based on large scale climatic indices.
Stochastic Linear Programming
Stochastic linear programming (SLP) represents an example of explicit stochastic
optimization, in which the probability distributions of uncertain parameters, such as
future reservoir inflows, are represented by scenarios of discrete approximations. In a
multi stage stochastic linear program (MSSLP) the decision variables are partitioned into
two or more sequential time stages. Those variables in the first stage represent decisions
that are made at present: the “here and now”. In later stages, decisions can only be
determined by uncertain parameters realized in the future, and thus represent a
distribution of possible decisions. As a result, only the solution decisions in the first
stage are implementable (Dantzig, 1955). The objective is to find the set of decisions for
the first stage that minimizes the sum of the cost in the first stage and the expected value
of the cost in subsequent stages, which are dependent on random value parameters
(Sahinidis, 2004).
2-7
Chapter 2: Literature Review
Given a discrete representation of the probability distribution of uncertain later stage
parameters, the multi-stage stochastic problem can be formulated as a large-scale linear
program (Kall and Wallace, 1994; Birge and Louveaux, 1997). This linear program,
known as the deterministic equivalent of the stochastic problem, includes multiple
scenarios of realized future parameters each with their own associated discrete
probability. Ariyawansa and Felt (2004) present an illustrative collection of multistage
stochastic linear programming applications with scenarios ranging in number from 2 to
32,768, and stages ranging in number from 2 to 7.
For each stage, the decisions are “nonanticipative” in the sense they do not depend on
future realizations of random parameters. Instead decisions at each stage are selected
such that they minimize costs associated with that stage as well as the expected costs in
future stages associated with that decision and random variable parameters. Explicit nonanticipatory constraints are required for the deterministic equivalent linear program (Kall
and Wallace, 1994; Escudero et al., 1996; Birge and Louveaux, 1997; Watkins et al.
2005).
While exact solutions have been found for deterministic equivalents with as many as
1 million variables, the high scale dimensionality of many MSSLPs, has exceeded the
capacity of the traditional simplex algorithm for linear programming (Birge, 1997). The
literature is full of MSSLP applications for reservoir optimization which required
advanced methods such as decomposition, sampling, or partitioning to find solutions
(Sahinidis, 2004). Bender’s decomposition exploits the convexity of the objective
function in later stages (Birge, 1985; Gassman, 1990), and has been used extensively to
solve MSSLP for reservoir optimization.
Pereira and Pinto (1985) sought to apply systems analysis to an existing operational
model of a 37 hydropower reservoir system in Brazil, considering multiple future inflow
scenarios. A stochastic extension of Bender’s decomposition was applied to solve for
optimal release decisions with a MSSLP.
The SOCRATES system was developed by Jacobs et al. (1995) to generate optimal
release schedules for the hydroelectric reservoir network operated by The Pacific Gas and
Electric Company. The prescriptive model uses a probabilistic, scenario-based,
streamflow forecast with a two-year horizon. The high dimensionality of the MSSLP
2-8
Chapter 2: Literature Review
required both Bender’s decomposition and a multi-cut “L-shaped” algorithm for
computing solutions.
Watkins et al. (2000) and Kracman et al. (2006) describe the formulation of a MSSLP
model for the management of the Highland Lakes in Central Texas. A linear program
considers a tree of 30 inflow scenarios with four stages and a five year planning horizon.
The first stage represented the “here and now”. The next two stages represented year one
and year two. The last stage represented years 3 through 5 into the future. The historic
record was analyzed to produce analogue annual streamflow time series to represent
“high”, “medium”, and “low” annual flow conditions. Each scenario trace in the model
was a sequence of analogue years of different magnitudes. The four stage program was
solved to determine the recommended stage 1 annual contract for year 1 which
maximized the stochastic benefits objective function. Within each stage reservoir
operations were modeled on a monthly time step.
Given the necessary assumptions are possible, MSSLP offers many advantages over
other stochastic optimization approaches. Most importantly the solution set applies to a
probabilistic description of all possible future inflows and is not unique to a single
realization. This is important for reservoir systems with highly variable, uncertain
hydrologic inputs. Secondly, if the deterministic equivalent is not highly dimensional
(with less than one million non-zero elements), MSSLP does not require complex
algorithms or expensive software packages to find solutions. In these cases readily
available software packages such as GAMS which use the simplex algorithm can be
applied.
Stochastic Dynamic Programming
Dynamic programming (DP) algorithms offer an alternative approach for optimizing
dynamic processes such as reservoir operation in which the value of releasing water
during any time period should be balanced with the value of storing that water for a later
time period (Bellman, 1957; Loucks et al. 1981; Yakowitz, 1982; Faber and Stedinger,
2001). The program is solved backwards starting with the last time step, maximizing the
benefit in each time step before moving to the previous time step. This formulation of
2-9
Chapter 2: Literature Review
DP uses a deterministic set of inflows for the reservoir mass balance equation similar to
the LP model.
Stochastic dynamic programming SDP is the natural extension of DP in which
reservoir inflows are described by a discrete probability distribution at each time step
(Loucks et al., 1981; Stedinger et al., 1984). With the inflow at each time step unknown,
the optimal release is selected to maximize the expected benefit based on a discrete
distribution of period inflow. In this formulation it is assumed that the operator can
predict the total inflow for period as it is starting (Bras et al., 1983). Tejada-Guibert et
al., (1995) showed that it is possible to incorporate an explicit Markovian description of
inflows into the SDP formulation, where a matrix defines discrete probability of future
inflows given current inflow Qt.
SDP can be adapted to use ensemble based forecasts with an algorithm developed by
Kelman et al. (1990) called sampling stochastic dynamic programming (SSDP). The
study optimized releases for a single reservoir system in California. Subsequent studies
applied SSDP to multi-reservoir systems (Maceira and Kelman, 1991). SSDP is
performed with two sets of equations: the decision model and simulation model. First the
optimal release is selected to maximize the sum of the present benefits and the future
expected benefits in the face of scenario uncertainty. In this way the multiple traces of
ESP forecasts can be utilized with their time series in-tact to construct an optimal release
schedule. The future cost is updated with the following “simulation” model which applies
the selected decisions to each streamflow scenario without uncertainty.
SSDP requires a description of the transition probabilities between scenarios; from
scenario i to scenario j. One option is to let the transitional probability matrix be an
identity matrix such that there is no transitioning between scenarios. At the other
extreme it is possible to let every entry be equal to 1/n, a consequence of which is a loss
of the streamflow persistence captured by each independent streamflow trace. Kelman et
al. (1990) proposed a Bayesian technique for developing a more realistic transitional
probability matrix using assumptions about total seasonal volumes.
While DP can be an attractive approach for reservoir operations optimization, there
are many requirements which make it impractical for many applications. DP is very
computationally demanding and time consuming for each run (Sadecki, 2003).
2-10
Chapter 2: Literature Review
Complicated software packages and customized solvers are required for DP, making
upgrading and improvements to any DSS inaccessible to all but the very highly trained
(McCartney, 2008).
Nonlinear Programming
Unlike linear programming and dynamic programming, nonlinear programming has
not been applied to many reservoir projects. NLP is mathematically complex,
computationally demanding, and assumes deterministic hydrologic inputs in most
approaches (Rosenthal, 1980). The algorithms required for finding solutions are highly
specialized and require analysis of the local optima which might arise. Most importantly,
many robust linearization techniques are available to handle the nonlinearities in both the
objectives and constraints in reservoir operations (Yeh, 1985; Loucks and van Beek,
2005). Barros et al. (2003) found NLP used in concert with a linearized formulation best
suited to optimize hydropower operations for a reservoir network in Brazil.
Generating Scenario Trees for MSSLP
The probabilistic representation of future hydrologic conditions in the forecast
horizon of a MSSLP for reservoir operations can be represented as a hydrologic scenario
tree. Each point where branches diverge denotes the beginning of a particular stage and
represents the uncertainty of subsequent events during and after any stage. The necessity
of this formulation is the assumption that the decisions made in each stage are “nonanticipative” of future realizations of hydrologic inputs. Figure 2.2 shows an example
scenario tree with six stages and three possible hydrologic states in each stage: “high”,
“medium”, and “low”.
The application of MSSLP to a reservoir problem requires the careful generation of
scenario traces and associated probabilities for the hydrologic scenario tree. While there
are many approaches and algorithms available in the literature, there is no general recipe
for scenario tree generation. The task is too specific to the system and the availability of
reliable data; most practitioners apply ad-hoc “cut-and-paste” methods (Dupačová et al.,
2000). Many parametric methods for hydrologic scenario tree generation rely on
multivariate autoregressive descriptions of streamflow. The SOCRATES model
2-11
Chapter 2: Literature Review
constructed a scenario tree using a parametric method that incorporated a disaggregated
seasonal forecast based on snowpack conditions (Jacobs et al., 1995). Cluster analysis of
the historic record can also be used for scenario tree generation (Birge and Mulvey, 1985;
Dupačová et al., 2000)
Also in use are many non-parametric methods that sample the historic record for
analogue scenarios, which preserve some prescribed moments of the marginal or
conditional probability distributions (Miller and Rice, 1983; Smith 1993; Dupačová et al.,
2000). Høyland and Wallace (2001) proposed a nonlinear program to sample time series
segments from the historic record to construct a scenario tree of discrete paths which
accurately maintains moments. Dupačová et al. (2003) used Fortet-Mourier type
probability metrics to generate scenario trees.
2-12
Probability Density
Forecast
Climatology
Tercile
Low
Med
High
Climatology
33.33%
33.33%
33.33%
Adjusted Climatology
15.00%
45.00%
55.00%
Total Rainfall in
Wet Season (mm)
Figure 2.1
Seasonal Climate Adjustment Forecast
Distribution of Precipitation in the Approaching Wet Season
High
Med
Low
243 scenario traces
stage=0
now
stage=1
stage=2
stage=3
stage=4
stage=5
Figure 2.2
Five Stage Branching Scenario Tree
Three possible states: “high”, “med”, and “low”
Chapter 3: Background
Chapter 3: Background
This thesis represents an extension of the Climate Forecasting for Agricultural
Resources (CFAR) project. Since 1997, CFAR investigators from Tufts University and
the University of Georgia have been collaborating with institutional partners in Burkina
Faso to identify opportunities and constraints to the use of climate forecasts by farmers
and pastoralists. Research sites throughout the nation have included rainfed subsistence
and cash crop farmers who may occasionally also be seasonally supplied by small
reservoirs (Roncoli et al., 2002; Roncoli et al. 2004; Radar and Kirshen, 2005, Roncoli,
2006, Roncoli et al, 2008). This thesis represents a new phase of CFAR research
investigating the application of climate forecasting for large scale multi-objective water
resources management.
There are three major CFAR partners from state institutions in Burkina Faso. The
Direction de la Météorologie Nationale (DMN) is responsible for the collection of
meteorological data and the production and dissemination of weather forecasting
services. The Institut de l’Enviroment et des Rechérches Agricoles (INERA) is the
research branch of the Ministry of Agriculture. It has several extension offices with
agents working with local farmers. The Direction Générale des Ressources en Eau
(DGRE) is the institution responsible for the management of water resources, which
under the 1996 Reforme Agraire et Foncière Act are owned by the state on behalf of its
citizenry.
Management of surface water resources in Burkina Faso is very important. The
country ranges from arid to semi arid and most rivers are ephemeral and highly variable.
The nation’s overwhelming reliance on agriculture makes surface water resources critical
during the long dry season. The 2004 International Monetary Fund poverty reduction
strategy developed in consultation with stakeholders in Burkina Faso calls for the
improvement of water management for domestic water supply and irrigation. As part of
the 2003 national water management strategy (“Plan pour la gestion intégrée des
resources en eau”; PAGIRE), the management of local water resources is the
responsibility of local water committees (“Comités Locaux pour l’Eau”; CLE).
3-1
Chapter 3: Background
This thesis examines the Comoé River basin reservoir network in southwestern
Burkina Faso. It was selected for investigation by the CFAR team and its institutional
partners because it is an important source of water for agriculture and municipal water
supply and in the last ten years the area has experienced a substantial decline in quantity
and quality of its water resources. Water stress had lead to growing social tension
centered on water use (Roncoli et al., in review).
Comoé River Basin
The Comoé River Basin is the primary watershed in southwestern Burkina Faso. The
largest city in the area is Banfora, depicted in the area map shown in Figure 3.1. A
network of three large dams and several canals distributes water to multiple users
throughout the year. Figure 3.2 is a map of the Comoé River Basin downstream of the
three reservoirs and shows the location of the three major water users in the network: (1)
The Societé Sucrière de la Comoé (SOSUCO), (2) the Banfora water utility, and (3) a
cooperative of farmers in the Karfiguela plans.
SOSUCO
The Societé Sucrière de la Comoé (SOSUCO) based in Bérégadougou is the largest
sugarcane agribusiness in Burkina Faso. With 2000 employees, it is largest employer in
the entire country, second only to the state. Prior to privatization in 1998, the company
was owned and operated as a national enterprise. It is now owned by Industrial
Promotional Services (Roncoli et al, under review).
SOSUCO is the primary water user in the basin. The company cultivates 4000 ha of
sugarcane throughout the entire year using supplemental irrigation during the wet season
and total irrigation during the dry season. The primary technique is central pivot spray
irrigation (Ouedraogo et al., 2007). There is also some demand related to sugar milling
operations. The Comoé River basin reservoir network is maintained and operated by
SOSUCO.
Banfora
3-2
Chapter 3: Background
SOSUCO is legally obligated to provide water to the local department of the Office
Nationale de l’Eau et des l’Assainiessement (ONEA) which serves as the water utility for
Banfora. There is no significant industry in Banfora. The population is 63,300 (Roncoli
et al., under review). While anecdotal accounts revealed that there is substantial
variability in seasonal demand for ONEA, this data were not available for this thesis.
These demand fluctuations have caused pressure problems in the SOSUCO operated
conveyance pipelines, as upstream operators were not aware of the appropriate flow rates.
Karfiguela Farmers
The Coopératives des Exploitants de la Plaine Améragée de Karfiguela (CEPAK) is
made up of approximately 713 small-scale farmers from the villages of Karfiguela and
Tengrela. Since the construction of a diversion and irrigation canal in 1975 CEPAK has
diverted water from the Comoé River. The infrastructure was a development project of
the Chinese government. The irrigated area is 175 ha in the dry season and 350 ha in the
wet season (Zoungrana and Zongo, 2006). Figure 3.3 shows a schematic of the canal
network and irrigated perimeter. Crops in the Karfiguela Plains include cassava, banana,
papaya, rice, and “market vegetables” (Roncoli et al., under review). Photographs of the
surface furrows, which are used for irrigation, are shown in the Figure 3.4.
There is an informal agreement that SOSUCO will operate the reservoir network to
maintain an adequate amount of water in the Comoé River to provide the diversion for
the Karfiguela Plains with the proper amount of water. In recent years, including 2007,
CEPAK has been upset when even during a strong rainy season SOSUCO did not release
enough water to meet their demands
Multi-Reservoir Network
The Comoé River basin reservoir network is comprised of several interconnected
elements shown in Figure 3.5. There are three reservoirs each with their own associated
catchments. The Moussodougou, Lobi, and Toussiana reservoirs were constructed in
1991, 1977, and 1981 respectively. In association with CFAR, Zoungrana and Zongo
(2006) collected a thorough catalogue of reservoirs in the Comoé watershed.
3-3
Chapter 3: Background
SOSUCO operates two reservoirs in parallel on highland tributaries of the Comoé
River. The capacity of the Moussodougou reservoir is 38.50 Mm3, with an associated
catchment area is 560 km2. The capacity of the Lobi Reservoir is 6.06 Mm3, with an
associated catchment area of 120 km2. Spills from the Moussodougou reservoir flow into
the Lobi Reservoir. Spills from the Lobi reservoir flow into the Comoé River.
A diversion structure downstream of both reservoirs sends flows through a pipeline,
which supplies SOSUCO sugarcane irrigation and the municipal needs of ONEA
Banfora. Downstream of the pipeline diversion a second check dam and diversion
structure on the Comoé, shown in Figure 3.6, allows water to be sent to the Karfiguela
irrigation perimeter by means of a concrete lined canal.
On the Yannon tributary of the Comoé River is the Toussiana Reservoir operated by
SOSUCO. The storage capacity is 6.10 Mm3. The associated basin area is 130 km2.
Releases can be sent only to the SOSUCO sugarcane irrigation and to no other network
water consumers. Spills flow into the Yannon tributary.
Debits Sanitaires
There are many riparian users whose needs must be considered for improved water
resource management of the Comoé River Basin, including small scale run-of-the-river
irrigators, pastoralists, and fishermen. Nearby households rely on a minimum level of
streamflow to meet their livelihood needs such as sanitation, washing clothes, cooking,
and recreation (Ouedraogo et al., 2007; Roncoli et al., under review). The minimum
streamflow to meet these collective needs are referred to as debits sanitaires. While it is
beyond the scope of this thesis to estimate debits sanitaires, the work does allow water
managers to set downstream flow constraints for this purpose.
Analogue Year: 1974
While actual historic water supply and demand data are not readily available for the
Comoé River basin it is possible to estimate reservoir inflows and irrigation demands
from historic precipitation and streamflow conditions (details on these procedures are
covered in Chapter 4). Dekadal (10-day) estimates for total reservoir inflows and
precipitation volumes falling on agricultural land for 1974 conditions are shown in Figure
3-4
Chapter 3: Background
3.7. This year was selected as it precedes the large scale development in the basin and
represents unregulated streamflow conditions.
With an annual reservoir inflow volume of 90.35 Mm3, this year represents mean
streamflow conditions. The severe interannual variability is apparent when considering
that the eight years leading up to 1974 included annual inflow totals as low as 57.73 Mm3
(1972) and as high as 171 Mm3 (1966).
The total basin-wide demand for each dekadal, shown in Figure 3.7, was modeled
using methods described later in Chapter 4. In the analogue year, when adding the
annual direct precipitation contribution (36.52 Mm3) to the crops to the annual reservoir
inflow volume of 90.35 Mm3 , there is more than enough water to meet the annual total
water demands (91.35 Mm3). It is clear that the challenge for water managers is to store
enough water during the wet season to maintain the nearly constant demand throughout
the dry season.
Figure 3.8 shows a breakdown of the three different water consumers in the network.
Relative to the large volumes of water used by SOSUCO, the needs of the Karfiguela
plains are small, constituting only 6% of the total water demand.
Local Climate and Hydrology
The Comoé River basin is located in the Sahel-Sudan climatic zone, south of the
Sahara desert. The zone is characterized by intense seasonal and inter-annual variability
with respect to precipitation and streamflow.
Precipitation
The wet season lasts from June to October. Over 70% of annual precipitation occurs
in the July-August-September (JAS) period. The dry season, with virtually no
precipitation at all, lasts from October to May, with a slightly cooler period from
December to February. Figure 3.9 shows the monthly total rainfall for 1954 through
2005. This weather station, located in Banfora, is one of several maintained by the DMN
in the Comoé River basin. Total annual rainfall is highly variable from year to year,
shown in Figure 3.10. From 1954 to 2005 total precipitation ranged from 580mm (1988)
to 1463mm (1963).
3-5
Chapter 3: Background
Streamflow
Streamflow in the Sudan-Sahel region is highly sensitive to precipitation events in the
local watershed. As a result streamflow is also highly seasonal. DGRE maintains several
river gauges in the Comoe River Basin shown in Figure 3.11. The only station with
records preceding the construction and operation of the reservoir network is Diarabakoko.
Streamflow is negligible at Diarabakoko during the dry season (2.0 to 4.0 m3/sec).
Starting in June flows start to increase, peaking in August or September. This peak is
highly variable from year-to-year. End of wet season streamflow peaks range from 18.4
m3/sec (9/22/1972) to 137 m3/sec (9/21/1959). Historic unregulated monthly streamflow
volumes from 1968 to 1975 are shown in Figure 3.12. Estimates of the monthly
precipitation volumes associated with the watershed (area= 2,400 km2) are also shown in
Figure 3.12.
Climate Change
A recent downward trend in annual precipitation volumes in the Sudan-Sahel is
indisputable (Nicholson, 2001; Bell and Lamb, 2006). The annual precipitation volumes
in Figure 3.10 illustrate this trend for the Comoé River basin. Several studies have
shown that JAS precipitation in the Sudan-Sahel is highly sensitive to sea surface
temperatures (SST) around the globe (Kabore and Yaka, 2000; Giannini et al., 2003).
Hoering et al., (2006) describe how recent SST warming trends associated with global
climate changing have been responsible for the recent droughts in West Africa. The
climate outlook for the next century in West Africa is one with warmer temperatures, less
precipitation, and increased interannual variability (Hulme, 2001). These trends will put
increased pressure on the management of water resources in the Comoé River basin.
Climate Forecasting
Recent research has shown that the West African climate system has a degree of
predictability on the season to interannual (SI) time scale. Using the correlation between
the relatively slowly evolving SST anomalies around the globe and the atmospheric
response in the Sudan-Sahel, the African Center for Meteorological Applications for
3-6
Chapter 3: Background
Development (ACMAD), a regional meteorological organization, has been developing
and distributing probabilistic forecasts for precipitation during the JAS period (Kabore
and Yaka, 2000). ACMAD is a collaborative effort between 53 African member
countries working to provide improved climate information for agriculture, famine earlywarning systems, and other development projects.
Every April, the Direction de la Météorologie Nationale (DMN) in collaboration with
the ACMAD uses statistical regression to develop probabilistic forecasts of total
precipitation for the approaching JAS period. While it may eventually be possible to
incorporate numerical global climate modeling into these forecasts, currently these
methods are not available. The statistical forecasts rely on SST indices such as the
Atlantic Equatorial Zone, Northwest Atlantic Zone, Nino3, and EOF3. Kabore and Yaka
(2000) detail the cross validation for these forecast and describe the model skill.
The forecast is provided in a tercile format. The climatological distribution of the
uncertain precipitation volume for the JAS period is divided into three equally likely
terciles: “low”, “medium”, and “high”. With no forecast information each tercile has an
equal 33.33% chance of occurring. The probabilistic ACMAD forecast adjusts these
tercile probabilities for the approaching wet season. An example of a possible forecast is
shown in Figure 2.1.
Participatory Research
The CFAR collaborative project is an example of participatory research, in which the
stakeholders of the local system under investigation are included in the research process.
The development of decision support tools for this thesis project represents such an
approach.
Stakeholder Meetings
Three consultations with representatives of the user groups were held. Roncoli et al.
(in review) details the findings of these investigations. In January 2007, the CFAR team
held open-ended interviews on site with representatives from SOSUCO, ONEA, CEPAK,
and local field agents from INERA and DGRE. Preliminary hydrologic, meteorological
and network information was gathered at this time, including government reports on
3-7
Chapter 3: Background
agriculture and water resources management in the Comoé River Basin. In June 2007,
representatives of the stakeholder groups and CFAR partners met in Ouagadougou to
discuss water management decision making. In January 2008, as part of this thesis, the
author presented a preliminary deterministic optimization DST in Banfora to the local
water committee (CLE), including local water users and government officials.
Constraints and problems associated with integrated water resources management of the
Comoé River Basin were discussed and recorded during these meetings, photos of which
are shown in Figure 3.13. More results of this meeting are further discussed below.
Mismanagement, Miscommunication and Opportunity Costs
In a basin where water resources are scarce and competitively sought after, there may
be many opportunities to improve the efficiency of multi-objective water management.
While distribution of water resources has not been contentious for the past 40 years,
recent stresses on the availability of water have aggravated tensions. SOSUCO controls
the releases from the three reservoirs and the pipeline diversion to their sugarcane field.
CEPAK farmers complain that SOSUCO releases and pipeline diversions have
greatly reduced the availability of water in the Comoé River for irrigation diversion to
their crops during the dry season. Even during wet seasons with average precipitation,
SOSUCO does not always release enough water to meet the needs of the CEPAK
diversion.
Supplied by the pipeline diversion, the municipality of Banfora usually does not
suffer from water shortages. The main problem is that fluctuations in water use are not
communicated to the SOSUCO engineers who control the divergence to ONEA for
distribution in Banfora. As a result the utility does not always consume the water they are
diverted and the resulting pressures have damaged SOSUCO infrastructure.
SOSUCO itself manages their reservoir network in a way that incurs opportunity
costs. At present the reservoir system is used primarily for within year storage to provide
water supply during the dry season. Currently, SOSUCO reservoir operations are
heuristic and conservative. The challenge for operators is to make release decisions
throughout the year without knowing exactly when the wet season will begin or what
volume of precipitation and streamflow it will bring. The severe interannual variability
3-8
Chapter 3: Background
in wet season total precipitation has forced operation to be highly conservative. During
times when water is available, deficit irrigation is employed where crops are under
supplied with water to avoid catastrophic deficits in subsequent time periods
Suggested Tools
The goal of this thesis was to develop a decision support tool (DST) which would
improve the integrated water resources management of the Comoé River Basin. In the
context of participatory research, the structure, inputs, and objective of these tools were
developed in collaboration with local stakeholders. In January 2008, a prototype DST,
described by Etkin et al. (2008), was presented to members of the CLE and local CFAR
collaborators. In the resulting discussions, stakeholders made it clear that while they
were interested in the opportunities presented by the stochastic prescriptive optimization
tool presented, it would be helpful to first make a deterministic simulation model
available to the CLE. The simulation tool would prompt the collection of demand data,
and facilitate communication between the users and the SOSUCO operators. Once the
CLE was comfortable with the modeling environment for the simulation tool, more
advanced prescriptive tools would be considered. This thesis represents the development
of both models. Chapter 4 includes a brief description of the simulation tool. Chapters 4
and 5 describe in detail a prescriptive DST which relies on ACMAD forecasts to improve
recommended releases and diversions.
3-9
Figure 3.1
Map of Comoe River Basin Area
Showing Banfora, Diarabakoko, Moussodougou, Toussiana, and Karfiguela
Figure 3.2
Map of Comoe River Basin Reservoir Network
Showing Banfora, Karfiguela Irrigation Perimeter, SOSUCO Irrigation Perimeter
K T
Karfiguela irrigated perimeter
Road to
Banfora
Comoe
river
N
To waterfalls
3
Tertiary canals
2
valve
1
1
Small irrigation plots
(outside perimeter)
Secondary
canals
Main canal
2
road
Blocks 3
Co-op
headquarters
Karfiguela
village
17
4
5
Banana
plantation
road
Area easily
inundated
drain
lake
a
l
e
u
Karfig
Main drain
road
K T
village territorial
boundary
Figure 3.3
CEPAK - Karfiguela Plains Irrigation Network
Showing distribution canals and farmer plots
Furrowed irrigation plots in January at Karfiguela Plains
Valve from primary canal to secondary canal
Figure 3.4
Photos of Karfiguela Plains Irrigation Perimeter
Moussodougou (M)
Adrain = 560 km2
Asurface = 9 km2
Capacity = 38.5 Mm3
T
Lobi (L)
Adrain = 120 km2
Asurface = 3 km2
L
Toussiana (T)
Adrain = 130 km2
Asurface = 2 km2
Capacity = 6.1 Mm3
Capacity = 6.06 Mm3
M
SO
SOSUCO (SO)
Airrigation = 4000 ha
Sugarcane
Pipeline
Kafigula (Ka)
Airrigation = 175/350 ha
Market vegetables
iver
on R
Yann
Co
mo
éR
ive
r
Ba
Banfora (Ba)
Municipal supply
Ka
Figure 3.5
Comoe River Basin Reservoir Network Schematic
Showing three reservoirs and three primary user demands
Downstream of diversion works for Karfiguela Plains on Comoé River
Diversion valve on Comoé River for primary irrigation canal
Figure 3.6
Photos of Diversion on Comoé River for Karfiguela Plains
Total Basin Hydrologic Inputs and Water Demand
10.0
1974
9.0
Annual Reservoir Inflows = 90.35 Mm3
Annual Basin Demands = 91.36 Mm3
Annual Precipitation = 36.52 Mm3
8.0
Total Reservoir Inflows
7.0
Total Basin Demand
Total Precip
Volume (Mm3)
6.0
5.0
4.0
3.0
2.0
1.0
0.0
July
August
September October
Dry Season
March
April
May
June
Dekadals
Figure 3.7
Dekadal Water Demands
4.0
1974
3
Annual SOSUCO Demand = 83.23 Mm
Annual Karfiguela Demand = 5.85 Mm3
Annual Banfora Demansd = 2.27 Mm3
3.5
SOSUCO
Karfiguela
Banfora
3.0
Volume (Mm3)
2.5
2.0
1.5
1.0
0.5
0.0
July
August
September October
Dry Season
March
April
May
June
Dekadals
Figure 3.8
700
600
Historic Years
500
2nd Tercile Upper Bound
Total Precip (mm)
1st Tercile Upper Bound
Min
Mean
400
Max
300
200
100
0
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Figure 3.9
Monthly Precip Volumes (1954 - 2005)
1600
1400
Total Annual Rainfall (mm)
1200
1000
800
600
400
200
0
1950
1955
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Year
Figure 3.10
Precipitation at Banfora, Burkina Faso 1954 to 2006
Figure 3.11
Streamflow Gauges in Burkina Faso
Ja
n
M -68
ar
M -68
ay
Ju 68
l
Se 68
p
N -68
ov
Ja -68
n
M -69
ar
M -69
ay
Ju 69
Se l-69
p
N -69
ov
Ja -69
n
M -70
ar
M -70
ay
Ju 70
Se l-70
p
N -70
ov
Ja -70
n
M -71
ar
M -71
ay
Ju 71
Se l-71
p
N -71
ov
Ja -71
n
M -72
ar
M -72
ay
Ju 72
l
Se 72
p
N -72
ov
Ja -72
n
M -73
ar
M -73
ay
Ju 73
l
Se 73
p
N -73
ov
Ja -73
n
M -74
ar
M -74
ay
Ju 74
l
Se 74
p
N -74
ov
Ja -74
n
M -75
ar
M -75
ay
Ju 75
l
Se 75
p
N -75
ov
-7
5
Volume (Mm3/month)
1000
900
Precipitation Volume
800
Streamflow Volume
700
600
500
400
300
200
100
0
Figure 3.12
Monthly Precipitation at Banfora and Unregulated Flow Volumes and Diabarakoko
Members of the CLE including SOSUCO, DMN, CEPAK and ONEA Banfora
Members of the CFAR team with the Banfora local water committee
Figure 3.13
Photos of January 2008 CFAR Meeting with Banfora CLE
Chapter 4: Methodology
Chapter 4: Methodology
To address the problems identified by the Comoé River Basin stakeholders, this thesis
presents two decision support tools for investigating and improving dekadal (10-day)
reservoir operation. The first tool is a deterministic simulation tool which calculates user
deficits for user-selected release schedules. The second tool is a multi stage stochastic
optimization model which determines recommended reservoir releases for the
approaching dekadal in real time. The MSSLP uses a rolling five-stage branching
scenario tree of precipitation forecasts based on the historic record. A rainfall runoff
model is used to generate reservoir inflow scenarios associated with each trace of the
precipitation scenario tree. A preliminary version of this optimization model was
presented in Etkin et al. (2008). Visual Basic for Applications (VBA) programming was
used to build a graphic user interface (GUI) for both tools. GAMS is used to solve the
MSSLP.
Deterministic Simulation Model
The simulation model described in this section is a software tool which allows water
managers to simulate the user deficits incurred from a variety of hydrologic supply
scenarios. The construction of this simulation model represents the first step in a larger
project to provide information tools to facilitate integrated water resources management.
The simulation tool assists Comoé River water managers with organizing, processing,
and discussing the Comoé River basin system inputs and demands. It allows different
operational release and diversion schedules to be evaluated with respect to the deficits
incurred under different inflow and precipitation scenarios.
VBA is used to construct a GUI for the simulation tool, which is based in a Microsoft
Excel workbook. VBA is a standard package for all versions of Excel and not
computationally demanding. The broad familiarity of Excel outside academia and
engineering makes it accessible to a wider set of possible users involved in the integrated
water resources management process.
Simulation Framework
4-1
Chapter 4: Methodology
The simulation tool examines a period of one year by 36 dekadal time steps (t = {1, 2
…36}). A set of water balance equations is used to calculate the volumetric deficits
(VolDeftdem) for each demand (dem = {SOSUCO, ONEA, Karfiguela, Debits
Sanitaires}), and reservoir storage (Stres) for each reservoir (res={Moussodougou, Lobi,
Toussiana}) given a deterministic scenario of dekadal reservoir inflows (Inftres), basin
demands (TotDemtdem), and user selected reservoir releases (Reltres) and diversions (Qt).
Water balance equations maintain the network constraints and storage capacities of the
reservoir-diversion system. The user can manually input release and diversion schedules
to allocate water resources to the demands or use a built-in operational algorithm which
offers a “first cut” at the schedule. A network schematic of the inflows, releases, and
diversions is shown in Figure 4.1.
Reservoir System Parameter Inputs
To use the simulation tool, the user first enters values for active storage capacity
(Smaxres) for each reservoir and initial reservoir volume (St=0res) for each reservoir. Also
required is an estimation of the conveyance efficiency (effdem) for each demand, which
includes losses in distribution and in water application in irrigation. For the calculation of
dekadal evaporative losses (Evaptres) from each reservoir, an area parameter (areafres) is
required that defines the assumed linear relationship between storage in each reservoir
and surface area. A screenshot of the system parameter input table is shown in Figure
4.2. The user can name, save, load, and edit, if desired, sets of input parameters. For
example, in Figure 4.2, the input data set has been named “low”.
Hydrologic Inputs
For the simulation, the user selects a scenario of dekadal hydrologic inputs for the
year-long forecast horizon including: (1) inflows to the three reservoirs (Inftres), (2)
rainfed supply to the fields of SOSUCO and Karfiguela (Preciptdem), and (3) unregulated
flows to the Comoé River downstream of the dams (Qtunreg). It is also necessary for the
user to enter a year-long scenario of the evaporation rate (evapRatet) for the reservoirs for
each dekadal.
4-2
Chapter 4: Methodology
Screenshots of the hydrologic input tables are shown in Figure 4.3. The VBA
interface again allows the user to name, save and retrieve input sets, as well as change the
starting dekadal of the simulation with a drop down box. For example, in Figure 4.3 the
inflow dataset is named by the user as “low_inflows” and the precipitation dataset is
named “medium_B”. The user also inputs the start date of the simulation here. It must be
start of one of the dekadal periods and is selected from the pull down menu.
Consumer Demand Inputs
The simulation model user inputs or can recall by name a year long estimation of
dekadal total demands for each consumer: (1) SOSUCO (TotDemtSO), (2) ONEA Banfora
(TotDemtBa), (3) Karfiguela irrigation perimeter (TotDemtKa), and (4) Comoé River
riparian users or “debits sanitaires” (TotDemtDS). The total demands for SOSUCO and
Karfiguela are the total crop demands to be satisfied by precipitation and irrigation. A
screenshot of the demand input table is shown in Figure 4.4. The net demand
(NetDemtdem) for a particular water user is the total demand (TotDemtdem) minus the
volume supplied by rainfall. The efficiency factor (effdem) is used to capture the
conveyance efficiency for each distribution system.
(1)
NetDemtdem = (TotDemtdem – Preciptdem) / effdem
∀ t, dem
For the ONEA and riparian flow water requirements there is no precipitation supply.
PreciptBa = 0, PreciptDS = 0
(2)
∀ t
Riparian flow requirements can be partially met by unregulated flow to the Comoé. The
net demand for Debits Sanitaires is the demand minus the unregulated flow supply. A
screenshot of the net demand calculation table is also shown in Figure 4.4.
Reservoir operational schedule
For each dekadal time step, a set of releases and diversions is selected either manually
by the user or from a built-in operational algorithm. There are six release decisions,
4-3
Chapter 4: Methodology
which are shown in the network diagram in Figure 4.1: (1-3) reservoir releases from each
of the three reservoirs (Reltres), (4) diversions from the Comoé pipeline to the SOSUCO
irrigation perimeter (QtpipeSO), (5) diversions from the Comoé pipeline to the ONEA
Banfora distribution system (SupplytBa), and (6) the diversion at the Karfiguela Plains
water intake from the Comoé (SupplytKa). The remaining three flows in the network are
automatically calculated from these diversions: (7) total pipeline diversion from the
Comoé (Qtpipeline), (8) flow in the Comoé downstream of the pipeline diversion and
upstream of the Karfiguela Plains intake (QtComoé) and (9) the Comoé flow downstream of
the Karfiguela Plains or “debits sanitaires” (SupplytDS). A screenshot of the decision
schedule input table is shown in Figure 4.5 and the six required entries are in the outlined
boxes in the screen.
Network operational simulation
After the user has manually selected the release schedule the simulation tool verifies
the feasibility of the operational schedule against the network constraints such as the
capacities of the conduits or necessary flow directions. If the proposed schedule violates
either the network constraints or the hydrologic inputs, the user is alerted and the
simulation is not performed.
For each dekadal time step, the simulation calculates the three non-decision flows, the
storage in each reservoir, and the deficit incurred for each demand. The three nondecision flows are calculated as such:
(3)
Qtpipeline = QtpipeSO + SupplytBa
∀ t
(4)
QtComoé = ReltM + ReltL - Qtpipeline + Qtunreg + SpilltL
∀ t
(5)
SupplytDS = QtComoé - SupplytKa
∀ t
Storage and spills for each reservoir in the system is calculated for each dekadal as such:
(6)
Stres = St-1res + Inftres - Reltres - Evaptres - Spilltres
∀ t, res
(7)
Evaptres = St-1res · areafres · evapRatet
∀ t, res
4-4
Chapter 4: Methodology
where surface area of the reservoir is approximated using the storage in the previous time
step, and the evaporation loss is estimated from the resulting previous surface area and a
scenario of evaporation rate (mm/day) for each time step. Figure 4.6 shows a screenshot
of the output table for simulated volumes including storage and evaporation loss.
If the calculated storage for a particular dekadal exceeds the maximum capacity then
the storage for that dekadal is set equal to the maximum capacity. The difference is
calculated as spill (Spilltres). The one exception to equation (6) is for Toussiana, into
which spills from Moussodougou are routed. Spill from the Lobi reservoir contribute to
the Comoé and “Debits Sanitaires” as described in equation (3). Figure 4.6 also shows
the output table for simulated spill volumes.
If the user inputs a release schedule which results in negative storage in any dekadal
the entire simulation is performed with the infeasible storages and the user is alerted, so
they can make the necessary changes.
Volume deficits (VolDeftdem) in the supply for each water demand in the system are
calculated for each dekadal as such
VolDeftdem = NetDemtdem - Supplytdem
(7)
∀ t, dem
where the supply (Supplytdem) for the SOSUCO irrigation demand is
SupplytSO = QtpipeSO + ReltT
(8)
∀ t
The left hand column of the screenshot in Figure 4.7 shows the output table of simulated
supply deficits.
In the screenshot in Figure 4.7, the percent deficit (PerDeftdem) for each water user is
the fraction of the total demand which is supplied. For each water user the percent deficit
is:
(9)
PerDeftdem = (TotDemtdem + Preciptdem - Supplytdem · effdem)/TotDemtdem ∀ t, dem
4-5
Chapter 4: Methodology
The right column of the screenshot shown in Figure 4.7 shows the actual deficit volume
experienced by the user. The difference between the left and right hand columns of
Figure 4.7 is that the left hand columns includes the extra water to make up for
conveyance losses in water delivery and application.
Automatic Scheduling Algorithm
A built-in algorithm derives a feasible “first cut” release schedule in which demands
are satisfied as much as possible as soon as water supply is available without considering
possible future subsequent deficits; the algorithm does not “look ahead”. For each time
step the water supply for each reservoir is the available water in storage in each reservoir
plus the inflows to each reservoir minus evaporation losses. Water is supplied to all
demands first from the Moussodougou reservoir if it is available. If there is not enough
water in Moussodougou, water is supplied from Toussiana as it is available. If there is not
enough water in Toussiana, water is supplied from Lobi as it is available. If there is not
enough water in Lobi, all available water supply is released and distributed to the four
water users in the following priority: (1) ONEA Banfora, (2) SOSUCO, (3) Karfiguela,
(4) riparian users (“debits sanitaires”). The flow chart describing this algorithm is shown
in Figure 4.8. Note that in Figure 4.8 evaporation is considered when storage is calculated
in each time step.
In hydrologic scenarios where there is not enough water supply to satisfy all of the
demands throughout the year, the release schedule produced by the above algorithm is
not desirable as it focuses deficits at the end of the dry season when reservoir storage is
depleted. Users can make manual adjustments to any of the values of the release
schedule derived by the algorithm to better distribute deficits throughout the season or
can initially enter their own schedules.
Output of Simulation Tool
The output for the Comoé River Basin simulation model is the set of user deficits and
reservoir storage levels that result from the selected release schedule. Figures 9 and 10
show the dekadal storage and spills for the Moussodougou and Lobi reservoirs,
respectively. These values result from the release decisions and inflow scenario input by
4-6
Chapter 4: Methodology
the water manager. Graphs such as these provide a vision of the consequences of a
particular release schedule under a hypothetical hydrologic scenario.
To build an understanding of the consequences of release schedules on water users,
graphs such as those in Figure 11 show the dekadal demand and supply of water, in this
case for SOSUCO irrigation demands. The graph shows (1) the portion of the demand
satisfied by rainfall, (2) the portion met by irrigation releases from the reservoir network,
(3) and the remaining deficits to the total demand. Figure 12 shows the dekadal demand
and supply of water for Debits Sanitaires, which is met by unregulated flow in the Comoé
River for much of the season. The graph shows those dekadals when water was
intentionally released from the network to meet supplement Debits Sanitaires.
Evaluation of simulation tool
As part of the ongoing CFAR project in the Comoé River Basin, the presented
simulation model was undergoing evaluation by stakeholders in the CLE at the time of
the publication of this thesis.
Multi Stage Stochastic Linear Optimization Model
The deterministic simulation model presented in the previous section is only a first
step in a process to use information technology to improve the integrated water resources
management of the Comoé River Basin. While the simulation model provides water
managers and users with an improved and shared knowledge of the system dynamics, it
cannot explicitly describe the uncertainty of future streamflow and precipitation.
Additionally, it functions only in a descriptive capacity and cannot prescribe optimal
operational decisions in its present formulation.
The goal of the multistage stochastic linear optimization model presented in this
section is to consider multiple uncertain futures and optimize current operations to meet
current and future needs. The formulation allows the program to be run by operators at
any point during annual operations with a one year forecast horizon.
The MSSLP uses the same basic system description as the simulation tool, with a one
year model horizon of 36 dekadal time steps. The present and future reservoir releases
and network diversions comprise the set of decision variables, which are optimized by an
4-7
Chapter 4: Methodology
objective function that minimizes the weighted demand deficits incurred both in the
present and in the future as well as the final amount of reservoir storage. The constraint
set defines the dynamics of the reservoirs and conveyance network. While most of the
parameters for the constraint set are deterministic and are shared by the simulation model,
those describing future reservoir inflows and precipitation inputs are expressed
probabilistically with a five stage branching scenario tree. As described in more detail in
the following section, the scenario tree includes 243 discrete traces. The objective
function in the deterministic equivalent of the MSSLP solves for the set of releases in the
present time step that minimizes deficits both in the present time step and across all
future inflow scenarios.
The five-stage stochastic formulation use large sets of input parameters and output
decisions. To handle these large matrices, a data management interface was constructed
from a Microsoft Excel workbook. Visual Basic for Applications (VBA) programming
was used for extensive input data preprocessing in the Excel environment. The MSSLP
itself is coded and solved using the GAMS (Brook et al., 2007) which is interfaced with
the Excel workbook. Appendix A includes screenshots from the VBA-based DST
workbook. Appendix B documents an example of the GAMS code produced by the
VBA-based DST, the code of which is included in Appendix C.
Branching Scenario Tree Formulation
To stochastically represent future precipitation in the model horizon, a set of
scenarios is arranged in a tree structure, where branches represent the uncertainty of
subsequent events during any time stage in the forecast horizon. Stages represent
different seasonal periods throughout the year. Each point where branches diverge
denotes the beginning of a particular stage. Figure 2.2 shows an example scenario tree
with four stages and three possible hydrologic states in each stage: “high”, “medium”,
and “low”.
There are two uncertain hydrologic inputs of concern for the reservoir-irrigation
system: (1) reservoir inflows and (2) precipitation. Reservoir inflows dictate the volume
of available water in the reservoir. A forecast of precipitation is necessary to determine
the irrigation demand, defined as the volume of the crop demand which is not met by
4-8
Chapter 4: Methodology
rainfall. It is assumed that there is a deterministic relationship between streamflow and
basin precipitation as described by a calibrated ABDC rainfall-runoff model (Thomas,
1981; Thomas et al., 1983). This assumption allows the uncertainty of both random
variables to be represented by the probability structure of precipitation alone. The
calibration and initialization of the ABCD rainfall runoff model is described in more
detail in a following section.
To construct the branching scenario tree for this study, a precipitation forecast
horizon of one year is divided into five sequential time stages, sg. The zero stage (sg=0)
represents the present. Subsequent stages (sg={1, 3,…, 5}) occur in the future. At each
future stage (sg) a vector of random parameters (ξsg) is realized. The scenario vector ξsg
includes precipitation (precipsg), and the associated reservoir and unregulated tributary
inputs (infsgres) from the rainfall runoff model. The net irrigation demands (NetDemsgdem),
for each irrigation perimeter (dem={SOSUCO, Karfiguela}), are a function of the
probabilistic precipitation input (precipsgdem) to each field and the deterministic total crop
demand (TotDemsgdem). In this way net demand is also a stochastic parameter, the
distribution of which is described by the scenario tree.
The probability distribution of possible hydrologic realizations (ξsg) during each stage
can be approximated with three discrete possibilities ({ξsg low, ξsgmed, ξsghigh}), each of
which represents a tercile of the probability distribution of total precipitation during that
stage. A conditional transition probability structure is developed such that the probability
of the subsequent hydrologic state (ξsg+1state) is dependent on the realized tercile of the
previous stage (ξsgstate). This probability structure can be described by a three-state
transitional probability matrix (P(ξsg+1state|ξsgstate)) for each branch in the scenario tree. As
described later, in operational mode these probabilities are further adjusted according to
the forecasts.
Considering a single scenario trace through the tree as a unique sequence of
hydrologic events, it can be shown that the five-stage and three-state scenario tree
includes 243 complete scenario traces in the deterministic equivalent. Let
s={1,2,3,…243} index each of the scenario traces in the tree, and let ωsg=5={ξsg=1,
ξsg=2,…, ξsg=5} denote a scenario trace fully realized in the final stage. The joint
probability of scenario s occurring is
4-9
Chapter 4: Methodology
(10)
∀s
P(ωsg=5,s)= P(ξsg=1,s)·P(ξsg=2,s|ξsg=1,s)·P(ξsg=3,s|ξsg=2,s)·P(ξsg=4,s|ξsg=3,s)·P(ξsg=5,s|ξsg=4,s)
where ξsg,s is the realized state of scenario s in stage sg. Multiple scenarios stem from the
same “parent” branches where they share the same sequence of events in early stages
before diverging with different realizations in later stages. More generally, the joint
probability of a scenario trace s partially occurring to stage sg is:
(11)
P(ωsg,s)= P(ξsg=1,s|ξsg=0,s)·P(ξsg=2,s|ξsg=1,s)·…·P(ξsg,s|ξsg-1,s)
∀ s, sg
For the MSSLP each stage includes a varying number of dekadal (10-day) time steps
(t). This is necessary for a representation of the dekadal operational release schedule for
sugarcane irrigation. It is not computationally feasible to have 36 stages, which would
make one for each dekadal time step in the one-year forecast horizon. The number of
time steps in each stage is selected to best describe the probability distribution of
precipitation throughout the year. As described in the following section on scenario tree
generation, those periods with greater rainfall variability have higher time resolution with
respect to stage length.
To summarize, the MSSLP has thirty six dekadal time steps broken into five stages.
Reservoir dynamics and deficit calculations are performed for every one of the thirty six
time steps, while the five stages are the framework for the probability of each scenario
occurring.
Multi Stage Stochastic Linear Program Formulation
The goal of the DST is to provide the user with a set of decisions for the present time
step that minimizes both a penalty for deficits now and the expected penalties for deficits
in future time steps, with the penalty weights proportional to their importance. The
important outputs for the user from the model are therefore the releases which are
recommended for the first time step and the expected value of future releases, deficits,
and storage elevations. The expected penalty associated with future hydrologic scenarios,
known as the recourse function, is also dependent on the time series of future decisions
4-10
Chapter 4: Methodology
made as hydrologic conditions are realized. These anticipated future decisions are
simulated under the continual uncertainty of subsequent hydrologic inputs.
The objective function of the multi-stage stochastic linear program is defined as:
(12)
Minimize Z =
∑ [∑
s
sg
[P(ωsg,s) ·{ ∑ ( ∑ (penDeft,sdem)}]
t∈sg
dem
+ P(ωsg=5,s) · ∑ (penStoragesres)]
res
subject to:
Reservoir mass balance constraints
(13)
St,sres= St+1,sres + Inft,sres - Relt,sres - Spillt,sres - Evapt,sres
∀ t, s, res
(14)
Evapt,sres = evapratet·areafres (St,sres+ St+1,sres)/2
∀ t, s, res
(15)
St,sres ≤ Smaxres
∀ t, s, res
(16)
St,sres ≥ Sminres
∀ t, s, res
(17)
Relt,sres ≤ Relmaxres
∀ t, s, res
Conveyance node constraints,
(18)
Relt,sM+ Relt,sL+ Spillt,sL = Supplyt,sKa+ Qt,spipeline+ Qt,sComoe
∀ t, s
(19)
Qt,spipeline = Supplyt,sBa+ Qt,spipeSO
∀ t, s
(20)
Supplyt,sSO = Rt,sT + Qt,spipeSO
∀ t, s
Demand node constraints,
(21)
Supplyt,sdem ≤ NetDemt,sdem/effdem
∀ t, s, dem
Deficit and convex piecewise linear penalty function,
(22)
deft,sdem = (NetDemt,sdem- Supplyt,sdem· effdem) / TotDemt,sdem
(23)
penDeft,sdem = slopeAtdem · defAt,sdem + slopeBtdem · defBt,sdem
∀ t, s, dem
B
+ slopeCtdem·defCt,sdem
∀ t, s, dem
(24)
deft,sdem = defAt,sdem + defBt,sdem + defCt,sdem
∀ t, s, dem
(25)
defAt,sdem ≤ kneeBtdem
∀ t, s, dem
4-11
Chapter 4: Methodology
(26)
defBt,sdem ≤ kneeCtdem - kneeBtdem
∀ t, s, dem
Convex end-storage target function,
(27) penStoragesres = slopeUnderres· SUndersres + slopeOverres· SOversres ∀ s, res
(28)
St=T,sres = Stargetres – SUndersres + SOversres
∀ s, res
Non anticipativity constraints,
(29)
Relt,sres = Relt,s’res if ωsg,s= ωsg,s’
∀ t∈sg, sg, s, res
(30)
Spillt,sres = Spillt,s’res if ωsg,s= ωsg,s’
∀ t∈sg, sg, s, res
The objective function (12) minimizes the sum of the expected penalties (penDeft,sdem)
for each demand (dem={SOSUCO, Karfiguela, Banfora}) over all time steps t and
scenario traces s. The expected value is calculated from the joint probability (P(ωsg,s))
associated with the scenario trace up to that stage (ωsg,s). The deficit penalty function
(23) is the summation of a convex piecewise linear function shown in Figure 4.13. The
penalty function has two break points (kneeBtdem, kneeCtdem) and three monotonically
increasing slope values (slopeAtdem, slopeBtdem, slopeCtdem) associated with the threshold
tolerance of water deficit for each demand in a particular time period. The parameters of
the deficit function vary between demands and time steps. This offers the model user the
flexibility to carefully prioritize demand for certain consumers or time steps.
The objective function (12) also includes a storage target penalty (penStoragesres)
associated with the differential between the storage (St=T,sres) in each reservoir (res) in the
final time step (t=T) and a storage target (Stargetres). The target storage penalty function is
defined by equation sets (27) and (28). Targets can be prioritized to different degrees
with the scalar penalties associated with overshooting (slopeOverres) and undershooting
(slopeUnderres) which can vary between reservoirs.
The reservoir constraint set (13) represents the mass balance of each reservoir
(res={Moussodougou, Lobi, Toussiana}) in each of the 36 time steps in the forecast
horizon. For each reservoir, in each time step the storage (St,sres) is equal to the inflow
(Inft,sres) minus the releases (Relt,sres), spills (Spillt,sres) and evaporation (Evapt,sres). The
evaporation (14) is the product of the average reservoir storage in that time period, an
4-12
Chapter 4: Methodology
area factor (areafres) that relates storage to the exposed reservoir surface area, and a net
evaporation rate (evapratet) which is assumed to be a deterministic parameter and is
based on the historic mean for each dekadal time step. Explicit capacity constraints (15,
16) prevent storage from violating the maximum capacity (Smaxres) and minimum storage
(Sminres) associated with each reservoir. A set of constraints (17) prevents reservoir
releases (Relt,sres) from exceeding the maximum release capacity (Relmaxres)of each
reservoir.
The conveyance node constraints (18, 19, 20) describe the physical network of
diversions and canal structures in the basin for every time step, where flow variables
(Supplyt,sKa, Qt,spipeline, Qt,spipeSO, Supplyt,sBa, Qt,sunreg) describe the dekadal flow volume for
each arc of the network shown in Figure 4.1. The dekadal time step is sufficiently long,
and the distances sufficiently small, to avoid the need for a routing model. Constraint set
(21) prevents supply diversions from exceeding the demand in that particular time step,
including a delivery efficiency parameter.
The percent deficit in each time step (22) is the net demand (NetDemt,sdem) minus the
irrigation supply (Supplyt,sdem), divided by the overall efficiency-factored crop demand
(TotDemtdem). In this way the percent deficit considers rainfed water supply, which is the
difference between the total demand and the net demand. Total demands are assumed to
be deterministic. Net demands (NetDemt,sdem) are probabilistic since they are a function
of the precipitation input (precipt,sdem) to the consumer, which is described by the
precipitation scenario tree. Therefore, unlike total demand, for a given time step net
demand may vary between scenarios. For Karfiguela and SOSUCO total demands are
estimated deterministically by crop modeling. Total demand for ONEA Banfora is
estimated deterministically from historic patterns. Since the municipal demand for
Banfora cannot be met by rainfed supply: TotDemtBa = NetDemt,sBa ∀ t, s. The methods
for estimating total and net demands for all basin water consumers are described in detail
in a following section.
The non-anticipativity constraints (29) and (30) prevent release and spill decisions
from anticipating hydrologic inputs in subsequent stages in the forecast horizon. This is
achieved by explicitly setting the schedule of dekadal release decisions for a given stage
4-13
Chapter 4: Methodology
(sg) from one complete scenario trace (s) equal to those of another scenario trace (s’) if
the partial scenarios up to that stage are the same: ωsg,s= ωsg,s’.
The solution of the MSSLP reveals those release and diversion decisions for the
present dekadal which best match current demand while considering the future needs. By
generating scenario trees which describe the next year of precipitation and reservoir
inflows, water managers can run the MSSLP at any dekadal to determine this optimal
decision vector.
Incorporating Ensemble-Based Forecasts
The probability structure of the hydrologic scenario tree is initially defined by
climatology. In Burkina Faso, ACMAD produces ensemble-based seasonal forecasts
which can adjust these probabilities for the July-September wet season based on current
sea-surface temperature (SST) data (Kabore and Yaka, 2000). The forecast is available
in a tercile format. This format provides a new probability for the “high”, “medium”, and
“low” conditions. An example forecast is shown in Figure 2.1.
While there is no single stage representing the July-August-September (J-A-S)
rainfall period, it is possible to incorporate this forecast information into the probability
structure of the scenario tree. First the 243 complete scenario traces are sorted into tercile
groups by their respective total rainfall summations during the three-month (J-A-S) wet
period. The probability of each complete scenario trace is then adjusted according to the
tercile probability forecast, and the transitional probabilities throughout the stages are
scaled accordingly. In this way the conditional probability and non-anticipativity is
maintained within each scenario, while SST-based adjustment weights the expected
outcome. For those periods in the forecast that are not during the wet season,
climatology is maintained.
Deterministic Parameter Estimation
Both the simulation model and the stochastic optimization model use parameters
which describe the watershed demands and the physical characteristics of the reservoir
system. With the exception of reservoir inflows (Inft,sres), agricultural precipitation
(precipt,sdem), and the net irrigation demands (NetDemt,sdem) associated with agricultural
4-14
Chapter 4: Methodology
precipitation scenarios, the parameters in the optimization model are deterministic. All
parameters in the simulation model are deterministic. Operational implementation of
these tools will require greater stakeholder involvement in the definition of the
parameters. At the time of the completion of this thesis this involvement is ongoing. This
section therefore offers a preliminary estimation of consumer demand, system
constraints, and objective function parameters.
Irrigation Demands
There are two irrigation water demands in the Comoé River basin system to be
considered: (1) large scale SOSUCO sugarcane agribusiness (TotDemtSO), and (2) the
smaller scale irrigated perimeter associated with farmer cooperative in the Karfiguela
Plains (TotDemtKa). A water demand model was used to estimate the total crop demands
for each user during each dekadal time step. This study assumes that the total crop
demands do not vary inter-annually, and are consistent for each dekadal of the year. The
demand model assumes an average dekadal temperature and potential evapotranspiration
which is constant every year. The crop model was described by Doorenbos and Pruitt
(1977), and Brouwer and Heibloem (1986).
Climate influences the rate of evapotranspiration for a given crop. To determine the
demand for a crop in a particular climate, first the reference crop evapotranspiration
(ET°) is determined from average meteorological conditions. The standard reference
crop is green grass, 8 to 15 cm tall. There are several ways of calculating the ET°
without experiment, including approximate estimates by zone and temperature, the
Hargreaves method, the Harmon method and the Penman-Monteith equation. This project
uses the Blaney-Criddle Method (Blaney and Criddle, 1950) for the sake of simplicity
and due to lack of data. These equations however have been shown to overestimate by
up to 40% in extreme humid conditions and to underestimate by up to 60% in extreme
dry conditions (Brouwer and Heibloem, 1986).
The Blaney-Criddle Method estimates average monthly ET° as a function of monthly
mean temperature (Tmean) and mean daily percentage of annual daytime hours (pdaytime).
(31)
ET° = pdaytime · (0.46·Tmean+8)
4-15
Chapter 4: Methodology
Where
(32)
Tmean = 0.5 · (averagedailyTmax + averagedailyTmin)
Values for pdaytime are a function of season and latitude, which is 10° for the Comoé
River basin. Monthly values of pdaytime are taken from Table 4 in part 2 of Brouwer and
Heibloem (1986) and used for each 10-day dekadal. The average daily maximum and
minimum temperatures is calculated for each dekadal from the historic record at the
nearby village of Bérégadougou and made available by the Direction de la Météorologie
Nationale (DMN). Dekadal reference ETo was estimated for twenty years (1968 through
1987), and the average dekadal value was obtained, shown in Figure 4.14. Table 4.1
shows a portion of the calculation of the daily values, including a comparison with the
Hargreaves method (Hargreaves and Samni, 1982; Shuttleworth, 1993).
The ETcrop for a given crop under given climatic conditions is the product of the
reference ETo and a crop factor (Kcrop).
(33)
ETcrop = ETo · Kcrop
Crop demand varies as a function of species and the stage of growth. For most crops
there are four stages of growth, which vary in length for each species: (1) Initial stage, (2)
Development stage, (3) Mid-season stage, and (4) Late-season stage. The FAO provides
the length in days and Kcrop values for common crop types.
For the SOSUCO crop demand (ETcrop), Brouwer and Heibloem (1986) provide Kcrop
values for virgin sugarcane (18 month period, 6 stages) and subsequent ratoon crops (12
month period, 6 stages), which are second and third year crops. Factors are provided for
different wind conditions (little wind, strong wind) and different humidity conditions
(dry, humid). Figure 4.15 shows the calculation of ETcrop for the SOSUCO irrigation
perimeter. This study assumes that the growing cycle begins in July to correspond with
the availability of rain during the flowering stage. It is assumed that wind is strong year
round and that humidity fluctuates between dry during the dry season and humid during
the wet season.
4-16
Chapter 4: Methodology
Crop demand (ETcrop) was also modeled for the Karfiguela Plains where a
cooperative of farmers cultivates paddy rice, maize, and “market vegetables”. Three
different crops were selected to represent the “market vegetables” and averaged for an
aggregate crop demand. The crops are Peanut, Cabbage, and Tomato. The stage duration
and crop coefficients (Kc) were taken from Tables 7 and 8 respectively in Brouwer and
Heibloem (1986). Figure 4.16 shows the calculation of ETcrop for one harvest of peanuts.
During the wet season, 75% of farmers cultivate some rice and 50% grow some
maize. During the dry season, 63 % of those farmers who are allowed to irrigate grow
rice, 45% grow maize and 45% grow vegetables (Roncoli et al., under review). An
approximate estimation of the aggregate crop demand using these weights was performed
for both the wet season and the dry season and the results shown in the furthest column of
Figure 4.16.
The volume of total crop demand (TotDemtdem) is estimated as the product of ETcrop
and the associated area of the irrigation perimeter (areadem).
(34)
TotDemtdem = ETcrop,t · areadem
The irrigated area of the SOSUCO sugarcane operation is 4000 ha. The dekadal total
crop demand (TotDemtSO) for SOSUCO is shown in Figure 15. The irrigated area of the
Karfiguela plains alternates between 350 ha and 175 ha in concert with the rainy season.
The dekadal total crop demand for the Karfiguela Plains (TotDemtKa) is shown in Figure
4.16.
Banfora Municipal Demands
Total demand for the municipality of Banfora was estimated from population which
was recently 63,300 (Roncoli et al., under review). Assuming a daily per capita
consumption of 100L/person/day the total dekadal water demand for the ONEA Banfora
is 0.063 Mm3/dekadal. It should be noted that is estimate ignores the anecdotal accounts
of severe seasonal variability in municipal demand. The necessary data were not
available at the publication of this thesis.
4-17
Chapter 4: Methodology
Reservoir Capacities
Zoungrana (2006) and Ouedraogo et al. (2007) define the maximum storage
capacities of the Moussodougou reservoir (SmaxM = 38.5 Mm3), Lobi reservoir (SmaxL =
6.06 Mm3), and Toussiana reservoir (SmaxT = 6.14 Mm3). Although this study assumes
that minimum allowable storage is zero (Sminres = 0 ∀ res), the formulation allows
optimization model users to set higher constraints. No specific data on reservoir release
capacity (Relmaxres) were collected before the publication of this thesis. In the absence of
any operational data, it is assumed that releases cannot safely exceed 10 Mm3/dekadal for
any reservoir.
Conveyance Efficiencies
Brouwer et al. (1989) offer several factors for estimating loss as a result of
efficiencies in the irrigation system. Factors are based on the conveyance system and the
application method. Using these estimates the conveyance efficiencies for SOSUCO
(effSO = 75%) and Karfiguela Plains (effKa = 65%) were determined. Based on prior
experience with distribution systems in the developing world, the conveyance efficiency
for the ONEA Banfora demand was also estimated (effBa = 50%).
Objective function weights
Possibly the most challenging aspect of this project is to describe the objectives of
multiple stakeholders and operators in a single linear objective function. While the
formulation described here provides a very flexible framework to accomplish this, the
challenge remains to select a set of parameters for this framework that provides helpful
recommendations. Determining the ratio between the penalty function parameters for
different users and different time-steps will require a long and coordinated effort with the
local water committee in the Comoé River Basin, which was beyond the scope of this
thesis project. The breakpoints in user deficit for the piecewise linear function must
accurately reflect the allowable deficits during different periods of the year for different
users. The slopes beyond these breakpoints must be carefully selected to reflect the
shared priorities and goals of the watershed.
4-18
Chapter 4: Methodology
For the demonstration of the DST in this thesis, penalty function parameter values
were selected to estimate the best available understanding of acceptable deficits. These
values are shown in Figure 4.13. Between users the highest penalty is assigned to deficits
allocated to Banfora, then SOSUCO, then finally Karfiguela. Deficits before the first
breakpoint (or knee) have the lowest weight associated with them. The second tier of
penalties occurs between the two breakpoints and is a couple magnitudes greater than the
first group of penalties. The final tier of penalties is below the allowable range of deficits
and is several magnitudes higher, though less so for the Karfiguela demands.
Probabilistic Scenario Tree Generation
While this work assumes that most of the model parameters can be described
deterministically, hydrologic input parameters are described probabilistically by a
branching scenario tree. The tree is constructed of realized precipitation scenarios
(Precipt,s) in every dekadal time step. It is assumed that reservoir inflows (Inft,sres) and
the net irrigation demands (NetDemt,sdem) both have a deterministic relationship with
precipitation. In this way inflows and net demand are also described by a probabilistic
scenario tree.
Scenario tree structure
The goal is to describe a year of precipitation (Precipt,s) as a scenario tree that
branches in each of five wet season stages, plus a dry season stage which is assumed to
be constant every year. The stages are fixed in time throughout the year with varying
numbers of dekadal time steps as shown in Figure 4.17: July (3 dekadals), August (3
dekadals), September and October (6 dekadals) plus a dry season (12 dekadals), March
and April (6 dekadals), May and June (6 dekadals). In operation, the scenario tree
maintains these seasonally fixed stage length no matter which dekadal is the start of the
forecast horizon.
The state of total precipitation realized in each stage is considered a random variable.
The continuous distribution of this uncertain value is approximated by a discrete
distribution of terciles estimated from the historic record. In this way there is a high,
medium and low realization of precipitation for each stage. A scenario tree can then be
4-19
Chapter 4: Methodology
constructed from sequences of tercile realizations for each stage. Each realization is a
dekadal time series of precipitation of the length associated with that stage. Since each
stage represents a series of dekadal time steps, the set of discrete terciles for each stage
actually represents a set of three precipitation time series.
To avoid confusion it should be explicitly noted that the tercile formulation of the
scenario tree states is not related to the tercile precipitation forecast published by
ACMAD every year for the approaching wet season. A tercile description of the
distribution of possible precipitation in each stage was selected because more than three
branches would dramatically increase the dimensionality of the resulting MSSLP.
Nonparametric precipitation sampling
The selection of analogue dekadal precipitation time series representing each tercile
of each stage is performed by non-parametric sampling of the historic record. The
precipitation gauge best representing agricultural rainfall, as prescribed by the Direction
de la Météorologie Nationale (DMN) is located in Banfora. Considering the 42 years of
continuous precipitation data available at Banfora, there is a set of 42 time series
associated with each time stage representing the range of possible scenarios for that time
stage. Assuming stationarity, these 42 scenarios represent the climatological probability
distribution for each stage. Having ordered each set by total stage precipitation it is
possible to manually select those three time series which represent the median of their
respective tercile.
Using the analogue years shown in Table 4.2 to describe each of the five stages, a
scenario tree was generated. The resulting scenario tree of dekadal precipitation
(Precipt,s), with five stages and three states for each stage, has 243 scenario traces and 36
dekadal time steps. A graph of cumulative precipitation for all 243 scenario traces is
shown in Figure 4.18 and can be compared with the cumulative precipitation for all 42
years of the historic record shown in Figure 4.19.
Analysis of sampling
While there are more sophisticated techniques for optimizing this nonparametric
sampling, this work uses a heuristic approach which attempts to maintain the moments of
4-20
Chapter 4: Methodology
distribution of annual and wet season rainfall of the historic record in the scenario tree.
When compared with the distribution in the historic record (N=42), the first two moments
of the distribution of annual rainfall associated with each of the scenario traces in the
generated tree (N=243) are relatively similar as shown in Table 4.3.
Total Annual Precip
Selected
Scenario Tree
Historic Record
243
42
Mean
1026.47
1067.64
Stdev
192.49
196.72
Cv
0.1875
0.1843
-0.1200
0.2833
Min
546.50
606.40
Max
1507.60
1604.70
Count (N)
Skew
Table 4.3 – Statistics of Historic Record and Scenario Tree
The histogram of the total annual rainfall from historic record and the scenario tree are
shown in Figure 4.20 and Figure 4.21 respectively.
Despite the apparent success of this nonparametric selection of analogue years, the
author acknowledges that the scenario tree is a coarse representation of hydrologic
uncertainty for a location with severe climate variability. The selected analogue time
series may not adequately capture extreme events. Future work should identify the
sensitivity of MSSLP solutions to the selection of analogue years. It may be possible to
use Monte Carlo sampling to accomplish this goal although no attempt to investigate this
was made for the completion of this thesis.
Transitional probabilities
To preserve whatever memory may exist in precipitation sequences, it is also
necessary to describe the transition probability of each scenario realization from each
stage to the next (P(ξsg|ξsg-1)). Having binned the 42 historic time series for each stage by
respective tercile, with 14 values in each bin, a 3x3 transitional probability matrix is
approximated from the historic record. Table 4.4 shows these transitional probabilities
4-21
Chapter 4: Methodology
found in the historic record. These transitional probabilities can be used to construct the
joint probabilities for every scenario in every stage as defined in Equation (11).
Net crop demand
The net demand for irrigation water (NetDemt,sdem) is the difference between the
deterministic total crop demand (TotDemtdem) and the effective rainfall contribution
(EffPrecipt,s) to the associated agricultural area (areadem) for the two agricultural demands
(dem = {SOSUCO, Karfiguela}).
(34)
NetDemt,sdem = TotDemtdem - EffPrecipt,s · areadem
where the effective rainfall (EffPrecipt,s) can be estimated from the realized dekadal
precipitation (Precipt,s, mm/dekadal) from the scenario tree (Brouwer and Heibloem,
1986):
(35)
EffPrecipt,s = 0.8 · Precipt,s – 8.33
if Precipt,s > 25mm/dek
0.6 · Precipt,s – 3.33
if Precipt,s < 25mm/dek
Net demand for irrigation water is a stochastic parameter, since it is a function of
precipitation which is represented probabilistically.
Streamflow Scenario Tree Generation
In addition to net irrigation demand, reservoir inflows constitute the second major set
of stochastic parameters in the model. While adding a second dimension of uncertainty
with a parallel scenario tree was initially considered, this approach would exponentially
increase the dimensionality of the linear program, making it more complicated to solve.
To avoid this, it is assumed that a deterministic rainfall-runoff model can describe the
relationship between precipitation scenarios and a set of corresponding reservoir inflow
scenarios. To generate a tree of streamflow scenarios corresponding to the precipitation
scenario tree, the calibrated rainfall-runoff model was run using each scenario trace of
precipitation. Because the streamflow scenario tree corresponds directly to the
4-22
Chapter 4: Methodology
precipitation scenario tree, the joint probabilities for each time step and scenario trace are
identical.
ABCD rainfall runoff model
To generate reservoir inflow scenarios corresponding to precipitation scenario traces,
this work relies on the ABCD model introduced by Thomas (1981) and Thomas et al.
(1983). The model is an ideal application for the Comoe River basin because while its
parameters have physical interpretation, they are not derived from physical data. Instead
each of the four parameters is calibrated from historic streamflow data. It is possible to
run the ABCD model using time steps ranging from monthly to daily (Vandewiele et al.,
1992).
The model calculates a time series of streamflow (Qt) from a time series of two
inputs: precipitation (Precipt) and evapotranspiration (PETt). The model defines four
state variables, which are available water (Wt), evapotranspiration opportunity (Yt),
groundwater storage (Gt), and soil moisture (St). In each time step the state variables,
inputs, and streamflow are related to each other by a set of nonlinear equations. There are
four parameters which define these equations.
Although determine solely from calibration, each of the four parameters has a
physical interpretation. The parameter ‘A’ represents the “propensity of runoff to occur
because the soil is full saturated (Thomas et al, 1983). The parameter ‘B’ is an upper
limit to the moisture storage in the soil for any single time step. The parameter ‘C’
allocates groundwater flows between deep percolation and baseflow discharge. The ‘D’
parameter represents the linear relationship between streamflow discharge and
groundwater storage.
Model Calibration
In the absence of historic reservoir inflow data, the downstream river gauge at
Diarabakoko was selected to represent the response of the basin to dekadal rainfall. The
location of Diarabakoko is shown in the map in Figure 3.1. The river gauge is maintained
by the DGRE and has a record that is continuous from 1968 to 2004. The streamflow
record spans the construction period of the existing Comoé reservoir infrastructure, which
4-23
Chapter 4: Methodology
started in 1977. Since model calibration should use unregulated flows, only streamflow
data prior to 1977 shown in Figure 4.22 is used to calibrate the rainfall runoff model.
The calibration used the same historic precipitation data from the Banfora weather station
that was used to build the precipitation scenario tree.
The limited availability of streamflow data presents a major challenge to model
calibration. Several approaches were taken to calibrate the ABCD model including using
non-linear solution techniques to minimize the sum of the square errors. Finally the
model was manually calibrated using four years to calibrate and six years to verify the
parameters. Table 4.5 shows the calibrated ABCD parameters. Figure 4.23 compares the
modeled and historic streamflow values at Diarabakoko for both the calibration and
verification periods.
Potential Evapotranspiration (PET)
For the ABCD model, PET was estimated from the temperature-based Hargreaves
Method (Hargreaves and Samni, 1982). In the most recent Handbook of Hydrology,
Shuttleworth (1993) recommends the Hargreaves Method above all others for estimating
PET for rainfall runoff models. PET is estimated from:
(36)
PET = 0.023 · S* · (Tmean + 17.8) · (dT)½
(37)
Tmean = 0.5 · (dailyTmax + dailyTmin)
(C°)
(38)
dT = dailyTmax - dailyTmin)
(C°)
(mm/day)
where extraterrestrial radiation (S*) is measured in water equivalents (mm/day), and daily
max (dailyTmax) and daily min (dailyTmin) temperature are measured in degrees Celsius
(C°).
The temperature record for the calibration period was taken from Niangoloko, shown
on the map in Figure 3.1. This location was the weather station closest to the basin with a
continuous record during the calibration period (1968 to 1978).
For real-time forecasting, dekadal PET is assumed to be deterministic since there is
not significant interannual variability, and to do otherwise would exponentially increase
4-24
Chapter 4: Methodology
the dimensionality of the MSSLP. The ABCD model uses the mean dekadal PET
estimated by the Hargreaves Method from the historic record of temperature in Banfora.
Initial soil moisture and groundwater storage
In addition to a time series of future precipitation and PET, the ABCD model requires
two parameters which describe the initial condition of soil moisture (S°) and groundwater
storage (G°) in the watershed at present. Each run of the MSSLP requires the operator to
enter these two parameters in order to generate the streamflow scenario tree for the next
year. Since there is no real-time monitoring of soil moisture or groundwater storage,
these two parameters are estimated from the ABCD model itself using the recent rainfall
history for the past two years.
Analysis of the ABCD model revealed that the Gt and St are not sensitive to the initial
values (S° and G°) beyond two years of dekadal time step modeling. In this way there is
no memory for the groundwater or soil parameters beyond two years. Using the
appropriate mean dekadal values as initial values for S° and G°, the calibrated model is
run with the past two years of dekadal rainfall. The resulting values of St=T and Gt=T in
the final time step (t = T) of the initialization run are then used as the initial values S° and
G° for the streamflow scenario tree generation.
Results and Distribution analysis
Since it is based on both the precipitation scenario tree and initial groundwater and
soil moisture values, the streamflow scenario tree does not have one single solution. In a
forecasting mode, it must be regenerated for estimations of present groundwater and soil
moisture. This makes distribution analysis challenging especially with the limited
availability of historic unregulated flow. Using the average soil moisture and
groundwater storage values for the July 1st dekadal, the streamflow scenario tree was
generated. The results are shown in Figure 4.24 and compared with the historic
streamflow starting at the same dekadal in Figure 4.25. In operation, the streamflow
scenario tree will be regenerated for the present dekadal.
The cumulative flow volume for all 243 traces of the Diarabakoko streamflow
scenario tree is shown in Figure 4.26. Figure 4.27 shows the cumulative flow volume for
4-25
Chapter 4: Methodology
the thirteen available historic years of unregulated flow. Histograms of the total annual
flow associated with each set are shown in Figure 4.28 and Figure 4.29. Lognormal
distributions can approximate both nonparametric distributions, and have parameters for
the first two moments that are comparable.
Reservoir Inflows
The streamflow output from the ABCD is calibrated for the streamflow at
Diarabakoko (Qt,sDia). To obtain the forecast of inflows (Inft,sres) to each reservoir, these
streamflow values are factored by the ratio between the watershed area of each reservoir
(BasinAreaRes) and the area Diarabakoko watershed (BasinAreaDia = 2400 km2).
(36)
Inft,sres = Qt,sDia · BasinAreaRes / BasinAreaDia
∀ t, s, res
In this way a scenario tree of future inflows can be generated for each reservoir. Table
4.6 shows the basin areas of each reservoir taken from a field study performed by
Zoungrana (2006).
Upstream Basin Area
Area Ratio
2
Diarabakoko
2,400 km
1.00
2
0.23
2
0.05
2
0.05
560 km
Moussodougou
120 km
Lobi
130 km
Toussiana
Table 4.6 – Reservoir Basin areas.
Decision Support Tool in Operation
In operation the DST can be used at any time of the year, with any starting dekadal.
The year-long forecast horizon is dependent on the starting dekadal. The program
schematic in Figure 4.30 shows the multiple components of an application of the DST.
Several components of the DST are static and are not dependent on the starting dekadal
such as the sampling of the historic record for the precipitation scenario tree, estimation
of total user dekadal demands, and definition of the objective function. Running of the
DST begins with identifying the present time step and sequencing the precipitation
4-26
Chapter 4: Methodology
scenarios and user demands to make a one-year forecast. The next step is the
construction of the streamflow scenario tree forecast from the from the precipitation
scenario tree and estimations of the current soil moisture and groundwater conditions,
from historic precipitation. After finally inputting other state conditions such as initial
storage and available ACMAD climate adjustment forecasts, the MSSLP is constructed
by the VBA and then run in the GAMS environment.
Appendix A shows screenshots from the VBA-based DST workbook. Appendix B
documents an example of the GAMS code produced by the VBA-based DST, the code of
which is included in Appendix C.
4-27
Inft
InftT
L
InftM
T
M
L
ReltT
ReltM
SOSUCO
Sugarcane
SO
ReltL
QtPipeline
QtPipeSO
QtComoé
Banfora (ONEA)
Domestic supply
Karfiguela
Market vegetables
Ka
SupplytBa
SupplytKa
Ba
SupplytDS
QtUnreg
Figure 4.1
Banfora, Burkina Faso - Network Schematic
System Inputs
Moussodougou
Capacity
Initial Storage
Area Function
10000
5000
0.3
Lobi
5000
300
0.2
Toussiana
5000 (Mm3)
1000 (Mm3)
2
3
0.3 (m /Mm )
Efficiency
SOSUCO
1
low
ONEA
0.9
Karfiguela
0.8
Save
Load
Figure 4.2
System Inputs Table
Inflows
Starting Dekadal
1-Jul
0
(m3/dek)
stage1
stage2
stage3
stage4
stage5
stage6
stage7
stage8
stage9
stage10
stage11
stage12
stage13
stage14
stage15
stage16
stage17
stage18
stage19
stage20
stage21
stage22
stage23
stage24
stage25
stage26
stage27
stage28
stage29
stage30
stage31
stage32
stage33
stage34
stage35
stage36
1-Jul
11-Jul
21-Jul
31-Jul
10-Aug
20-Aug
30-Aug
9-Sep
19-Sep
29-Sep
9-Oct
19-Oct
29-Oct
8-Nov
18-Nov
28-Nov
8-Dec
18-Dec
28-Dec
7-Jan
18-Jan
28-Jan
7-Feb
21-Feb
3-Mar
13-Mar
23-Mar
2-Apr
12-Apr
22-Apr
2-May
12-May
22-May
1-Jun
11-Jun
21-Jun
Rainfed Supply
Moussodoug
ou
Lobi
(m3/dek)
1,103,558
1,027,756
1,634,371
2,084,140
2,537,740
3,187,296
2,824,416
3,874,752
3,548,160
2,497,824
2,053,497
1,594,454
1,334,188
891,475
718,502
657,820
565,286
530,006
493,113
466,300
442,713
410,860
400,176
389,894
353,203
333,244
338,889
323,769
301,593
369,936
308,851
536,457
417,715
454,809
510,451
392,716
Save
Low_Inflows
236,476
220,233
350,222
446,601
543,801
682,992
605,232
830,304
760,320
535,248
440,035
341,668
285,897
191,030
153,964
140,961
121,132
113,572
105,667
99,921
94,867
88,041
85,752
83,548
75,686
71,409
72,619
69,379
64,627
79,272
66,182
114,955
89,510
97,459
109,382
84,153
Load
Toussiana
(m3/dek)
256,183
238,586
379,407
483,818
589,118
739,908
655,668
899,496
823,680
579,852
476,704
370,141
309,722
206,949
166,795
152,708
131,227
123,037
114,472
108,248
102,772
95,378
92,898
90,511
81,993
77,360
78,670
75,160
70,012
85,878
71,697
124,534
96,969
105,580
118,497
91,166
Comoe
Unregulated
(m3/dek)
260,124
242,256
385,244
491,261
598,181
751,291
665,755
913,334
836,352
588,772
484,038
375,835
314,487
210,133
169,361
155,057
133,246
124,930
116,233
109,913
104,353
96,845
94,327
91,903
83,255
78,550
79,881
76,317
71,089
87,199
72,800
126,450
98,461
107,205
120,320
92,568
SOSU
(m3/dek)
291,466
1,130,667
1,458,667
2,486,666
1,626,667
2,434,666
2,102,667
1,522,667
1,014,667
1,226,667
0
305,867
0
0
0
0
0
0
0
0
0
0
0
0
0
0
986,667
0
253,067
0
317,866
794,667
978,667
0
1,646,667
2,390,667
Save
Evap
Kafig
Rate
(m3/dek)
25,503
98,933
127,633
217,583
142,333
213,033
183,983
133,233
88,783
107,333
0
13,381
0
0
0
0
0
0
0
0
0
0
0
0
0
0
43,166
0
22,143
0
27,813
69,533
85,633
0
144,083
209,183
(mm/day)
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
Load
Middle_B
Figure 4.3
Inflows and Rainfed Supply Input Tables
Demand
Starting Dekadal
1-Jul
0
SOSUCO
(m3/dek)
stage1
stage2
stage3
stage4
stage5
stage6
stage7
stage8
stage9
stage10
stage11
stage12
stage13
stage14
stage15
stage16
stage17
stage18
stage19
stage20
stage21
stage22
stage23
stage24
stage25
stage26
stage27
stage28
stage29
stage30
stage31
stage32
stage33
stage34
stage35
stage36
1-Jul
11-Jul
21-Jul
31-Jul
10-Aug
20-Aug
30-Aug
9-Sep
19-Sep
29-Sep
9-Oct
19-Oct
29-Oct
8-Nov
18-Nov
28-Nov
8-Dec
18-Dec
28-Dec
7-Jan
18-Jan
28-Jan
7-Feb
21-Feb
3-Mar
13-Mar
23-Mar
2-Apr
12-Apr
22-Apr
2-May
12-May
22-May
1-Jun
11-Jun
21-Jun
2,675,243
2,580,436
2,589,027
2,510,118
2,483,753
2,496,195
2,505,971
2,519,006
2,543,594
2,464,463
2,516,167
2,568,729
1,894,403
2,306,760
2,237,904
1,518,488
1,553,471
1,524,767
1,534,276
1,259,569
994,744
1,036,963
2,183,677
2,184,631
1,822,910
2,865,223
2,691,144
2,793,684
2,952,795
2,872,115
2,892,516
2,764,885
2,747,703
2,734,372
2,725,562
2,685,062
Save
Net Demand
ONEA
(m3/dek)
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
63,125
Debits
Karfiguela Sanitaires
(m3/dek)
234,084
225,788
226,540
219,635
217,328
218,417
219,272
220,413
222,564
215,641
110,082
112,382
82,880
100,921
97,908
66,434
67,964
66,709
67,125
55,106
43,520
45,367
95,536
95,578
79,752
125,354
117,738
244,447
258,370
251,310
253,095
241,927
240,424
239,258
238,487
234,943
Debits
SOSUCO
(m3/dek)
(m3/dek)
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
100,000
2,648,641
1,610,854
1,255,955
26,057
952,317
68,365
448,115
1,107,043
1,698,807
1,375,328
2,795,741
2,514,291
2,104,892
2,563,066
2,486,560
1,687,208
1,726,078
1,694,185
1,704,751
1,399,521
1,105,271
1,152,181
2,426,307
2,427,367
2,025,455
3,183,581
1,893,863
3,104,093
2,999,697
3,191,238
2,860,722
2,189,131
1,965,595
3,038,191
1,198,772
327,105
ONEA
(m3/dek)
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
Karfiguela Sanitaires
(m3/dek)
260,725
158,568
123,633
2,565
93,744
6,730
44,111
108,975
167,226
135,384
137,602
123,751
103,600
126,150
122,385
83,042
84,955
83,385
83,905
68,882
54,400
56,708
119,419
119,472
99,690
156,691
93,214
305,559
295,283
314,137
281,602
215,493
193,488
299,071
118,004
32,199
(m3/dek)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3,155
5,673
8,097
16,745
21,450
20,119
23,683
28,911
12,801
27,200
0
1,539
0
0
7,432
Load
Typical_A
Figure 4.4
Demand Input Table and Net Demand Calculation Table
Auto Select
Simulation
Manual Simulation
Releases
Release
Mouss
(m3/dek)
stage1
stage2
stage3
stage4
stage5
stage6
stage7
stage8
stage9
stage10
stage11
stage12
stage13
stage14
stage15
stage16
stage17
stage18
stage19
stage20
stage21
stage22
stage23
stage24
stage25
stage26
stage27
stage28
stage29
stage30
stage31
stage32
stage33
stage34
stage35
stage36
1-Jul
11-Jul
21-Jul
31-Jul
10-Aug
20-Aug
30-Aug
9-Sep
19-Sep
29-Sep
9-Oct
19-Oct
29-Oct
8-Nov
18-Nov
28-Nov
8-Dec
18-Dec
28-Dec
7-Jan
18-Jan
28-Jan
7-Feb
21-Feb
3-Mar
13-Mar
23-Mar
2-Apr
12-Apr
22-Apr
2-May
12-May
22-May
1-Jun
11-Jun
21-Jun
1,898,758
1,027,756
1,449,726
98,760
1,116,199
145,233
562,364
1,286,156
1,936,171
1,580,850
3,003,481
2,708,180
2,278,630
2,759,354
2,679,083
1,840,388
1,881,171
1,847,708
1,858,794
1,538,541
629,415
410,860
400,176
389,894
353,203
333,244
338,889
323,769
301,593
369,936
308,851
536,457
417,715
454,809
510,451
392,716
optimistic
Save
Load
Diversions
Release
Lobi
(m3/dek)
238,468
220,233
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
617,732
3,021,256
1,659,775
1,625,701
64,627
79,272
66,182
114,955
89,510
97,459
109,382
0
Release
Touss
(m3/dek)
259,165
238,586
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
600,394
871,322
2,221,361
2,235,180
1,241,093
77,360
78,670
75,160
70,012
85,878
71,697
124,534
96,969
105,580
118,497
44,158
Pipeline
Comoe
pipeline
SOSUCO
(m3/dek)
(m3/dek)
(m3/dek)
2,137,226
1,247,989
1,326,093
96,195
1,022,455
138,503
518,253
1,177,181
1,768,945
1,445,466
2,865,879
2,584,429
2,175,030
2,633,204
2,556,698
1,757,346
1,796,216
1,764,323
1,774,889
1,469,659
575,015
350,997
275,084
262,325
854,500
3,176,359
1,885,331
1,949,470
366,220
449,208
375,033
651,412
507,225
552,268
619,833
353,085
260,124
242,256
508,877
493,826
691,925
758,021
709,866
1,022,309
1,003,578
724,156
621,640
499,586
418,087
336,283
291,746
238,099
218,201
208,315
200,138
178,795
158,753
156,708
219,419
219,472
199,690
256,691
193,214
76,317
71,089
87,199
72,800
126,450
98,461
107,205
120,320
132,199
2,067,088
1,177,851
1,255,955
26,057
952,317
68,365
448,115
1,107,043
1,698,807
1,375,328
2,795,741
2,514,291
2,104,892
2,563,066
2,486,560
1,687,208
1,726,078
1,694,185
1,704,751
1,399,521
504,877
280,859
204,946
192,187
784,362
3,106,221
1,815,193
1,879,332
296,082
379,070
304,895
581,274
437,087
482,130
549,695
282,947
pipeline
ONEA
(m3/dek)
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
70,138
Karfigula
Diversion
(m3/dek)
0
0
123,633
2,565
93,744
6,730
44,111
108,975
167,226
135,384
137,602
123,751
103,600
126,150
122,385
83,042
84,955
83,385
83,905
68,882
54,400
56,708
119,419
119,472
99,690
156,691
93,214
0
0
0
0
0
0
0
0
32,199
Debits
Sanitaires
(m3/dek)
260,124
242,256
385,244
491,261
598,181
751,291
665,755
913,334
836,352
588,772
484,038
375,835
314,487
210,133
169,361
155,057
133,246
124,930
116,233
109,913
104,353
100,000
100,000
100,000
100,000
100,000
100,000
76,317
71,089
87,199
72,800
126,450
98,461
107,205
120,320
100,000
DS Release
(m3/dek)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3,155
5,673
8,097
16,745
21,450
20,119
0
0
0
0
0
0
0
0
7,432
Figure 4.5
Releases and Diversions Schedule Input Tables
stage1
stage2
stage3
stage4
stage5
stage6
stage7
stage8
stage9
stage10
stage11
stage12
stage13
stage14
stage15
stage16
stage17
stage18
stage19
stage20
stage21
stage22
stage23
stage24
stage25
stage26
stage27
stage28
stage29
stage30
stage31
stage32
stage33
stage34
stage35
stage36
1-Jul
11-Jul
21-Jul
31-Jul
10-Aug
20-Aug
30-Aug
9-Sep
19-Sep
29-Sep
9-Oct
19-Oct
29-Oct
8-Nov
18-Nov
28-Nov
8-Dec
18-Dec
28-Dec
7-Jan
18-Jan
28-Jan
7-Feb
21-Feb
3-Mar
13-Mar
23-Mar
2-Apr
12-Apr
22-Apr
2-May
12-May
22-May
1-Jun
11-Jun
21-Jun
Storage
Evaporation
Moussodoug
ou
(m3)
Moussodoug
ou
(m3/dek)
0
0
184,646
2,168,918
3,577,446
6,598,044
8,820,508
11,356,181
12,900,033
13,739,608
12,707,186
11,517,218
10,503,673
8,572,772
6,560,754
5,338,822
3,990,904
2,649,257
1,267,680
187,833
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Lobi
Toussiana
(m3)
(m3)
0
0
350,222
795,422
1,336,041
2,013,689
2,610,866
3,430,727
4,177,324
4,695,863
5,117,115
5,438,315
5,702,459
5,870,679
6,001,160
6,118,116
6,214,776
6,303,489
6,383,942
6,458,327
6,527,361
6,589,293
6,648,688
6,705,641
6,136,777
3,162,383
1,562,578
0
0
0
0
0
0
0
0
84,153
0
0
379,407
860,949
1,444,901
2,176,140
2,818,751
3,701,334
4,502,806
5,055,641
5,502,011
5,839,140
6,113,827
6,284,093
6,413,183
6,527,412
6,619,475
6,702,795
6,777,050
6,844,636
6,305,950
5,492,170
3,330,755
1,166,102
0
0
0
0
0
0
0
0
0
0
0
47,009
6,000
0
0
1,108
13,014
21,465
39,588
52,923
68,137
77,400
82,438
76,243
69,103
63,022
51,437
39,365
32,033
23,945
15,896
7,606
1,127
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Spills
Lobi
Toussiana
(m3/dek)
(m3/dek)
400
0
0
1,401
3,182
5,344
8,055
10,443
13,723
16,709
18,783
20,468
21,753
22,810
23,483
24,005
24,472
24,859
25,214
25,536
25,833
26,109
26,357
26,595
26,823
24,547
12,650
6,250
0
0
0
0
0
0
0
0
600
0
0
2,276
5,166
8,669
13,057
16,913
22,208
27,017
30,334
33,012
35,035
36,683
37,705
38,479
39,164
39,717
40,217
40,662
41,068
37,836
32,953
19,985
6,997
0
0
0
0
0
0
0
0
0
0
0
Moussodoug
ou
(m3/dek)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Lobi
Toussiana
(m3/dek)
(m3/dek)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Figure 4.6
Storage, Evaporation and Spills Calculation Tables
Volume Deficit
(from suppliers perspective)
SOSU
(m3/dek)
stage1
stage2
stage3
stage4
stage5
stage6
stage7
stage8
stage9
stage10
stage11
stage12
stage13
stage14
stage15
stage16
stage17
stage18
stage19
stage20
stage21
stage22
stage23
stage24
stage25
stage26
stage27
stage28
stage29
stage30
stage31
stage32
stage33
stage34
stage35
stage36
ONEA
(m3/dek)
Kafig
(m3/dek)
Debits
San
(m3/dek)
1-Jul (322,388)
0 (260,725) 260,124
11-Jul (194,417)
0 (158,568) 242,256
21-Jul
0
0
0
385,244
31-Jul
0
0
0
491,261
10-Aug
0
0
0
598,181
20-Aug
0
0
0
751,291
30-Aug
0
0
0
665,755
9-Sep
0
0
0
913,334
19-Sep
0
0
0
836,352
29-Sep
0
0
0
588,772
9-Oct
0
0
0
484,038
19-Oct
0
0
0
375,835
29-Oct
0
0
0
314,487
8-Nov
0
0
0
210,133
18-Nov
0
0
0
169,361
28-Nov
0
0
0
155,057
8-Dec
0
0
0
133,246
18-Dec
0
0
0
124,930
28-Dec
0
0
0
116,233
7-Jan
0
0
0
109,913
18-Jan
0
0
0
104,353
28-Jan
0
0
0
96,845
7-Feb
0
0
0
94,327
21-Feb
0
0
0
91,903
3-Mar
0
0
0
83,255
13-Mar
0
0
0
78,550
23-Mar
0
0
0
79,881
2-Apr (1,149,601)
0 (305,559)
52,634
12-Apr (2,633,603)
0 (295,283)
42,178
22-Apr (2,726,290)
0 (314,137)
74,398
2-May (2,484,130)
0 (281,602)
45,600
12-May (1,483,323)
0 (215,493) 126,450
22-May (1,431,539)
0 (193,488)
96,922
1-Jun (2,450,481)
0 (299,071) 107,205
11-Jun (530,580)
0 (118,004) 120,320
21-Jun
0
0
0
92,568
Values in parenthesis (1,200) denote a supply
deficit for a given demand in a given dekadal.
Black numbers denote an excess of supply.
Percent Supplied To Each Demand
Debits
Kafig
San
SOSU ONEA
89%
100%
11%
260%
93%
100%
44%
242%
100%
100%
100%
385%
100%
100%
100%
491%
100%
100%
100%
598%
100%
100%
100%
751%
100%
100%
100%
666%
100%
100%
100%
913%
100%
100%
100%
836%
100%
100%
100%
589%
100%
100%
100%
484%
100%
100%
100%
376%
100%
100%
100%
314%
100%
100%
100%
210%
100%
100%
100%
169%
100%
100%
100%
155%
100%
100%
100%
133%
100%
100%
100%
125%
100%
100%
100%
116%
100%
100%
100%
110%
100%
100%
100%
104%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
100%
63%
100%
0%
76%
20%
100%
9%
71%
15%
100%
0%
87%
23%
100%
11%
73%
52%
100%
29%
126%
53%
100%
36%
98%
19%
100%
0%
107%
82%
100%
60%
120%
100%
100%
100%
100%
Volume Deficit
(from users perspective)
SOSU
ONEA
(m3/dek)
(m3/dek)
Kafig
(m3/dek)
Debits
San
(m3/dek)
290,149
0
260,725
0
174,975
0
158,568
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1,034,641
0
305,559
0
2,370,243
0
295,283
0
2,453,661
0
314,137
0
2,235,717
0
281,602
0
1,334,991
0
215,493
0
1,288,385
0
193,488
0
2,205,433
0
299,071
0
477,522
0
118,004
0
0
0
0
0
Black numbers denote the deficit volume not
satisfied for the user.
Figure 4.7
Simulated Demand Deficit Tables
INPUT DATA
Inf(M, L, T)
NetDem(SO, Ba, Ka, DS)
IntitialStorage (M, L, T)
Smax(M, L, T)
Figure 4.8
Automatic Algorithm Procedure
S(M, t=0) = Initial Storage (M)
S(L, t=0) = Initial Storage (L)
S(T, t=0) = Initial Storage (T)
COMPUTE S(M, t), S(L, t) , S(T, t)
For t = 1 to 36
Is Inf(M, t) + S(M, t-1)
> All Demands(t) ?
OUTPUT (complete)
Rel(M, t) = All Demands(t)
Rel(L, t) = 0
Rel(T, t) = 0
QpipeSO(t) = NetDem(SO, t)
Supply(Ba, t) = NetDem(Ba, t)
Supply(Ka, t) = NetDem(Ka, t)
Supply(DS, t) = NetDem(DS, t)
YES
NO
OUTPUT (partial)
Rel(M, t) = Inf(M, t) + S(M, t-1)
ASSIGN THE Moussodougou RELEASE
ASSIGN THE Toussiana RELEASE
YES
Is Inf(T, t) + S(T, t-1)
>= All Demands(t) – Rel(M, t)?
NO
YES
Is All Demands(t) – Rel(M, t)
> NetDem(SO, t)?
NO
YES
Is Inf(T, t) + S(T, t-1)
> NetDem(SO, t)?
NO
Is Inf(L, t) + S(L, t-1)
> All Demands(t) – Rel(M, t) – Rel(T, t)?
OUTPUT (partial)
Rel(T, t) = All Demands – Rel(M, t)
OUTPUT (partial)
Rel(T, t) = NetDem(SO, t)
OUTPUT (partial)
Rel(T, t) = Inf(M, t) + Sto(M, t-1)
OUTPUT (partial)
Rel(T, t) = NetDem(SO, t)
OUTPUT (partial, final)
Rel(L, t) = All Demands(t) – Rel(M, t) – Rel(T, t)
QpipeSO(t) = NetDem(SO, t) – Rel(T, t)
Supply(Ba, t) = NetDem(Ba, t)
Supply(Ka, t) = NetDem(Ka, t)
Supply(DS, t) = NetDem(DS, t)
YES
NO
OUTPUT (partial)
RelL(i) = Inflow(L,i) + StoL(i-1)
Is Rel(M, t) + Rel(L, t) >= NetDem(Ba, t)
ASSIGN Limited Supply
ASSIGN THE Lobi RELEASE
NO
OUTPUT (partial)
Supply(Ba, t) = NetDem(Ba, t)
YES
Is Rel(M, t) + Rel(L, t) – Supply(Ba, t)
>= NetDem(SO, t) – Rel(T, t)
OUTPUT (partial)
Supply(Ba, t) = Rel(M, t) + Rel(L, t)
NO
OUTPUT (partial)
QpipeSO(t) = Rel(M, t) + Rel(L, t)
– Supply(Ba, t)
OUTPUT (partial)
QpipeSO(t) = NetDem(SO, t) – Rel(T, t)
YES
QPipeline(t) = Supply(Ba, t) + QpipeSO(t)
Is Rel(M, t) + Rel(L, t) – QPipeline(t)
>= NetDem(Ka, t)
YES
NO
OUTPUT (partial)
Supply(Ka, t) = Rel(M, i) + Rel(L, i)
– QPipeline(t)
OUTPUT (partial)
Supply(Ka, t) = NetDem(Ka, t)
QComoe(t) = Rel(M, t) + Rel(L, t) – QPipeline(t)
At final stage (t=36) end Algorithm
Print results
OUTPUT (partial, final)
Supply(DS, t) = QComoe(t) - Supply(Ka, t)
15,000,000
10,000,000
Dekadal Volume (m3)
25,000,000
Inflows
Releases
Storage
20,000,000
5,000,000
0
16-Jun
6-Jun
27-May
17-May
7-May
27-Apr
17-Apr
7-Apr
28-Mar
18-Mar
8-Mar
26-Feb
16-Feb
6-Feb
27-Jan
17-Jan
7-Jan
28-Dec
18-Dec
8-Dec
28-Nov
18-Nov
8-Nov
29-Oct
19-Oct
9-Oct
29-Sep
19-Sep
9-Sep
30-Aug
20-Aug
10-Aug
31-Jul
21-Jul
11-Jul
1-Jul
Figure 4.9
Simulation Model Output
Reservoir Operations - Moussadougou
5,000,000
4,000,000
3,000,000
Dekadal Volume (m3)
8,000,000
7,000,000
Inflows
Releases
Storage
6,000,000
2,000,000
1,000,000
0
16-Jun
6-Jun
27-May
17-May
7-May
27-Apr
17-Apr
7-Apr
28-Mar
18-Mar
8-Mar
26-Feb
16-Feb
6-Feb
27-Jan
17-Jan
7-Jan
28-Dec
18-Dec
8-Dec
28-Nov
18-Nov
8-Nov
29-Oct
19-Oct
9-Oct
29-Sep
19-Sep
9-Sep
30-Aug
20-Aug
10-Aug
31-Jul
21-Jul
11-Jul
1-Jul
Figure 4.10
Simulation Model Output
Reservoir Operations - Lobi
2,500,000
2,000,000
1,500,000
Dekadal Flow (m3/dekadal)
4,000,000
Volume Deficit
Releases
Rainfed Supply
3,500,000
3,000,000
1,000,000
500,000
0
16-Jun
6-Jun
27-May
17-May
7-May
27-Apr
17-Apr
7-Apr
28-Mar
18-Mar
8-Mar
26-Feb
16-Feb
6-Feb
27-Jan
17-Jan
7-Jan
28-Dec
18-Dec
8-Dec
28-Nov
18-Nov
8-Nov
29-Oct
19-Oct
9-Oct
29-Sep
19-Sep
9-Sep
30-Aug
20-Aug
10-Aug
31-Jul
21-Jul
11-Jul
1-Jul
Figure 4.11
Simulation Model Output
SOSUCO Supply and Demand
350,000
300,000
250,000
200,000
Dekadal Flow (m3/dekadal)
500,000
Unregulated Contribution
Volume Deficit
Releases
450,000
400,000
150,000
100,000
50,000
0
16-Jun
6-Jun
27-May
17-May
7-May
27-Apr
17-Apr
7-Apr
28-Mar
18-Mar
8-Mar
26-Feb
16-Feb
6-Feb
27-Jan
17-Jan
7-Jan
28-Dec
18-Dec
8-Dec
28-Nov
18-Nov
8-Nov
29-Oct
19-Oct
9-Oct
29-Sep
19-Sep
9-Sep
30-Aug
20-Aug
10-Aug
31-Jul
21-Jul
11-Jul
1-Jul
Figure 4.12
Simulation Model Output
Debits Sanitaire Releases
SOSUCO
slopeA
slopeB
slopeC
kneeB
kneeC
10
500
10000
0.15
0.3
Banfora
10
500
50000
0.05
0.2
Karfiguela
10
100
1000
0.2
0.4
(score)
(score)
(score)
(% deficit)
(% deficit)
Figure 4.13
Convex Piecewise Linear Deficit Penalty Function
69
Dekadal PET (1968 to 1987)
Blaney Criddle Estimate f(T daily)
Potential ET - mm/dekadal
64
59
54
49
Historic Years
Average
44
16-Jun
6-Jun
27-May
17-May
7-May
27-Apr
17-Apr
7-Apr
28-Mar
18-Mar
8-Mar
26-Feb
16-Feb
6-Feb
27-Jan
17-Jan
7-Jan
28-Dec
18-Dec
8-Dec
28-Nov
18-Nov
8-Nov
29-Oct
19-Oct
9-Oct
29-Sep
19-Sep
9-Sep
30-Aug
20-Aug
10-Aug
31-Jul
21-Jul
11-Jul
1-Jul
Figure 4.14
Dekadal PET - Blaney Criddle Estimate
Estimated from historic record of daily temperature data at Banfora
Crop: sugarcane
Kc
0-1 months
1-2 months
2-4 months
4-10 months
10-11 months
11-12 months
Days
Days
30
30
60
180
30
30
360
Jan
Jan
Jan
Feb
Feb
Feb
Mar
Mar
Mar
Apr
Apr
Apr
May
May
May
Jun
Jun
Jun
Jul
Jul
Jul
Aug
Aug
Aug
Sep
Sep
Sep
Oct
Oct
Oct
Nov
Nov
Nov
Dec
Dec
Dec
wet /
dry /
strong
dry / little wet / little strong
wind
wind
wind
wind
0.40
0.50
0.50
0.60
0.80
0.80
0.80
0.85
1.10
1.00
1.20
1.10
1.25
1.05
1.30
1.15
0.95
0.80
1.05
0.85
0.70
0.60
0.75
0.65
Source: FAO Training Manual No. 3
ETo
mm/day
5.176
5.253
5.540
5.751
5.837
6.074
6.117
6.109
6.159
6.133
5.977
5.571
5.541
5.475
5.935
5.893
5.831
5.78
5.72
5.70
5.53
5.50
5.51
5.50
5.54
5.60
5.49
5.51
5.51
5.35
5.30
5.23
5.18
5.14
5.17
5.21
Wind
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Strong
Humidity
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Dry
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Wet
Dry
Dry
Dry
Dry
Dry
Kc
1.05
1.05
1.05
0.75
0.75
0.75
0.50
0.50
0.50
0.80
0.80
0.80
1.10
1.10
1.10
1.10
1.10
1.10
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.15
1.30
1.30
1.30
1.30
1.30
Compute
Schedule
Area (He):
Start Month:
Phase:
Total ETcrop:
4000
Mar
Early
2075.04
ETcrop
Total Dem
mm/dek
Mm3/dek
54.346
55.159
58.175
43.135
43.775
45.558
30.583
30.544
30.797
49.062
47.818
44.567
60.956
60.228
65.287
64.821
64.141
63.617
65.733
65.536
63.537
63.278
63.354
63.237
63.740
64.454
63.174
63.404
63.389
61.504
60.968
67.986
67.400
66.844
67.256
67.681
2.174
2.206
2.327
1.725
1.751
1.822
1.223
1.222
1.232
1.962
1.913
1.783
2.438
2.409
2.611
2.593
2.566
2.545
2.629
2.621
2.541
2.531
2.534
2.529
2.550
2.578
2.527
2.536
2.536
2.460
2.439
2.719
2.696
2.674
2.690
2.707
Figure 4.15
Crop Water Demand Estimation - SOSUCO Sugarcane
Crop: maize
Area (He):
Days
Initial Stage:
35
Development Stage:
45
Mid Season Stage:
50
Late Season Stage:
25
Months 5.16666667
10 Day Period
Jan
Jan
Jan
Feb
Feb
Feb
Mar
Mar
Mar
Apr
Apr
Apr
May
May
May
Jun
Jun
Jun
Jul
Jul
Jul
Aug
Aug
Aug
Sep
Sep
Sep
Oct
Oct
Oct
Nov
Nov
Nov
Dec
Dec
Dec
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Early
Mid
Late
Kc
0.40
0.80
1.15
1.00
ETo
mm/day
5.206
5.176
5.253
5.540
5.751
5.837
6.074
6.117
6.109
6.159
6.133
5.977
5.571
5.541
5.475
5.935
5.893
5.831
5.783
5.716
5.699
5.525
5.502
5.509
5.499
5.543
5.605
5.493
5.513
5.512
5.348
5.302
5.230
5.185
5.142
5.174
Compute
Schedule
Start Month:
Phase:
Total ETcrop:
Kc
0.4
0.4
0.4
0.6
0.8
0.8
0.8
0.8
1.15
1.15
1.15
1.15
1.15
1
1
ET Crop Total
ETcrop
mm/10days
mm/dekadal
59.872
59.522
60.412
63.715
57.513
58.366
46.693
48.596
48.933
24.638
48.596
24.531
48.933
23.909
48.933
33.425
44.332
44.332
44.332
43.802
43.802
47.481
47.481
47.142
47.142
67.056
67.056
66.509
66.509
65.733
65.733
65.536
65.536
63.538
63.538
55.024
55.024
55.090
55.090
43.991
44.341
64.454
63.174
63.404
63.389
61.504
53.016
52.297
41.477
41.135
59.496
375
Apr
Early
727.75 mm
Total Dem
Mm3/dekadal
0.112
0.112
0.113
0.119
0.108
0.109
0.088
0.091
0.092
0.091
0.092
0.092
0.166
0.166
0.164
0.178
0.177
0.251
0.249
0.246
0.246
0.238
0.206
0.207
0.165
0.166
0.242
0.237
0.238
0.238
0.115
0.099
0.098
0.078
0.077
0.112
Figure 4.16
Crop Water Demand Estimation - Peanut and Aggrigated Karfiguela
Demand
Stage (sg)
Dekadal (t)
Month
sg =1
t=1 t=2 t=3 t=4 t=5 t=6 t=7
July
sg =3
sg =2
Aug
sg =4
sg =5
sg =6
...
... t=36
Sep - Oct
Dry Season: Nov through Feb
Mar - Apr
May - June
Figure 4.17
Six Seasonal Stages of Year
Five wet season stages and one dry season stage
16-Jun
2-Jun
19-May
5-May
21-Apr
7-Apr
24-Mar
10-Mar
24-Feb
10-Feb
27-Jan
13-Jan
30-Dec
16-Dec
2-Dec
18-Nov
4-Nov
21-Oct
7-Oct
23-Sep
9-Sep
26-Aug
12-Aug
29-Jul
15-Jul
1-Jul
Cumulative mm
1600
1400
1200
1000
800
600
400
200
0
Figure 4.18
Cummulative Precipitation - Forecast Scenario Tree Traces
16-Jun
2-Jun
19-May
5-May
21-Apr
7-Apr
24-Mar
10-Mar
24-Feb
10-Feb
27-Jan
13-Jan
30-Dec
16-Dec
2-Dec
18-Nov
4-Nov
21-Oct
7-Oct
23-Sep
9-Sep
26-Aug
12-Aug
29-Jul
15-Jul
1-Jul
Cumulative mm
1600
1400
1200
1000
800
600
400
200
0
Figure 4.19
Cummulative Precipitation - Forecast Scenario Tree Traces
Histogram of P_hist
Normal
Mean
StDev
N
10
1068
196.7
42
Frequency
8
6
4
2
0
600
800
1000
1200
1400
1600
P_hist
Figure 4.20
Histogram of total annual precipitation – Historic Record
Histogram of P_tree
Normal
30
Mean
StDev
N
25
1056
183.4
243
Frequency
20
15
10
5
0
750
900
1050
1200
P_tree
1350
1500
Figure 4.21
Histogram of total annual precipitation – Scenario Tree
160
140
Precipitation
Streamflow
140
120
120
Precip (mm/day)
100
80
80
60
60
Streamflow (m3/sec)
100
40
40
20
20
0
0
Nov-77
Nov-76
Nov-75
Nov-74
Nov-73
Nov-72
Nov-71
Nov-70
Nov-69
Nov-68
Nov-67
Figure 4.22
Diarabarakoko Streamflow and Banfora Precipitation Station
140
Historic Unregulated
120
Modeled Unregulated
Streamflow (m3/sec)
100
80
60
40
20
0
Nov-77
Nov-76
Nov-75
Nov-74
Nov-73
Nov-72
Nov-71
Nov-70
Nov-69
Nov-68
Nov-67
Calibration Period
Validation Period
Figure 4.23
Diarabarakoko Streamflow
Historic Record and ABCD Model Output
16-Jun
2-Jun
19-May
5-May
21-Apr
7-Apr
24-Mar
10-Mar
24-Feb
10-Feb
27-Jan
13-Jan
30-Dec
16-Dec
2-Dec
18-Nov
4-Nov
21-Oct
7-Oct
23-Sep
9-Sep
26-Aug
12-Aug
29-Jul
15-Jul
1-Jul
Streamflow (Mm 3/dekal)
140
120
100
80
60
40
20
0
Figure 4.24
Streamflow Traces - Scenario Tree Forecast
1200
Cumulative Streamflow Volume (Mm 3)
1000
800
600
400
200
0
1-Jul
21Jul
10Aug
30Aug
19Sep
9Oct
29Oct
18Nov
8Dec
28Dec
18Jan
7Feb
3Mar
23Mar
12Apr
2May
22May
11Jun
Figure 4.25
Cummulative Streamflow Volume - Scenario Tree Forecast
1965
1966
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
Average
16-Jun
1964
2-Jun
19-May
5-May
80
21-Apr
100
7-Apr
120
24-Mar
10-Mar
24-Feb
10-Feb
27-Jan
13-Jan
30-Dec
16-Dec
2-Dec
18-Nov
4-Nov
21-Oct
7-Oct
23-Sep
9-Sep
26-Aug
12-Aug
29-Jul
15-Jul
1-Jul
Streamflow (Mm 3/dekal)
140
60
40
20
0
Figure 4.26
Streamflow Traces - Historic Record
16-Jun
2-Jun
19-May
5-May
Average
21-Apr
1977
7-Apr
1976
24-Mar
1975
10-Mar
1974
24-Feb
1973
10-Feb
1972
27-Jan
1971
13-Jan
1970
30-Dec
1969
16-Dec
1968
2-Dec
1966
18-Nov
1965
4-Nov
1000
1964
21-Oct
7-Oct
23-Sep
9-Sep
26-Aug
600
12-Aug
800
29-Jul
15-Jul
1-Jul
Streamflow (Mm 3/dekal)
1200
400
200
0
Figure 4.27
Cummulative Streamflow Volume - Historic Record
Histogram of P_hist
Normal
Mean
StDev
N
10
1068
196.7
42
Frequency
8
6
4
2
0
600
800
1000
1200
1400
1600
P_hist
Figure 4.28
Histogram of total annual streamflow – Historic Record
Histogram of P_tree
Normal
30
Mean
StDev
N
25
1056
183.4
243
Frequency
20
15
10
5
0
750
900
1050
1200
P_tree
1350
1500
Figure 4.29
Histogram of total annual streamflow – Scenario Tree
From the historic record of
precipitation at Banfora
Evaluate non-parametric
sampling with
distributional analysis
Build Precipitation Scenario Tree
• Sample analogue years to represent precipitation
in each seasonal stage
• Construct 243 scenario traces
• Non-parametric estimation of transitional
probabilities between stages
Operational DST
Select present dekadal to start the year-long forecast
Build Rain Supply
Scenario Tree
Build Streamflow
Scenario Tree
• For each precipitation
event there is an associated
supply volume for irrigation
demands: SOSUCO and
Karfiguela
• Run the ABCD Model on
each of the 243 precipitation
traces
• Use updated estimates for
initial soil moisture and
groundwater storage
Estimate Total
Demands
• For all three users
• Deterministic for each
dekadal in forecast horizon
• Prioritize user demands
• Prioritize time steps
• Identify breakpoints in the
convex deficit penalty function
• Select dekadal end storage
targets and spill penalties
Estimate Present Soil
Moisture (So) and
Groundwater (Go)
• Run the ABCD model for the
previous two years of precipitation
• Initialize run with average period
So and Go from historic record
Final St and Gt output are used
to estimate present conditions
Process Model Inputs in VBA
Write GAMS Code
Output Optimal Decisions
• Output is set of release decisions for
present time step in MSSLP which
balance present and future demands
Select Objective
Function
Run MSSLP
Input State
Conditions
• Initial Storage
conditions
• ACMAD Climate
adjustment
forecast
• Run GAMS code
Figure 4.30 – Summary Process Schematic
Drainage Area
2400 km
Latitude
11 oN
Radians 0.191986
Mean Temp
δT
Julian Day
δ
dr
ωs
C
1/1/1968
1/2/1968
1/3/1968
1/4/1968
1/5/1968
1/6/1968
1/7/1968
1/8/1968
1/9/1968
1/10/1968
1/11/1968
1/12/1968
1/13/1968
1/14/1968
1/15/1968
1/16/1968
1/17/1968
1/18/1968
1/19/1968
1/20/1968
1/21/1968
1/22/1968
1/23/1968
1/24/1968
1/25/1968
1/26/1968
1/27/1968
1/28/1968
1/29/1968
1/30/1968
1/31/1968
2/1/1968
2/2/1968
2/3/1968
2/4/1968
2/5/1968
2/6/1968
2/7/1968
2/8/1968
2/9/1968
2/10/1968
2/11/1968
2/12/1968
2/13/1968
2/14/1968
2/15/1968
2/16/1968
2/17/1968
2/18/1968
2/19/1968
2/20/1968
2/21/1968
2/22/1968
2/23/1968
2/24/1968
2/25/1968
2/26/1968
2/27/1968
2/28/1968
2/29/1968
3/1/1968
3/2/1968
3/3/1968
3/4/1968
3/5/1968
3/6/1968
3/7/1968
3/8/1968
3/9/1968
3/10/1968
3/11/1968
3/12/1968
3/13/1968
3/14/1968
3/15/1968
p
daylight ratio
26.75
25.5
24.9
23
24
24
25.2
23.95
24.2
25.7
25.65
26.35
26.35
27.9
26.7
24.6
24.5
24
24.35
24.65
24.65
25.15
26.7
28.3
27.15
26.75
26.5
26.7
27.15
26.9
27.9
28.25
26.35
27.3
27
25.2
26.9
28.4
29.45
29.1
29.4
29
28
28.5
28.2
29.2
29
29
27.6
27.2
29.5
29.4
28.45
28.2
29.6
31.2
31.2
29.55
30.5
29.7
29.1
29.6
30.05
27.7
30.35
28.25
29.85
27
25.9
28.75
29.95
27.9
28.85
27.6
28.9
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
22.19
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.95
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
20.43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-0.402
-0.401
-0.400
-0.398
-0.396
-0.395
-0.393
-0.391
-0.388
-0.386
-0.384
-0.381
-0.379
-0.376
-0.373
-0.370
-0.367
-0.364
-0.361
-0.357
-0.354
-0.350
-0.346
-0.343
-0.339
-0.335
-0.331
-0.326
-0.322
-0.318
-0.313
-0.309
-0.304
-0.299
-0.294
-0.289
-0.284
-0.279
-0.274
-0.269
-0.263
-0.258
-0.252
-0.247
-0.241
-0.236
-0.230
-0.224
-0.218
-0.212
-0.206
-0.200
-0.194
-0.187
-0.181
-0.175
-0.168
-0.162
-0.155
-0.149
-0.142
-0.136
-0.129
-0.122
-0.116
-0.109
-0.102
-0.095
-0.088
-0.081
-0.074
-0.067
-0.061
-0.054
-0.047
1.033
1.033
1.033
1.033
1.033
1.033
1.033
1.033
1.033
1.033
1.032
1.032
1.032
1.032
1.032
1.032
1.032
1.031
1.031
1.031
1.031
1.031
1.030
1.030
1.030
1.030
1.029
1.029
1.029
1.029
1.028
1.028
1.028
1.028
1.027
1.027
1.027
1.026
1.026
1.025
1.025
1.025
1.024
1.024
1.024
1.023
1.023
1.022
1.022
1.022
1.021
1.021
1.020
1.020
1.019
1.019
1.018
1.018
1.017
1.017
1.016
1.016
1.015
1.015
1.014
1.014
1.013
1.013
1.012
1.012
1.011
1.011
1.010
1.010
1.009
1.488
1.488
1.489
1.489
1.489
1.490
1.490
1.491
1.491
1.492
1.492
1.493
1.493
1.494
1.495
1.495
1.496
1.497
1.497
1.498
1.499
1.500
1.501
1.501
1.502
1.503
1.504
1.505
1.506
1.507
1.508
1.509
1.510
1.511
1.512
1.513
1.514
1.515
1.516
1.517
1.518
1.519
1.521
1.522
1.523
1.524
1.525
1.527
1.528
1.529
1.530
1.531
1.533
1.534
1.535
1.536
1.538
1.539
1.540
1.542
1.543
1.544
1.546
1.547
1.548
1.550
1.551
1.552
1.554
1.555
1.556
1.558
1.559
1.560
1.562
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.260
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.270
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
0.280
So
PETBlaney-Criddle
mm/day
12.543
12.557
12.571
12.587
12.604
12.622
12.640
12.660
12.681
12.703
12.726
12.749
12.774
12.799
12.826
12.853
12.881
12.910
12.940
12.970
13.002
13.034
13.066
13.100
13.134
13.169
13.204
13.240
13.276
13.313
13.350
13.388
13.426
13.465
13.504
13.543
13.583
13.623
13.663
13.703
13.743
13.784
13.825
13.866
13.907
13.948
13.988
14.029
14.070
14.111
14.151
14.192
14.232
14.272
14.312
14.351
14.390
14.429
14.468
14.506
14.543
14.581
14.617
14.654
14.689
14.725
14.759
14.793
14.827
14.860
14.892
14.924
14.955
14.985
15.014
mm/day
5.279
5.130
5.058
4.831
4.950
4.950
5.094
4.944
4.974
5.154
5.148
5.231
5.231
5.417
5.273
5.022
5.010
4.950
4.992
5.028
5.028
5.088
5.273
5.465
5.327
5.279
5.249
5.273
5.327
5.297
5.417
5.669
5.433
5.551
5.513
5.290
5.501
5.687
5.818
5.774
5.811
5.762
5.638
5.700
5.662
5.787
5.762
5.762
5.588
5.538
5.824
5.811
5.693
5.662
5.836
6.035
6.035
5.830
5.948
5.849
5.988
6.052
6.110
5.808
6.149
5.879
6.085
5.718
5.576
5.943
6.098
5.834
5.956
5.795
5.962
PETHargraves
mm/day
6.055
5.891
5.816
5.564
5.708
5.716
5.889
5.727
5.771
5.987
5.991
6.099
6.111
6.338
6.184
5.905
5.904
5.847
5.910
5.966
5.980
6.066
6.300
6.543
6.397
6.357
6.338
6.384
6.466
6.448
6.611
6.490
6.240
6.392
6.368
6.130
6.391
6.625
6.795
6.765
6.828
6.791
6.665
6.758
6.734
6.900
6.891
6.911
6.724
6.684
7.046
7.051
6.929
6.911
7.141
7.402
7.423
7.192
7.356
7.253
7.091
7.185
7.272
6.932
7.354
7.050
7.312
6.890
6.736
7.192
7.393
7.091
7.253
7.073
7.290
Table 4.1
Calculation Table for PET Estimation
Blaney Criddle Method and Harvgraves Method
Selected Dekadal Values
High
Stage 1
Stage 2
Stage 3
DRY
Stage 4
Stage 5
1-Jul
11-Jul
21-Jul
31-Jul
10-Aug
20-Aug
30-Aug
9-Sep
19-Sep
29-Sep
9-Oct
19-Oct
29-Oct
8-Nov
18-Nov
28-Nov
8-Dec
18-Dec
28-Dec
7-Jan
18-Jan
28-Jan
8-Feb
21-Feb
3-Mar
13-Mar
23-Mar
2-Apr
12-Apr
22-Apr
2-May
12-May
22-May
1-Jun
11-Jun
21-Jun
1968
1968
1995
1977
1994
1967
Med
73.1
186.1
64.4
44.6
98.5
233.6
50.7
88.4
56.7
37.5
0
48.2
68
0
0
0
0
0
0
0
0
0
0
0
0
0
29.3
104.2
0
15
65.3
30.8
50.1
86.7
45.6
30.8
1964
1965
1998
1977
1995
2003
Low
42.7
47.2
90.5
138.5
130
19.3
72.1
99.1
74.1
10.3
3.2
12.2
0
0
0
0
0
0
0
0
0
0
0
0
28.3
0
0
0
19.5
18.3
15.2
57.9
55.1
30.7
8.9
52.2
1976
1983
1971
1977
1991
2001
1.1
45.3
76.5
34.3
13.6
39.3
41.8
57.3
36.6
0
22.1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
17.1
13
0
6.7
28.5
55.8
37.9
19.6
Table 4.2
Nonparametric Sampling of Historic Record for Precipitation Scenario
Tree
To
Stage 2
31-Jul
To
Stage 3
9-Sep
and DRY
From Stage 1
1-Jul
High
Med
Low
High
57.1%
14.3%
28.6%
Med
35.7%
50.0%
14.3%
Low
7.1%
35.7%
57.1%
From Stage 2
31-Jul
High
Med
Low
High
28.6%
28.6%
42.9%
Med
50.0%
21.4%
28.6%
Low
21.4%
50.0%
28.6%
To
Stage 4
3-Mar
From Stage 3
9-Sep and DRY
High
Med
Low
High
35.7%
28.6%
35.7%
Med
14.3%
50.0%
35.7%
Low
50.0%
21.4%
28.6%
To
Stage 5
2-May
From Stage 4
3-Mar
High
Med
Low
High
35.7%
28.6%
35.7%
Med
14.3%
42.9%
42.9%
Low
50.0%
28.6%
21.4%
To
Stage 1
1-Jul
From Stage 5
2-May
High
Med
Low
High
21.4%
21.4%
57.1%
Med
42.9%
35.7%
21.4%
Low
35.7%
42.9%
21.4%
Table 4.4
Transitional Probabilities Between Stages
Calculated from the historic record
ABCD Model Rainfall - Runoff Parameters
Parameter
a
Value
0.997
b
33.49
c
0.176
Description
The propensity for runoff to occur well before the soils are saturated to
capacity
The upper limit on the sum of actual evapotranspiration and soil moisture
storage
This allocates water between ‘direct runoff’ and ‘groundwater recharge’
d
0.099
Quantifies baseflow recession
(these are calibrated for inches/dekadal; the VBA code converts PET and Precip Inputs to inches/dekadal;
Q output is converted to Mm3/dekadal)
Table 4.5
Calibrated Rainfall Runoff Parameters
Chapter 5: Evaluation
Chapter 5: Evaluation
Decision Support Tool Sensitivity
This chapter describes an evaluation of the prescriptive decision support tool (DST)
developed for this thesis. The DST uses multi-stage stochastic linear programming
(MSSLP) to consider a set of anticipated precipitation and streamflow scenarios for a
one-year forecast horizon. The scenarios can be weighted by season tercile forecasts
such as those produced by ACMAD for Burkina Faso. The inputs to the DST are current
hydrologic and operational conditions. The output from the model is a set of releases and
diversions recommended for the current time step, which optimize the satisfaction of both
current and future needs.
DST Demonstration – Sensitivity of Spring releases to Wet Season Forecast
To analyze the output of a single run, a hypothetical situation is considered, in which
reservoir operators are making release decisions for the first dekadal (10 days) of April.
The run is performed under three different hypothetical seasonal tercile forecasts shown
in Table 5.1.
Terciles
High (“Wet”)
Normal
Low (“Dry”)
Climate Forecast 1
33.33%
33.33%
33.33%
Climate Forecast 2
10%
15%
75%
Climate Forecast 3
75%
15%
10%
Table 5.1 – Three forecast conditions for first DST Demonstration
In this first demonstration of the sensitivity of the model to wet season tercile
forecasts, the reservoirs are at levels which are very low for this time of year shown in
Table 5.2. These levels are well below the end of forecast horizon storage goals
developed for each reservoir and discussed in Chapter 4.
(% of total)
3
(Mm )
Moussodougou
Lobi
Toussiana
7.89%
37.50%
43.75%
3.0
3.0
3.5
Table 5.2 – Initial Reservoir Storage for DST Demonstration
5-1
Chapter 5: Evaluation
During the early spring period imagined here, water managers are facing present and
future total water demands for SOSUCO irrigation, ONEA, and CEPAK irrigation. The
dekadal total demands for the entire year are shown in Figure 5.1. The volume of the
total water demand which will be met by future precipitation is unknown and is described
probabilistically by the scenario tree input for the DST, the cumulative precipitation of
which is shown in Figure 5.2. The scenario tree forecast for the net irrigation demand for
the SOSUCO and CEPAK agricultural demands are shown in Figure 5.3 and Figure 5.4,
respectively. In these two figures the deterministic total crop demand is shown along the
top of the graph. It varies seasonally. Net irrigation varies as a function of the
precipitation scenario. The 243 possible reservoir inflow scenarios calculated from the
precipitation scenario tree and soil moisture and groundwater estimates are shown in
Figure 5.5.
Using a time-constant deficit penalty function, shown in Figure 4.8, the DST
evaluates the five-stage linear program using GAMS, and records the output in Microsoft
Excel. The following three figures show the complete output results for the DST runs
using Forecast 1 (33/33/33). The results include the scenario tree of future optimal release
decisions for the Moussodougou, Lobi and Toussiana reservoirs, shown in Figure 5.6.
The associated future storage volumes for all three reservoirs are shown in Figure 5.7.
The higher storage traces are associated with scenarios that have high reservoir inflows
and high precipitation supply to irrigation demands. Those future scenarios with high
supply and low demand do not require as much use of existing storage, while drought
scenarios will be associated with draining the reservoir. The scenario tree of future
deficits for SOSUCO, ONEA, and CEPAK are shown for the entire forecast horizon in
Figure 5.8.
The prescribed release and diversion decisions for the present time step are
summarized in Table 5.3 for runs using each of the three demonstration seasonal
forecasts listed in Table 5.1. The release decisions under Climate Forecast 1 (33/33/33)
and Climate Forecast 3 (10/15/75) are identical and very conservative given the dismally
low state of the reservoirs in the hypothetical scenario. Since replenishing inflows are
not expected for a couple months, the recommended releases are very conservative and
5-2
Chapter 5: Evaluation
only 2.423 Mm3 is released from Moussodougou alone, meeting the partial needs of
Banfora and SOSUCO alone.
Under Climate Forecasts 1 and 3 (33/33/33 and 10/15/75), deficits are incurred to the
all three users, despite there being enough water in storage to supply the present demand.
When considering the forecast future, the DST has opted for deficit irrigation in the
present time step to limit the risk of a future deficit that is much higher. The level of
deficit each user incurs reflects the priority of distribution between the three users which
is described by the weights of the objective function.
While the objective function minimizes deficits as a percent of the total demand for a
user, the decisions are volumetric. As a result, the optimal decision set sometimes favors
the smaller users because there is a greater reduction of the penalty function available.
For SOSUCO demands which exceed those of CEPAK by a magnitude, this incentive is
overpowered by the penalty function user weights which for SOSUCO exceed those of
CEPAK by a factor of ten. The result is that SOSUCO is ultimately favored with 70%
supply, while Karfiguela is supplied with 0% of its needed water.
The optimal release decisions under Climate Forecast 2 (75/15/10) are significantly
less conservative than those made under the other two forecasts. Climate Forecast 2
describes a very high chance (75%) of a high precipitation volume in the approaching wet
season. The probability of running out of water is less likely with this forecast, and as a
result the DST supplies 0.234 Mm3 to CEPAK that it did not under the other two
forecasts.
While Forecasts 1 (33/33/33) and 3 (10/15/75) are different, their consideration did
not result in different solutions for the first time step. Forecast 2 (75/15/10) resulted in
different prescribed releases for the first time step. The sensitivity of the DST output to
climate forecasts is not a simple problem as there are many constraints which may be
dominating the solution. Facing the low volume of storage, the system constraints may
be such that alternative wet season forecasts simply do not have a significant impact on
the trade off between conservation and fulfilling present demand during this final stage of
the dry season.
It is interesting to note that deficits often occur at either of the two break points in the
piecewise linear convex penalty function. This highlights the importance of appropriately
5-3
Chapter 5: Evaluation
identifying the acceptable deficit levels and carefully calibrating weights to reflect
priorities.
DST Demonstration - Sensitivity to Spring Reservoir Levels
To investigate the sensitivity of Spring release decisions to the Spring reservoir
levels, a second demonstration is presented. The DST was run for different reservoir
scenarios shown in Table 5.4
Moussodougou
Lobi
Toussiana
1.5
1.5
2
4
3
4
High Scenario
15
5.5
5.5
Full Scenario
38.0
8.0
Low Scenario
Average Scenario
8.0
Table 5.4 – Initial Reservoir Storage Scenarios (Mm ) for DST Demonstration
3
These initial conditions aim to represent a range of possible April 2nd scenarios to test the
sensitivity of the model to initial reservoir volumes. Release decisions were determined
using Climate Forecast 1 (33/33/33).
The recommended releases and the associated deficits for each scenario are shown in
Table 5.5. With more water available in the “full” scenario, there is little need for the
optimization routine to conserve water to stave off a catastrophic deficit in the future.
With less water initially available the DST recommends more and more conservative
release decisions. As with the sensitivity of the DST to climate forecasts, the sensitivity
of the DST to the initial reservoir level appears to be stepped. The recommended releases
remain unchanged until the reservoir level is changed past a breakpoint. This is likely an
artifact of the knees in the piecewise linear approximation of the convex penalty function
in the objective function.
The expected value of future releases, deficits, and storage volumes can be calculated
across all of the 243 scenarios in the year-long forecast horizon. The mean and standard
deviation for these decision variables in the future is shown in Figure 5.9. Scenarios with
more initial storage have much lower expected deficits from the April 2 dekadal until the
September 9th dekadal. After September 9th, the expected value for deficits for each April
2nd reservoir volume scenario is similar. This is probably a consequence of the pattern
5-4
Chapter 5: Evaluation
where even in the low scenario it is expected that the reservoirs will fill up to at least 70%
of their capacity during the approaching rainy season.
Operational Mode
In practice reservoir operators may run the DST every dekadal, with updated input
data as hydrologic and operational events are realized. While the MSSLP solves for
decision variables throughout the year-long forecast horizon, it is only those decisions in
the first time step which are applicable to the current situation. Therefore an evaluation
of the DST requires a simulation of reservoir operations in which the forward-looking
DST prescribes releases in each dekadal. The resulting deficits and reservoir dynamics
are simulated using actual inflows and precipitation events which followed the hindcast.
Available Data
A variety of realized hydrologic and precipitation sequences are used to simulate
DST-informed reservoir operations. The range and relevance of these simulations are
constrained by the availability of historic hydrologic and operational data.
Historic Precipitation and Reservoir Inflows
Historic dekadal precipitation data recorded by DMN is available at the Banfora rain
gauge from 1963 through 2005 as shown in Figure 5.10. Historic inflow data for all three
reservoirs are unavailable for all periods of reservoir operation. It is necessary to model
the reservoir inflows associated with each dekadal of historic dekadal precipitation. The
ABCD rainfall runoff model described in Chapter 4 is used to approximate unregulated
basin streamflow at Diarabakoko also shown in Figure 5.10, which is factored by area
ratio to approximate reservoir inflows for all three reservoirs. The ABCD model is also
used to estimate historic soil moisture and groundwater storage values shown in Figure
5.11.
Historic Tercile Forecasts
5-5
Chapter 5: Evaluation
To investigate the retrospective impact of historic tercile climate forecasts, the
available record of ACMAD climate forecasts was collected. DMN made forecasts
available for 2003, 2004 and 2005. These forecasts are described in Table 5.6.
Wet
Normal
Dry
2003
30%
40%
30%
2004
35%
45%
20%
2005
20%
50%
30%
Table 5.6 – Historic ACMAD Tercile Forecasts
Historic Releases and Standard Operating Procedures
A thorough evaluation of the proposed decision making technique would compare
releases prescribed by DST simulation to the actual decisions made for the same time
step. Since no historic operational data are available at the completion of this thesis it is
not possible to compare DST-informed operation to historic operation.
Comparing DST-informed operations to standard operating procedure (SOP) would
make a very interesting evaluation of the model. The user deficits incurred could be
compared and any improvement over current operations could be quantified. However
SOP information is not available at the completion of this thesis. As it may become
available in the future, CFAR may want to investigate these evaluations.
Objective Function Parameters
Water resources are distributed between two sets of discrete priorities: between users
and between time steps. Characterizing these priorities requires the direct input of Comoé
River basin stakeholders, local agronomists, and members of the CLE. The distribution
between water users is complicated and must reflect the understandings reached by the
CLE. While there are quantitative methods for selecting unit weights for multi-objective
optimization (Ferreira et al., 2008), it is the intention of CFAR to rely on the direct
consultation of the stakeholders to determine these priorities.
Adding complexity to the objective function parameter selection is the relationship of
priorities between time steps, as well as the interactions between the two sets of priorities.
To determine possible values for allowable deficits and the time-variant shape of the
objective function local agronomists, INERA, farmers, and SOSUCO engineers must be
5-6
Chapter 5: Evaluation
involved. It is necessary to identify crucial periods in which certain users require more
priority.
The parameters selected for the preliminary DST evaluation represented by this thesis
were not done so in consultation with stakeholders, as their complete input was not
available by the completion of this thesis.
Figure 4.9 shows the parameters selected for the objective function. Each user
demand has three scalar weights associated with the increasing penalty slopes of the
convex penalty function for deficits. The slopes change at two selected cut-off points,
which may vary for each demand. Although the DST allows the user to enter in timevarying values for the penalty function in each dekadal, the weights of the objective
function were set constant for these evaluations.
To approximate the priorities of the watershed, Banfora was given the highest penalty
values, followed by SOSUCO and CEPAK. Break points in the convex penalty function
were selected based on possible values for deficit irrigation.
Evaluation Metrics
This section describes the metrics by which the MSSLP is evaluated. The objective
function sought to optimize. It is recognized that these metrics may not include local
considerations for the unique political or agricultural conditions in the Comoé River
Basin.
Overall and Catastrophic Deficits
While water deficits at any level reduce agricultural production, farmers are better
served by a series of minor deficits, rather than a single catastrophic deficit after a period
of meeting full needs. One of the goals of the DST presented in this paper was to inform
water managers of times when it is appropriate to conserve water resources to stave off a
catastrophic deficit in the future.
Another metric for reservoir operations is the total volume of deficit for a given
period. The tradeoff between meeting current demand and conserving water for future
demands may be quantified in this way.
5-7
Chapter 5: Evaluation
Distribution of Water Resources
While it is not the intention of the author to evaluate the political acceptability of the
decisions prescribed by DST in the version available at the time of the publication of this
thesis, it is possible to compare the resulting distribution of water between users. For
each simulation of the DST, the distribution of water between users is examined and
compared to other simulation modes. A full evaluation of inter-user distribution resulting
from the objective function in its current state will necessitate further stakeholder
participation.
Continuous Simulation of DST Application
To evaluate reservoir operations using the DST during historic periods, a simulation
environment is constructed in VBA for Microsoft Excel. Input to the evaluation
simulation model includes historic scenarios for which the DST might have been used.
The output of the evaluation simulation model are the set of decisions prescribed by the
DST in those situations, as well as the resulting deficits and reservoir dynamics as the
actual inflows and precipitation inputs are realized. Figure 5.12 shows a schematic of the
modeling process. For a given time period the simulation cycle of is run for every
dekadal time step within that period.
For every time step initial conditions are input into the DST, which constructs a
probabilistic scenario tree for reservoir inflows and precipitation for a year-long forecast
horizon. The release decisions which are output from the DST, and the actual reservoir
inflows and precipitation values for that time step are input into a simulation model. The
simulation model calculates the resulting storage, evaporation loss, and deficits incurred
to users. These values are each recorded in a time series for analysis. The resulting
storages in the current time step are then used as the initial conditions for the next time
step for which the process is repeated.
Perfect Information Simulation
To identify an upper bound for the value of forecast information, the MSSLP used for
the DST was reduced to a deterministic linear program in which the forecast of future
hydrologic inputs was the actual historic record. In this way the output of decisions
5-8
Chapter 5: Evaluation
represents the set of releases and diversions which would be made if the operators had a
perfect forecast of reservoir inflows and precipitation supply for irrigation. The
distribution of deficits incurred during years in which the total rainfall cannot meet
demand, is dependent on the priorities and shape of the objective function.
Optimization with perfect information represents an upper bound for efficiency given
the hydrologic constraints for each year. To evaluate the effectiveness of the DST it is
possible to compare the continuous simulation of DST-informed operations with a rolling
one-year forecast horizon to the set of optimal decisions from the deterministic LP. In
the absence of historic operational data (a possible lower bound for efficiency),
comparisons with the upper bound represented by perfect information offer insights into
possible applications of the DST.
2003 – 2006 Continuous Simulation Experiment
To evaluate the release decisions recommended by the DST under historic conditions,
four simulations were conducted for the 114 dekadal time steps from early April 2003 to
May 2006: (1) DST simulation with perfect information, (2) continuous DST simulation
with a climatological forecast only, (3) continuous simulation with the historic ACMAD
forecast and (4) continuous simulation with an improved retrospective tercile forecast.
The improved tercile forecasts used for each year of the experiment use the best possible
tercile approximation of the actual rainfall that occurred in that year. In this way the
forecast was a “perfect” tercile forecast and is limited only by the discretization of the
probability density curve.
Improved retrospective forecast
The April 2003 to May 2006 period was selected based on the availability of historic
ACMAD forecasts for the J-A-S wet season which were available in April of each year.
The period spans three consecutive wet seasons. The precipitation and reservoir inflows
for the period are shown in Figure 5.13. The total precipitation in the 2003 wet season
(775.8mm) represents the 66% quantile of wet season precipitation for the basin. The
total precipitation of the 2004 (722.9mm) and 2005 (599.6mm) wet seasons represent the
57% and 25% quantiles respectively. In the context of local climatology, 2003, 2004,
5-9
Chapter 5: Evaluation
and 2005 represent wet-normal, normal, and dry wet seasons, respectively. The perfect
tercile forecasts for these three wet seasons in the (4) continuous simulation experiment
assume perfect forecasts with respect to the outcome of these tercile characterizations.
The perfect tercile forecasts for 2003, 2004, and 2005 are (50/50/0), (0/100/0), and
(0/0/100) respectively.
Results for SOSUCO
The dekadal supply and demand of water for SOSUCO in all four simulation modes
is shown in Figure 5.14. The total demand in these graphs is represented by the top line.
The historic precipitation supply, which is the same for each simulation, is shown in blue.
That portion of the total SOSUCO demand which was supplied by diversion decisions
made by the DST is shown in red. The remaining portion that is not supplied by either
precipitation or irrigation is shown in yellow. Figure 5.15 shows the percentage of the
total SOSUCO demand met by irrigation or precipitation in every dekadal under each of
the four simulations.
The decisions vary between the four different simulations due to the presence of
different forecasting information in each. Without the need to hedge for possible future
catastrophes, operation under perfect information most consistently supplies SOSUCO
with its complete needs, including the entirety of the 2003 dry season. The two
continuous DST simulations are more conservative and often satisfy only 70% of the
total demand for SOSUCO irrigation. The ACMAD forecast appears to have only slightly
differed operations from those based on the climatological forecast and only during brief
periods in 2004.
Results for ONEA Banfora
The dekadal supply and demand for ONEA Banfora is shown in Figure 5.16 for each
of the four simulation modes. The high priority in the objective function and the low
volumetric demand of the ONEA demand allows for it to be nearly fully satisfied for all
of the experimental period dekadals, for all four simulations. The total demand for
ONEA satisfied by the reservoir system is shown in Figure 5.17. While the DST hedges
5-10
Chapter 5: Evaluation
slightly against future deficits through a slight 5% conservation, perfect information
reveals that in general it is acceptable to completely satisfy the demand.
Results for Karfiguela CEPAK
The dekadal supply and demand for the Karfiguela farmers of CEPAK is shown in
Figure 5.18 for each of the three simulation modes. Operation under perfect information
greatly improves the consistency and extent of supply. Figure 5.19 shows the total
demand met by the reservoir system or precipitation under each simulation. During the
wet season, the current shape of the objective function appears to be limiting supply to
60% of the overall needs. The ACMAD forecast appears to improve releases to CEPAK
during two brief periods during 2004, where operations were less conservative due to the
forecast which described reduced likelihood of a “dry” wet season (only 20% chance).
It appears that the 2005 (0/0/100) “Improved” Forecast is a little bit too conservative
with respect to allocations to the Karfiguela Plains farmers. When the Moussodougou
reservoir gets low, reserves in the Lobi and Toussiana are not used to supply the
Karfiguela Plains. This is most dramatically illustrated during the July 1, 2005 dekadal
of the continuous simulation experiment under the “Improved” Forecast.
Summary of Deficit Totals
The deficits incurred for all three demands under each of the four simulations are
summarized in Table 5.7. The range of deficits experienced by each demand is identical
for each simulation mode. There is a slight overall reduction in the volumetric deficit
experienced by the ONEA and Karfiguela demands as a result of the application of the
ACMAD forecast, and a slight increase in the deficits experienced by SOSUCO. The
total deficits incurred with an application of ACMAD forecasts actually exceeded those
of an application of simple climatologically based forecasts. This may say more about
the quality of the ACMAD forecast than anything else. The “Improved” Retrospective
Tercile Forecast slightly improves the supply of water to all three users as well as
reducing the overall volumetric deficit for the period. Not surprisingly the largest overall
improvement arises from the application of perfect information.
5-11
Chapter 5: Evaluation
Summary of Reservoir Operations
For all four simulations, the dekadal storage for Moussodougou, Lobi, and Toussiana
reservoirs is shown respectively in Figure 20, Figure 21, and Figure 22. The impact of
the perfect forecast is most clearly apparent in the management of the Moussodougou and
Lobi reservoirs. When compared with the storage maintained by DST-informed release
decisions, the storage maintained by perfect information does falls much lower at the end
of the 2004 dry season (April-July). Since decisions under perfect information know to
anticipate a strong wet season in 2004, there is no need to be conservative during the final
periods of the dry season, and all three demands are supplied fully. Most dramatically
the Lobi reservoir is completely drained for the majority of the dekadals under perfect
information with the exception of the period before the weak wet season in 2005 when
system storage is necessary to meet the needs. As dekadal simulated storage is a function
of the release schedule, there are no significant differences between storage patterns for
the DST simulation with and without the climate forecast.
Future Research Needs
This research represents the development of a highly experimental model, the
evaluation of which reveals many shortcomings in operational recommendations. While
the author is confident that benefit lies in the model formulation, there is little doubt that
much is left to be desired in the calibration and estimation of the parameters. The
surprising insensitivity of the recommendations to forecast or hydrologic state inputs
suggests that solutions are dominated by parameters in the objective function, which may
not represent the real “penalty” associated with deficits, spills, or missing end-of-year
storage targets. For the model to become operational it is necessary that the shape of the
deficit penalty function be adjusted to better reflect the needs of the users. Specifically
the parameters that need to be investigated are deficit penalty function breakpoints and
the ratio of penalty weights between different users. This process should involve
consultation with African CFAR project members who are familiar with the political and
agricultural priorities of water distribution.
Sensitivity to the forecast or reservoir level may be dominated by the time of year.
Further work should be conducted that investigates this question.
5-12
Chapter 5: Evaluation
It may also be the case that the solution is highly dominated by noise in the branching
scenario tree of future hydrologic inputs. The scenario tree, which is assumed to
approximate a probabilistic description of local climatology, is constructed from a
sampling of historic years. The method for this sampling, discussed in Chapter 4, was
slightly heuristic, and may have been conducted in several possible ways. The sensitivity
of solution set to alternative tree formulations should also be investigated, specifically the
selection of analogue years which are used to construct the scenario tree.
5-13
3.50
SOSUCO
ONEA
Kafiguela
Debits San
2.50
2.00
1.50
1.00
0.50
Mar
Mar
Feb
Feb
Jan
Jan
Dec
Dec
Nov
Oct
Nov
Oct
Oct
Sep
Sep
Aug
Aug
Jul
Jul
Jun
Jun
May
May
Apr
Apr
Apr
0.00
Figure 5.1
Total User Dekadal Demand Forecast
1600
1400
1200
1000
800
600
400
Note: Traces do not have equal probability.
Joint probability is a function of the transitional
probabilities found in the historic record.
Seasonal forecasts may further adjust
200
Mar
Mar
Feb
Feb
Jan
Jan
Dec
Dec
Nov
Nov
Oct
Oct
Oct
Sep
Sep
Aug
Aug
Jul
Jul
Jun
Jun
May
Apr
May
Apr
0
Apr
Cumulative Precipitation (mm)
Total Demand (Mm3/dekadal)
3.00
Figure 5.2
Precipitation Scenario Tree Forecast
Note: Traces do not have equal probability.
Joint probability is a function of the transitional
probabilities found in the historic record.
Seasonal forecasts may further adjust probabilities.
3.50
Total Demand (Mm3/dekadal)
3.00
2.50
2.00
1.50
The dark line at the top
represents the total
demand. All other traces
represent the net demand in
a particular precipitation
1.00
0.50
Mar
Mar
Feb
Feb
Jan
Jan
Dec
Dec
Nov
Oct
Nov
Oct
Oct
Sep
Sep
Aug
Jul
Aug
Jul
Jun
Jun
May
May
Apr
Apr
Apr
0.00
Figure 5.3
Dekadal Net Demand Forecast - SOSUCO
0.30
Net Demand (Mm3/dekadal)
0.25
0.20
0.15
0.10
The dark line at the top
represents the total
demand. All other
traces represent the net
demand in a particular
precipitation scenario.
0.05
0.00
Apr
May
Jun
Jul
Jul
Aug
Sep
Oct
Nov
Dec
Jan
Feb
Figure 5.4
Dekadal Net Demand Forecast - CEPAK Karfiguela
250
200
Note: The streamflow forecast at Diabaraboko is
used directly to generate the inflow forecast at each
of the three reservoirs using basin area ratios.
3
Streamflow at Diabarakoko (Mm /dekadal)
Note: Traces do not have equal probability.
Joint probability is a function of the transitional
probabilities found in the historic record.
Seasonal forecasts may further adjust probabilities.
150
100
50
0
08 - Mar
16 - Feb
27 - Jan
07 - Jan
18 - Dec
28 - Nov
08 - Nov
19 - Oct
29 - Sep
09 - Sep
20 - Aug
31 - Jul
11 - Jul
21 - Jun
01 - Jun
12 - May
22 - Apr
02 - Apr
Figure 5.5
Reservoir Scenario Tree Forecast
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
2.5
14-May
3.0
30-Apr
3.5
16-Apr
2-Apr
Releases (Mm 3/dekadal)
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
16-Apr
2-Apr
Releases (Mm 3/dekadal)
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
16-Apr
2-Apr
3
10.0
8.0
Releases (Mm /dekadal)
12.0
6.0
4.0
2.0
0.0
Moussodougou Reservoir Releases
9.0
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Lobi Reservoir Releases
4.0
Note: Traces do not have equal probability.
Joint probability is a function of the transitional
probabilities found in the historic record.
Seasonal forecasts may further adjust
2.0
1.5
1.0
0.5
0.0
Toussiana Reservoir Releases
Figure 5.6 Reservoir Releases Scenario Tree
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
15.0
16-Apr
20.0
30-Apr
25.0
30-Apr
2-Apr
Storage (Mm 3)
30.0
16-Apr
2-Apr
Releases (Mm 3)
35.0
16-Apr
2-Apr
Releases (Mm 3)
40.0
Note: Traces do not have
equal probability. Joint
probability is a function of
the transitional probabilities
found in the historic record.
Seasonal forecasts may
further adjust probabilities.
10.0
5.0
0.0
Moussodougou Reservoir Storage
9.0
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Lobi Reservoir Storage
9.0
8.0
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Toussiana Reservoir Storage
Figure 5.7 Reservoir Storage Scenario Tree
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
16-Apr
2-Apr
Percent Deficit
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
16-Apr
2-Apr
Percent Deficit
18-Mar
4-Mar
18-Feb
4-Feb
21-Jan
7-Jan
24-Dec
10-Dec
26-Nov
12-Nov
29-Oct
15-Oct
1-Oct
17-Sep
3-Sep
20-Aug
6-Aug
23-Jul
9-Jul
25-Jun
11-Jun
28-May
14-May
30-Apr
16-Apr
2-Apr
Percent Deficit
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
SOSUCO Deficits
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Banfora Deficit
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Karfiguela Deficits
Figure 5.8 User Demand Deficits Scenario Tree
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
SOSUCO Deficits
User Deficit (%)
25%
Expected Value
plus 1/2 Standard Deviation
20%
minus 1/2 Standard Deviation
15%
10%
5%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Banfora Deficits
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Karfiguela Deficits
Figure 5.9a (1)
DST Results for "Full Scenario"
Storage (Mm3)
40.0
Expected Value
35.0
plus 1/2 Standard Deviation
30.0
minus 1/2 Standard Deviation
25.0
20.0
15.0
10.0
5.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Storage
9.0
Expected Value
8.0
plus 1/2 Standard Deviation
Storage (Mm3)
7.0
minus 1/2 Standard Deviation
6.0
5.0
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Storage
9.0
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
Expected Value
3.0
plus 1/2 Standard Deviation
2.0
minus 1/2 Standard Deviation
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Storage
Figure 5.9a (2)
DST Results for "Full Scenario"
Expected Value
7.0
plus 1/2 Standard Deviation
Releases (Mm3)
6.0
minus 1/2 Standard Deviation
5.0
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Releases
4.0
Expected Value
Releases (Mm3)
3.5
plus 1/2 Standard Deviation
3.0
minus 1/2 Standard Deviation
2.5
2.0
1.5
1.0
0.5
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Releases
2.0
Expected Value
Releases (Mm3)
1.8
1.6
plus 1/2 Standard Deviation
1.4
minus 1/2 Standard Deviation
1.2
1.0
0.8
0.6
0.4
0.2
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Releases
Figure 5.9a (3)
DST Results for "Full Scenario"
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
SOSUCO Deficits
User Deficit (%)
25%
Expected Value
plus 1/2 Standard Deviation
20%
minus 1/2 Standard Deviation
15%
10%
5%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Banfora Deficits
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Karfiguela Deficits
Figure 5.9b (4)
DST Results for "High Scenario"
Storage (Mm3)
40.0
Expected Value
35.0
plus 1/2 Standard Deviation
30.0
minus 1/2 Standard Deviation
25.0
20.0
15.0
10.0
5.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Storage
9.0
Expected Value
8.0
plus 1/2 Standard Deviation
Storage (Mm3)
7.0
minus 1/2 Standard Deviation
6.0
5.0
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Storage
9.0
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
Expected Value
3.0
plus 1/2 Standard Deviation
2.0
minus 1/2 Standard Deviation
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Storage
Figure 5.9b (5)
DST Results for "High Scenario"
Expected Value
6.0
plus 1/2 Standard Deviation
Releases (Mm3)
5.0
minus 1/2 Standard Deviation
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Releases
4.0
Expected Value
Releases (Mm3)
3.5
plus 1/2 Standard Deviation
3.0
minus 1/2 Standard Deviation
2.5
2.0
1.5
1.0
0.5
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Releases
1.8
Expected Value
1.6
plus 1/2 Standard Deviation
Releases (Mm3)
1.4
minus 1/2 Standard Deviation
1.2
1.0
0.8
0.6
0.4
0.2
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Releases
Figure 5.9b (6)
DST Results for "High Scenario"
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
SOSUCO Deficits
User Deficit (%)
25%
Expected Value
plus 1/2 Standard Deviation
20%
minus 1/2 Standard Deviation
15%
10%
5%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Banfora Deficits
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Karfiguela Deficits
Figure 5.9c (7)
DST Results for "Average Scenario"
Storage (Mm3)
40.0
Expected Value
35.0
plus 1/2 Standard Deviation
30.0
minus 1/2 Standard Deviation
25.0
20.0
15.0
10.0
5.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Storage
9.0
Expected Value
8.0
plus 1/2 Standard Deviation
Storage (Mm3)
7.0
minus 1/2 Standard Deviation
6.0
5.0
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Storage
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
Expected Value
2.0
plus 1/2 Standard Deviation
1.0
minus 1/2 Standard Deviation
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Storage
Figure 5.9c (8)
DST Results for "Average Scenario"
Expected Value
6.0
plus 1/2 Standard Deviation
Releases (Mm3)
5.0
minus 1/2 Standard Deviation
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Releases
4.5
Expected Value
Releases (Mm3)
4.0
plus 1/2 Standard Deviation
3.5
minus 1/2 Standard Deviation
3.0
2.5
2.0
1.5
1.0
0.5
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Releases
1.6
Expected Value
Releases (Mm3)
1.4
plus 1/2 Standard Deviation
1.2
minus 1/2 Standard Deviation
1.0
0.8
0.6
0.4
0.2
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Releases
Figure 5.9c (9)
DST Results for "Average Scenario"
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
SOSUCO Deficits
User Deficit (%)
25%
Expected Value
plus 1/2 Standard Deviation
20%
minus 1/2 Standard Deviation
15%
10%
5%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Banfora Deficits
100%
Expected Value
User Deficit (%)
90%
plus 1/2 Standard Deviation
80%
minus 1/2 Standard Deviation
70%
60%
50%
40%
30%
20%
10%
0%
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Karfiguela Deficits
Figure 5.9d (10)
DST Results for "Low Scenario"
Storage (Mm3)
40.0
Expected Value
35.0
plus 1/2 Standard Deviation
30.0
minus 1/2 Standard Deviation
25.0
20.0
15.0
10.0
5.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Storage
9.0
Expected Value
8.0
plus 1/2 Standard Deviation
Storage (Mm3)
7.0
minus 1/2 Standard Deviation
6.0
5.0
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Storage
9.0
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
Expected Value
3.0
plus 1/2 Standard Deviation
2.0
minus 1/2 Standard Deviation
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Storage
Figure 5.9d (11)
DST Results for "Low Scenario"
Expected Value
6.0
plus 1/2 Standard Deviation
Releases (Mm3)
5.0
minus 1/2 Standard Deviation
4.0
3.0
2.0
1.0
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Moussadougou Releases
4.0
Expected Value
Releases (Mm3)
3.5
plus 1/2 Standard Deviation
3.0
minus 1/2 Standard Deviation
2.5
2.0
1.5
1.0
0.5
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Lobi Releases
1.8
Expected Value
1.6
plus 1/2 Standard Deviation
Releases (Mm3)
1.4
minus 1/2 Standard Deviation
1.2
1.0
0.8
0.6
0.4
0.2
0.0
8-Mar
16-Feb
27-Jan
7-Jan
18-Dec
28-Nov
8-Nov
19-Oct
29-Sep
9-Sep
20-Aug
31-Jul
11-Jul
21-Jun
1-Jun
12-May
22-Apr
2-Apr
Toussiana Releases
Figure 5.9d (12)
DST Results for "Low Scenario"
300
350.00
200.00
150
50
50.00
0
0.00
Precipitation (mm)
200
Streamflow (Mm3/dek)
350
400.00
Unregulated Q (modeled)
Precip
300.00
250
250.00
150.00
100.00
100
Jun-07
Jun-06
Jun-05
Jun-04
Jun-03
Jun-02
Jun-01
Jun-00
Jun-99
Jun-98
Jun-97
Jun-96
Jun-95
Jun-94
Jun-93
Jun-92
Jun-91
Jun-90
Jun-89
Jun-88
Jun-87
Jun-86
Jun-85
Jun-84
Jun-83
Jun-82
Jun-81
Jun-80
Jun-79
Jun-78
Jun-77
Jun-76
Jun-75
Jun-74
Jun-73
Jun-72
Jun-71
Jun-70
Jun-69
Jun-68
Jun-67
Jun-66
Jun-65
Jun-64
Jun-63
Figure 5.10
Dekadal Precipitation and Unregulated Streamflow for Reservoir Inflows
Gt (inches)
St (inches)
2.5
35
St
30
Gt
2
25
20
1.5
15
1
10
0.5
5
0
0
Jun-07
Jun-06
Jun-05
Jun-04
Jun-03
Jun-02
Jun-01
Jun-00
Jun-99
Jun-98
Jun-97
Jun-96
Jun-95
Jun-94
Jun-93
Jun-92
Jun-91
Jun-90
Jun-89
Jun-88
Jun-87
Jun-86
Jun-85
Jun-84
Jun-83
Jun-82
Jun-81
Jun-80
Jun-79
Jun-78
Jun-77
Jun-76
Jun-75
Jun-74
Jun-73
Jun-72
Jun-71
Jun-70
Jun-69
Jun-68
Jun-67
Jun-66
Jun-65
Jun-64
Jun-63
Figure 5.11
Dekadal Precipitation and Unregulated Streamflow for Reservoir Inflows
Record
• Add simulation output for
current time step
Initialize State Conditions for first time step
State Conditions
• Storage
• Soil Moisture Parameters (So, Go)
• Tercile Forecast for approaching JAS period
Input realized storage and soil
moisture parameters as initial
conditions for NEXT TIME STEP
Record deficits and
reservoir dynamics
Input conditions to DST
System Simulation Model
Run DST
• Multi-stage Stochastic Program
• One year probabilistic forecast (scenario tree)
• Minimize deficit penalty function for present
time step and future scenarios
Output release decisions
for current time step
• Calculate realized reservoir storage
• Calculate realized reservoir evaporation
• Calculate user deficits
Input realized events for the
current time step into simulation
Realized Events
DST Output
• Optimal releases and diversions for present
time step
Send output decisions
for current time step to
simulation worksheet
• Historic reservoir inflows
• Historic rainfall
• Historic Go and So
Figure 5.12
DST Simulation Schematic
100.00
200
Unregulated Q (modeled)
Precip
180
80.00
160
70.00
140
60.00
120
50.00
100
40.00
80
30.00
60
20.00
40
10.00
20
0.00
0
Precipitation (mm)
Streamflow (Mm3/dek)
90.00
Mar-06
Sep-05
Mar-05
Sep-04
Mar-04
Sep-03
Mar-03
Figure 5.13
Historic Precipitation and Reservoir Inflows
Period of Evaluation (April 2003 to May 2006)
3.50
Climate
Dekadal Volume (Mm3)
3.00
2.50
2.00
1.50
1.00
0.50
0.00
3.50
ACMAD
Dekadal Volume (Mm3)
3.00
2.50
2.00
1.50
1.00
0.50
0.00
3.50
"Perfect" Tercile
Dekadal Volume (Mm3)
3.00
2.50
2.00
1.50
1.00
0.50
0.00
Dekadal Volume (Mm3)
3.50
Perfect Information
3.00
2.50
2.00
1.50
1.00
0.50
0.00
26-Apr
25-Mar
21-Feb
20-Jan
19-Dec
17-Nov
16-Oct
14-Sep
13-Aug
12-Jul
10-Jun
9-May
7-Apr
6-Mar
2-Feb
1-Jan
30-Nov
29-Oct
27-Sep
26-Aug
25-Jul
23-Jun
22-May
20-Apr
19-Mar
16-Feb
15-Jan
14-Dec
12-Nov
11-Oct
9-Sep
8-Aug
7-Jul
5-Jun
4-May
2-Apr
Rainfed Supply
Releases
Volume Deficit
Figure 5.14 SOSUCO Demand and Supply
Without Forecast
Historic Forecast
'Perfect' Forecast
Perfect Knowledge
100%
Demand Supplied (percent)
80%
2003 J-A-S FORECAST
Wet = 30%
Normal = 40%
Dry = 30%
60%
2004 J-A-S FORECAST
Wet = 35%
Normal = 45%
Dry = 20%
2005 J-A-S FORECAST
Wet = 20%
Normal = 50%
Dry = 30%
40%
2003 J-A-S Realization
Wet - Normal
66% Quantile
2004 J-A-S Realization
Normal
57% Quantile
2004 J-A-S Realization
Dry
25% Quantile
20%
J-A-S
Period
J-A-S
Period
J-A-S
Period
0%
Aug-06
Jul-06
May-06
Mar-06
Feb-06
Dec-05
Oct-05
Sep-05
Jul-05
May-05
Apr-05
Feb-05
Dec-04
Nov-04
Sep-04
Aug-04
Jun-04
Apr-04
Mar-04
Jan-04
Nov-03
Oct-03
Aug-03
Jun-03
May-03
Mar-03
Jan-03
Figure 5.15
Percent of Total Demand Supplied - SOSUCO
by either Precipitation or Reservoir System
0.07
Climate
Dekadal Volume (Mm3)
0.06
0.05
0.04
0.03
0.02
0.01
0.00
0.07
ACMAD
Dekadal Volume (Mm3)
0.06
0.05
0.04
0.03
0.02
0.01
0.00
0.07
"Perfect" Tercile
Dekadal Volume (Mm3)
0.06
0.05
0.04
0.03
0.02
0.01
Dekadal Volume (Mm3)
0.00
0.06
0.06
0.06
0.06
0.06
0.06
0.06
0.06
0.06
0.06
0.06
0.06
Perfect Information
26-Apr
25-Mar
21-Feb
20-Jan
19-Dec
17-Nov
16-Oct
14-Sep
13-Aug
12-Jul
10-Jun
9-May
7-Apr
6-Mar
2-Feb
1-Jan
30-Nov
29-Oct
27-Sep
26-Aug
25-Jul
23-Jun
22-May
20-Apr
19-Mar
16-Feb
15-Jan
14-Dec
12-Nov
11-Oct
9-Sep
8-Aug
7-Jul
5-Jun
4-May
2-Apr
Releases
Volume Deficit
Figure 5.16 ONEA - Banfora Demand and Supply
100%
Without Forecast
With Forecast
'Perfect' Forecast
Perfect Knowledge
Demand Supplied (percent)
80%
2003 J-A-S FORECAST
Wet = 30%
Normal = 40%
Dry = 30%
60%
2004 J-A-S FORECAST
Wet = 35%
Normal = 45%
Dry = 20%
2005 J-A-S FORECAST
Wet = 20%
Normal = 50%
Dry = 30%
40%
2003 J-A-S Realization
Wet - Normal
66% Quantile
2004 J-A-S Realization
Normal
57% Quantile
2004 J-A-S Realization
Dry
25% Quantile
20%
J-A-S
Period
J-A-S
Period
J-A-S
Period
0%
Aug-06
Jul-06
May-06
Mar-06
Feb-06
Dec-05
Oct-05
Sep-05
Jul-05
May-05
Apr-05
Feb-05
Dec-04
Nov-04
Sep-04
Aug-04
Jun-04
Apr-04
Mar-04
Jan-04
Nov-03
Oct-03
Aug-03
Jun-03
May-03
Mar-03
Jan-03
Figure 5.17
Percent of Total Demand Supplied - ONEA Banfora
by either Precipitation or Reservoir System
0.30
Climate
Dekadal Volume (Mm3)
0.25
0.20
0.15
0.10
0.05
0.00
0.30
Dekadal Volume (Mm3)
ACMAD
0.25
0.20
0.15
0.10
0.05
0.00
0.30
Dekadal Volume (Mm3)
"Perfect" Tercile
0.25
0.20
0.15
0.10
0.05
0.00
Dekadal Volume (Mm3)
0.30
Perfect Information
0.25
0.20
0.15
0.10
0.05
0.00
26-Apr
25-Mar
21-Feb
20-Jan
19-Dec
17-Nov
16-Oct
14-Sep
13-Aug
12-Jul
10-Jun
9-May
7-Apr
6-Mar
2-Feb
1-Jan
30-Nov
29-Oct
27-Sep
26-Aug
25-Jul
23-Jun
22-May
20-Apr
19-Mar
16-Feb
15-Jan
14-Dec
12-Nov
11-Oct
9-Sep
8-Aug
7-Jul
5-Jun
4-May
2-Apr
Rainfed Supply
Releases
Volume Deficit
Figure 5.18 Karfiguela Plains Demand and Supply
100%
Demand Supplied (percent)
80%
60%
2003 J-A-S FORECAST
Wet = 30%
Normal = 40%
Dry = 30%
40%
2004 J-A-S FORECAST
Wet = 35%
Normal = 45%
Dry = 20%
2003 J-A-S Realization
Wet - Normal
66% Quantile
20%
2005 J-A-S FORECAST
Wet = 20%
Normal = 50%
Dry = 30%
2004 J-A-S Realization
Normal
57% Quantile
J-A-S
Period
Without Forecast
Historic Forecast
'Perfect' Forecast
Perfect Knowledge
2004 J-A-S Realization
Dry
25% Quantile
J-A-S
Period
J-A-S
Period
0%
Aug-06
Jul-06
May-06
Mar-06
Feb-06
Dec-05
Oct-05
Sep-05
Jul-05
May-05
Apr-05
Feb-05
Dec-04
Nov-04
Sep-04
Aug-04
Jun-04
Apr-04
Mar-04
Jan-04
Nov-03
Oct-03
Aug-03
Jun-03
May-03
Mar-03
Jan-03
Figure 5.19
Percent of Total Demand Supplied - Karfiguela Plains
by either Precipitation or Reservoir System
40.0
Climate
35.0
Storage (Mm3)
30.0
25.0
20.0
15.0
10.0
5.0
0.0
40.0
ACMAD
Storage (Mm3)
35.0
30.0
25.0
20.0
15.0
10.0
5.0
0.0
40.0
"Perfect Tercile"
35.0
Storage (Mm3)
30.0
25.0
20.0
15.0
10.0
5.0
0.0
40.0
Perfect Information
Storage (Mm3)
35.0
30.0
25.0
20.0
15.0
10.0
5.0
0.0
Sep-06
Jul-06
Apr-06
Jan-06
Nov-05
Aug-05
May-05
Mar-05
Dec-04
Sep-04
Jun-04
Apr-04
Jan-04
Oct-03
Aug-03
May-03
Feb-03
Nov-02
Figure 5.20
Simulated Reservoir Storage for Moussodougou
9.0
Climate
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
9.0
ACMAD
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
9.0
"Perfect Tercile"
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
9.0
Perfect Information
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Sep-06
Jul-06
Apr-06
Jan-06
Nov-05
Aug-05
May-05
Mar-05
Dec-04
Sep-04
Jun-04
Apr-04
Jan-04
Oct-03
Aug-03
May-03
Feb-03
Nov-02
Figure 5.21
Simulated Reservoir Storage for Lobi
9.0
Climate
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
9.0
ACMAD
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
9.0
"Perfect Tercile"
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
-1.0
9.0
Perfect Information
8.0
Storage (Mm3)
7.0
6.0
5.0
4.0
3.0
2.0
1.0
0.0
Sep-06
Jul-06
Apr-06
Jan-06
Nov-05
Aug-05
May-05
Mar-05
Dec-04
Sep-04
Jun-04
Apr-04
Jan-04
Oct-03
Aug-03
May-03
Feb-03
Nov-02
Figure 5.22
Simulated Reservoir Storage for Toussiana
DST Output using Climate Forecast 1 (high=33.3%, normal=33.3%, low=33.3%)
DST Output using Climate Forecast 3 (high=10%, normal=15%, low=75%)
Initial Storage
Expected Inflow
Recommended Release
Recommended Spill
Expected Evap
Expected Storage
Total Demand
Precipitation Supply
Conveyance Efficiency
Net Demand (with
conveyance efficiency)
Recommended Supply
Demand Supply
Moussodougou
7.89%
3.000
0.415
2.423
0.000
0.151
2.21%
0.841
Lobi
37.50%
3.000
0.089
0.000
0.000
0.168
36.51%
2.921
Toussiana
43.75%
3.500
0.096
0.000
0.000
0.157
42.99%
3.439
SOSUCO
ONEA - Banfora
CEPAK
2.675
0.000
85%
0.063
N/A
50%
0.234
0.000
65%
Debits
Sanitaires
0.100
0.100
100%
3.147
2.2030
70%
0.126
0.1200
95%
0.360
0.000
0%
0.100
0.100
100%
(% of total)
(Mm3)
(Mm3/dekadal)
(Mm3/dekadal)
(Mm3/dekadal)
(Mm3/dekadal)
(% of total)
(Mm3)
(Mm3/dekadal)
(Mm3/dekadal)
(%)
(Mm3/dekadal)
(Mm3/dekadal)
(%)
DST Output using Climate Forecast 2 (high=75%, normal=15%, low=10%)
Initial Storage
Expected Inflow
Recommended Release
Recommended Spill
Expected Evap
Expected Storage
Total Demand
Precipitation Supply
Conveyance Efficiency
Net Demand (with
conveyance efficiency)
Recommended Supply
Demand Supply
Moussodougou
7.89%
3.000
0.415
2.61
0.000
0.150
1.74%
0.660
Lobi
37.50%
3.000
0.089
0.050
0.000
0.170
35.86%
2.869
Toussiana
43.75%
3.500
0.096
0.000
0.000
0.157
42.99%
3.439
SOSUCO
ONEA - Banfora
CEPAK
2.675
0.000
85%
0.063
N/A
50%
0.234
0.000
60%
Debits
Sanitaires
0.100
0.100
100%
3.147
2.203
70%
0.126
0.120
95%
0.390
0.2340
60%
0.100
0.100
100%
(% of total)
(Mm3)
(Mm3/dekadal)
(Mm3/dekadal)
(Mm3/dekadal)
(Mm3/dekadal)
(% of total)
(Mm3)
(Mm3/dekadal)
(Mm3/dekadal)
(%)
(Mm3/dekadal)
(Mm3/dekadal)
(%)
Table 5.3
Summary of MSSLP Output for DST Demonstration
Results shown for all three seasonal forecasts (Forecast 1 and Forecast 3 have identical results)
Initial Reservoir Elevations
(Mm3) Mouss
Lobi
Touss
"Full" Reservoir Scenario
38.00
8.00
8.00
"High" Reservoir Scenario
15.00
5.50
5.50
4.00
3.00
4.00
"Average" Reservoir Scenario
"Low" Reservoir Scenario
1.50
1.50
2.00
Recommended Releases in the First Time Step
(Mm3/dekadal) Mouss
Lobi
Touss
"Full" Reservoir Scenario
2.66
0.00
0.00
"High" Reservoir Scenario
0.22
0.00
0.00
0.20
0.00
0.00
"Average" Reservoir Scenario
"Low" Reservoir Scenario
0.20
0.00
0.00
Incurred Deficits in the First Time Step
Karfiguela
(%) SOSUCO ONEA
"Full" Reservoir Scenario
20.0%
3.3%
26.7%
"High" Reservoir Scenario
66.7%
5.0%
66.7%
66.7%
20.0%
66.7%
"Average" Reservoir Scenario
"Low" Reservoir Scenario
66.7%
20.0%
66.7%
Table 5.5
DST Output Summary
Sensitivity of Recommended Spring Release decisions to Initial Reservoir Elevation Scenario
Percent Supplied
Min
Max
Dekadal Dekadal
Volumetric Deficit (Mm3)
Min
Max
Period
Dekadal Dekadal
Total
SOSUCO
Climatology
ACMAD
"Improved" Tercile Forecast
Perfect Information
70%
70%
70%
70%
100%
100%
100%
100%
0.000
0.000
0.000
0.000
0.886
0.886
0.886
0.886
67.588
68.122
64.204
22.039
Climatology
ACMAD
"Improved" Tercile Forecast
Perfect Information
95%
95%
95%
95%
100%
100%
100%
100%
0.000
0.000
0.000
0.000
0.003
0.003
0.003
0.003
0.338
0.335
0.314
0.044
CEPAK - Karfiguela
Climatology
ACMAD
"Improved" Tercile Forecast
Perfect Information
60%
60%
60%
80%
100%
100%
100%
100%
0.000
0.000
0.000
0.000
0.104
0.104
0.104
0.052
5.640
5.596
5.034
0.728
ONEA - Banfora
Total
Climatology
ACMAD
"Improved" Tercile Forecast
Perfect Information
73.566
74.053
69.552
22.811
Table 5.7
Summary of Results for Demand Supplied by System
For DST with Climatology Forecast, with ACMAD tercile Forecast, with "Improved"
Retrospective Tercile Forecast,and with Perfect Information
References
References
Ariyawansa, K. A. and Felt, A. 2004. On a New Collection of Stochastic Linear
Programming Test Problems. INFORMS Journal on Computing, Vol. 16, No. 3.
Arumugam, S., Sharma, A. and Lall, U. 2003. Water Allocation for multiple uses based
on probabilistic reservoir inflow forecasts. Proceedings of the IAHS-IUGG meeting,
Soppore, Japan. June 2003.
Bader, J.C., Piededelievre, J.P. and Lamagat, J.P. 2006. Seasonal forecasting of the flood
volume of the Senegal River, based on results of the ARPEGE Climate model.
Hydrological Sciences Journal (IAHS), Vol. 51 pp. 406-417.
Barros, M.T.L, Tsai, F.T-C., Yang, S-L., Lopes, J.E.G, and Yeh, W. W-G. 2003.
Optimization of Large-Scale Hydropower System Operations. Journal of Water
Resources Planning and Management, Vol 129(3) pp 178-188.
Beale 1955. On minimizing a convex function subject to linear constraints. Journal of the
Royal Statistical Society, Vol. 17B, 173-184.
Bell M.A. and Lamb P.J. 2006. Integration of Weather System Variability to
Multidecadal Regional Climate Change: The West African Sudan-Sahel Zone, 1951-98.
Journal of Climate, Vol. 19, pp. 5343-5365.
Bellman 1957. Dynamic Programming. Princeton University Press.
Birge, J. 1985. Decomposition and Partitioning Methods for Multistage Stochastic Linear
Programs. Operations Research, Vol. 33, No. 5. (Sep. - Oct., 1985), pp. 989-1007.
Birge, J. 1997. Stochastic programming computation and applications. INFORMS
Journal on Computing, Vol. 9, 111-133.
Birge, J. and Louveaux, F 1997. Introduction to Stochastic Programming. SpringerVerlag, New York.
Birge, J. and Mulvey J.M. 1996. Stochastic programming. Mathematical Programming
for Industrial Engineers, eds Avriel, M. and Golany, B., Dekker, New York.
Blaney HF, Criddle WD. 1950. Determining Water Requirements in Irrigated Areas from
Climatological Irrigation Data. Technical Paper No. 96, US Department of Agriculture,
Soil Conservation Service, Washington, D.C.
Bras, R.L., Buchanan, R.C., Curry, K.C. 1983. Real-time adaptive close loop control of
reservoirs with the High Aswan Dam as a case study. Water Resources Research, Vol.
15(4), 33-52.
Ref - 1
References
Brooke, A., Kendrick, D. A., Meeraus, A. and Raman, R. 2007. "GAMS: A User's
Guide, Release 2.50." GAMS Development Corporation, Washington DC.
Brouwer, C. and Heibloem, M. 1986. Irrigation Water Management No. 3 Irrigation
Water Needs. Food and Agriculture Organization of the United Nations (FAO), Rome.
Brouwer, C., Prins, K. and Heibloem, M. 1989. Irrigation Water Management No. 4
Irrigation Scheduling. Food and Agriculture Organization of the United Nations (FAO),
Rome.
Chiew, F.H.S., Zhou, S.L., and McMahon, T.A. 2003. Use of seasonal streamflow
forecasts in water resources management. Journal of Hydrology, Vol. 270, pp 135-144.
Crawley P. D. and Dandy G. C. 1993. OPTIMAL OPERATION OF MULTIPLERESERVOIR SYSTEM. Journal of Water Resources Planning and Management, Vol.
119, No. 1.
Croley, T. E. 2000. Using Meteorology Probability Forecasts in Operational Hydrology.
ASCE Press, Reston, VA.
Dantzig, G. B. 1955. Linear Programming under Uncertainty. Management Science, Vol.
1, No. 3/4. (Apr. - Jul., 1955), pp. 197-206.
DeSouza, F. and Lall, U. 2003. Seasonal to interannual ensemble streamflow forecasts
for Ceara, Brazil; Applications of a multivariate, semi-parametric algorithm. Water
Resources Research, Vol. 39 No. 11 pp 1307.
Doblas-Reyes, F.J., Hagedorn, R., and Palmer, T.N. 2006. Developments in dynamical
seasonal forecasting relevant to agricultural management. Climate Research, Vol. 33 pp.
19-26.
Doorenbos J, Pruitt W.O, 1977. Guidelines for predicting crop water requirements. Food
and Agriculture Organization of the United Nations (FAO), Rome, Irrigation and
Drainage Paper No. 24, p 144.
Dorfman, R. 1962. Mathematical Models: The multi-structure approach. Design of Water
Resources Systems, Harvard University Press, Cambridge, MA.
Dow, K. 2005. Vulnerability Profile of West Africa. Poverty and Vulnerability
Programme, Stockholm Environment Institute (SEI), United Kingdom.
Dupacová, J., Consigli, G., and Wallace, S.W. 2000. Scenarios for Multistage Stochastic
Programs. Annals of Operations Research, 100 (2000) 25-53.
Dupacová, J., Gröwe-Kuska, N. and Römisch, W. 2003. Scenario reduction in stochastic
programming. Mathematical Programming, Vol. 95 (3) 493-511.
Ref - 2
References
Escudero, L.F., de la Fuente, J.L., Garcia, C., and Prieto, F.J. 1996. Hydropower
generation management under uncertainty via scenario analysis and parallel computation.
IEEE Transactions on Power Systems, Vol. 11, No. 2 pp 683-689.
Etkin D., Kirshen, P.H., Watkins, D., Diallo, A.A., Hoogenboom, G., Roncoli, C., Sanfo,
J., Sanon, M., Some, L., Zoungrana, J. 2008. Stochastic linear programming for improved
reservoir operations for multiple objectives in Burkina Faso,West Africa. Proceedings of
the World Environmental and Water Resources Congress 2008, Honolulu, Hawaii.
Gassmann H.I. 1990. MSLiP: A Computer Code for the Multistage Stochastic Linear
Programming Problem. Mathematical Programming, 47 (1990) 407-423.
Gassmann, H. I. 1998. Modeling support for stochastic programs. Annals of Operations
Research, 82(1), 107-138.
Georgakakos, A. 2006. Decision-Support Systems for Integrated Water Resources
Management with an Application to the Nile Basin. Topics on System Analysis and
Integrated Water Resources Management, eds. A. Castelletti and R. Soncini-Sessa,
Elsevier.
Goddard, L., Mason, S.J., Zebiak, S.E., Ropelewski, C.F., Basher, R. and Cane, M.A.
2001. Current Approaches to Seasonal to Interannual Climate Predictions. International
Journal of Climatology, Vol. 21 (9), pp 1111-1152.
Hamlet, A.F., Huppert, D., and Lettenmaier, D.P. 2002. Economic Value of Long-Lead
Streamflow Forecasts for Columbia River Hydropower. Journal of Water Resources
Planning and Management, Vol. 128, No. 2.
Hargreaves, G.H. and Samni, Z.A. 1982. Estimation of potential evapotranspiration.
Journal of Irrigation and Drainage Division ASCE, Vol. 108, pp 223–230.
Hargreaves, G.H. and Samni, Z.A. 1985. Reference crop evapotranspiration from
temperature.
Hartmann, H.C., Pagano, T.C., Sorooshian, S., and Bales, R. 2002. Confidence Builders:
Evaluating Seasonal Climate Forecasts from User Perspectives. Bulletin of the American
Meteorological Society, Vol 5. 683-698.
Hellmuth, M.E., Moorhead, A., Thomson, M.C., and Williams, J. (eds) 2007. Climate
Risk Management in Africa: Learning from Practice. International Research Institute for
Climate and Society (IRI), Columbia University, New York, USA.
Hoerling M., Hurrell, J., Eischeid, J., and Phillips, A. 2006. Detection and Attribution of
Twentieth-Century Northern and Southern African Rainfall Change. Journal of Climate,
Vol. 19, pp. 3989-4008.
Ref - 3
References
Høyland, K. and S. W. Wallace 2001. Generating Scenario Trees for Multistage Decision
Problems. Management Science, 47(2), 295-307.
Hulme, M., Doherty, R., Ngara, T., New, M. and Lister, D. 2001. African climate change:
1900–2100. Climate Research, Vol. 17 pp 145-168.
Ingram, H., Feldman, D., Mantua, N., Jacobs, K.L., and Fort, D. 2008. Decision-support
experiments and evaluations using seasonal to interannual forecasts and observational
data: A Focus on Water Resources. U.S. Climate Change Science Program, Synthesis and
Assesment Product 5.3.
Jacobs, J., Freeman, G., Grygier, J., Morton, D., Schultz, G., Staschus, K., and Stedinger,
J. 1995. SOCRATES: A system for scheduling hydroelectric generation under
uncertainty. Annals of Operations Research, 59 (1995) 99-133.
Jung, G. 2006. Regional Climate Change and the Impact on Hydrology in the Volta Basin
of West Africa. Dissertation Garmisch-Partenkirchen, GLOWA-Volta Project.
Kabore, E. and Yaka, P. 2000. Etude et modelisation statistique de la prevision
saisonniere de la pluie en Afrique de l'Ouest : cas du Burkina Faso. Atelier Régional sur
la Prévision Saisonnière En Afrique de l'Ouest, Centre Africain Pour Les Applications De
La Meteorologie au Developpment (ACMAD).
Kall, P. and S. W. Wallace 1998. Stochastic programming. New York, Chichester.
Kirshen, P. and Ginnetti, J. 1985. HydroMAX: Computerized Hydropower Scheduling.
Proceedings of Waterpower 1985, Las Vegas, NV, 25-27 September .
Kirshen, P.H. and Flitcroft, I.D. 2000. Use of seasonal precipitation forecasting to
improve agricultural production the Sudan-Sahel: an institutional analysis of Burkina
Faso. Natural Resources Forum, 24 (2000) 185-195.
Kracman, D.R., McKinney, D.C., Watkins, D.W. and Lasdon, L.S. 2006. Stochastic
Optimization of Highland Lakes System in Texas. Journal of Water Resources Planning
and Management, Vol. 132, No. 2.
Kunstmann, H., and Jung, G. 2005. Impact of regional climate change on water
availability in the Volta Basin of West Africa. "Regional Hydrological Impact of
Climate variability and Change", IAHS Publication No. 295.
Labadie, J.W. 2004. Optimal Operation of Multireservoir Systems: State-of-the-Art
Review. Journal of Water Resources Planning and Management, Vol. 130, No. 2.
Little, J.D.C. 1955. The use of storage water in a hydroelectric system. Journal of
Operations Research Society of America, Vol. 3, 187-197.
Ref - 4
References
Loucks, D. P., Stedinger, J. R., and Haith, D. A. 1981. Water resource systems planning
and analysis. BOOK, Prentice-Hall, Englewood Cliffs, N.J.
Loucks, D.P. and van Beek E. 2005. Water Resources Systems Planning and
Management - an introduction to methods, models and applications. Paris : UNESCO.
Marques, G.F., Lund, J.R., Howitt, R. 2005. Modeling irrigated agricultural production
and water use decisions under water supply uncertainty. Water Resources Research, Vol.
41.
Masse, P. 1946. Les Reserves et la Regulation de l’Avenir. Hermann, Paris.
McCartney, M.P. 2007. Decision Support Systems for Large Dam Planning and
Operation in Africa. International Water Management Institute, Working Paper 119.
Miller A.C. and Rice T.R. 1983. Discrete approximations of probability distributions.
Management Science, Vol. 29 352-362.
Moura, A.D., Hastenrath, S. 2004. Climate prediction for Brazil’s Nordeste: performance
of empirical and numerical modeling methods. Journal Climate, Vol. 17 pp 2667–2672.
Neelin J.D., Battisti, D.S., Hirst, A.C., Jin, F.F., Wakata, Y., Yamagata, T., and Zebiak,
S.E. 1998. ENSO theory. Journal of Geophysical Research, Vol. 103 pp 14261–14290.
Nicholson, S 2001. Climatic and environmental change in Africa during the last two
centuries. Climate Research, Vol. 17 pp 123-144.
no author details 2008. Development of Decision Support Tools for Decentralized Urban
Water Supply Management. in submission.
NRC (National Research Council) 2008. Research and Networks for Decision Support in
the NOAA Sectoral Applications Research Program . Panel on Design Issues for the
NOAA Sector Applications Research Program,, Helen M. Ingram and Paul C. Stern,
Editors.
Obeng-Asiedu, P. 2004. Allocating Water Resources To Agricultural and Economic
Development in the Volta River Basin. Thesis at Universität Bonn, GLOWA-Volta
Project.
Ouedraogo, F., Sankara, S., Zongo, G., and Kabre, M. 2007. Activités de la Section de
Suivi des Réseaux de collecte (SSRC) Campagne hydrologique 2007. Rapport de mission
de terrain.
Ref - 5
References
Pereira, M.V.F and Pinto, L.M.V.G. 1985. Stochastic Optimization of a Multireservoir
Hydroelectric System: A Decomposition Approach. Water Resources Research, Vol. 21,
No. 6, pp 779-792.
Roncoli, C. 2006. Ethnographic and participatory approaches to research on farmers’
responses to climate predictions. Climate Research, Vol. 33: 81-99.
Roncoli, C., Ingram, K., and Kirshen, P. 2002. Reading the Rains: Local Knowledge and
Rainfall Forecasting among Farmers of Burkina Faso. Society and Natural Resources,
Vol. 15, pp. 411-430.
Roncoli, C., Ingram, K., Jost, C., and Kirshen, P., In 2004. Meteorological Meanings:
Farmers' Interpretations of Seasonal Rainfall Forecasts in Burkina Faso. In Sarah Strauss
and Benjamin Orlove eds. Weather, Climate, Culture, Berg.
Roncoli, C., Kirshen, P.H., Etkin, D., Sanon, M., Somé, L., Sanfo, B.J., Zoungrana, J.,
and Hoogenboom, G. 2008. Managing Water or Mediating Among Users: Introducing
Decision Support Tools in a Multi-User Context in Southwest Burkina Faso.
Environmental Management, In submission.
Rosenthal, R.E. 1980. The Status of Optimization Models for the Operation of
Multireservoir Systems with Stochastic Inflows and Nonseperable Benefits. Research
Report 75. Tennessee Water Resources Research Center, National Technical Information
Service, Springfield VA.
Sadecki, J. 2003. An efficiency analysis of the parallel multitransputer implementation of
two level optimization algorithms. International Journal of Applied Mathematics and
Computer Science, Vol. 13 pp 205-214.
Sahinidis, N. V. 2004. Optimization under uncertainty: state-of-the-art and opportunities.
Computers and Chemical Engineering, 28 (2004) 971-983.
Sharma, A. 2000. Seasonal to interannual rainfall probabilistic forecasts for improved
water supply management: Part 3 - A nonparametric probabilistic forecast model. Journal
of Hydrology, Vol. 239 pp. 249-258.
Shuttleworth, W.J. 1993. Handbook of Hydrology, Chapter 4: Evaporation. ed.
Maidment, D.R., McGraw-Hill, Inc.
Sivakumar, M.V.K. 2006. Climate prediction and agriculture: current status and future
challengers. Climate Research, Vol. 33: 3-17.
Smith, J.E. 1993. Moment methods for decision analysis. Management Science, Vol. 39
340-358.
Ref - 6
References
Stedinger, J.R., Karamouz, M., McCrodden, B., McMahon, G., Palmer, R., and Valdes, J.
1993. Using forecasts to improve reservoir operations. Proceedings of the 20th Annual
National Conference, Water Resources Planning and Management Division, ASCE, ,
Seattle, Washington, 240-243, April.
Stedinger, J.R., Sale, B.F., Loucks, D.P. 1984. Stochastic dynamic programming models
for reservoir operation optimization. Water Resources Research, Vol. 20 (11), 1499–
1505.
Thomas, H.A. 1981. Improved methods for National Water Assessment. Report Contract
WR 15249270, U.S., Water Resources Council, Washington, D.C.
Thomas, H.A., C.M. Marin, M.J. Brown, and M.B Fiering 1983. Methodology for water
resource assessment. report to U.S. Geological Survey, Rep. NTIS 84-124163, Natl.
Tech. Info. Serv., Springfield, Va., 1983.
Thomas, H.A., Marin, C.M., Brown M.J., and Fiering, M.B 1983. Methodology for water
resource assessment. Report to U.S. Geological Survey, Report NTIS 84-1241631983.,
National Technical Information Service, Springfield, Va.
Van Do, T. and Howard, C.D.D. 1988. Hydropower Stochastic Forecasting and
Optimization. Computerized Decision Support Systems for Water Managers: Proceedings
of the 3rd Water Resources Operations Management Workshop, Colorado State
University, Fort Collins, CO June 27-30, 1988.
Vandewiele, G.L., C-Y Xu, and Ni-Lar-Win 1992. Methodology and comparative study
of monthly water balance models in Belgium, China and Burma. Journal of Hydrology,
Vol. 134, pg 315-347.
Watkins, D.W, and Griffis, V.W. 2008. Conditioning Ensemble Streamflow Prediction
Forecasts Using Climate Signals in the Midwestern U.S. Proceedings of the World
Environmental and Water Resources Congress 2008, Honolulu, Hawaii.
Watkins, D.W, and Wei, W. 2008. The Value of Seasonal Climate Forecasts and Why
Water Managers Don't Use Them. Proceedings of the World Environmental and Water
Resources Congress 2008, Honolulu, Hawaii.
Watkins, D.W, McKinney, D.C., Lasdon, L.S., Nielsen, S.S., and Martin, Q.W. 2000. A
scenario-based stochastic programming model for water supplies from the Highland
Lakes. International Transactions in Operational Research, 7 (2000) 211-230.
Westphal, K. S., Vogel, R., Kirshen, P., and Chapra, S. C. 2003. Decision Support
System for Adaptive Water Supply Management. Journal of Water Resources Planning
and Management, Vol. 129, No. 3, Pages 165-177.
Ref - 7
References
Wurbs, R.A. 1993. Reservoir-System Simulation and Optimization Models. Journal of
Water Resources Planning and Management, Vol. 119, No. 4.
Yakowitz, S. 1982. Dynamic programming applications in water resources. Water
Resources Research, Vol. 18(4), 673–696.
Yao, H. and Georgakakos, A. 2001. Assessment of Folsom Lake response to historical
and potential future climate scenarios: 2. Reservoir management. Journal of Hydrology,
249 (2001) 176-196.
Yeh, W.W-G, Becker, L, and Zettlemoyer, R. 1982. Worth of Inflow Forecast for
Reservoir Operation. Journal of Water Resources Planning and Management, Vol. 108,
No. WR3.
Yeh, W.W-G. 1985. Reservoir Management and Operation Models: A State-of-the-Art
Review. Water Resources Research, Vol. 21 (12):1797-1818.
Yeh, W.W-G., Becker, L., and Chu, W.S. 1979. Real-time hourly reservoir operation.
Journal of Water Resources Planning and Management, Vol. 105 (WR2), 187-203.
Young, G. K. 1967. Finding reservoir operating rules. Journal of Hydraulics Division
ASCE, Vol. 93(HY6), 297-321.
Zougrana, J.and Zongo, G. 2006. Rapport De Mission De Prospection De Sites De
Barrages Avec Perimetres Amenages Dans Le Bassin De La Comoe. Ministre de
L'agriculture, de l'hydraulique et de ressources hailieutiques, Direction Generale des
Ressources en Eau (DGRE).
Ref - 8
Appendix A
Excel Workbook for Prescriptive Decision
Support Tool
Screenshots and Brief Description of Selected Worksheets
The DST is constructed of several interlinked worksheets in a single Microsoft Excel workbook. Each worksheet performs a different
task in the process. The first several worksheets are used to process historic daily precipitation data to be built into a five-stage dekadaltime step branching scenario tree. This worksheet divides each historic year into six stages (five plus a dry season), and calculates the
first two moments of each historic stage.
A-1
With the moments calculated from the historic record, analogue years are selected for the tercile (high/med/low) of each stage. This
worksheet displays the dekadal statistics for the fifteen selected analogue stages; three terciles times five stages.
A-2
In this worksheet the probabilities of each branch of the precipitation scenario tree are calculated from the historic record using
algorithms programmed in VBA (see Appendix C). Along the left-hand side, Markov transition matrices are determined from counting
the transitions between tercile states (high/med/low) between stages in the historic record. Using VBA these Markov matrices are
expanded into a branching tree construction of conditional probabilities, and then into a single probability matrix for each state and
stage.
A-3
The probability matrix can be adjusted by seasonal tercile forecasts developed in collaboration with ACMAD.
A-4
After the analogue sequences of dekadal precipitation are selected for each stage and tercile, this worksheet constructs a five-stage
branching scenario tree of dekadal precipitation for one year. This precipitation scenario tree is a stochastic description of climatology,
based on the available historic record. The VBA algorithm allows the user to select the starting dekadal for the one year forecast
horizon.
A-5
In this worksheet the precipitation scenario tree is used to construct a streamflow scenario tree for the Diarabakoko stream gauge with
an ABCD rainfall runoff model that is coded in VBA. The parameters for the rainfall-runoff model are shown in the upper left-hand
corner. Reservoir inflows for each scenario are estimated by area ratio from the streamflow at Diarabakoko.
A-6
This large worksheet calculates the effective precipitation supply for SOSUCO and Karfiguela agricultural demands from the
precipitation scenario tree. Also on this worksheets, the inflow scenarios for each reservoir are calculated by area ratio from the
branching scenario tree for Diarabakoko.
A-7
This worksheets displays the hydrologic and user demand inputs for the optimization run.
A-8
The main DST worksheet allows the user to enter reservoir network parameters (max storage, max release, storage-surface area
function, conveyance efficiency), total dekadal demands for each water user, and the parameters of the time-variant multi-objective
piecewise linear penalty function. A VBA algorithm translates the data on this and other worksheets into a multi-stage linear program
in GAMS code, and then calls on GAMS to solve the linear program.
A–9
After the linear program is solved in GAMS, the output is read back into the worksheet. The output includes the optimal set of release
and diversion decisions.
A - 10
Appendix B
Sample GAMS Code of Multi Stage Linear
Program for DST Example Run
Selection with repeated portioned deleted; full code available
in the Digital Appendix
Appendix B
sets
r
d
stg
reservoir /M,L,T/
demand
/S,B,K/
stage set /stage1*stage5/
t
time step /time1*time36/
stg1(t) stage 1
/time1*time3/
stg1b(t) stage 1 for NA constraints /time2*time3/
stg2(t) stage 2
/time4*time9/
stg3(t) stage 3
/time10*time12/
stg4(t) stage 4
/time13*time16/
stg5(t) stage 5
/time17*time36/
sc
scenario
sc1_1(sc)
set
sc1_2(sc)
set
sc1_3(sc)
set
sc2_1(sc)
set
sc2_2(sc)
set
sc2_3(sc)
set
sc2_4(sc)
set
sc2_5(sc)
set
sc2_6(sc)
set
sc2_7(sc)
set
sc2_8(sc)
set
sc2_9(sc)
set
sc3_1(sc)
set
sc3_2(sc)
set
[DELETED CODE]
sc3_26(sc)
set
sc3_27(sc)
set
sc4_1(sc)
set
sc4_2(sc)
set
sc4_3(sc)
set
sc4_4(sc)
set
sc4_5(sc)
set
[DELETED CODE]
sc4_80(sc)
set
sc4_81(sc)
set
;
/scen1*scen243/
/scen1*scen81/
/scen82*scen162/
/scen163*scen243/
/scen1*scen27/
/scen28*scen54/
/scen55*scen81/
/scen82*scen108/
/scen109*scen135/
/scen136*scen162/
/scen163*scen189/
/scen190*scen216/
/scen217*scen243/
/scen1*scen9/
/scen10*scen18/
/scen226*scen234/
/scen235*scen243/
/scen1*scen3/
/scen4*scen6/
/scen7*scen9/
/scen10*scen12/
/scen13*scen15/
/scen238*scen240/
/scen241*scen243/
sc1
set
/bnch1_1,bnch1_2,bnch1_3/
sc2
set
/bnch2_1,bnch2_2,bnch2_3,bnch2_4,bnch2_5,bnch2_6,bnch2_7,bnch2_8,bnch
2_9/
sc3
set
/bnch3_1,bnch3_2,bnch3_3,bnch3_4,bnch3_5,bnch3_6,bnch3_7,bnch3_8,bnch
3_9,bnch3_10,bnch3_11,bnch3_12,bnch3_13,bnch3_14,bnch3_15,bnch3_16,bn
ch3_17,bnch3_18,bnch3_19,bnch3_20,bnch3_21,bnch3_22,bnch3_23,bnch3_24
,bnch3_25,bnch3_26,bnch3_27/
sc4
set
/bnch4_1,bnch4_2,bnch4_3,bnch4_4,bnch4_5,bnch4_6,bnch4_7,bnch4_8,bnch
4_9,bnch4_10,bnch4_11,bnch4_12,bnch4_13,bnch4_14,bnch4_15,bnch4_16,bn
ch4_17,bnch4_18,bnch4_19,bnch4_20,bnch4_21,bnch4_22,bnch4_23,bnch4_24
,bnch4_25,bnch4_26,bnch4_27,bnch4_28,bnch4_29,bnch4_30,bnch4_31,bnch4
_32,bnch4_33,bnch4_34,bnch4_35,bnch4_36,bnch4_37,bnch4_38,bnch4_39,bn
ch4_40,bnch4_41,bnch4_42,bnch4_43,bnch4_44,bnch4_45,bnch4_46,bnch4_47
,bnch4_48,bnch4_49,bnch4_50,bnch4_51,bnch4_52,bnch4_53,bnch4_54,bnch4
_55,bnch4_56,bnch4_57,bnch4_58,bnch4_59,bnch4_60,bnch4_61,bnch4_62,bn
ch4_63,bnch4_64,bnch4_65,bnch4_66,bnch4_67,bnch4_68,bnch4_69,bnch4_70
,bnch4_71,bnch4_72,bnch4_73,bnch4_74,bnch4_75,bnch4_76,bnch4_77,bnch4
_78,bnch4_79,bnch4_80,bnch4_81/
*STORAGE PARAMETERS
parameter Smx(r) reservoir storage capacities
/
M
38
B-1
Appendix B
L
T
/;
8
8
parameter Smn(r) reservoir storage capacities
/
M
0.6
L
0.5
T
0.3
/;
parameter RelMax(r) reservoir storage capacities
/
M
10
L
8
T
8
/;
parameter Sinit(r) initial reservoir storage
/
M
5.5
L
3
T
4
/;
parameter areaf(r) area function
/
M
0.315
L
0.3
T
0.2
/;
parameter Areamin(r) minimum area
/
M
2
L
2
T
2
/;
parameter WSpill(r) Spill Penalty
/
M
10
L
10
T
1
/;
parameter STarget(r) Storage target in final timestep
/
M
5.5
L
6.7
T
7.3
/;
parameter SlopeOver(r) Storage Target Slope - over target
/
M
50
L
50
T
50
/;
parameter SlopeUnder(r) Storage Target Slope - under target
/
M
10000
L
10000
B-2
Appendix B
T
/;
10000
*DEMAND PARAMETERS
parameter eff(d) demand efficiency
/
S
0.85
B
0.5
K
0.6
/;
table SlopeA(t,d)
S
time1
10
time2
10
[DELETED CODE]
time35
10
time36
10
;
table SlopeB(t,d)
S
time1
500
time2
500
[DELETED CODE]
time35
500
time36
500
;
table SlopeC(t,d)
S
time1
10000
time2
10000
[DELETED CODE]
time35
10000
time36
10000
;
table kneeB(t,d)
S
time1
0.15
time2
0.15
[DELETED CODE]
time35
0.15
time36
0.15
;
table kneeC(t,d)
S
time1
0.3
time2
0.3
[DELETED CODE]
time35
0.3
time36
0.3
;
B
20
20
K
10
10
20
20
10
10
B
500
500
K
100
100
500
500
100
100
B
50000
50000
K
1000
1000
50000
50000
1000
1000
B
0.05
0.05
K
0.2
0.2
0.05
0.05
0.2
0.2
B
0.2
0.2
K
0.4
0.4
0.2
0.2
0.4
0.4
table inflows(sc,r,t) inflow for each reservoir
time1
time2
time3
time6
time7
time8
time11
time12
time13
time16
time17
time18
time21
time22
time23
time26
time27
time28
time31
time32
time33
time36
scen1.M
0.368
0.503
0.472
0.65
0.903
0.993
1.005
B-3
time4
time9
time14
time19
time24
time29
time34
time5
time10
time15
time20
time25
time30
time35
0.569
1.307
0.577
3.708
Appendix B
4.491
4.566
15.939
11.102
3.954
3.223
1.562
1.382
0.821
scen2.M
0.368
0.65
0.903
4.491
4.566
20.39
9.793
2.801
2.41
1.298
1.16
0.702
[DELETED CODE]
scen242.M
0.368
0.273
0.32
0.498
0.54
1.389
1.224
0.589
0.512
0.275
0.244
0.155
scen243.M
0.368
0.273
0.32
0.498
0.54
0.866
0.74
0.409
0.359
0.199
0.178
0.098
scen1.L
0.079
0.139
0.194
0.962
0.978
3.416
2.379
0.847
0.691
0.335
0.296
0.176
scen2.L
0.079
0.139
0.194
0.962
0.978
4.369
2.098
0.6
0.516
0.278
0.249
0.15
[DELETED CODE]
scen242.L
0.079
0.059
0.068
0.107
0.116
0.298
0.262
0.126
0.11
0.059
0.052
0.033
scen243.L
0.079
0.059
0.068
0.107
0.116
0.185
0.159
0.088
0.077
0.043
0.038
0.021
scen1.T
0.085
0.151
0.21
1.043
1.06
3.7
2.577
0.918
0.748
0.363
0.321
0.191
scen2.T
0.085
0.151
0.21
1.043
1.06
4.733
2.273
7.467
6.704
2.712
1.223
51.646
6.504
2.325
1.084
19.391
7.288
2.017
0.963
21.583
5.121
1.774
0.859
0.503
0.993
7.467
6.433
2.102
1.035
0.472
1.005
51.646
5.104
1.848
0.924
0.569
1.307
19.391
4.031
1.635
0.88
0.577
3.708
24.339
3.32
1.457
0.786
0.35
0.346
0.517
1.037
0.449
0.216
0.328
0.343
0.578
0.938
0.395
0.191
0.293
0.308
0.653
0.798
0.349
0.201
0.27
0.356
1.037
0.684
0.31
0.177
0.35
0.346
0.517
0.723
0.318
0.158
0.328
0.343
0.578
0.621
0.281
0.14
0.293
0.308
0.653
0.538
0.25
0.124
0.27
0.356
0.805
0.469
0.224
0.11
0.108
0.213
1.6
1.436
0.581
0.262
0.101
0.215
11.067
1.394
0.498
0.232
0.122
0.28
4.155
1.562
0.432
0.206
0.124
0.795
4.625
1.097
0.38
0.184
0.108
0.213
1.6
1.379
0.45
0.222
0.101
0.215
11.067
1.094
0.396
0.198
0.122
0.28
4.155
0.864
0.35
0.189
0.124
0.795
5.216
0.711
0.312
0.168
0.075
0.074
0.111
0.222
0.096
0.046
0.07
0.073
0.124
0.201
0.085
0.041
0.063
0.066
0.14
0.171
0.075
0.043
0.058
0.076
0.222
0.147
0.066
0.038
0.075
0.074
0.111
0.155
0.068
0.034
0.07
0.073
0.124
0.133
0.06
0.03
0.063
0.066
0.14
0.115
0.054
0.027
0.058
0.076
0.172
0.1
0.048
0.024
0.117
0.23
1.733
1.556
0.63
0.284
0.109
0.233
11.989
1.51
0.54
0.252
0.132
0.303
4.501
1.692
0.468
0.223
0.134
0.861
5.01
1.189
0.412
0.199
0.117
0.23
1.733
1.493
0.109
0.233
11.989
1.185
0.132
0.303
4.501
0.936
0.134
0.861
5.65
0.771
B-4
Appendix B
0.65
0.559
0.301
0.269
0.163
[DELETED CODE]
scen242.T
0.085
0.063
0.074
0.116
0.125
0.323
0.284
0.137
0.119
0.064
0.057
0.036
scen243.T
0.085
0.063
0.074
0.116
0.125
0.201
0.172
0.095
0.083
0.046
0.041
0.023
;
0.488
0.24
0.429
0.215
0.379
0.204
0.338
0.182
0.081
0.08
0.12
0.241
0.104
0.05
0.076
0.08
0.134
0.218
0.092
0.044
0.068
0.071
0.152
0.185
0.081
0.047
0.063
0.083
0.241
0.159
0.072
0.041
0.081
0.08
0.12
0.168
0.074
0.037
0.076
0.08
0.134
0.144
0.065
0.032
0.068
0.071
0.152
0.125
0.058
0.029
0.063
0.083
0.187
0.109
0.052
0.026
table netDemand(sc,d,t) net demand for each time step demand and scenario
time1
time2
time3
time4
time5
time6
time7
time8
time9
time10
time11
time12
time13
time14
time15
time16
time17
time18
time19
time20
time21
time22
time23
time24
time25
time26
time27
time28
time29
time30
time31
time32
time33
time34
time35
time36
scen1.S
2.569
0
2.362
0.754
1.831
1.226
0.065
1.393
1.891
0.459
0
0.841
0.801
0
0
0.229
0
0.044
0.668
1.26
0
0
2.184
2.185
1.823
2.865
2.691
2.794
2.953
2.872
2.893
2.765
2.748
2.734
2.726
2.081
scen2.S
2.569
0
2.362
0.754
1.831
1.226
0.065
1.393
1.891
0.459
0
0.841
0.801
0
0
0.229
0
0
1.42
1.26
0.835
1.037
2.184
2.185
1.823
2.865
2.691
2.794
2.953
2.872
2.893
2.765
2.748
2.162
2.726
2.685
[DELETED CODE]
scen242.S
2.569
2.303
2.41
2.51
2.456
1.918
1.054
1.64
2.207
2.464
1.4
0.454
1.13
2.114
1.314
0.514
0
0
1.42
1.26
0.835
1.037
2.184
2.185
1.823
2.865
2.691
2.794
2.953
2.872
2.893
2.765
2.748
2.162
2.726
2.685
scen243.S
2.569
2.303
2.41
2.51
2.456
1.918
1.054
1.64
2.207
2.464
1.4
0.454
1.13
2.114
1.314
0.514
0.053
0.687
1.534
0.863
0.995
1.037
2.184
2.185
1.823
2.865
2.691
2.794
2.953
2.872
2.893
2.765
2.748
2.734
2.726
2.685
scen1.B
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
scen2.B
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
B-5
Appendix B
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
[DELETED CODE]
scen242.B
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
scen243.B
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
scen1.K
0.224
0.099
0
0
0
0
0
0.096
0.08
0.251
0.253
0.178
scen2.K
0.224
0.099
0
0
0
0
0.056
0.096
0.08
0.251
0.253
0.235
[DELETED CODE]
scen242.K
0.224
0.164
0.083
0
0.011
0
0.056
0.096
0.08
0.251
0.253
0.235
scen243.K
0.224
0.164
0.083
0
0.011
0
0.067
0.096
0.08
0.251
0.253
0.235
;
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0.063
0
0.115
0
0.055
0.125
0.242
0.205
0.161
0
0
0.118
0.24
0.055
0.028
0
0
0.244
0.239
0.156
0
0
0.096
0.258
0.238
0
0.115
0
0.055
0.125
0.242
0.205
0.161
0
0.029
0.118
0.24
0.055
0.028
0
0.045
0.244
0.186
0.156
0
0
0.096
0.258
0.238
0.2
0.138
0.083
0.055
0.125
0.242
0.21
0.191
0.011
0.029
0.118
0.24
0.22
0.216
0
0.045
0.244
0.186
0.215
0.005
0
0.096
0.258
0.238
0.2
0.138
0.083
0.018
0.125
0.242
0.21
0.191
0.011
0.044
0.118
0.24
0.22
0.216
0
0.045
0.244
0.239
0.215
0.005
0
0.096
0.258
0.238
table cropDemand(t,d) total demand for crops and municipality
S
B
K
time1
2.675
0.063
0.234
time2
2.58
0.063
0.226
[DELETED CODE]
time35
2.726
0.063
0.238
time36
2.685
0.063
0.235
;
parameter DSlimit(t) lower limit for debits sanitaires in the Comoe downstream
of Karfiguela diversion Mm3 per dekadal
/
time1
0.1
time2
0.1
[DELETED CODE]
time35
0.1
B-6
Appendix B
time36
/;
0.1
parameter evapRate(t) reservoir evaporation rate in Mm3 over (km2*10days)
/
time1
58.3717951238155
time2
57.9443661808968
[DELETED CODE]
time35
61.4666772246361
time36
57.8637539744377
/;
table P(sc,stg) joint probability of each scenario and stage
stage1
stage2
stage3
stage4
scen1
0.00123
0.00132
0.00085
0.00146
scen2
0.00123
0.00132
0.00085
0.00146
[DELETED CODE]
scen242
0.00926
0.00595
0.00383
0.00656
scen243
0.00926
0.00595
0.00383
0.00656
stage5
0.00125
0.00219
0.00562
0.00562
positive variables
S(sc,r,t)
storage variables
Rel(sc,r,t)
releases
Spill(sc,r,t) spills
Evap(sc,r,t) evaporation
*flows
Qpipe(t,sc)
QpipeSO(t,sc)
QpipeBa(t,sc)
Qcomoe(t,sc)
QdivKa(t,sc)
Qdbts_S(t,sc)
Sanitaires)
diversion from Comoe to Pipeline
diversion from Pipeline to SOSUCO
diversion from Pipeline to Banfora ONEA
undivered flow in Comoe (upstream of Karfiguela
diversion from Comoe to Karfiguela
undiverted flow in Comoe downstream of Karfiguela (Debits
*separable deficit values
defsepA(sc,d,t)
defsepB(sc,d,t)
defsepC(sc,d,t)
SUnder(r)
SOver(r)
free variable
def(sc,d,t)
cost(sc,d,t)
costStorage(sc,r)
standIn0(r)
standIn1(sc1,r,stg1b)
standIn2(sc2,r,stg2)
standIn3(sc3,r,stg3)
standIn4(sc4,r,stg4)
standIn0Spill(r)
standIn1Spill(sc1,r,stg1b)
standIn2Spill(sc2,r,stg2)
standIn3Spill(sc3,r,stg3)
standIn4Spill(sc4,r,stg4)
TotalCost
objective function;
equations
initialM (sc)
storageM(t,sc)
initialL (sc)
B-7
Appendix B
storageL(t,sc)
initialT (sc)
storageT(t,sc)
evapint(r,sc)
evaporation function in initial time step
evapor(sc,r,t)
evaporation function in subsequent time steps
capacity(sc,r,t)
reservoir storage capacity
capacityMIN(sc,r,t) reservoir storage minimum
capacityREL(sc,r,t) reservoir release maximum
nodePipe(t,sc)
mass balance at Pipeline Diversion from Comoe
nodePipeDiv(t,sc)
mass balance at Pipeline Diversions to Banfora and SOSUCO
nodeComoe(t,sc)
mass balance at Karfiguela Diversion
hereandnow(sc)
explicit constraint that forces releases in the first
time step to not exceed demands and debits sanitaires
nodeSO(t,sc)
SOSUCO mass balance
nodeBa(t,sc)
Banfora mass balance
nodeKa(t,sc)
Kafiguela mass balance
DSconstraint(t,sc)
Debits Sanitaires lower limit
defS(t,sc)
SOSUCO deficit
defB(t,sc)
Banfora deficit
defK(t,sc)
Kafigula deficit
separable(sc,d,t)
separates deficit into three variables defsepA defsepB
and defsepC
slopechangeB(sc,d,t) forces defA to be less than kneeB
slopechangeC(sc,d,t) forces defB to be less than the difference between kneeC
and kneeB
penalstage1(sc,d,stg1)
1
penalstage2(sc,d,stg2)
2
penalstage3(sc,d,stg3)
3
penalstage4(sc,d,stg4)
4
penalstage5(sc,d,stg5)
5
penalStorage(sc,r)
timestep
targetStorage(sc,r)
convex cost function for each time step in stage
convex cost function for each time step in stage
convex cost function for each time step in stage
convex cost function for each time step in stage
convex cost function for each time step in stage
linear cost function for storage target deficit in last
storage soft target
NA_Rel0(sc,r)
nonanticipativity REL constraint for first time step
NA_Spl0(sc,r)
nonanticipativity SPL constraint for first time step
NA_Rel1_1(sc1_1,r,stg1b)
nonanticipativity REL constraint for branch 1
stage 1
NA_Spl1_1(sc1_1,r,stg1b)
nonanticipativity SPL constraint for branch 1
stage 1
NA_Rel1_2(sc1_2,r,stg1b)
nonanticipativity REL constraint for branch 2
stage 1
NA_Spl1_2(sc1_2,r,stg1b)
nonanticipativity SPL constraint for branch 2
stage 1
NA_Rel1_3(sc1_3,r,stg1b)
nonanticipativity REL constraint for branch 3
stage 1
NA_Spl1_3(sc1_3,r,stg1b)
nonanticipativity SPL constraint for branch 3
stage 1
NA_Rel2_1(sc2_1,r,stg2)
nonanticipativity REL constraint for branch 1
stage 2
NA_Spl2_1(sc2_1,r,stg2)
nonanticipativity SPL constraint for branch 1
stage 2
NA_Rel2_2(sc2_2,r,stg2)
nonanticipativity REL constraint for branch 2
stage 2
NA_Spl2_2(sc2_2,r,stg2)
nonanticipativity SPL constraint for branch 2
stage 2
[DELETED CODE]
NA_Rel2_8(sc2_8,r,stg2)
nonanticipativity REL constraint for branch 8
stage 2
NA_Spl2_8(sc2_8,r,stg2)
nonanticipativity SPL constraint for branch 8
B-8
Appendix B
stage 2
NA_Rel2_9(sc2_9,r,stg2)
stage 2
NA_Spl2_9(sc2_9,r,stg2)
stage 2
NA_Rel3_1(sc3_1,r,stg3)
stage 3
NA_Spl3_1(sc3_1,r,stg3)
stage 3
NA_Rel3_2(sc3_2,r,stg3)
stage 3
NA_Spl3_2(sc3_2,r,stg3)
stage 3
[DELETED CODE]
NA_Rel3_26(sc3_26,r,stg3)
26 stage 3
NA_Spl3_26(sc3_26,r,stg3)
26 stage 3
NA_Rel3_27(sc3_27,r,stg3)
27 stage 3
NA_Spl3_27(sc3_27,r,stg3)
27 stage 3
NA_Rel4_1(sc4_1,r,stg4)
stage 4
NA_Spl4_1(sc4_1,r,stg4)
stage 4
NA_Rel4_2(sc4_2,r,stg4)
stage 4
NA_Spl4_2(sc4_2,r,stg4)
stage 4
[DELETED CODE]
NA_Rel4_80(sc4_80,r,stg4)
80 stage 4
NA_Spl4_80(sc4_80,r,stg4)
80 stage 4
NA_Rel4_81(sc4_81,r,stg4)
81 stage 4
NA_Spl4_81(sc4_81,r,stg4)
81 stage 4
objective;
nonanticipativity REL constraint for branch 9
nonanticipativity SPL constraint for branch 9
nonanticipativity REL constraint for branch 1
nonanticipativity SPL constraint for branch 1
nonanticipativity REL constraint for branch 2
nonanticipativity SPL constraint for branch 2
nonanticipativity REL constraint for branch
nonanticipativity SPL constraint for branch
nonanticipativity REL constraint for branch
nonanticipativity SPL constraint for branch
nonanticipativity REL constraint for branch 1
nonanticipativity SPL constraint for branch 1
nonanticipativity REL constraint for branch 2
nonanticipativity SPL constraint for branch 2
nonanticipativity REL constraint for branch
nonanticipativity SPL constraint for branch
nonanticipativity REL constraint for branch
nonanticipativity SPL constraint for branch
initialM(sc)..
S(sc,'M','time1') =e=Sinit('M')
+Inflows(sc,'M','time1')-Rel(sc,'M','time1')-Spill(sc,'M','time1')evap(sc,'M','time1');
storageM(t,sc)$(ord(t) ne 1).. S(sc,'M',t)=e=S(sc,'M',t-1)+Inflows(sc,'M',t)Rel(sc,'M',t)-Spill(sc,'M',t)-evap(sc,'M',t);
initialL(sc)..
S(sc,'L','time1') =e=Sinit('L')
+Inflows(sc,'L','time1')-Rel(sc,'L','time1')-Spill(sc,'L','time1')evap(sc,'L','time1')+spill(sc,'M','time1');
storageL(t,sc)$(ord(t) ne 1).. S(sc,'L',t)=e=S(sc,'L',t-1)+Inflows(sc,'L',t)Rel(sc,'L',t)-Spill(sc,'L',t)-evap(sc,'L',t)+spill(sc,'M',t);
initialT(sc)..
S(sc,'T','time1') =e=Sinit('T')
+Inflows(sc,'T','time1')-Rel(sc,'T','time1')-Spill(sc,'T','time1')evap(sc,'T','time1');
storageT(t,sc)$(ord(t) ne 1).. S(sc,'T',t)=e=S(sc,'T',t-1)+Inflows(sc,'T',t)Rel(sc,'T',t)-Spill(sc,'T',t)-evap(sc,'T',t);
evapint(r,sc)..
evap(sc,r,'time1')=e=(evapRate('time1')*0.001)
*(areaf(r)*(S(sc,r,'time1')+Sinit(r))*0.5)+((evapRate('time1')*0.001)
*(areamin(r)));
evapor(sc,r,t)$(ord(t) ne 1).. evap(sc,r,t)=e=(evapRate(t)*0.001)*(areaf(r)
*(S(sc,r,t)+S(sc,r,t-1))*0.5)+((evapRate(t)*0.001)*(areamin(r)));
capacity(sc,r,t)..
capacityMIN(sc,r,t)..
S(sc,r,t)=l=Smx(r);
S(sc,r,t)=g=Smn(r);
B-9
Appendix B
capacityREL(sc,r,t)..
Rel(sc,r,t)=l=RelMax(r);
nodePipe(t,sc)..
Qpipe(t,sc)+Qcomoe(t,sc);
nodePipeDiv(t,sc)..
nodeComoe(t,sc)..
Rel(sc,'M',t)+Rel(sc,'L',t)+Spill(sc,'L',t)=e=
Qpipe(t,sc)=e=QpipeSO(t,sc)+QpipeBa(t,sc);
Qcomoe(t,sc)=e=QdivKa(t,sc)+Qdbts_S(t,sc);
hereandnow(sc)..
Sum(r,rel(sc,r,'time1'))=l=
sum(d,cropDemand('time1',d)/eff(d))+DSlimit('time1');
nodeSO(t,sc)..
NetDemand(sc,'S',t)/eff('S');
nodeBa(t,sc)..
nodeKa(t,sc)..
Rel(sc,'T',t)+QpipeSO(t,sc)=l=
DSconstraint(t,sc)..
Qdbts_S(t,sc)=g=DSlimit(t);
QpipeBa(t,sc)=l=NetDemand(sc,'B',t)/eff('B');
QdivKa(t,sc)=l=NetDemand(sc,'K',t)/eff('K');
defS(t,sc)..
def(sc,'S',t)=e=
(NetDemand(sc,'S',t)-(Rel(sc,'T',t)+QpipeSO(t,sc))*eff('S'))
/cropDemand(t,'S');
defB(t,sc)..
def(sc,'B',t)=e=(NetDemand(sc,'B',t)QpipeBa(t,sc)*eff('B'))/cropDemand(t,'B');
defK(t,sc)..
def(sc,'K',t)=e=(NetDemand(sc,'K',t)QdivKa(t,sc)*eff('K'))/cropDemand(t,'K');
separable(sc,d,t).. defsepA(sc,d,t)+defsepB(sc,d,t)+defsepC(sc,d,t)=e=
def(sc,d,t);
slopechangeB(sc,d,t).. defsepA(sc,d,t)=l=kneeB(t,d);
slopechangeC(sc,d,t).. defsepB(sc,d,t)=l=kneeC(t,d)-kneeB(t,d);
penalstage1(sc,d,stg1).. cost(sc,d,stg1)=e=P(sc,'stage1')*(slopeA(stg1,d)
*defsepA(sc,d,stg1)+slopeB(stg1,d)*defsepB(sc,d,stg1)+slopeC(stg1,d)
*defsepC(sc,d,stg1));
penalstage2(sc,d,stg2).. cost(sc,d,stg2)=e=P(sc,'stage2')*(slopeA(stg2,d)
*defsepA(sc,d,stg2)+slopeB(stg2,d)*defsepB(sc,d,stg2)+slopeC(stg2,d)
*defsepC(sc,d,stg2));
penalstage3(sc,d,stg3).. cost(sc,d,stg3)=e=P(sc,'stage3')*(slopeA(stg3,d)
*defsepA(sc,d,stg3)+slopeB(stg3,d)*defsepB(sc,d,stg3)+slopeC(stg3,d)
*defsepC(sc,d,stg3));
penalstage4(sc,d,stg4).. cost(sc,d,stg4)=e=P(sc,'stage4')*(slopeA(stg4,d)
*defsepA(sc,d,stg4)+slopeB(stg4,d)*defsepB(sc,d,stg4)+slopeC(stg4,d)
*defsepC(sc,d,stg4));
penalstage5(sc,d,stg5).. cost(sc,d,stg5)=e=P(sc,'stage5')*(slopeA(stg5,d)
*defsepA(sc,d,stg5)+slopeB(stg5,d)*defsepB(sc,d,stg5)+slopeC(stg5,d)
*defsepC(sc,d,stg5));
penalStorage(sc,r)..
costStorage(sc,r)=e=P(sc,'stage5')*(SlopeUnder(r)
*SUnder(r)+SlopeOver(r)*SOver(r));
targetStorage(sc,r).. S(sc,r,'time36')=e=STarget(r)-SUnder(r)+SOver(r);
NA_Rel0(sc,r)..
NA_Spl0(sc,r)..
Rel(sc,r,'time1')=e=standIn0(r);
Spill(sc,r,'time1')=e=standIn0Spill(r);
NA_Rel1_1(sc1_1,r,stg1b)..
Rel(sc1_1,r,stg1b)=e=
standIn1('bnch1_1',r,stg1b);
NA_Spl1_1(sc1_1,r,stg1b)..
Spill(sc1_1,r,stg1b)=e=
standIn1Spill('bnch1_1',r,stg1b);
NA_Rel1_2(sc1_2,r,stg1b)..
Rel(sc1_2,r,stg1b)=e=
standIn1('bnch1_2',r,stg1b);
NA_Spl1_2(sc1_2,r,stg1b)..
Spill(sc1_2,r,stg1b)=e=
standIn1Spill('bnch1_2',r,stg1b);
NA_Rel1_3(sc1_3,r,stg1b)..
Rel(sc1_3,r,stg1b)=e=
standIn1('bnch1_3',r,stg1b);
NA_Spl1_3(sc1_3,r,stg1b)..
Spill(sc1_3,r,stg1b)=e=
standIn1Spill('bnch1_3',r,stg1b);
NA_Rel2_1(sc2_1,r,stg2)..
Rel(sc2_1,r,stg2)=e=standIn2('bnch2_1',r,stg2);
B-10
Appendix B
NA_Spl2_1(sc2_1,r,stg2)..
Spill(sc2_1,r,stg2)=e=
standIn2Spill('bnch2_1',r,stg2);
NA_Rel2_2(sc2_2,r,stg2)..
Rel(sc2_2,r,stg2)=e=standIn2('bnch2_2',r,stg2);
NA_Spl2_2(sc2_2,r,stg2)..
Spill(sc2_2,r,stg2)=e=
standIn2Spill('bnch2_2',r,stg2);
[DELETED CODE];
NA_Rel2_8(sc2_8,r,stg2)..
Rel(sc2_8,r,stg2)=e=standIn2('bnch2_8',r,stg2);
NA_Spl2_8(sc2_8,r,stg2)..
Spill(sc2_8,r,stg2)=e=
standIn2Spill('bnch2_8',r,stg2);
NA_Rel2_9(sc2_9,r,stg2)..
Rel(sc2_9,r,stg2)=e=standIn2('bnch2_9',r,stg2);
NA_Spl2_9(sc2_9,r,stg2)..
Spill(sc2_9,r,stg2)=e=
standIn2Spill('bnch2_9',r,stg2);
NA_Rel3_1(sc3_1,r,stg3)..
Rel(sc3_1,r,stg3)=e=standIn3('bnch3_1',r,stg3);
NA_Spl3_1(sc3_1,r,stg3)..
Spill(sc3_1,r,stg3)=e=
standIn3Spill('bnch3_1',r,stg3);
NA_Rel3_2(sc3_2,r,stg3)..
Rel(sc3_2,r,stg3)=e=standIn3('bnch3_2',r,stg3);
NA_Spl3_2(sc3_2,r,stg3)..
Spill(sc3_2,r,stg3)=e=
standIn3Spill('bnch3_2',r,stg3);
[DELETED CODE]
NA_Rel3_26(sc3_26,r,stg3)..
Rel(sc3_26,r,stg3)=e=
standIn3('bnch3_26',r,stg3);
NA_Spl3_26(sc3_26,r,stg3)..
Spill(sc3_26,r,stg3)=e=
standIn3Spill('bnch3_26',r,stg3);
NA_Rel3_27(sc3_27,r,stg3)..
Rel(sc3_27,r,stg3)=e=
standIn3('bnch3_27',r,stg3);
NA_Spl3_27(sc3_27,r,stg3)..
Spill(sc3_27,r,stg3)=e=
standIn3Spill('bnch3_27',r,stg3);
NA_Rel4_1(sc4_1,r,stg4)..
Rel(sc4_1,r,stg4)=e=standIn4('bnch4_1',r,stg4);
NA_Spl4_1(sc4_1,r,stg4)..
Spill(sc4_1,r,stg4)=e=
standIn4Spill('bnch4_1',r,stg4);
NA_Rel4_2(sc4_2,r,stg4)..
Rel(sc4_2,r,stg4)=e=standIn4('bnch4_2',r,stg4);
NA_Spl4_2(sc4_2,r,stg4)..
Spill(sc4_2,r,stg4)=e=
standIn4Spill('bnch4_2',r,stg4);
[DELETED CODE]
NA_Rel4_80(sc4_80,r,stg4)..
Rel(sc4_80,r,stg4)=e=
standIn4('bnch4_80',r,stg4);
NA_Spl4_80(sc4_80,r,stg4)..
Spill(sc4_80,r,stg4)=e=
standIn4Spill('bnch4_80',r,stg4);
NA_Rel4_81(sc4_81,r,stg4)..
Rel(sc4_81,r,stg4)=e=
standIn4('bnch4_81',r,stg4);
NA_Spl4_81(sc4_81,r,stg4)..
Spill(sc4_81,r,stg4)=e=
standIn4Spill('bnch4_81',r,stg4);
objective..
totalCost=e=sum((sc,d,t),cost(sc,d,t))
+sum((sc,r,t),spill(sc,r,t)*Wspill(r))+sum((sc,r),costStorage(sc,r));
model reservoir /all/;
option iterlim = 10000000;
solve reservoir using lp minimizing totalCost;
B-11
Appendix C
Sample Algorithms for Building, Running and
Processing Results for MSSLP
VBA code for Excel Workbook shown in Appendix A
Appendix C
'This part from Dr. McCarl Texas A&M
Private Type STARTUPINFO
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Long
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Declare Function FreeConsole Lib "kernel32" () As Long
Private Declare Function AllocConsole Lib "kernel32" () As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Private Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA"
(lpStartupInfo As STARTUPINFO)
Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA"
(ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal
PtrProcessAttributes As Long, ByVal PtrThreadAttributes As Long, ByVal
bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment
As Long, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO,
lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal_hObject As Long)
As Long
'This part from Tao Hua for the wait
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess
As Long, lpExitCode As Long) As Long
Const ACCESS_TYPE = &H400
Const STILL_ACTIVE = &H103
Private Sub bnReadOutput_Click()
Dim pathName As String
pathName = ThisWorkbook.Worksheets("Input").Range("FilePath").Value
Call readGAMS(pathName)
End Sub
Private Sub bnWrite_Click()
Dim pathName As String
'Define the path name
pathName = ThisWorkbook.Worksheets("Input").Range("FilePath").Value
'write the GAMS code
Call writeGAMS(pathName & "\SLP_comoe.gms", pathName)
GAMS Input - 1
Appendix C
End Sub
Private Sub bnWriteCode_Click()
Dim pathName, pathGAMS As String
'This part from Dr. McCarl Texas A&M
Dim startup_info As STARTUPINFO
Dim process_info As PROCESS_INFORMATION
Dim command As String
Dim result As Long
Dim txt As String
Dim console As Long
Dim lExitCode As Long
Const SW_SHOWNORMAL = 1
Const STARTF_USESHOWWINDOW = &H1
Const NORMAL_PRIORITY_CLASS = &H20
'Define the path name
pathName = ThisWorkbook.Worksheets("Input").Range("FilePath").Value
pathGAMS = ThisWorkbook.Worksheets("Input").Range("GAMSPath").Value
'write the GAMS code
Call writeGAMS(pathName & "\SLP_comoe.gms", pathName)
'run the GAMS code
'This part from Dr. McCarl Texas A&M
GetStartupInfo startup_info
startup_info.wShowWindow = SW_SHOWNORMAL
startup_info.dwFlags = startup_info.dwFlags Or STARTF_USESHOWWINDOW
command = """" & pathGAMS & "\gams"" """ & pathName & "\SLP_comoe.gms"""
result = CreateProcess(vbNullString, command, 0, 0, 0,
NORMAL_PRIORITY_CLASS, 0, pathName, startup_info, process_info)
'This do loop for the wait
Do
GetExitCodeProcess process_info.hProcess, lExitCode
process
DoEvents
processing
Loop While lExitCode = STILL_ACTIVE
If result = 0 Then
result = GetLastError()
txt = "Error code: " + Str(result)
MsgBox txt
End If
CloseHandle (process_info.hThread)
CloseHandle (process_info.hProcess)
'End of McCarl Code
'read in the output file
Call readGAMS(pathName)
ThisWorkbook.Worksheets("input").Activate
End Sub
Sub writeGAMS(fname, pathName)
Dim i As Integer
Dim stageLength(0 To 5) As Integer
Dim NonAnti, Forecast As Boolean
'WILL NON ANTICIPATIVITY CONSTRAINTS BE APPLIED?
GAMS Input - 2
' Check on the
' Allow event
Appendix C
NonAnti = ThisWorkbook.Worksheets("input").Range("NonAnticipation").Value
Forecast = ThisWorkbook.Worksheets("input").Range("Forecast").Value
'Set up for stage length integers
stageLength(0) = 0
For i = 1 To 5
stageLength(i) = Worksheets("scenario
trees").Range("stagelength").Cells(1, i).Value + stageLength(i - 1)
Worksheets("scenario trees").Range("stagelength").Cells(2, i).Value =
stageLength(i)
Next i
Open fname For Output As #1
Print
Print
Print
Print
Print
Print
Print
#1,
#1,
#1,
#1,
#1,
#1,
#1,
"sets"
"
"
"
""
"
"
r
d
stg
reservoir /M,L,T/"
demand
/S,B,K/"
stage set /stage1*stage5/"
t
time step /time1*time36/"
stg1(t) stage 1
/time1*time" & stageLength(1) & "/"
If stageLength(1) = 1 Then
'in this case the first stage and the first time step are the same so we
don't need 2 different time step subsets
Print #1, "
stg1b(t) stage 1 for NA constraints /time1*time1/"
Else
'in all other cases we need 2 sets of NA constraints, the first is for the
probability definition
'and the second is for the NA constraints for time steps beyond the first
here and now time step
'but are still in the first stage
Print #1, "
stg1b(t) stage 1 for NA constraints /time2*time" &
stageLength(1) & "/"
End If
Print #1, "
stg2(t) stage 2
/time" & (stageLength(1) + 1) & "*time"
& stageLength(2) & "/"
Print #1, "
stg3(t) stage 3
/time" & (stageLength(2) + 1) & "*time"
& stageLength(3) & "/"
Print #1, "
stg4(t) stage 4
/time" & (stageLength(3) + 1) & "*time"
& stageLength(4) & "/"
Print #1, "
stg5(t) stage 5
/time" & (stageLength(4) + 1) & "*time"
& stageLength(5) & "/"
Print #1, ""
Print #1, "
sc
scenario /scen1*scen243/"
For i = 1 To 3
Print #1, "
sc1_" & i; "(sc)
set
/scen" & ((81 * (i - 1))
+ 1) & "*scen" & (81 * i) & "/"
Next i
For i = 1 To 9
Print #1, "
sc2_" & i; "(sc)
set
/scen" & ((27 * (i - 1))
+ 1) & "*scen" & (27 * i) & "/"
Next i
For i = 1 To 27
Print #1, "
sc3_" & i; "(sc)
set
/scen" & ((9 * (i - 1)) +
1) & "*scen" & (9 * i) & "/"
Next i
For i = 1 To 81
Print #1, "
sc4_" & i; "(sc)
set
/scen" & ((3 * (i - 1)) +
1) & "*scen" & (3 * i) & "/"
Next i
Print #1, ""
Print #1, "
sc1
set
/";
For i = 1 To 2
Print #1, "bnch1_" & i & ",";
Next i
GAMS Input - 3
Appendix C
Print #1, "bnch1_3/"
Print #1,
For i = 1
Print
Next i
Print #1,
"
sc2
set
To 8
#1, "bnch2_" & i & ",";
Print #1,
For i = 1
Print
Next i
Print #1,
"
sc3
set
To 26
#1, "bnch3_" & i & ",";
Print #1,
For i = 1
Print
Next i
Print #1,
"
sc4
set
To 80
#1, "bnch4_" & i & ",";
/";
"bnch2_9/"
/";
"bnch3_27/"
/";
"bnch4_81/"
Print #1, ";"
Print #1, ""
'STORAGE PARAMETERS
Print #1, "*STORAGE PARAMETERS "
Print #1, "parameter Smx(r) reservoir storage capacities"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("Smx").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, ""
Print #1, "parameter Smn(r) reservoir storage capacities"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("Smin").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, ""
Print #1, "parameter RelMax(r) reservoir storage capacities"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("RelMax").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, ""
Print #1, "parameter Sinit(r) initial reservoir storage"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("Sinit").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter areaf(r) area function"
Print #1, "/"
For i = 1 To 3
GAMS Input - 4
Appendix C
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("AreaF").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter Areamin(r) minimum area"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("AreaMin").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter WSpill(r) Spill Penalty"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("Wspill").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter STarget(r) Storage target in final timestep"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("Starget").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter SlopeOver(r) Storage Target Slope - over target"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("SlopeOver").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print #1, "parameter SlopeUnder(r) Storage Target Slope - under target"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("ResLabels").Cells(1, i).Value,
Worksheets("Input").Range("SlopeUnder").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
'DEMAND PARAMETERS
Print #1, "*DEMAND PARAMETERS "
Print #1, "parameter eff(d) demand efficiency"
Print #1, "/"
For i = 1 To 3
Print #1, Worksheets("Input").Range("DemLabels").Cells(1, i).Value,
Worksheets("Input").Range("Efficiency").Cells(1, i).Value
Next i
Print #1, "/;"
Print #1, ""
Print
Print
Print
Print
For i
#1,
#1,
#1,
#1,
= 1
"table SlopeA(t,d)"
Spc(15);
"S"; Spc(13); "B"; Spc(13); "K", Spc(0);
To 36
GAMS Input - 5
Appendix C
Print #1, Worksheets("scenario trees").Range("time").Cells(1, i).Value,
Spc(0);
For j = 1 To 3
Print #1,
Round(Worksheets("input").Range("PenaltyParameters").Cells((j - 1) * 5
+ 1, i).Value, 3), Spc(0);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
Print #1, "table SlopeB(t,d)"
Print #1, Spc(15);
Print #1, "S"; Spc(13); "B"; Spc(13); "K", Spc(0);
Print #1,
For i = 1 To 36
Print #1, Worksheets("scenario trees").Range("time").Cells(1, i).Value,
Spc(0);
For j = 1 To 3
Print #1,
Round(Worksheets("input").Range("PenaltyParameters").Cells((j - 1) * 5
+ 2, i).Value, 3), Spc(0);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
Print #1, "table SlopeC(t,d)"
Print #1, Spc(15);
Print #1, "S"; Spc(13); "B"; Spc(13); "K", Spc(0);
Print #1,
For i = 1 To 36
Print #1, Worksheets("scenario trees").Range("time").Cells(1, i).Value,
Spc(0);
For j = 1 To 3
Print #1,
Round(Worksheets("input").Range("PenaltyParameters").Cells((j - 1) * 5
+ 3, i).Value, 3), Spc(0);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
Print #1, "table kneeB(t,d)"
Print #1, Spc(15);
Print #1, "S"; Spc(13); "B"; Spc(13); "K", Spc(0);
Print #1,
For i = 1 To 36
Print #1, Worksheets("scenario trees").Range("time").Cells(1, i).Value,
Spc(0);
For j = 1 To 3
Print #1,
Round(Worksheets("input").Range("PenaltyParameters").Cells((j - 1) * 5
+ 4, i).Value, 3), Spc(0);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
Print #1, "table kneeC(t,d)"
Print #1, Spc(15);
Print #1, "S"; Spc(13); "B"; Spc(13); "K", Spc(0);
GAMS Input - 6
Appendix C
Print #1,
For i = 1 To 36
Print #1, Worksheets("scenario trees").Range("time").Cells(1, i).Value,
Spc(0);
For j = 1 To 3
Print #1,
Round(Worksheets("input").Range("PenaltyParameters").Cells((j - 1) * 5
+ 5, i).Value, 3), Spc(0);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
'INFLOWS
Print #1, "table inflows(sc,r,t) inflow for each reservoir"
Print #1, Spc(15);
For j = 1 To 36
Print #1, Worksheets("Scenario Trees").Range("time").Cells(1, j).Value,
Spc(0);
Next j
Print #1,
For i = 1 To 243 'MOUSSADOUGOU
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".M";
For j = 1 To 36
Print #1, Spc(0), Round(Worksheets("Scenario
Trees").Range("TreeResMouss").Cells(i, j).Value, 3);
Next j
Print #1,
Next i
For i = 1 To 243 'LOBI
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".L";
For j = 1 To 36
Print #1, Spc(0), Round(Worksheets("Scenario
Trees").Range("TreeResLobi").Cells(i, j).Value, 3);
Next j
Print #1,
Next i
For i = 1 To 243 'TOUSSIANA
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".T";
For j = 1 To 36
Print #1, Spc(0), Round(Worksheets("Scenario
Trees").Range("TreeResTouss").Cells(i, j).Value, 3);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
'NET DEMAND
Print #1, "table netDemand(sc,d,t) net demand for each time step demand and
scenario"
Print #1, Spc(15);
For j = 1 To 36
Print #1, Worksheets("Scenario Trees").Range("time").Cells(1, j).Value,
Spc(0);
Next j
Print #1,
For i = 1 To 243 'SOSUCO
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".S";
For j = 1 To 36
Print #1, Spc(0),
Round(Worksheets("Input").Range("NetDemandSOSUCO").Cells(i, j).Value,
GAMS Input - 7
Appendix C
3);
Next j
Print #1,
Next i
For i = 1 To 243 'BANFORA
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".B";
For j = 1 To 36
Print #1, Spc(0),
Round(Worksheets("Input").Range("TotalDemand").Cells(2, j).Value, 3);
Next j
Print #1,
Next i
For i = 1 To 243 'KARFIGUELA
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value & ".K";
For j = 1 To 36
Print #1, Spc(0),
Round(Worksheets("Input").Range("NetDemandKarfiguela").Cells(i,
j).Value, 3);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
'TOTAL DEMAND
Print #1, "table cropDemand(t,d) total demand for crops and municipality"
Print #1, Spc(15);
Print #1, "S"; Spc(13); "B"; Spc(13); "K", Spc(0);
Print #1,
For i = 1 To 36
Print #1, Worksheets("Scenario Trees").Range("Time").Cells(1, i).Value;
For j = 1 To 3
Print #1, Spc(0),
Round(Worksheets("input").Range("TotalDemand").Cells(j, i).Value, 3);
Next j
Print #1,
Next i
Print #1, ";"
Print #1, ""
'DEBITS SANITAIRES LOWER LIMIT
Print #1, "parameter DSlimit(t) lower limit for debits sanitaires in the Comoe
downstream of Karfiguela diversion Mm3 per dekadal"
Print #1, "/"
For j = 1 To 36
Print #1, Worksheets("Scenario Trees").Range("Time").Cells(1, j).Value,
Worksheets("input").Range("totaldemand").Cells(4, j).Value
Next j
Print #1, "/;"
Print #1, ""
'EVAP RATE
Print #1, "parameter evapRate(t) reservoir evaporation rate in Mm3 over
(km2*10days)"
Print #1, "/"
For j = 1 To 36
Print #1, Worksheets("Scenario Trees").Range("Time").Cells(1, j).Value,
Worksheets("input").Range("evapRate").Cells(1, j).Value
Next j
Print #1, "/;"
Print #1, ""
'PROBABILITY MATRIX
Print #1, "table P(sc,stg) joint probability of each scenario and stage"
Print #1, Spc(15);
GAMS Input - 8
Appendix C
For j = 1 To 5
Print #1, Worksheets("Probability").Range("stages").Cells(1, j).Value,
Spc(1);
Next j
Print #1,
For i = 1 To 243
Print #1, Worksheets("Scenario Trees").Range("scenarios").Cells(i,
1).Value;
For j = 1 To 5
If Forecast = True Then
Print #1, Spc(1),
Round(Worksheets("Probability").Range("Pmatrix_adj").Cells(i,
j).Value, 5);
Else
Print #1, Spc(1),
Round(Worksheets("Probability").Range("Pmatrix_clim").Cells(i,
j).Value, 5);
End If
Next j
Print #1,
Next i
Print #1, ""
Print #1, ""
Print #1, "positive variables"
Print #1, "S(sc,r,t)
storage variables"
Print #1, "Rel(sc,r,t)
releases"
Print #1, "Spill(sc,r,t) spills"
Print #1, "Evap(sc,r,t) evaporation"
Print #1, ""
Print #1, "*flows"
Print #1, "Qpipe(t,sc)
diversion from Comoe to Pipeline"
Print #1, "QpipeSO(t,sc) diversion from Pipeline to SOSUCO"
Print #1, "QpipeBa(t,sc) diversion from Pipeline to Banfora ONEA"
Print #1, "Qcomoe(t,sc) undivered flow in Comoe (upstream of Karfiguela"
Print #1, "QdivKa(t,sc) diversion from Comoe to Karfiguela"
Print #1, "Qdbts_S(t,sc) undiverted flow in Comoe downstream of Karfiguela
(Debits Sanitaires)"
Print #1, ""
Print #1, "*separable deficit values"
Print #1, "defsepA(sc,d,t)"
Print #1, "defsepB(sc,d,t)"
Print #1, "defsepC(sc,d,t)"
Print #1, ""
Print #1, "SUnder(r)"
Print #1, "SOver(r)"
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
Print
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
#1,
""
"free variable"
"def(sc,d,t)"
"cost(sc,d,t)"
"costStorage(sc,r)"
""
"standIn0(r)"
"standIn1(sc1,r,stg1b)"
"standIn2(sc2,r,stg2)"
"standIn3(sc3,r,stg3)"
"standIn4(sc4,r,stg4)"
""
"standIn0Spill(r)"
"standIn1Spill(sc1,r,stg1b)"
"standIn2Spill(sc2,r,stg2)"
"standIn3Spill(sc3,r,stg3)"
"standIn4Spill(sc4,r,stg4)"
""
"TotalCost
objective function;"
""
GAMS Input - 9
Appendix C
Print #1, "equations"
Print #1, "initialM (sc)"
Print #1, "storageM(t,sc)"
Print #1, "initialL (sc)"
Print #1, "storageL(t,sc)"
Print #1, "initialT (sc)"
Print #1, "storageT(t,sc)"
Print #1, "evapint(r,sc)
evaporation function in initial time step"
Print #1, "evapor(sc,r,t)
evaporation function in subsequent time steps"
Print #1, "capacity(sc,r,t)
reservoir storage capacity"
Print #1, "capacityMIN(sc,r,t) reservoir storage minimum"
Print #1, "capacityREL(sc,r,t) reservoir release maximum"
Print #1, "nodePipe(t,sc)
mass balance at Pipeline Diversion from Comoe"
Print #1, "nodePipeDiv(t,sc)
mass balance at Pipeline Diversions to Banfora
and SOSUCO"
Print #1, "nodeComoe(t,sc)
mass balance at Karfiguela Diversion"
Print #1, "hereandnow(sc)
explicit constraint that forces releases in
the first time step to not exceed demands and debits sanitaires"
Print #1, "nodeSO(t,sc)
SOSUCO mass balance"
Print #1, "nodeBa(t,sc)
Banfora mass balance"
Print #1, "nodeKa(t,sc)
Kafiguela mass balance"
Print #1, "DSconstraint(t,sc)
Debits Sanitaires lower limit"
Print #1, "defS(t,sc)
SOSUCO deficit"
Print #1, "defB(t,sc)
Banfora deficit"
Print #1, "defK(t,sc)
Kafigula deficit"
Print #1, "separable(sc,d,t)
separates deficit into three variables defsepA
defsepB and defsepC"
Print #1, "slopechangeB(sc,d,t) forces defA to be less than kneeB"
Print #1, "slopechangeC(sc,d,t) forces defB to be less than the difference
between kneeC and kneeB"
Print #1, ""
Print #1, "penalstage1(sc,d,stg1)
convex cost function for each time
step in stage 1"
Print #1, "penalstage2(sc,d,stg2)
convex cost function for each time
step in stage 2"
Print #1, "penalstage3(sc,d,stg3)
convex cost function for each time
step in stage 3"
Print #1, "penalstage4(sc,d,stg4)
convex cost function for each time
step in stage 4"
Print #1, "penalstage5(sc,d,stg5)
convex cost function for each time
step in stage 5"
Print #1, ""
Print #1, "penalStorage(sc,r)
linear cost function for storage target
deficit in last timestep"
Print #1, "targetStorage(sc,r) storage soft target"
Print #1, ""
'NON ANTICIPATION CONSTRAINTS
Print #1, "NA_Rel0(sc,r)
step"
Print #1, "NA_Spl0(sc,r)
step"
nonanticipativity REL constraint for first time
nonanticipativity SPL constraint for first time
If NonAnti = True Then
For i = 1 To 3
Print #1, "NA_Rel1_" & i & "(sc1_" &
nonanticipativity REL constraint for
Print #1, "NA_Spl1_" & i & "(sc1_" &
nonanticipativity SPL constraint for
Next i
For i = 1 To 9
Print #1, "NA_Rel2_" & i & "(sc2_" &
nonanticipativity REL constraint for
Print #1, "NA_Spl2_" & i & "(sc2_" &
nonanticipativity SPL constraint for
i & ",r,stg1b)
branch " & i & " stage 1"
i & ",r,stg1b)
branch " & i & " stage 1"
i & ",r,stg2)
branch " & i & " stage 2"
i & ",r,stg2)
branch " & i & " stage 2"
GAMS Input - 10
Appendix C
Next i
For i = 1 To 27
Print #1, "NA_Rel3_" & i & "(sc3_" &
nonanticipativity REL constraint for
Print #1, "NA_Spl3_" & i & "(sc3_" &
nonanticipativity SPL constraint for
Next i
For i = 1 To 81
Print #1, "NA_Rel4_" & i & "(sc4_" &
nonanticipativity REL constraint for
Print #1, "NA_Spl4_" & i & "(sc4_" &
nonanticipativity SPL constraint for
Next i
End If
i & ",r,stg3)
branch " & i & " stage 3"
i & ",r,stg3)
branch " & i & " stage 3"
i & ",r,stg4)
branch " & i & " stage 4"
i & ",r,stg4)
branch " & i & " stage 4"
Print #1, "objective;"
Print #1, ""
Print #1, "initialM(sc)..
S(sc,'M','time1') =e=Sinit('M')
+Inflows(sc,'M','time1')-Rel(sc,'M','time1')-Spill(sc,'M','time1')evap(sc,'M','time1');"
Print #1, "storageM(t,sc)$(ord(t) ne 1).. S(sc,'M',t)=e=S(sc,'M',t-1)
+Inflows(sc,'M',t)-Rel(sc,'M',t)-Spill(sc,'M',t)-evap(sc,'M',t);"
Print #1, ""
Print #1, "initialL(sc)..
S(sc,'L','time1') =e=Sinit('L')
+Inflows(sc,'L','time1')-Rel(sc,'L','time1')-Spill(sc,'L','time1')evap(sc,'L','time1')+spill(sc,'M','time1');"
Print #1, "storageL(t,sc)$(ord(t) ne 1).. S(sc,'L',t)=e=S(sc,'L',t-1)
+Inflows(sc,'L',t)-Rel(sc,'L',t)-Spill(sc,'L',t)-evap(sc,'L',t)
+spill(sc,'M',t);"
Print #1, ""
Print #1, "initialT(sc)..
S(sc,'T','time1') =e=Sinit('T')
+Inflows(sc,'T','time1')-Rel(sc,'T','time1')-Spill(sc,'T','time1')evap(sc,'T','time1');"
Print #1, "storageT(t,sc)$(ord(t) ne 1).. S(sc,'T',t)=e=S(sc,'T',t-1)
+Inflows(sc,'T',t)-Rel(sc,'T',t)-Spill(sc,'T',t)-evap(sc,'T',t);"
Print #1, ""
Print #1, "evapint(r,sc)..
evap(sc,r,'time1')=e=
(evapRate('time1')*0.001)*(areaf(r)*(S(sc,r,'time1')+Sinit(r))*0.5)
+((evapRate('time1')*0.001)*(areamin(r)));"
Print #1, "evapor(sc,r,t)$(ord(t) ne 1).. evap(sc,r,t)=e=(evapRate(t)*0.001)
*(areaf(r)*(S(sc,r,t)+S(sc,r,t-1))*0.5)+((evapRate(t)*0.001)*(areamin(r)));"
Print #1, ""
Print #1, "capacity(sc,r,t)..
S(sc,r,t)=l=Smx(r);"
Print #1, "capacityMIN(sc,r,t)..
S(sc,r,t)=g=Smn(r);"
Print #1, "capacityREL(sc,r,t)..
Rel(sc,r,t)=l=RelMax(r);"
Print #1, ""
Print #1, "nodePipe(t,sc)..
Rel(sc,'M',t)+Rel(sc,'L',t)
+Spill(sc,'L',t)=e=Qpipe(t,sc)+Qcomoe(t,sc);"
Print #1, "nodePipeDiv(t,sc)..
Qpipe(t,sc)=e=QpipeSO(t,sc)
+QpipeBa(t,sc);"
Print #1, "nodeComoe(t,sc)..
Qcomoe(t,sc)=e=QdivKa(t,sc)
+Qdbts_S(t,sc);"
Print #1, ""
Print #1, "hereandnow(sc)..
Sum(r,rel(sc,r,'time1'))=l=
sum(d,cropDemand('time1',d)/eff(d))+DSlimit('time1');"
Print #1, ""
Print #1, "nodeSO(t,sc)..
Rel(sc,'T',t)+QpipeSO(t,sc)=l=
NetDemand(sc,'S',t)/eff('S');"
Print #1, "nodeBa(t,sc)..
QpipeBa(t,sc)=l=NetDemand(sc,'B',t)
/eff('B');"
Print #1, "nodeKa(t,sc)..
QdivKa(t,sc)=l=NetDemand(sc,'K',t)
/eff('K');"
Print #1, ""
Print #1, "DSconstraint(t,sc)..
Qdbts_S(t,sc)=g=DSlimit(t);"
Print #1, ""
Print #1, "defS(t,sc)..
def(sc,'S',t)=e=
(NetDemand(sc,'S',t)-(Rel(sc,'T',t)+QpipeSO(t,sc))*eff('S'))
GAMS Input - 11
Appendix C
/cropDemand(t,'S');"
Print #1, "defB(t,sc)..
def(sc,'B',t)=e=
(NetDemand(sc,'B',t)-QpipeBa(t,sc)*eff('B'))/cropDemand(t,'B');"
Print #1, "defK(t,sc)..
def(sc,'K',t)=e=
(NetDemand(sc,'K',t)-QdivKa(t,sc)*eff('K'))/cropDemand(t,'K');"
Print #1, ""
Print #1, "separable(sc,d,t).. defsepA(sc,d,t)+defsepB(sc,d,t)
+defsepC(sc,d,t)=e=def(sc,d,t);"
Print #1, "slopechangeB(sc,d,t).. defsepA(sc,d,t)=l=kneeB(t,d);"
Print #1, "slopechangeC(sc,d,t).. defsepB(sc,d,t)=l=kneeC(t,d)-kneeB(t,d);"
Print #1, ""
Print #1, "penalstage1(sc,d,stg1).. cost(sc,d,stg1)=e=P(sc,'stage1')
*(slopeA(stg1,d)*defsepA(sc,d,stg1)+slopeB(stg1,d)*defsepB(sc,d,stg1)
+slopeC(stg1,d)*defsepC(sc,d,stg1));"
Print #1, "penalstage2(sc,d,stg2).. cost(sc,d,stg2)=e=P(sc,'stage2')
*(slopeA(stg2,d)*defsepA(sc,d,stg2)+slopeB(stg2,d)*defsepB(sc,d,stg2)
+slopeC(stg2,d)*defsepC(sc,d,stg2));"
Print #1, "penalstage3(sc,d,stg3).. cost(sc,d,stg3)=e=P(sc,'stage3')
*(slopeA(stg3,d)*defsepA(sc,d,stg3)+slopeB(stg3,d)*defsepB(sc,d,stg3)
+slopeC(stg3,d)*defsepC(sc,d,stg3));"
Print #1, "penalstage4(sc,d,stg4).. cost(sc,d,stg4)=e=P(sc,'stage4')
*(slopeA(stg4,d)*defsepA(sc,d,stg4)+slopeB(stg4,d)*defsepB(sc,d,stg4)
+slopeC(stg4,d)*defsepC(sc,d,stg4));"
Print #1, "penalstage5(sc,d,stg5).. cost(sc,d,stg5)=e=P(sc,'stage5')
*(slopeA(stg5,d)*defsepA(sc,d,stg5)+slopeB(stg5,d)*defsepB(sc,d,stg5)
+slopeC(stg5,d)*defsepC(sc,d,stg5));"
Print #1, ""
Print #1, "penalStorage(sc,r)..
costStorage(sc,r)=e=P(sc,'stage5')
*(SlopeUnder(r)*SUnder(r)+SlopeOver(r)*SOver(r));"
Print #1, "targetStorage(sc,r).. S(sc,r,'time36')=e=STarget(r)-SUnder(r)
+SOver(r);"
Print #1, ""
'NON ANTICIPATION CONSTRAINTS
Print #1, "NA_Rel0(sc,r)..
standIn0(r);"
Print #1, "NA_Spl0(sc,r)..
standIn0Spill(r);"
Rel(sc,r,'time1')=e=
Spill(sc,r,'time1')=e=
If NonAnti = True Then
Print #1, ""
For i = 1 To 3
Print #1, "NA_Rel1_" & i & "(sc1_" & i & ",r,stg1b)..
Rel(sc1_" &
i & ",r,stg1b)=e=standIn1('bnch1_" & i & "',r,stg1b);"
Print #1, "NA_Spl1_" & i & "(sc1_" & i & ",r,stg1b)..
Spill(sc1_"
& i & ",r,stg1b)=e=standIn1Spill('bnch1_" & i & "',r,stg1b);"
Next i
Print #1, ""
For i = 1 To 9
Print #1, "NA_Rel2_" & i & "(sc2_" & i & ",r,stg2)..
Rel(sc2_" &
i & ",r,stg2)=e=standIn2('bnch2_" & i & "',r,stg2);"
Print #1, "NA_Spl2_" & i & "(sc2_" & i & ",r,stg2)..
Spill(sc2_"
& i & ",r,stg2)=e=standIn2Spill('bnch2_" & i & "',r,stg2);"
Next i
Print #1, ""
For i = 1 To 27
Print #1, "NA_Rel3_" & i & "(sc3_" & i & ",r,stg3)..
Rel(sc3_" &
i & ",r,stg3)=e=standIn3('bnch3_" & i & "',r,stg3);"
Print #1, "NA_Spl3_" & i & "(sc3_" & i & ",r,stg3)..
Spill(sc3_"
& i & ",r,stg3)=e=standIn3Spill('bnch3_" & i & "',r,stg3);"
Next i
Print #1, ""
For i = 1 To 81
Print #1, "NA_Rel4_" & i & "(sc4_" & i & ",r,stg4)..
Rel(sc4_" &
i & ",r,stg4)=e=standIn4('bnch4_" & i & "',r,stg4);"
GAMS Input - 12
Appendix C
Print #1, "NA_Spl4_" & i & "(sc4_" & i & ",r,stg4)..
Spill(sc4_"
& i & ",r,stg4)=e=standIn4Spill('bnch4_" & i & "',r,stg4);"
Next i
End If
Print #1, ""
Print #1, "objective..
totalCost=e=sum((sc,d,t),cost(sc,d,t))
+sum((sc,r,t),spill(sc,r,t)*Wspill(r))+sum((sc,r),costStorage(sc,r));"
Print #1, ""
Print #1, "model reservoir /all/;"
Print #1, "option iterlim = 10000000;"
Print #1, "solve reservoir using lp minimizing totalCost;"
Print #1, ""
'OUTPUT FILE CODE
Print #1, "file output /" & pathName & "\SLP_comoe_Output.txt/;"
Print #1, "output.pc=5;"
Print #1, "output.nd=3;"
Print #1, "put output;"
'TIME
Print
Print
Print
STAMP
#1, "put "" "";"
#1, "loop(t, put t.tl,);"
#1, "put /;"
'SOSUCO DEFICIT CODE
Print #1, "put "" SOSUCO Deficit "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Def.l(sc,'S','time" & i & "')";
Next i
Print #1, "/);"
'Banfora DEFICIT CODE
Print #1, "put "" Banfora Deficit "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Def.l(sc,'B','time" & i & "')";
Next i
Print #1, "/);"
'Karfiguela DEFICIT CODE
Print #1, "put "" Karfiguela Deficit "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Def.l(sc,'K','time" & i & "')";
Next i
Print #1, "/);"
'Releases
Print #1,
Print #1,
For i = 1
Print
Next i
Print #1,
MOUSSADOUGOU
"put "" MOUSSADOUGOU RELEASES "" /;"
"loop(sc, put sc.tl";
To 36
#1, ", Rel.l(sc,'M','time" & i & "')";
'Releases
Print #1,
Print #1,
For i = 1
Print
Next i
Print #1,
LOBI
"put "" LOBI RELEASES "" /;"
"loop(sc, put sc.tl";
To 36
#1, ", Rel.l(sc,'L','time" & i & "')";
"/);"
"/);"
'Releases TOUSSIANA
GAMS Input - 13
Appendix C
Print #1,
Print #1,
For i = 1
Print
Next i
Print #1,
"put "" TOUSSIANA RELEASES "" /;"
"loop(sc, put sc.tl";
To 36
#1, ", Rel.l(sc,'T','time" & i & "')";
"/);"
'Storage MOUSSADOUGOU
Print #1, "put "" MOUSSADOUGOU Storage "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", S.l(sc,'M','time" & i & "')";
Next i
Print #1, "/);"
'Storage Lobi
Print #1, "put "" Lobi Storage "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", S.l(sc,'L','time" & i & "')";
Next i
Print #1, "/);"
'Storage Toussiana
Print #1, "put "" Toussiana Storage "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", S.l(sc,'T','time" & i & "')";
Next i
Print #1, "/);"
'----------------FLOWS---------------------------'Flow - diversion from Comoe to Pipeline
Print #1, "put "" diversion from Comoe to Pipeline "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Qpipe.l('time" & i & "', sc)";
Next i
Print #1, "/);"
'Flow - diversion from Pipeline to SOSUCO
Print #1, "put "" diversion from Pipeline to SOSUCO "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", QpipeSO.l('time" & i & "', sc)";
Next i
Print #1, "/);"
'Flow - diversion from Pipeline to Banfora ONEA
Print #1, "put "" diversion from Pipeline to Banfora ONEA "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", QpipeBa.l('time" & i & "', sc)";
Next i
Print #1, "/);"
'Flow - undivered flow in Comoe upstream of Karfiguela
Print #1, "put "" undivered flow in Comoe upstream of Karfiguela "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Qcomoe.l('time" & i & "', sc)";
Next i
Print #1, "/);"
'Flow - Debits Sanitaires
Print #1, "put "" diversion from Comoe to Karfiguela "" /;"
Print #1, "loop(sc, put sc.tl";
GAMS Input - 14
Appendix C
For i = 1 To 36
Print #1, ", Qdbts_S.l('time" & i & "', sc)";
Next i
Print #1, "/);"
'Spills MOUSSADOUGOU
Print #1, "put "" MOUSSADOUGOU SPILLS "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Spill.l(sc,'M','time" & i & "')";
Next i
Print #1, "/);"
'Spills LOBI
Print #1, "put "" LOBI SPILLS "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Spill.l(sc,'L','time" & i & "')";
Next i
Print #1, "/);"
'Spills TOUSSIANA
Print #1, "put "" TOUSSIANA SPILLS "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", Spill.l(sc,'T','time" & i & "')";
Next i
Print #1, "/);"
'Total Flow to Karfiguela
Print #1, "put "" TOTAL FLOW TO KARFIGUELA "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", QdivKa.l('time" & i & "',sc)";
Next i
Print #1, "/);"
'Evap MOUSSADOUGOU
Print #1, "put "" MOUSSADOUGOU EVAP "" /;"
Print #1, "loop(sc, put sc.tl";
For i = 1 To 36
Print #1, ", evap.l(sc,'M','time" & i & "')";
Next i
Print #1, "/);"
Close #1
End Sub
Sub readGAMS(pathName)
ChDir pathName
Workbooks.OpenText Filename:=pathName & "\SLP_comoe_Output.txt", Origin:=
437, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=True,
Space:=False, Other:=False, TrailingMinusNumbers:=True
For i = 1 To 243
For j = 1 To 36
ThisWorkbook.Worksheets("Results_Deficits").Range("Results_DefSO").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2 + i, 1 + j).Value
GAMS Input - 15
Appendix C
ThisWorkbook.Worksheets("Results_Deficits").Range("Results_DefBa").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(246 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Deficits").Range("Results_DefKa").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(490 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Releases").Range("Results_RelM").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(734 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Releases").Range("Results_RelL").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(978 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Releases").Range("Results_RelT").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(1222 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Storage").Range("Results_StoM").Cells
(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(1466 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Storage").Range("Results_StoL").Cells
(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(1710 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Storage").Range("Results_StoT").Cells
(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(1954 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("QPipe").Cells(i,
j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2198 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("Results_QpipeSO").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2442 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("Results_QpipeBa").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2686 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("Results_QComoe").Cells
(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2930 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("Results_Qdbts_S").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(3174 + i, 1 + j).Value
GAMS Input - 16
Appendix C
ThisWorkbook.Worksheets("Results_Releases").Range("Results_SpilM").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(3418 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Releases").Range("Results_SpilL").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(3662 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Releases").Range("Results_SpilT").Cel
ls(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(3906 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("results_QSO").Cells(i,
j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(1222 + i, 1 + j).Value +
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(2442 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Flows").Range("results_QKa").Cells(i,
j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(4150 + i, 1 + j).Value
ThisWorkbook.Worksheets("Results_Storage").Range("results_evapM").Cell
s(i, j).Value =
Workbooks("SLP_comoe_Output.txt").Worksheets("SLP_comoe_Output").Cells
(4394 + i, 1 + j).Value
Next j
Next i
Workbooks("SLP_comoe_Output.txt").Close
End Sub
GAMS Input - 17
Appendix C
Private Sub bnRRmodel_Click()
Dim a, b, c, d, Go, So, pTree, qTree, PET, Area, QInput As Range
Dim i, j As Integer
Dim St(0 To 36), Gt(0 To 36), Yt(1 To 36), Wt(1 To 36), Ret(1 To 36), Rut(1 To
36), Dt(1 To 36), Qt(1 To 36) As Single
Dim XX(1 To 36), YY(1 To 36) As Single
Set
Set
Set
Set
Set
Set
Set
Set
Set
Set
Set
a = Worksheets("streamflow tree").Range("aa")
b = Worksheets("streamflow tree").Range("bb")
c = Worksheets("streamflow tree").Range("cc")
d = Worksheets("streamflow tree").Range("dd")
Go = Worksheets("streamflow tree").Range("Go")
So = Worksheets("streamflow tree").Range("So")
pTree = Worksheets("streamflow tree").Range("tree")
qTree = Worksheets("streamflow tree").Range("treeOutput")
PET = Worksheets("streamflow tree").Range("PET")
Area = Worksheets("streamflow tree").Range("area")
QInput = Worksheets("scenario trees").Range("treeQ")
For j = 1 To 243 'for each scenario trace
St(0) = So.Value 'start initial values of St and Gt
Gt(0) = Go.Value
For i = 1 To 36 'for each dekadal within a scenario trace
Wt(i) = pTree(i, j).Value / 25.4 + St(i - 1) 'total available water
XX(i) = (Wt(i) + b) / (2 * a)
'algebraic dummy
YY(i) = (Wt(i) * b) / a
'algebraic dummy
Yt(i) = XX(i) - (XX(i) ^ 2 - YY(i)) ^ (0.5) 'Evap opportunity
St(i) = Yt(i) * Exp(-PET(i) / (b * 25.4))
'soil moisture
Ret(i) = c * (Wt(i) - Yt(i))
'Recharge
Rut(i) = (1 - c) * (Wt(i) - Yt(i))
'Runoff
Gt(i) = (Ret(i) + Gt(i - 1)) / (1 + d)
'GW storage
Dt(i) = d * Gt(i)
'discharge from GW
Qt(i) = Rut(i) + Dt(i)
'streamflow
qTree(i, j).Value = Qt(i) * 25.4 * 1000 * Area / 1000000
'write to Q
table in Mm3/dekadal since area is in km2 and Qt is in inches/dekdal
QInput(j, i).Value = qTree(i, j).Value
'write Q to the "Scenario
Trees" tab
Next i
Next j
End Sub
Rainfall Runoff - 1
Appendix C
Private Sub bnConstruct_Click()
Dim stageLength(1 To 6), stage, Terc, place As Integer
Dim rgYearSelect, rgTerciles As Range
Dim colorg(1 To 6) As Integer
colorg(1)
colorg(2)
colorg(3)
colorg(4)
colorg(5)
colorg(6)
=
=
=
=
=
=
42
37
34
36
40
39
For i = 1 To 6
stageLength(i) = Worksheets("Stages").Range("stagelengths").Cells(i,
1).Value
Next i
Set rgYearSelect = Worksheets("Scenario Tree").Range("yearSelect")
Set rgTerciles = Worksheets("Scenario Tree").Range("Terciles")
place = 0
For stage = 1 To 6
For Terc = 1 To 3
For i = 1 To 100
If rgYearSelect(Terc, stage).Value =
Worksheets("matrix_10day").Cells(4, 2 + i).Value Then
For j = 1 To stageLength(stage)
rgTerciles(j + place, Terc).Value =
Worksheets("matrix_10day").Cells(4 + j + place, 2 +
i).Value
rgTerciles(j + place, Terc).Interior.ColorIndex =
colorg(stage)
Next j
Exit For
End If
Next i
Next Terc
place = place + stageLength(stage)
Next stage
End Sub
Private Sub bnTree_Click()
Dim rgStageLength, rgTerc, rgTree, rgPmatrix, rgDekadals As Range
Dim rgTrans0_1, rgTrans1_2, rgTrans2_3, rgTrans3_4, rgTrans4_5 As Range
Dim rgTotals, rgTotals_T, rgJAS, rgJAS_T As Range
Dim vaTerc(1 To 36, 1 To 3), vaTree As Variant
Dim count, colorg(1 To 3), stageStart, dekadalStart, SourceLength(1 To 5),
stageLength(1 To 5), first, last As Integer
Dim branches, Traces, stg As Integer
Dim dekadalVal, stageNames
Dim rgSTarget, rgSTable As Range
Set rgTerc = Worksheets("Scenario Tree").Range("Terciles")
Set rgDekadals = Worksheets("scenario tree").Range("dates")
Set rgStageLength = Worksheets("Stages").Range("stagelengths")
'define the number values associated with each date value in the combo box
dekadalVal = Array(183, 193, 203, 213, 223, 233, 243, 253, 263, 273, 283, 293,
303, 313, 323, 333, 343, 353, 363, 373, 384, 394, 404, 418, 428, 438, 448,
Tree Construction - 1
Appendix C
458, 468, 478, 488, 498, 508, 518, 528, 538)
'from the selected start date, the dates are reshuffled as are the tercile
values for each dekadal
count = 1
For i = cbStartDate.ListIndex + 1 To 36
rgDekadals(count, 1).Value = dekadalVal(i - 1)
Worksheets("scenario trees").Range("dates_T").Cells(1, count).Value =
dekadalVal(i - 1)
Worksheets("streamflow tree").Range("PET").Cells(count, 1).Value =
Worksheets("streamflow tree").Range("PET_july").Cells(i, 1)
Worksheets("input").Range("evapRate").Cells(1, count).Value =
Worksheets("streamflow tree").Range("PET_july").Cells(i, 1)
For j = 1 To 3
vaTerc(count, j) = rgTerc(i, j).Value
Next j
count = count + 1
Next i
For i = 1 To cbStartDate.ListIndex
rgDekadals(count, 1).Value = dekadalVal(i - 1) + 365
Worksheets("scenario trees").Range("dates_T").Cells(1, count).Value =
dekadalVal(i - 1) + 365
Worksheets("streamflow tree").Range("PET").Cells(count, 1).Value =
Worksheets("streamflow tree").Range("PET_july").Cells(i, 1)
Worksheets("input").Range("evapRate").Cells(1, count).Value =
Worksheets("streamflow tree").Range("PET_july").Cells(i, 1)
For j = 1 To 3
vaTerc(count, j) = rgTerc(i, j).Value
Next j
count = count + 1
Next i
'assign end horizon target storage from table of target storage
Set rgSTarget = Worksheets("Input").Range("Starget")
Set rgSTable = Worksheets("Scenario Tree").Range("Target_table")
For i = 1 To 3 'for each reservoir
rgSTarget.Cells(1, i).Value = rgSTable.Cells(cbStartDate.ListIndex + 1,
i).Value
Next i
Worksheets("Streamflow Tree").Range("So").Value = Worksheets("Streamflow
Tree").Range("St").Cells(cbStartDate.ListIndex + 1, 1).Value
Worksheets("Streamflow Tree").Range("Go").Value = Worksheets("Streamflow
Tree").Range("Gt").Cells(cbStartDate.ListIndex + 1, 1).Value
Set rgTree = Worksheets("Scenario Tree").Range("Tree")
SourceLength(1)
SourceLength(2)
SourceLength(3)
SourceLength(4)
SourceLength(5)
=
=
=
=
=
rgStageLength(1,
rgStageLength(2,
rgStageLength(3,
rgStageLength(5,
rgStageLength(6,
1)
1)
1) + rgStageLength(4, 1)
1)
1)
'Determine which stage starts the tree
count = 0
For i = 1 To 5
count = count + SourceLength(i)
'Cells(3, i + 19).Value = count
If cbStartDate.ListIndex < count Then
dekadalStart = count - cbStartDate.ListIndex
stageStart = i
Exit For
End If
Next i
Tree Construction - 2
Appendix C
Range("ag3").Value = stageStart
Range("ag4").Value = cbStartDate.ListIndex
Range("ag5").Value = dekadalStart
'For stages 1 through 5 reshuffle the stage lengths
stageLength(1) = dekadalStart
For i = 2 To (6 - stageStart)
stageLength(i) = SourceLength(stageStart + (i - 1))
Next i
count = 0
For i = (7 - stageStart) To 4
count = count + 1
stageLength(i) = SourceLength(count)
Next i
If stageStart = 1 Then
stageLength(5) = SourceLength(5) + cbStartDate.ListIndex
Else
stageLength(5) = SourceLength(stageStart - 1) + SourceLength(stageStart) dekadalStart
End If
'rewrite the P_matrix on the "markov" tab starting with the correct starting
stage
Call writeMarkov(stageStart)
'this matrix is linked to to the P_matrix on the "probability" tab
stageNames = Array("#####", "Stage1", "Stage2", "Stage3", "Stage4", "Stage5")
'display new stage lengths
count = 1
Worksheets("scenario trees").Range("stageName").Clear
Worksheets("Input").Range("stageNames2").Clear
Worksheets("scenario tree").Range("stageNames3").Clear
For i = 1 To 5
Worksheets("scenario tree").Cells(6, i + 22).Value = stageLength(i)
Worksheets("scenario trees").Range("stageName").Cells(1, count).Value =
stageNames(i)
Worksheets("Input").Range("stageNames2").Cells(1, count).Value =
stageNames(i)
Worksheets("scenario tree").Range("stageNames3").Cells(count, 1).Value =
stageNames(i)
count = count + stageLength(i)
Next i
Set
Set
Set
Set
rgTotals = Worksheets("scenario tree").Range("annualTotals_tree")
rgJAS = Worksheets("Scenario Tree").Range("JASTotals_tree")
rgTotals_T = Worksheets("scenario tree").Range("set_total_tree")
rgJAS_T = Worksheets("scenario tree").Range("set_JAS_tree")
colorg(1) = 37
colorg(2) = 35
colorg(3) = 36
last = 0
Start = 0
For stg = 1 To 5
Start = 1 + last
last = stageLength(stg) + Start - 1
branches = 3 ^ (stg - 1) - 1
Traces = 3 ^ (5 - stg)
Tree Construction - 3
Appendix C
For m = 0
For k = 1
For j = 0
For i
To branches
To Traces
To 2
= Start To last
'Populate walues for the horizontal Precip tree
rgTree(i, k + (j + m * 3) * Traces).Value = vaTerc(i, 1 + j)
'Populate values for the Verticle SLP Input Tree
Worksheets("scenario trees").Range("TreePrecip").Cells(k + (j + m
* 3) * Traces, i).Value = vaTerc(i, 1 + j)
'Color Horizontal Trees
rgTree(i, k + (j + m * 3) * Traces).Interior.ColorIndex = colorg(j
+ 1)
Worksheets("streamflow tree").Range("tree").Cells(i, k + (j + m *
3) * Traces).Interior.ColorIndex = colorg(j + 1)
Worksheets("streamflow tree").Range("treeOutput").Cells(i, k + (j
+ m * 3) * Traces).Interior.ColorIndex = colorg(j + 1)
Next i
Next j
Next k
Next m
Next stg
'populate the column vectors
For i = 1 To 243
rgTotals_T(i, 1).Value = rgTotals(1, i).Value
rgJAS_T(i, 1).Value = rgJAS(1, i).Value
Next i
'sort the column vectors
rgTotals_T.Select
Selection.Sort Key1:=rgTotals_T(1, 1), Order1:=xlAscending, Header:=
xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
rgJAS_T.Select
Selection.Sort Key1:=rgJAS_T(1, 1), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Range("D12").Select
End Sub
Private Sub Worksheet_Activate()
Dim stDekadals
stDekadals = Array("1-Jul", "11-Jul", "21-Jul", "31-Jul", "10-Aug", "20-Aug",
"30-Aug", "9-Sep", "19-Sep", "29-Sep", "9-Oct", "19-Oct", "29-Oct", "8-Nov",
"18-Nov", "28-Nov", "8-Dec", "18-Dec", "28-Dec", "7-Jan", "18-Jan", "28-Jan",
"7-Feb", "21-Feb", "3-Mar", "13-Mar", "23-Mar", "2-Apr", "12-Apr", "22-Apr",
"2-May", "12-May", "22-May", "1-Jun", "11-Jun", "21-Jun")
Worksheets("Scenario Tree").cbStartDate.Clear
For i = LBound(stDekadals) To UBound(stDekadals)
Worksheets("Scenario Tree").cbStartDate.AddItem stDekadals(i)
Tree Construction - 4
Appendix C
Next i
End Sub
Sub writeMarkov(stageStart)
Dim
Dim
Dim
Dim
rgPmatrix As Range
rgTrans0_1, rgTrans1_2, rgTrans2_3, rgTrans3_4, rgTrans4_5 As Range
i, j, k, m, Traces, Traces2, Traces3, Parent As Integer
Trans
Set
Set
Set
Set
Set
Set
Set
rgPmatrix = Worksheets("markov").Range("P_matrixT")
rgTrans0_1 = Worksheets("Markov").Range("tercile0_1")
rgTrans1_2 = Worksheets("Markov").Range("tercile1_2")
rgTrans2_3 = Worksheets("Markov").Range("tercile2_3")
rgTrans3_4 = Worksheets("Markov").Range("tercile3_4")
rgTrans4_5 = Worksheets("Markov").Range("tercile4_5")
rgTrans5_1 = Worksheets("markov").Range("tercile5_1")
'build composite matrix
If stageStart = 1 Then Trans = Array(rgTrans0_1,
rgTrans3_4, rgTrans4_5, rgTrans5_1)
If stageStart = 2 Then Trans = Array(rgTrans0_1,
rgTrans4_5, rgTrans5_1, rgTrans1_2)
If stageStart = 3 Then Trans = Array(rgTrans0_1,
rgTrans5_1, rgTrans1_2, rgTrans2_3)
If stageStart = 4 Then Trans = Array(rgTrans0_1,
rgTrans1_2, rgTrans2_3, rgTrans3_4)
If stageStart = 5 Then Trans = Array(rgTrans0_1,
rgTrans2_3, rgTrans3_4, rgTrans4_5)
rgTrans1_2, rgTrans2_3,
rgTrans2_3, rgTrans3_4,
rgTrans3_4, rgTrans4_5,
rgTrans4_5, rgTrans5_1,
rgTrans5_1, rgTrans1_2,
'STAGE 0 to 1
For j = 0 To 2 'TO tercile
For k = 1 To 81 'shared traces in each branch
rgPmatrix(j * 81 + k, 1).Value = Trans(0).Cells(j + 1, 1).Value
Next k
Next j
'STAGES AFTER 1
For stg = 1 To 4
Traces = 3 ^ (4 - stg)
Traces2 = 3 ^ (5 - stg)
Traces3 = 3 ^ (6 - stg)
Parent = 3 ^ (stg - 1) - 1
For
For
For
For
j = 0 To 2 'TO tercile
i = 0 To 2 'FROM tercile
m = 0 To Parent 'Parent branches
k = 1 To Traces 'shared traces in each branch
rgPmatrix(m * Traces3 + i * Traces2 + j * Traces + k, stg + 1).Value =
Trans(stg).Cells(j + 1, i + 1).Value
Next k
Next m
Next i
Next j
Next stg
End Sub
Tree Construction - 5
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement