Open Ph.D. position at the University of Roma

Posted on

Here is an advertisement for an open PhD position at the University of Roma for a project led by Paolo Ballato and Claudio Faccenna. I am collaborating in the project.

Ph.D. position at the Department of Science (Section Geology) of the University of Roma

Deciphering the Mantle Contribution on Surface uplift in the Atlas-Meseta system (Morocco).

The idea that mantle flow dynamics may contribute to the topographic development of orogens has changed our vision on mountain building processes and inspired an increasing number of modelling studies. Isolating and documenting such a contribution however, has been proved to be difficult, especially in continental settings where the paleontological record is not as determinant as in marine systems. This research proposal aims to decipher the influence of mantle flow on the topographic growth of the Atlas-Meseta system of Morocco. There, the occurrence of several hundred of meters of mantle driven uplift, offers the possibility to investigate magnitude, timing and rates of surface uplift, by means of a multidisciplinary approach involving recent advancements on stratigraphy, geomorphology, geochronology, and low-temperature thermochronology. The outcome of this field- and laboratory-based approach will be finally integrated for developing an analogue geodynamic model and gain more insights into the mechanisms of mantle flow. Specifically, the candidate student will quantify longitudinal and latitudinal spatio-temporal patterns of surface uplift and regional tilting induced by mantle flow along two transects across the Atlas-Meseta system. In addition, the expected results will provide geological information that will be used for calibrating a final geodynamic analogue model, which will be of general interest for unravelling the evolution of mountain belts that are not supported by orogenic roots.


Paolo Ballato and Claudio Faccenna (University of Roma Tre)


Taylor Schildgen (GFZ Poytsdam), Wolfgang Schwanghart (University of Potsdam), Giuditta Fellin (ETH Zurich), Francesca Funiciello and Federico Rossetti (University of Roma Tre)


The successful candidate must have high motivation, a MSc degree in Geology, Earth Sciences or equivalent, solid basic knowledge in field geology, geomorphology, stratigraphy and tectonics. Basic knowledge in ArcGIS and MATLAB are also required. Applicants must be also proficient in spoken and written English and have teamwork skills.

Information and application

To apply, please send a cover letter clarifying your overall motivation together with your curriculum vitae and names, telephone numbers, and e-mail addresses of two referees to Paolo Ballato (paolo.ballato@uniroma3.it), before June 18th.

Conditions of employment

The project will start on November 1st as part of the University of Roma Tre Ph.D. programme (34th cycle) and will last 3 years. The scholarship has an annual amount of 13.638,47 Euro (social security fee included) and is increased (+50%) for periods of study or research abroad.

If you have any questions regarding this offer please feel free to contact Paolo Ballato (paolo.ballato@uniroma3.it) and/or Claudio Faccenna (claudio.faccenna@uniroma3.it).


TopoToolbox 2.2 released

Posted on


The last weeks had been quite busy to finish version 2.2 which was available as a prerelease for a long while. TopoToolbox users who keep their software constantly updated (for example by using GIT) won’t see much changes.  For those that do not keep pace with the frequent commits to our repository, we encourage them to do so now. There are a lot of new functions and modifications. Benjamin Campforts added TTLEM, the TopoToolbox Landscape Evolution Model. The scope of functions for working with river networks (STREAMobj) has tremendously increased with new plotting functions, low-level chi analysis tools, and tools for geometric modifications. We added new functions to hydrologically correct and smooth river networks and values measured along them (e.g. constrained regularized smoothing (CRS)). TopoToolbox now supports multiple flow directions and there are several new functions for working with grids (GRIDobj). In addition, we consolidated the help sections in each function and increased compatibility with older MATLAB versions. Please see the readme-file for a complete overview of changes.

With version 2.2, we offer TopoToolbox as a MATLAB® toolbox file (mltbx-file). This file will make installation very easy. Simply download it, double-click, and follow the instructions.

Dirk and I met this morning in the train (here we are!) …

Dirk (left) and I taking a selfie…

… and discussed possible directions for a next version. The number of functions has increased a lot which entails the threat that TopoToolbox might become confusing and even deterrent in particular for new users. Simply adding new functionalities is thus not the way forward. Instead, we decided that a new version should have a better documentation that should be integrated in MATLABs documentation browser. To quote John D’Errico, a long-time and excellent contributor of MATLAB code: Your job as a programmer does not stop when you write the last line of code. If you think so, then you should be fired. You should document your code. Provide help. Otherwise, that code is just a bunch of random bits, useful to nobody else in the world.

