Showing posts with label Choice of hydrological model. Show all posts
Showing posts with label Choice of hydrological model. Show all posts

Wednesday, March 6, 2024

On Hydrological Models and their choice (and a use of the AboutHydrology mailing list)

Initially, I was captivated by the visuals that I could incorporate into my presentations. To my pleasant surprise, I discovered that the AboutHydrology mailing list served as a valuable data source. Remarkably, this platform has been active for approximately a decade (I need to verify the exact date of its inception) and has amassed a wealth of information.

Reproduced from Melsen, 2022

Subsequently, I came across two intriguing papers authored by Melsen, delving into the "sociology of selecting a hydrological model." These papers proved to be quite engaging. Additionally, there are other noteworthy publications exploring similar themes. Notably, among the more recent works, Hamilton et al., 2022, and Horton et al., 2023, deserve special mention.  Please find their citation below. In the paper you can easily recover previous relevant literature. 

References

Hamilton, Serena H., Carmel A. Pollino, Danial S. Stratford, Baihua Fu, and Anthony J. Jakeman. 2022. “Fit-for-Purpose Environmental Modeling: Targeting the Intersection of Usability, Reliability and Feasibility.” Environmental Modelling & Software 148 (February): 105278. https://doi.org/10.1016/j.envsoft.2021.105278.

Horton, Pascal, Bettina Schaefli, and Martina Kauzlaric. 2022. “Why Do We Have so Many Different Hydrological Models? A Review Based on the Case of Switzerland.” WIREs. Water 9 (1). https://doi.org/10.1002/wat2.1574.

Melsen, Lieke A. 2023. “The Modeling Toolkit: How Recruitment Strategies for Modeling Positions Influence Model Progress.” Frontiers in Water 5 (May). https://doi.org/10.3389/frwa.2023.1149590.


Friday, November 25, 2016

Python resources for Hydrologists

Python is a modern object oriented language. Occasionally I wrote about it in my posts, also for remarking that I went in a different direction. However, I cannot deny the evidence that more and more people are choosing it, and there are good reasons, as their language of choice for doing research and hydrological applications. In fact since 2017, I am using it in place of R for scripting and data managing. Below you will find a list of resources. Please do not hesitate to bring my attention to yours or others' contributions which I have not yet in my group.

Motivations for Python use, over other choices, can be found in this blog post or in this paper.

To understand how to start you can follow Python programming for hydrology students that starts with indicating how to install it.

For who wants to start with Python (for hydrologists), I suggest to give a look to my blog post Python general resources. For others, please give a look below.

Python is especially use as a glue for existing program, either written in C or FORTRAN. We have the cases of
  • CFM is a programming library to create hydrological models. Although written in C++, it has a Python interface 
  • ESMF regridding has been interfaced with Python ESMPy
  • GRASS GIS has been interfaced with Python
  • Python is also interfaced to gvSIG, as you can see here. 
  • HPGL a High Performance Geostatistics Library. Written in C++ is glued together by Python 
  • MODFLOW the groundwater model is interfaced by FloPy. Documentation and other information is here. 
  • PcRaster - Is a collection of software targeted at the development and deployment of spatio-temporal environmental models. It has a python interface which is constantly being enhanced. 
  • OpenHydrology is a library of open source hydrological software written in Python to operate as packages under an umbrella interface 
  • PyHSPF Python extensions to the Hydrological Simulation Program in Fortran (HSPF) 
  • PyQGIS: A Python interface to QGIS 
  • RhessysWorkflow  RHESSysWorkflows provides Python scripts for building RHESSys models. Other Pythonic material on RHESSys can be found here.
  • UWHydro tools for connecting University of Washington hydrological models, and, in particolar, the VIC driver PythonDriver

