Friday, August 30, 2013

Opening activities at AboutHydrology GitHub and BitBucket repositories

As a consequence to try to erudite my students on Java, I am also opening a GitHub account at:

and a team BitBucket one at:

There is only one project at the moment, called Geoframe (the name come from a five years old presentation). There you will find all the code I am developing, and, I hope, the code that all the group will be developing.

Also the project Boussinesq by Emanuele Cordano is hosted at GitHub at:

I will probably erase one of the accounts after having well experimented them. But for the moment, even if it can cause confusion, I will keep both. Help me in the choice.

Tuesday, August 20, 2013

The publication of geoscientific model developments v1.0

Geoscientific Model Development (a.k.a. GMD) has become for many, including us, a Journal of reference. Its open access policy with the fact that it covers a gap in scientific literature, has made of it a journal that quickly gained an impact factor of 5 (which is the higher among the journals in which I publish). Its success made to increase  the papers submitted exponentially, and, at this point, the Editors decided to restrict the policy for publication of the papers. The new editorial for publication is here (or clicking under the image).
I suggest that any modeller reads it. 

Tuesday, August 13, 2013

A school to learn how to model with the Object Modelling System version 3

It will be held in Trento (Italy)  between the 14 and 18 (both included) of october 2013.
The school is the first of a cycle of high educational courses focusing on the hydrologic and environmental modeling by using Object Modeling System (OMS). OMS, a pure Java, object-oriented modeling framework., allows model construction and model application based on components.
Information about the system can be found at the OMS site, and in previous postings of this blog.

The school is dedicated to young Professors, Researchers, Post Docs, PhD students, and environmental modellers (but gifted Master Students are also welcome to apply) and it is organised in 5 days of lessons and working groups.

Lecturers of the School will be:

Dr. Olaf David (Colorado State University, US)
Dr. Giuseppe Formetta (Università della Calabria)
Dr. Timothy Green (USDA Agricultural Research Service, US)
Dr. Gabriella Turek (NIWA, New Zealand

The number of participants will be limited to twenty (20) due to the intention of the organisers that the school will  be effective (our scope is that the participants could be able, at the end of the school, to program their own OMS component). 

Software Prerequisites: JDK 1.6, gcc, installed on personal notebooks (we also provide lab computers with the software pre-installed): no time will be lost for installations.

The course is not intended to teach Java (neither C or FORTRAN, indeed). Therefore the applicants should specify in their CV their level (at least basic) of knowledge of the language (by saying what they actually did).  Furthermore, application should include a simple statement declaring why the applicant is interested in being considered for admission to the Summer School. The interest for porting a hydrological model or a modeling component (either in Java, C/C++ or FORTRAN) to OMS will be considered as a title of merit for the admission.  Every applicant must provide his/her contact information: email address, telephone, and mailing address. 

NEW: the material of the school can be found  here. And here you can find the videos.

Application should be sent to:


Deadline for applications is September 13.

The schematic schedule of the school is:

The Flyer of the school can be downloaded here. The material of the school can be found instead here.

Sunday, August 11, 2013

A proposal of an R package for investigating some simple soil properties

In analysing the soil hydrological properties the first step is certainly to be able to draw the Soil Water Retention Curves (SWRC), at least according to the two major parameterisations: the van Genuchten and the Brooks and Corey ones. Possibly some outsider parameterisation could be also covered, as the double porosity type envisioned by Romano et al., and the (deprecated) Gardner ones (but used, for instance in TRIGRS to have analytical solution for the vertical infiltration). So why do not face this task to implement all of them in R (see also here, a previous post) ?
These parameterisations, in turn, could be used inside the Mualem scheme to obtain the hydraulic conductivity (K, here: slides no 127), and after plotting them (with ggplot2) their properties could be investigated. Particularly important it has been found to be the delay of increase/decrease with suction of K with respect SWRC (here, from slides no 72), so plotting them one above the other can be useful to understand qualitatively how the subsurface flow dynamics (excluding macropores) works at hillslope scale.  Plotting hydraulic capacity, C (slide 26), a.k.a. the derivative of the SWRC with respect to suction, could be nice to see. Also the plot of the hydraulic diffusivity,  D = K/C, can  be useful. So we have at least four functions for any parameterisation to plot.
One variation on this scheme can be considering the extension of the SWRC from the negative pressures (suction) domain to the positive ones. Since many phenomena occurs just at the edge of saturation a proper extension of the SWRC in this domain can help to understand. This paper by Schaap and van Genuchten can be used as a basis for any investigation.

To solve Richards equation analytically either adopt the Gardner parameterisation of SWRC or over-simplifiy it. Assuming constant hydraulic diffusivity (as a product of constant K and C) it is possible to obtain well know analytical solutions of the 1-D Richards equation derived from well-known heat transfer solution (here, from slides no 179 or here, in the original paper). These solution, not only offer an opportunity to plot another, more complicate function, but also allows for calculating an approximation of the 1-D infiltration phenomena induced by a variable rainfall, as a convolution of these solutions with the variable rainfall inputs (which requires a little more of R programming).
Once the whole machinery would implement, would be a piece of cake to evaluate the errors that can  be made with these solution by appropriately varying the parameters.


Baum R.L., Savage W.S., and Godt J.W., TRIGRS—A Fortran Program for Transient Rainfall Infiltration and Grid-Based Regional Slope-Stability Analysis, Version 2.0

D'Odorico, P., Fagherazzi, S., & Rigon, R. (2005). Potential for landsliding: Dependence on hyetograph characteristics. Journal of Geophysical Research, 110(F1), 1–10. doi:10.1029/2004JF000127

Rigon R. - Slides about Soil Hydrology (here in Italian, here in English), 2011

Rigon R. - An Overview of hillslope hydrology, 2013

Romano, N., Nasta, P., Severino, G., & Hopmans, J. W. (2011). Using Bimodal Lognormal Functions to Describe Soil Hydraulic Properties. Soil Science Society of America Journal, 75(2), 468. doi:10.2136/sssaj2010.0084

Schaap, M. G., and van Genuchten, M. T. (2006). A Modified Mualem–van Genuchten Formulation for Improved Description of the Hydraulic Conductivity Near Saturation. Vadose Zone Journal, 5, 27–34. doi:10.2136/vzj2005.0005

Saturday, August 10, 2013

Richards 1D integration

As shown in detail at the July summer school about landslides, one of the first approximations to the full Richards equation is the 1-D  Richards equation (please take care of the fact that vertical is not slope-normal). If we want to solve it, besides using the celebrated Hydrus-1D, we can use the novel algorithm developed by Vincenzo Casulli and Paola Zanolli (finite elements, the first, finite differences the second - the second Authors actually implemented a 3-D algorithm). The conceptual line followed by the Casulli and Zanolli is "simple" (but simplicity, as usual, is the product of long and deep thinking):

  •  discretise the system to obtain a non-linear system
  •  use a Newton method to solve the non linear system
In turn, the Newton's method^1 is implemented in a way that it iterates over a sequence of linear equation in which the relevant equation matrix is symmetric, and therefore the Conjugate Gradient^2 (CG) method can be used to solve it efficiently.
That's the theory. And, in practice ?


You need to choose a language for implementing the algorithm. Assume you use Java, because you know it (or you have learnt it, or you just want to learn it, and this can be a challenging but nice exercise).  Since you will be doing a lot of matrix algebra, you first have to choose a library for solving linear algebra (or to implement it by yourself), And if the library can, without you very much take care of it,  thread your algorithms, it is a bargain.  One of these libraries is, for instance, the Parallel Colt. Obviously you need to get used to the library (after having installed it).  some other library can be more efficient, but in Parallel Colt you can find the Conjugate Gradient method already implemented. Once you manage both (PC and CG), you are pretty close to the solution of the problem (easy to say ;-) ) but ...

^1 - A good concise reference is the Davis' book "Direct methods for sparse linear system", SIAM 2006, but the appendix of the paper on Boussinesq equation can clarify several things.
^2 - Give a look to  An Introduction to the Conjugate Gradient Method Without the Agonizing Pain by Jonathan Richard Shewchuk.