With this in mind, let’s go for 2.3.

Geomorphometry Short Course at the EGU 2017, Vienna

Posted on


Only few days left until the EGU begins, the largest European annual geoscience meeting in Vienna. In case you attend you should consider to participate the short course in geomorphometry: Getting the most out of DEMs of Difference. The course is organized by Tobias Heckmann, Paolo Tarolli and me and will be on Wednesday, 26 April, 13:30-15:00 in Room N1.

Please see here for further details on the course’s aims and scope.

Short courses on the analysis of elevation data at the University of Potsdam

Posted on


Two short courses are scheduled for mid June at Potsdam University. The short courses are independent of each other; however, the topics are related and probably address a similar audience.

Geoscience investigations of point clouds, June 7-9, 2017. Instructors B. Bookhagen, R. Arrowsmith, M. Isenburg, C. Crosby.

This course will explore the acquisition, post-processing, and classification of point clouds derived from airborne and terrestrial lidar scanners and structure from motion (SfM) photogrammetry from drones. The course will take place at campus Golm (UP) and includes one day of field-data collection and two days of data post-processing and analysis.
The application is here: https://goo.gl/forms/NrRAcaASXPuseRs62. The course is sponsored by Geo-X.
Here is the flyer: PDF for more details.

Advancing understanding of geomorphology with topographic analysis emphasizing high resolution topography, June 12-15, 2017. Instructors R. Arrowsmith, W. Schwanghart, C. Crosby, B. Bookhagen.

This course will focus on advanced understanding of geomorphology with topographic analysis emphasizing high-resolution topography. The course will take place at campus Golm (UP) and includes theoretical background and analysis of digital topography using TopoToolbox in a Matlab environment. The course is sponsored by StRATEGy.
Here is the flyer: PDF for more details.

I’d be glad to see you in Potsdam!

Chimaps in a few lines of code (5)

Posted on Updated on

Having prepared a stream network and equipped with a reasonable value of the m/n ratio, we are now ready to plot a chimap that visualizes the planform patterns of chi. The main interest in these maps lies in chi values near catchment divides as large differences between adjacent catchment would indicate a transient behavior of drainage basin reorganization.

Some of you might have already experimented with TopoToolbox to create chimaps. Perhaps you became exasperated with the function chiplot that is restricted to calculations with only one drainage basin and has a bewildering structure array as output. The reason for the confusing output of chiplot is that it is fairly old. At this time, I hadn’t implemented node-attribute lists that are now more common with STREAMobj methods.

Realizing this shortcoming of chiplot, I wrote the function chitransform. chitransform is what I’d refer to as a low-level function that solves the chi-equation using upstream cumulative trapezoidal integration (see the function cumtrapz). chitransform requires a STREAMobj and a flow accumulation grid as input and optionally a mn-ratio (default is 0.45) and a reference area (default is 1 sqkm). It returns a node-attribute list, i.e., a vector with chi values for each node in the STREAMobj. Node-attribute lists are intrinsically tied to the STREAMobj from which they were derived. Yet, they can be used together with several other TopoToolbox functions to produce output.

Ok, let’s derive chi values for our stream network:

A = flowacc(FD); % calculate flow accumulation
c = chitransform(S,A,'mn',0.4776);

In the next step, we will plot a color stream network on a grayscale hillshade:

imageschs(DEM,[],'colormap',[1 1 1],'colorbar',false,'ticklabel','nice');
hold on
hold off
Chimap of the Mendocino Triple Junction.

Interestingly, there seem to be some locations with quite some differences in chi values on either side of the divide. “Victims” seem to be rather elongated catchments draining northwest. Let’s zoom into one of these locations.

Detail of the chimap with arrow indicating the expected direction of divide migration.

Are these significant differences? Well, it seems by just looking at the range of values. However, to my knowledge no approach exists that provides a more objective way of evaluating the significance of contrasting chi values and their implications about rates of divide migration. Still, we now have a nice map that can aid our geomorphic assessment together with the tectonic and geodynamic interpretation of the Mendocino Triple Junction.

Unfortunately, I must leave the discussion to you since I am quite unfamiliar with the region. If anyone wants to share his or her interpretation, I’d be more than happy to provide space here. So far, I hope that these few posts on chimaps were useful to you and sufficiently informative to enable you to compute chimaps by yourself. In my next post, I will give a short summary and show with another example that eventually chimaps can be derived really in a few lines of code.