In the reign of hydrologic applications entirely written in Python, we remind:

  • ANUGA 2 - package for modelling dam breaks, riverine flooding, storm-surge or tsunamis. In Python and C. 
  • EcoHydrolib provides a series of Python scripts for performing ecohydrology data preparation workflows. 
  • evaplib: Python library containing functions for calculation of evaporation rates. Functions include Penman open water evaporation, Makkink reference evaporation, Priestley Taylor evaporation Penman Monteith (1965) evaporation and FAO's Penman Monteith ET0 reference evaporation for short, well-watered grass. In addition there is a function to calculate the sensible heat flux from temperature fluctuation measurements. View documentation of evaplib module functions. Module documentation is also available as a PDF document. Author: M.J. Waterloo. 
  • A GLUE, Generalised Likelihood Uncertainty Estimation (GLUE) developed by Framework Joost Delsman, at Deltares, 2011 
  • Groundwater flow modelling manual for Python written by Vincent post 
  • Hydro-conductor: A set of Python scripts and modules written to couple a hydrologic model with a regional glacier model
  • ODMToolsPython and ODMTools ODMTools is a python application for managing observational data using the Observations Data Model. ODMTools allows you to query, visualize, and edit data stored in an Observations Data Model (ODM) database.ODMTools was originally developed as part of the CUAHSI Hydrologic Information System. YOu can find a presentation about here. 
  • PyETo is a package for calculating reference/potential evapotranspiration (ETo). 
  • Python script for rectangular Piper plot (version December 2014): Python script for plotting chemical data in a rectangular python plot (see image) according to Ray and Mukherjee (2008) Groundwater 46(6): 893-896. Also download the example data file watersamples.txt. Author: B.M. van Breukelen. 
  • Python script for multiple Stiff plots (version June 2011): Python script for preparing multiple Stiff diagrammes (see image). Also download the example data file watersamples.txt. Author: B.M. van Breukelen. 
  • Haran Kiruba tools for hydrology Not really clear what he does. 
  • USEPA site contains various python (and other languages) tools, including an interface to Epanet and SWMM (a connection to swmmtoolbox is also avilable here). 
  • Also USGS has its python tools
  • sMAP 2.0 is a tutorial will cover how to retrieve data from a sMAP archiver using Python. 
  • ulmo clean, simple and fast access to public hydrology and climatology data 


Specific hydrological Hydrological Models are enumerated below.

  • EXP-HYDRO Model is a catchment scale hydrological model that operates at a daily time-step. 
  • Landlab Landlab is a python-based modeling environment that allows scientists and students to build numerical landscape models. Designed for disciplines that quantify earth surface dynamics such as geomorphology, hydrology, glaciology, and stratigraphy, it can also be used in related fields. 
  • LHMP - lumped hydrological models playground - tiny docker container with complete environment for predictions.
  • PyCatch is a component based hydrological model of catchments built within the PCRaster Python framework. The code is here. A related paper, here. 
  • PyTOPKAPI is a BSD licensed Python library implementing the TOPKAPI Hydrological model (Liu and Todini, 2002). The model is a physically-based and fully distributed hydrological model, which has already been successfully applied in several countries around the world 
  • SPHY. See for details on model and publications (HESS, Nature, etc) here. Just recently a new paper on climate change and mountain hydrology in PloS came out, using SPHY model, more info here.
  • Topoflow a python hydrologic model by Scott Peckham 
  • WOFpy is an implementation of CUAHSI's Water One Flow service stack in python 
  • wflow is a distributed hydrological model platform that currently includes two models: the wflow_sbm model (derived from the topog_sbm soil concept) and the wflow_hbv model which is a distributed version of the HBV model. This is actully part of a larger Deltares project called OpenStream

GIS capabilities are also present:


