SWMM and Monte Carlo |
We are considering running SWMM in Monte Carlo mode to examine the impact of input parameter uncertainty on model output. We would implement through use of a batch processor and run the SWMM5 executable file in command line mode. I'm wondering if anyone has done this type of analysis before and if so, would you share any lessons learned and potential pitfalls?
One way of doing this would be to use the DOS SWMM5.EXE engine to run all of your Monte Carlo files in a batch file as in the following example:
rem 1st model run *C:\montecarlo\swmm5.exe C:\montecarlo\SE-WWF_SW5fix60.inp C:\montecarlo\SE-WWF_SW5fix60.out * rem 2nd model run *C:\montecarlo\swmm5.exe C:\montecarlo\SE-WWF_SW5fix61.inp C:\montecarlo\SE-WWF_SW5fix61.out* rem 3rd model run *C:\montecarloswmm5.exe C:\montecarlo\SE-WWF_SW5fix62.inp C:\montecarlo\SE-WWF_SW5fix62.out * rem pause Pause to read the Continuity Error
If you use the [REPORT] function in each of the input files you can make a detailed output file. You would have to write a post processing program to extract the needed output data for your Monte Carlo analysis from each of the created output files. Each of the program SWMM 5.EXE runs are independent so you should be able to make as many runs as you need to complete the analysis.
I'm not sure if your question relates to the mechanics of running SWMM or the science of parameter uncertainty. If it relates to uncertainty, its an active area of research and application. For example, At the National Weather Service Office of Hydrology, we're using this sort of approach, to produce probabilistic river (height, flow, volume, soil moisture) forecasts over time scales from several hours to seasonal. There is also activity at the international level under the MOPEX project. The term we use for this is ensemble modeling. Its different from the meaning of tat term in weather forecasting. The meteorological community uses the term generally to mean multiple model ensembles. The hydrologic community generally uses the term to mean single model with probabilistic input. Although both communities do define it the same way when they become more specific.
In doing this type of work its quite important to ensure that the variability in the inputs properly represent the true variability likely to be encountered in terms of shape, scale and bias of the distribution. Without that, its hard to assign much meaning the statistics of the outputs if you're trying to relate the output to natural variability.
There is also a lot of work going on using ensembles for data assimilation which tries to figure out how to adjust model states to represent ongoing reality and for forecast verification.
You could find discussion of this type of work by using search terms such as ensemble, data assimilation, verification, Schaake Shuffle, John Schaake, DongJun Seo, Julie Demargne, etc. The work is often published through AGU.
If you use the REPORT section of SWMM to extract selected time series, you can use existing functionality in NetSTORM to load the SWMM report file results into an Access database. See the help text at:
http://www.dynsystem.com/netstorm/help/ReadSWMM5Results.html
The program does not currently have functionality to identify different runs (e.g. add a field with the source filename), but I could easily add that if it would help anyone.