Chimaps in a few lines of code (4)

Posted on Updated on

My last post described the math behind chi analysis. By using the integral approach to the stream power model of incision, we derived an equation that allows us to model the longitudinal river profile as a function of chi. At the end of the last post I stated that this model is a straight line if we choose the right m/n ratio, that is the concavity index. Today, I’ll show how we can obtain this m/n ratio by means of nonlinear optimization using the function chiplot.

Ideally, we find the m/n ratio using a perfectly graded stream profile that is in steady state. I scanned through a number of streams using the GUI flowpathapp and found a nice one that might correspond to Cooskie Creek that Perron and Royden (2013) used in their analysis.

The graphical user interface flowpathapp allows visual exploration of planform river patterns and corresponding profiles.

The menu Export > Export to workspace allows saving the extracted STREAMobj St to the workspace. Then, I use the function chiplot to see how different values of the m/n ratio affect the transformation of the river profile. Setting the ‘mnplot’ option makes chiplot return a figure with chi-transformed profiles for m/n ratios ranging from 0.1 to 0.9 in steps of 0.1 width.

chi-transformed river profiles for different values of the mn-ratio.

Clearly, the chi-transformed profile varies from concave upward for low m/n values to convex for high m/n values. A value of 0.4-0.5 seems to be most appropriate but choosing a value would be somewhat hand-wavy. Thus, let’s call the function again, but this time without any additional arguments.

C = chiplot(S,DEM,A);
chi-transformed profile for an optimal value of the m/n-ratio.

Calling the function this way will prompt it to find an optimal value of m/n. In addition, it will return a figure with the linearized profile. By default, the function uses the optimization function fminsearch that will vary m/n until it finds a value that maximizes the linear correlation coefficient between the chi-transformed profile and a straight line. So what is that value? Let’s look at the output variable C:

C = 

          mn: 0.4776
        mnci: []
        beta: 0.1565
      betase: 2.2813e-04
          a0: 1000000
          ks: 114.8828
          R2: 0.9988
       x_nal: [581x1 double]
       y_nal: [581x1 double]
     chi_nal: [581x1 double]
       d_nal: [581x1 double]
           x: [582x1 double]
           y: [582x1 double]
         chi: [582x1 double]
        elev: [582x1 double]
      elevbl: [582x1 double]
    distance: [582x1 double]
        pred: [582x1 double]
        area: [582x1 double] 

C is a structure array with a large number of fields. C.mn is the value we are interested in. It is 0.4776 and corresponds nicely to previously reported m/n ratios although it differs from the value 0.36 found by Perron and Royden (2013). Of course, this value might differ from river to river and you should repeat the analysis for other reaches to obtain an idea about the variability of m/n.

Ok, we have the m/n ratio now. In my next blog we will eventually produce the chimap that we initially set out for.

P.S.: We could have also used slope-area plots to derive the m/n ratio (see the function slopearea). However, along-river gradients are usually much more noisy than the profiles and power-law fitting a delicate matter. I’d definitely prefer chi-analysis over slope-area analysis.

Stream networks and graph theory

Posted on Updated on


Rivers are organized as networks. They start out as small rills and rivulets and grow downstream to become large streams unless water extraction, transmission losses or evaporation dominate. In terms of graph theory, you can think of stream networks as directed acyclic graphs (DAG). The stream network of one drainage basin is a tree routed at the outlet. To be more precise, this kind of tree is an anti-arborescence or in-tree, i.e. all directions in the directed graph lead to the outlet. Usually, stream networks are binary trees, i.e. there is a maximum of two branches or parents entering each node. However, nodes may sometimes have more than two branches at confluences where three and more rivers meet. All drainage basins form a forest of trees and each tree is a so-called strongly-connected component.

Why bother with the terms of graph theory? Because it will make a couple of TopoToolbox functions much more accessible. The function klargestconncomps, for example, has an awkward name that I adopted from graph theory. What does it do? It extracts the k largest trees from a stream network. The function STREAMobj2cell takes all trees and puts each into a single element of a cell array. FLOWobj2cell does the same for an entire flow network. The computational basis of STREAMobj and FLOWobj relies on topological sorting of directed graphs. Thanks to graph theory, this trick makes flow-related computations in TopoToolbox much faster than in most common GI-systems.

Graph theory has a lot to offer for geomorphometry and I think that this potential has not yet fully been explored.