Also tools to deal with Meteorology:

  • meteolib: Python library containing meteorological functions for calculation of atmospheric vapour pressures, air density, latent heat of vapourisation, heat capacity at constant pressure, psychrometric constant, day length, extraterrestrial radiation input, potential temperature and wind vector. The documentation for this module is presented at here (meteolib module functions web site). Functions to convert event-based data records to equidistant time-spaced records (event2time) and to convert date values to day-of-year values (date2doy) are now in a separate meteo_util module. Documentation is presented here (meteo_util module functions web site). Module documentation is also available as a PDF document. Author: M.J. Waterloo. 
  • MetPy is An Open Source Python Toolkit for Meteorology 
  • Melodist (MEteoroLOgical observation time series DISaggregation Tool) is an open-source software package written in Python for temporally downscaling (disaggregating) daily meteorological time series to hourly data. It is documented in a GMD paper by Forster et al., 2016. 
  • Various resources for meteorology can be found in the pyaos blog
Statistical and data analysis tools are abundant
  • CUAHSI time series viewer
  • The basic cheatshit
  • NetCDF file operations are available here. However, there is also txt2netcdf which containsvarious Python functions for importing text into NetCDF data files (creating files, adding variables, listing structure, etc.), developed by Ko van Huissteden. 
  • Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. (A short tutorial is also here) 
  • Extreme distribution (from scipy.stats) is here
  • An example of use of Pandas for analysing time series 
Visualisation is well served
  • ggplot is a plotting system for Python based on R's ggplot2 and the Grammar of Graphics. It is built for making profressional looking, plots quickly with minimal code. 
  • An impressive tour of Python possibilities in this field is given by “Regress to Impress” 
  • VisTrails an open-source scientific workflow and provenance management system that supports data exploration and visualization. Its website is here. 
  • uvcmetrics metrics aka diagnostics for comparing models with observations or each other. This is part of the Uv-CDAT website which contains also other visualisation tools. 
Tools for dealing with uncertainty and sensitivity analysis
Yet another repository of Python models and resources
A final comment

I am actually impressed by the quality of the contributions in Python. I think there is not anymore reason to use commercial program like Matlab in Universities (see this review here). What Matlab does, also Python does. Compared to R, it has a much more clear sintax and is, certainly, a better language. So I would suggest to use it with students (or R). I like R but I never built program on it, because its object orientation is really poor. Python is better and, as it is known its syntax is clean. Python is great to link FORTRAN and C/C++ native libraries, so actually many uses it to assembled libraries they wrote in those more performant languages.
As you know, however, my group uses Java as its principal programming language. Java, in comparison with Python, is less immediate and more verbose, but it allows to build many framework to work with, and is usually faster than Python. Probably because, Java is supported by magnificent building tools (Maven, Gradle) that allow to manage large projects in a way that probably cannot be done in Python.

Thursday, August 18, 2016

Reservoirology

The current idea in many modern modelling systems (at catchment scale) is that the hydrology of control volumes can be reduced to a set of interconnected reservoirs (Fenicia et al., 2008; Tague et al., 2010; Clark et al., 2008; Hrachowitz et al., 2013). Each one of these reservoir can be thought as “well mixed”, meaning that each water reservoir acts like a chemical reactor where all what comes in is uniformly distributed across the reservoir and perfectly mixes (and instantaneously too) with everything already present. Some of these reservoirs have a geographical identification (as happened in the geomorphologic unit hydrograph, eg. Rinaldo and Rodriguez-Iturbe, 1996), some others have a functional reason and we could call them “embedded”, or with no-geographical reference. They are used especially to disentangle processes, to attribute the right travel time to water, and, more prosaically, to get right quantitative adjustements to the various outputs, discharge, first of all. 

This way of working is quite necessary (but remind Todini’s adage: first they had a linear reservoir -Sherman, 1932 -, then they introduced a sequence of linear reservoirs - Nash, 1957, after, they made the reservoirs non linear, Dooge, 1959; finally was a mess, Sagawara, 1967) but the separation (or the composition, it depends from the point of view) of the domain in parts is somewhat that remains to be demonstrated.

In using these simplifications  nobody of the researchers mentioned goes through a direct simplification of coupled (hydrological) equations at the finer scale and coarse grain them^1, but directly adopts the paradigm of reservoirs and validate it, nowadays technologically, by using a set of GOFs (goodness of fit) indicators. 

