My reflections and notes about hydrology and being a hydrologist in academia. The daily evolution of my work.
Especially for my students, but also for anyone with the patience to read them.

Saturday, April 2, 2016

A few R scripts useful for hydrologists

These are the script I use as templates for my short (very short) classes (Hydrology and Hydraulic Constructions/Urban Hydrology) when I introduce R. Reading a good R textbook or manual would be important, indeed to understand what I am doing. These scripts have to be "studied", meaning that operations are commented but for really understand them, any command should be studied. Since data comes in various formats, it is shown how to deal with them.

- A quick introduction to R (Knitr pdf)
This assume almost no priori knowledge of R. However you have to know how to load and execute a script in Rstudio. I suggest that, once loaded the script, you execute one command at time. You will know what vector and data frame are, and how to access their data.

- Simple plot in R (Knitr pdf)
It generates some random data (normally and uniformly) distributed. Plots them as a time series, as an histogram as a empirical cumulative distribution function.

- Reading the data of discharges of River Adige (Knitr pdf, the dataset, Readme file)
It reads the data from a very rudimental file. Transforms the data in a reasonable time series, and plots it. It introduces also the use of boxplots.

- Estimating depth duration frequency (ddf) curves of Duckburg with R the dataset, Readme file)
Starting from the annual maxima of given duration (as given in Italy) it interpolates the data with a Gumbel pdf using a couple of standard techniques. Uses Pearson ranking for getting the best estimator. After obtaining the probabilities for the various durations, it uses linear interpolation for getting the parameters of the idf curves. I admit, it is not a great statistics exercise. Let say, it is the standard we use in Italy. All is done step by step. The smart reader can shorten the procedures a lot. In principle is not difficult to automate the whole procedure, producing from the initial data table the final product.