This system is, IMO, intrinsically weak but I, like the others, adopted it. A statistical theory is missing, and I believe that it will arise from the travel time theories. 

In the revamp of  these reservoirs' theories, the attention to the spatial distribution of the reservoirs should find again its place. Distinguishing, “vertically”, reservoirs as canopy, surface, vadose zone and groundwater storage is a necessity that is widely recognised and should be deployed. Reservoirs “lateral” aggregation (by using convolutions or following new paradigms) is the follow up (see also Rigon et al., 2016a). Embedded chains of reservoirs should be also necessary, as invoked by those who study small catchments experimentally (e.g. Birkel, 2011). All should be investigated carefully, and complexity added after implementing “ad hoc” experiments, or using appropriate datasets. 

This scenery would not be complete if these models would limit themselves to consider just the forecasting of discharges. They should also convey a reasonable set of processes to close the water budget. Next would be to include appropriate simplifications of the energy budget, a necessary companion. The latter, however, was never tried so far in coarse grained models.

Notes

^1 Perhaps Paolo Reggiani et al, 1998 tried it in a generic way, making experience on Gray’s previous work, and Todini did it, his own way with Topkapy, i.e. Liu and Todini, 2002; see also Todini, 2007 and my talk here. Paolo's work is certainly to be reconsidered.

References

Birkel, C., Soulsby, C., & Tetzlaff, D. (2014). Developing a consistent process-based conceptualization of catchment functioning using measurements of internal state variables. Water Resources Research, 50(4), 3481–3501. http://doi.org/10.1002/2013WR014925

Clark, M. P., A. G. Slater, D. E. Rupp, R. A. Woods, J. A. Vrugt, H. V. Gupta, T. Wagener, and L. E. Hay (2008), Framework for Understanding Structural Errors (FUSE): A modular framework to diagnose differences between hydrological models, Water Resour. Res., 44, W00B02, doi:10.1029/2007WR006735.

Dooge J,  (1959) - This reference was suggested by Ezio Todini, but I did not find it (the one talking of non-linear reservoirs).

Fenicia F, Savenije HHG, Matgen P, Pfister L, 2008. Understanding catchment behavior through stepwise model concept improvement. Water Resour. Res. 44(1): W01402. ISSN 0043-1397. doi:10.1029/2006WR005563. 

Gray, W., Lijennse, A, Kolar, R.L, Blain, C.A., Mathematical tools for changing spatial scales in the analysis of physical systems, CRC Press, Boca Raton, 1994

Hrachowitz, M., Savenije, H., Bogaard, T. A., Tetzlaff, D., & Soulsby, C. (2013). What can flux tracking teach us about water age distribution patterns and their temporal dynamics? Hydrology and Earth System Sciences, 17(2), 533–564. http://doi.org/10.5194/hess-17-533-2013

Liu and Todini (2002), Towards a comprehensive physically-based rainfall-runoff model, Hydrology and Earth System Sciences, 6(5), 859–881

Nash, J.E., 1958, The form of the instantaneous unit hydrograph, IUGG General Assembly of Toronto, Vol III, IAHS pub. no. 45, 1141-121. 

Reggiani, P., M. Sivapalan, and S. M. Hassanizadeh (1998), A unifying

Rinaldo A & Rodríguez-Iturbe I, 1996. Geomorphological theory of the hydrological response. Hydrol. Process. 10(6): 803–829. ISSN 1099-1085. doi:10.1002/(SICI)1099- 1085(199606)10:6<803::AID-HYP373>3.0.CO;2-N. 

Rigon R., Bancheri M., Formetta G., & de Lavenne, A. (2015). The geomorphological unit hydrograph from a historical-critical perspective. Earth Surface Processes and Landforms, n/a–n/a. http://doi.org/10.1002/esp.3855

Rigon R., Bancheri M, Green T., Age-ranked hydrological budgets and a travel time description of catchment hydrology,Hydrol. Earth Syst. Sci. Discuss., doi:10.5194/hess-2016-210, in review, 2016.

Sherman, L. K., Streamflow from rainfall by the unit hydrograph method, Eng. News-Record 108, 501-505, 1932. 

Sugawara, 1967, The flood forecasting by a seried storage type model, IAHS Publication no. 85, 1-6

Tague, C., & Dugger, A. L. (2010). Ecohydrology and Climate Change in the Mountains of the Western USA - A Review of Research and Opportunities. Geography Compass, 4(11), 1648–1663. http://doi.org/10.1111/j.1749-8198.2010.00400.x


Todini, E. (2007). Hydrological catchment modelling: past, present and future. Hess, 11(1), 468–482.

Saturday, March 26, 2016

Process based simulation of the hydrological cycle

The one below is a concept paper (or a review, under certain aspects) of researchers that thought at a certain moment of their carrier that lumped models were not enough. Criticism was often raised on this type of models (sometimes by bad modellers or by researchers in love with their own products: nobody's perfect).  Who follows me knows that both lumped (yes, up to a point) and distributed models are in my past research. Whatever party you belong to,  I think the paper is a good reading which summarises a lot of issues and give a view of the current state-of-art.
Clicking on the picture above, please find the paper's pdf.

Wednesday, August 27, 2014

Which Hydrological model is better ?

The talk below (you can click also on the image) is about the GEOtop and JGrass-NewAge models, their physical bases, their informatics based on older (the first) and new (the latter) programming paradigms, the lessons I learned in building them with my group of people in an academic environment, their future, and the understanding that there is no the best model, but certainly a better way to do models.

Hydrological modelling was for long time, and still is, almost a synonym of simulating rainfall-runoff. Recently, however, the scope of hydrology became wider, even among engineers. Modelling in hydrology now certainly still means modelling discharges, but also modelling snow, evapotranspiration and turbulent exchanges, and surface/subsurface interactions. With the goal of reproducing the whole picture of the terrestrial hydrological fluxes, my coworkers and I worked together in the last decade to build new models and new types of models. We started from the lesson by P. Eagleson, and we built first the process-based (grid based) GEOtop model. GEOtop is “terrain-based” (it is based on the use of digital terrain models and uses the knowledge of interaction between morphology and process) “distributed” (all the simulated variables are calculated for each pixel of the basin) model of “the water cycle” (it simulates all the components of the water cycle, accounting for both the mass budget and the energy budget, the two budget equations being coupled through the temperature of the soil, which controls evaporation, hydraulic conductivity, and accumulation of the snowpack).  However, this GEOtop was intimidating many, either for the complexity of the processes described and its internals, and possibly not apt at large scale modelling where faster solutions are required.

Therefore we also worked on a different, more parsimonious model, called JGrass-NewAGE. From the lesson learned by implementing and maintaining GEOtop, we also found necessary to build the new model on new informatics. This system sacrifices process details in favour of efficient calculations.  It is made of components apt at returning statistical hydrological quantities, opportunely averaged in time and space.  One of the goals of this implementation effort was to create the basis for a physico-statistical hydrology in which the hydrological spatially distributed dynamics are reduced into low dimensional components, when necessary surrogating the internal heterogeneities with "suitable noise" and a probabilistic description. Unlike other efforts of synthesis, JGrass-NewAge keeps the spatial description explicit, at various degrees of simplicity.  This has been made possible by opportune processing of distributed information which, in this way, has become part of the model itself.

As a conclusion modelling remains a "liquid" practice where various needs must be fulfilled  each time we face a new problem (if science is driven by problems and not tools). Therefore an infrastructure that makes of this fluidity its center is necessary. This is the reason we adopted OMS3.

Thursday, February 23, 2012

Which hydrological model (is better ) ? - Q & A


A few months ago, I received an email where the following questions were posed, in the context of simulating the discharge of many (small) catchments in Spain. The author thought, and I agree with him, to generate a sequence of meteorological forcings with some models he did not specified^1 to produce time series of hydro-meteorological data with assigned statistics, and then use them to drive some hydrological model. To this respect he asked:

"Q1. Will you suggest, from the point of view of computational time, to use distributed models (like SHE) and continuous, since we think to use weather time series of  thousands of years ? Personally I see the danger to be overwhelmed by data, and by so long computational time that we will not able to perform all the analysis we require with the adequate rigor (sensitivity analysis, and so on ...). "

A1 - Different people have different ideas of what a distributed model is. Kampf and Burges (2007) offered a review a few years ago. However, taking as reference our GEOtop, that is probably one of the more complex existing hydrological models, we can observe that it runs, in our laptop, a year long simulation for a 10-20 square kilometer basin at 10 m of resolution, in, say, a day. So, simulating 1000 years would require approximately 3 years: which is clearly too long for any project. Using faster machine would probably increase the time by a factor of two. GEOtop is not parallelized, so, after an investment in rewriting the code, we could probably cut the time of simulation of a factor 100, by using also large parallel computers. Thus, we will reduce one year of simulation to 3/4 days: this could then be feasible. But this is obviously wishful thinking. Other models, like SHETRAN, DHSVM, tRibs could be probably be already faster than GEOtop, but possibly more inadequate than GEOtop to simulate some of the processes. Besides, timing above does not include the (wo)men/months required for characterizing the basin and the data collection (and organization), which would also use other time.  So, at present, would be impossible to use GEOtop for such a task, maybe  some other optimized model, in a multiprocessor server, could. It remains, however, a long term objective to pursue for us. ^2
  

Q2.  Would it be more feasible to consider lumped or semi-distributed model ?  In this case, considered that the interest consists in describing only the hydrological behavior during floods. Which kind of infiltration scheme would you suggest ? Would you suggest a model like the Sacramento Soil moisture Accounting model ? Would it be enough accurate in its forecasting ? O would it be better to use some model based on the solution of Richards equation, maybe using a space averaged characteristics curve ? 

A2 - I gave the answer responding to Q1:  said that any model is, in a sense, a conceptualization, you need to choose an approach more light than GEOtop. I responded to this question also in my presentation given in Montpellier.  So, you need to use a semidistributed model.
Using a solver of Richards equation would make you essentially return to option of Q1 with its problem, unless you think to a 1-D solver coupled with a 2D groundwater equation. In any case you would further be required to have a module for runoff and channel routing to patch together with subsurface flow modules. Excluding that you can do it by yourself, you need to find the model that already does it. tRibs, or TopoFlow should, for instance, fall in this category. We are working toward a similar solution with our integrator of the Boussinesq equation: but is still "work in progress".
Thinking to semidistributed models for solving your problem, you need to look at a model like our JGrass-NewAGE. There, however, "the processes at hillslope scale are strongly conceptualized, where rapresentation of the physics is minimised, and the resolution in space and time is maximized, and the focus is upon predicting emergent behaviors rather than system details" [Lanni, 2012].  Other models of reference are Topkapi, and those used in the Distributed Model Intercomparison Project (DMIP) [Reed et al. 2004]. I do not know how the Sacramento Model really performs, since I never used it. But I my inclination is for other models of more modern conception.^3 

Q3.  In relation to Q2 do you think that the theory by Reggiani et al., relative to the REW  concept  (Representative Elementary Watershed) is mature enough to be used outside Academy ?

A3.  Obviously Paolo would say yes, it is mature, but you have to read his literature to understand if. One limit I found in Paolo, Siva and Majid original paper was that the identification of the REWs was left unresolved. I know that Paolo also deployed a model (which I do not know in detail), but the conditions of its availability are not clear. Similar to the REW idea, probably formulated in a less fancy way, is the concept of Hydrologic Response Units (HRUs), of which you can find references in the JGrass-NewAGE paper, and has many implementations in the work, for instance,  of Peter Krause ad Daniel Viviroli. Also Roger Moussa'a MITHAS, whilst in a different context, follows the same idea.

In any case you have to decide which is the time step at which you want your response. I was assuming that you were interested in relatively small catchments, and therefore is mandatory to have hourly, or sub-hourly discharges. If you are interested in a more aggregate time response, i.e. daily discharges, other models could work. Personally I have prejudices against this kind of "physical" models, in the sense that, I believe, the physics of flood generation, in small catchment, works at smaller time scales than the day. However many models, SWAT is one,  seem to work^4. 

4. In the case, I will decide to use semi-distributed models, which method of IUH and infiltration would you use ? 

A4 - Using the IUH is even a different game. See the reference here, for instance. IUH, or GIUH are models of flow peaks, where many assumptions are made, and granted for valid.  However, the theory, as you noticed, left out the determination of the infiltration. We have a  model, called Peakflow, of the IUH, and there, we use a provocative Dunnian saturation excess scheme for generating runoff. Indeed in Peakflow one can theoretically use the methods s/he wants (and you remain with the problem to choose one), even classical bucket type models. But, so far, we did not implemented it. Some friends use SCS but  they take the curve numbers out of a calibration process, and not from the Tables of the original system. Others use a bucket model (they call Green-Ampt if they regulate the filling of the bucket with the Green-Ampt scheme). These last methods can be directly applied to cut the rainfall, and to produce an effective precipitation.  In any case, I would prefere a continuous method for your modeling, and use GIUH or IUH for controlling the results. A definitive guide on GIUH is this paper.

Q5. A model based on the topographic index or the TOPMODEL assumptions would be indicated for this type of analyses ? 

A5 - The topographic index scheme is a runoff production scheme^5 more that a rainfall-runoff model. It comes with its own limits. It was early turned into a rainfall runoff model [e.g. Beven, 2000, Franchini et al., 1996] but the core theory does not deal with flood wave propagation and aggregation (the GIUH does). Indubitably, it works^4 for producing the volume of the rainfall-runoff, and I, myself, used the topographic index to assess the initial wetness condition in a catchment in the Peakflow paper (and model) and in D'Odorico and Rigon [2003]. The reason it works is that, for small basins, as we argue in some of our papers, residence time of water in channels is negligible compared to residence time in hillslope. Therefore, when you account properly for the timing of the runoff production, and since the production of discharges is an aggregation process in which, at the end, just the total of "effective volume" counts, you have treated most of the information you need to accomplish the task of predicting discharges.  In any case, to be really usable, the topographic index, needs to be integrated with other features. In the past some did it but I would not push it further. I would use, at least, a dynamic topographic index, as suggested by Barling Moore and Grayson [1994] and improved by many others.

Finally, do not forget that where mountains area are, snow accumulation (as source of abstraction of precipitation) and snow melting (as source of discharge) are important issue to resolve. This complicates the scenery, and makes the many models that do not account for snow, not really usable.

If you read this post, you are probably interested also in the Reservoirology one.

Notes

^1 - That of weather generators is, indeed an interesting topic, that I will cover sooner or later. 

^2 - Other issues regards, the calibration of GEOtop. Even if it is a distributed model, parameters in equation, are certainly effective (e.g. Beven, 1989), and therefore a certain calibration is needed for it to properly reproduce fluxes. Calibration is a time consuming process, which could also be overwhelming in a context of distributed models like GEOtop. In fact, calibration issues experts, often use in their paper usually very unrealistic models, which cannot be taken seriously by those who wants to be use hydrological model operationally. 

^3 - Any of my colleagues has his model, not a proof of maturity of our community, indeed: but many of them work fairly well, few of them are really available, and even less usable at operational level. So in the World, all use HEC-HMS. What we are trying to do with our involvement with OMS3 is changing this situation (e.g Post on : Going beyond the present state-of-art, Reproducible Research).

^4 Klemes in his "Dilettantism in Hydrology: Transition or Destiny", argued that: "MODELS THAT WORK WELL are THE GREATEST DANGER TO PROGRESS IN HYDROLOGY. For a good mathematical model it is not enough to work well. It must work well for the right reasons ..."

^5 Or, if you see it from the soil point of view, is a subsurface flow model.