This is a placeholder
AboutHydrology
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.
Sunday, June 28, 2026
Monday, June 15, 2026
A 30-Year 1-km Daily Precipitation and Air Temperature Dataset for the Po River District (Italy)
Mountains are unkind to gridded data. The processes that matter most in Alpine terrain — orographic rainfall, elevation-dependent temperature, the sharp contrasts between a valley floor and a ridge a few kilometres away — live at scales that most continental products simply cannot see. A 10-km cell averages away exactly the gradients a hydrologist needs.
So we built something finer. Together with colleagues from the University of Trento, the C3A centre, Fondazione Edmund Mach, the Po River Basin District Authority, and led by Hossein Salehi, we have produced a 1-km, daily precipitation and temperature dataset covering the entire Po River District over the full 1991–2020 climatological reference period. To our knowledge, no publicly available product previously combined all three of those properties — kilometre resolution, daily steps, and a continuous 30-year record — for this basin.
The dataset is now openly available on Zenodo under a CC BY 4.0 licence.
Why the Po District is a hard test
The Po River District is arguably one of Europe's most topographically demanding hydrological systems. It spans roughly 83,000 km² and stretches from sea level in the Adriatic delta to nearly 4,800 m in the Alpine headwaters. That relief produces strong spatial contrasts in both rainfall and temperature, and it governs snow accumulation, melt, runoff, and water availability across the region. Any interpolation method that ignores elevation is doomed from the start.
How it was made
The dataset rests on a harmonised, multi-source observational network: 1,583 precipitation stations and 1,555 temperature stations surviving quality control, drawn from the regional ARPA agencies and supplemented with the EEAR-Clim dataset. We deliberately extended a 20-km buffer beyond the district boundary and pulled in stations there too, so that interpolation near the edges — and across watershed divides — would not be starved of data.
Interpolation was carried out in the GEOframe new kriging framework:
- Precipitation uses Ordinary Kriging.
- Temperature uses Detrended Kriging, with elevation as the trend variable. A daily linear regression estimates the lapse rate for each day, removes the elevation signal before kriging, then restores it at every grid cell. The lapse rate is therefore allowed to breathe with the synoptic conditions rather than being fixed at a textbook value.
A nice methodological detail: at every daily time step, the empirical semivariogram is re-fitted against five candidate models (Exponential, Gaussian, Linear, Power, Spherical), with parameters optimised by Particle Swarm Optimisation, and the best-fitting model is selected for that day. The structure of the field is re-estimated daily rather than imposed once.
Does it work?
Leave-one-out cross-validation across the whole 30-year record says yes.
- Precipitation: mean KGE above 0.84 (All-Days) and 0.82 (Wet-Days), with mean absolute errors of 1.28 mm and 3.05 mm respectively. As expected from kriging's conditional bias and smoothing, wet-day skill drops a little and shifts slightly toward underestimation of peaks.
- Temperature: mean KGE of 0.88, correlation of 0.98, MAE of 1.14 °C, RMSE of 1.5 °C, and essentially no bias (+0.02 °C). The elevation detrending earns its keep.
The honest caveats are spatial. Errors concentrate in the high-relief northern sectors and along the southern boundary, and skill declines measurably with altitude — for precipitation, MAE rises by roughly 0.54 mm per 1000 m on all days and 0.87 mm per 1000 m on wet days. This is a station-density story more than a method story: the mountains are where the gauges thin out. We also note that no wind-undercatch correction was applied, so high-elevation snowfall is likely underestimated — something to keep in mind for Alpine applications.
Reassuringly, the annual diagnostics show gradual, continuous improvement over the three decades (precipitation KGE climbing from ~0.76–0.78 in the early 1990s to ~0.83–0.84 by the mid-2010s) with no abrupt step changes — evidence that progressive network densification, not methodological artefacts, drives the trend. The dataset is temporally coherent.
What the resolution buys you
Benchmarking against E-OBS (~10 km) and EMO (1 arcmin) makes the case for going fine. Two extremes are particularly telling:
- During Storm Alex (October 2020), the maximum three-day accumulation reaches 482 mm in the 1-km product over western Piedmont, against only 277 mm in E-OBS — a loss of roughly 43% of the peak signal at coarser resolution.
- For minimum annual temperature, the 1-km field reaches −11.1 °C where E-OBS reads only −4.7 °C and EMO −9.8 °C. Pixel-averaging quietly amputates the cold tail of high-altitude climate.
In short: kilometre-scale topographic forcing can only be represented faithfully when the grid is commensurate with the physiographic gradients doing the forcing.
Getting the data
The product is distributed as annual NetCDF files (CF conventions), one per variable per year — 60 files in total — readable with xarray, netCDF4, R's ncdf4/terra, or QGIS/ArcGIS. It is intended as spatially consistent meteorological forcing for hydrological and ecohydrological models, not as calibration ground truth.
- Dataset (Zenodo): https://doi.org/10.5281/zenodo.19207256 — CC BY 4.0
- Code (GEOframe Krigings): https://github.com/geoframecomponents/Krigings
- Method reference: Bancheri et al. (2018), Geoscientific Model Development but a new method was actually implemented on that basis, and will be submitted soon (e.g. Andreis et al., 2026)
It is a small piece of infrastructure, but the kind we keep needing: a clean, open, high-resolution climatic backdrop against which the hydrology of a complex basin can actually be modelled.
Reference
- Hossein Salehi, Daniele Andreis, Sohaib Baig, Gaia Roati, Marco Brian, Francesco Tornatore, Giuseppe Formetta, and Riccardo Rigon, A 30-Year 1-km Daily Precipitation and Air Temperature Dataset for the Po River District (Italy), submitted to ESSD.
Saturday, June 13, 2026
Am I Running a Ponzi Scheme? On Visions, Promises, and the Responsibility of a Supervisor
Paul Krugman published a piece this week calling Elon Musk a "human Ponzi scheme." The argument is sharp: Musk sustains the valuation of today's ventures by selling belief in tomorrow's promises — Hyperloops, Mars colonies, fully autonomous taxis — always just a few years away, recycled indefinitely. The scheme works not because anything is delivered, but because new promises replenish the credibility consumed by the old ones. It is, Krugman argues, structurally fraudulent.
I read it, and an uncomfortable question formed. I had just uploaded a post on Petri-net-based implementations of hydrological systems — a vision that is, let me be honest, far from realized. I have done this before: kinetic theories of unsaturated flow, new theories about stomatal resistance, new variational frameworks still being written up. Big ideas, posted with enthusiasm, with real students working in the lab. Am I doing the same thing? Am I a human Ponzi scheme in miniature, dressed in academic clothing?
I want to think through this carefully — not to exonerate myself cheaply, but because the question matters to the people who work with me.
What makes a Ponzi scheme a Ponzi scheme
The defining feature is not the gap between vision and reality. That gap exists in all serious science. The defining feature is the concealment of that gap, combined with the use of new promises to discharge the accountability created by old ones. Musk's Mars colony of 2025 was never reexamined; it simply became Mars 2030, and no one was asked to reckon with the intervening silence.
There is also an asymmetry of information that is deliberate. Musk knows his timelines are fantasy. His investors — retail and institutional alike — are not in the same epistemic position. That asymmetry is where the fraud lives.
Science works differently, at least in principle. When I post about Petri nets as a future architecture for hydrological modeling, I am not claiming the code exists. The blog is not a prospectus. Specialists who read it know immediately where the idea sits on the spectrum from speculation to implementation. The gap is not hidden; it is the point.
So no, I am not running a Ponzi scheme in the Krugman sense. But that is not quite a clean acquittal.
The real risk: exploration as a tax on completion
The honest concern is subtler. A lab led by someone who genuinely loves imagining new frameworks can develop a culture in which exploration is always more exciting than consolidation. A new formalism on Monday, a new variational principle by Thursday, a blog post by Friday. The momentum feels like productivity. It may be, for the professor. For a PhD student two years into a thesis, it can feel like the ground is perpetually shifting.
The danger is not that the visions are false. It is that students absorb — implicitly, without anyone saying it — that finishing is less prestigious than imagining. That the real work of the lab happens at the frontier of speculation, and that the careful, slow, unglamorous work of implementation and validation is somehow secondary. This is a subtle tax on completion rates, and it falls hardest on the students who are temperamentally builders rather than theorists, which is most students.
I have to be honest with myself: I do not know with certainty that I have always avoided this. The Petri net post, the kinetic theory papers, the O-EPN trilogy (which is actually still undisclosed)— these are genuine intellectual commitments. But I cannot assume their excitement is equally distributed across the lab. For some of my students, each new horizon I announce may be one more reason to feel that where they are is not where the interesting things are happening.
What the antidote looks like
The solution is not to stop imagining. That would impoverish the science and, frankly, it is not something I am constitutionally capable of. The solution is to maintain two registers, strictly separated.
The first register is the frontier: blog posts, preprints, EGU talks, kinetic theories, Petri nets, variational frameworks. This is where I think out loud, and it should remain open and speculative and sometimes wrong.
The second register is the accountability register: what each student is finishing, by when, with what criteria for success. This register has to exist independently of where the frontier is pointing. If the Petri net vision shifts the direction of the lab in five years, fine. But Giulia's (an invented name) thesis on snow redistribution is due in eighteen months, and its completion conditions cannot migrate because I posted something exciting on a Tuesday.
The two registers must not contaminate each other. The blog can run ahead; the supervision contract cannot.
This also means I owe my students something explicit: a clear statement, periodically renewed, of what they are responsible for completing, in terms that do not depend on the broader vision landing. Not "your chapter on the kinetic theory will matter when the whole framework is published," but "your chapter is complete when it answers these three questions, and it will stand on its own regardless of what happens to the rest."
The asymmetry I have not yet named
There is a further complication I owe my students, and it sharpens the concern rather than resolving it.
What appears on this blog — the Petri net post, the kinetic theory papers — is not the full picture of what I am working on. There are deeper theoretical threads, more fundamental unifications, that I have deliberately kept undisclosed while they mature. Over the coming months I will begin to publish them. When I do, some of what my students have been building will suddenly acquire a context they could not have seen from inside it.
I want to be clear about why I work this way: ideas need to consolidate before they are exposed to the world. Posting a half-formed framework does more harm than good, both to the science and to the students who might try to build on it. The sequencing is intentional.
But I cannot pretend this creates no cost. When a student cannot see the architecture their work belongs to, they can feel they are assembling pieces of a puzzle whose picture has not been shown to them. That is not dishonesty — the picture is real, and it will be shown — but it is an asymmetry of information between supervisor and student that I have a responsibility to manage carefully. A Ponzi scheme exploits information asymmetry for extraction. A research program that is being disclosed in sequence is something different, but the asymmetry still creates a burden, and it falls on them, not on me.
What I owe, therefore, is not premature disclosure but enough of the map that each student can locate their work within it. Not the full territory — that is still being charted — but a reliable answer to the question: where does what I am doing sit, and why does it matter, even if I cannot yet see everything it connects to?
A note to my students, directly
If you are reading this and you work with me: the visions I post are real commitments, not performances. I believe the Petri net architecture will eventually be the right way to implement GEOframe components. I believe the kinetic theory will reshape how we think about unsaturated flow. And there are further things I am working toward that I have not yet posted, which will give additional context to work some of you are already doing. You will see them as they become ready.
But none of this means your work depends on my broader bets paying off. Each thesis, each paper, stands on its own — and if it does not, that is a failure of supervision, not a feature of ambitious science.
If you have ever felt that the horizon kept moving before you could reach it, or that you were building without knowing what you were building toward: tell me! That conversation is overdue, and it is one I should be initiating, not waiting for you to start.
The difference between a Ponzi scheme and a research program is that the research program is answerable to reality — and so is its supervisor.
For future working: A note for a comprehensive object oriented implementation of hydrological dynamical systems
NOt forgetting that this is very preliminary material, food for thinking, probably bugged material, please find:
ClosureEquation interface and a factory let you swap van Genuchten for
Brooks–Corey without disturbing a line of the solver. What I want to do here is take that same
philosophy and lift it from the one-dimensional soil column up to the whole topology
of a dynamical system, and the thing that makes it possible is an old friend.The friend is the Extended Petri Net. A hydrological dynamical system is one: storages are places, fluxes are transitions, and a third set of objects, the controllers, complete the causal wiring. Follow that picture all the way down into the software, and the thing every modeller secretly dreads — assembling, by hand, the system of equations to hand to a solver — almost disappears.
The grammar, and why "universal" is not a boast
Before the software, the picture. An EPN is drawn with a small, fixed vocabulary, and once you have it the claim of universality stops being rhetorical. A place is a circle, a transition a square; a square carrying a black dot is a driven input, the rain falling into the net; a dashed square is the outlet to the world. A diamond is a splitter, where one quantity divides into branches whose fractions sum to one — precipitation parting into snow and rain. A dotted circle is a collector, a summing junction with no storage of its own. And a little histogram marks a flux computed by convolution, a unit hydrograph. That is very nearly the whole alphabet.
Why believe it is enough? Because Marialaura, Anna De Nardi and I drew all forty-six models of the MARRMoT collection (Knoben et al., 2019) in exactly this vocabulary — Collie, GR4J, TOPMODEL, HBV, Sacramento, VIC, the Tank cascades, the whole zoo — and each one turns out to be just a different choice of places, fluxes and wiring. If a single alphabet spells every word in the dictionary, it is the right alphabet. The classes that follow are nothing more than this grammar given types.
One class of storages, many kinds of flux
The first thing the Petri-net view tells you is an asymmetry. A place is universal: it is a state variable whose time variation we study, and one storage is, as an object, exactly like another. A bucket of soil water, a snowpack, a channel reach — all of them are just \(S_i\) with a balance to satisfy. So in an object-oriented design, storages are a single class.
Fluxes are the opposite. A flux can be a known time series (a forcing), or a constitutive law that declares a mathematical form and a dependence on the state. So a transition wants to be an interface with concrete implementations — an external flux here, a Darcy-Buckingham law there, a power-law discharge somewhere else. Each flux knows two things that matter for what follows: where it moves mass (its source and target places) and which state variables it reads. Those two are not the same, and keeping them apart is the whole trick.
Once you take that seriously, the "many kinds of flux" become a small, nameable family. There is the external flux (a forcing) and the constitutive flux (a law of the state); the controller, a quantity derived from the state that gates a flux without carrying any mass; the splitter and the collector of the grammar above; the stoichiometric flux, one rate metered into several currencies, which we will need the moment evapotranspiration appears; and the convolution flux, the one transition that carries a memory. They all implement the same interface. The only place the software must be careful is with the threshold laws that conceptual models love — the \(\text{if } S>S_{\max}\), the \(\max(\cdot,0)\) — which are not differentiable at the kink; those enter in regularised form, the same medicine the soil-water retention curve already takes.
The two graphs
An EPN actually carries two graphs over the same nodes, and conflating them is, I think, why generic model engines so often turn into a tangle.
The first is the incidence graph — the Petri net proper. It records which flux moves water between which storages, and it is summarised by the incidence matrix \(\mathbf{C}\), with \(+1\) where a flux enters a storage and \(-1\) where it leaves. From it, the entire model collapses into one line:
\[ \frac{\mathrm{d}\mathbf{S}}{\mathrm{d}t} \;=\; \mathbf{C}\,\mathbf{Q}(\mathbf{S},t). \]That is conservation, and nothing more. The second graph is the causal one, directed on the storages alone: there is an arc from \(S_j\) to \(S_i\) whenever the equation for \(S_i\) contains a flux that reads \(S_j\). This is the graph that decides how the equations are coupled.
And here is where the controllers finally make sense. A controller is an arc that lives in the second graph but not in the first — a flux that is gated or modulated by some storage without any mass passing through that storage. The read arcs and inhibitor arcs of Petri-net theory. They carry no water, so they are absent from \(\mathbf{C}\); but they carry causation, so they are present in the dependency graph and therefore in the Jacobian. That is exactly what we mean when we say controllers "complete the causal structure of the model".
Assembling the system the solver can eat
If you want an implicit step — and for cyclically coupled, stiff budgets you almost always do — backward Euler turns the master equation into a residual,
\[ \mathbf{F}(\mathbf{S}^{\,n+1}) \;:=\; \bigl(\mathbf{S}^{\,n+1}-\mathbf{S}^{\,n}\bigr) -\Delta t\,\mathbf{C}\,\mathbf{Q}(\mathbf{S}^{\,n+1},t^{\,n+1}) \;=\; \mathbf{0}, \]and a Newton method needs its Jacobian,
\[ \mathbf{J} \;=\; \mathbf{I} \;-\; \Delta t\,\mathbf{C}\,\frac{\partial \mathbf{Q}}{\partial \mathbf{S}}. \]This is the passage people worry about: how do you build this nonlinear system automatically for an arbitrary model? The answer is that the structure is already in the objects. The sparsity of \(\partial\mathbf{Q}/\partial\mathbf{S}\) is just the list of dependencies each flux declared. So the assembler becomes a single scatter loop over the fluxes — exactly like assembling element matrices in a finite-element code. You walk the fluxes once; each one drops its value into the balance of its two endpoints and its derivative into the matching rows of the Jacobian. You never build \(\mathbf{C}\) or the flux Jacobian as dense matrices; they assemble themselves, entry by entry.
The derivatives I would get from automatic differentiation. If each flux
is written over a differentiable scalar (in Java, Hipparchus' DerivativeStructure),
one forward evaluation returns both the flux value and its partials. Concretely, a linear
reservoir is just
DerivativeStructure evaluate(AdContext ctx, double t) {
return ctx.value(from).divide(tau); // Q = S_from / tau
}
and the engine differentiates it for you. The consequence is the thing I actually care about: you write the physics once, per flux, and never again touch the solver. Adding a new constitutive law costs you its forward formula and nothing else.
Loops, sequences, and where the parallelism hides
There is one more gift in the causal graph. Run Tarjan's algorithm on it and you get its strongly connected components. A component with more than one storage is a loop — a knot of mutually dependent equations that has to be solved simultaneously. Every other component is a single equation that can be solved in turn. The graph of components is a DAG, and its topological order is simply the order in which to solve. In the algebra of the Jacobian this is a block-triangular structure; it is the same decomposition that equation-based modelling languages call BLT. And components sitting at the same level of that DAG do not depend on one another, so they can go to different threads. The parallelism was never something we had to impose — it was sitting in the dependency graph all along, waiting to be read off.
The solver, finally, gets to be ignorant. It sees only a residual, a Jacobian, and a starting guess. That is enough to let an off-the-shelf Newton–Raphson handle the easy blocks and a Nested Newton (Casulli–Zanolli) handle the monotone Richards-type ones — without either of them ever knowing what they are solving.
Is it efficient? Yes — but structurally
The natural worry is that all this generality must cost something at runtime. It does not, or rather, the cost lands exactly where it should. The only expensive operation — the implicit Newton solve — happens only inside the loops; the rest of the network, which is most of it, is cheap explicit updates. And the whole structural analysis — finding the loops, the solution order, the sparsity of the Jacobian — depends only on the graph, which never changes in time. So you do it once, at the start, and pay nothing more for it on the millions of timesteps that follow. The efficiency is not a clever trick in the inner loop; it is a consequence of letting the structure tell you where the hard work actually is. The one honest caveat is that you must respect that structure: solve everything monolithically and you throw the gift away. Couple only what is genuinely stiff, and let the rest run loose and parallel.
Net3, upgraded
This is where Francesco Serafin's Net3 comes in, and the fit is almost too neat — Net3 grew out of the same EPN picture. Net3 takes a model as a directed acyclic graph and runs it in parallel, which is wonderful for a river network (a tree is a DAG) but awkward for coupled dynamics, because coupling makes loops, and a DAG cannot hold a loop. The repair is the one move we already have: take each loop, each strongly connected component, and crush it into a single super-node whose insides are the simultaneous solve. The graph of super-nodes is a DAG again, and Net3 schedules it exactly as before. The coupled solving lives inside the node; the parallel routing lives between nodes. Net3 keeps doing what it is good at, and inherits the one thing it could not do.
Three budgets, one net — and the trouble with ET
The original EPN paper already hints that we might want to solve more than water: the energy budget, the carbon budget, all at once. The beauty is that the equation is the same, \(\dot{\mathbf{S}}_b = \mathbf{C}_b\,\mathbf{Q}_b\); only the meaning of the parameters changes. Water places hold storages, energy places hold internal energy, carbon places hold pools. What ties them together are the controllers — quantities derived from one budget's state that reach into another. Temperature, born of the energy budget, governs evapotranspiration in the water budget; soil moisture, born of the water budget, governs the thermal conductivity in the energy budget and the stomata in the carbon budget. Each of these is, once again, an arc that lives in the causal graph but in nobody's incidence matrix.
And then there is the genuinely awkward case, the one that makes the whole thing interesting: a single quantity that belongs to two budgets at once. Evapotranspiration is the textbook offender. It is a loss of water, at rate \(E\); it is also a loss of energy, at rate \(\lambda E\), the latent heat carried away. How do you stop the two budgets from quarrelling about how much of it happened?
The clean answer is to stop thinking of separate budgets and to write one net over all the currencies at once, letting the incidence matrix carry not just \(\pm 1\) but real stoichiometric coefficients. Then ET is a single column with an entry of \(-1\) in the water rows and \(-\lambda\) in the energy rows. You evaluate it once — it has one rate — and drop that one rate into both budgets, scaled appropriately. The consequence is the thing I find quietly satisfying: the latent heat is exactly \(\lambda\) times the water loss at every step of the iteration, not just at the end. The two budgets cannot disagree, because there is only one number. Conservation across currencies stops being something you check and becomes something the structure guarantees.
If you have ever wondered what Penman–Monteith really is, this is it. Penman solves for the surface temperature and the evaporation rate together, between the energy and the mass budgets — which is precisely solving one of these little coupled super-nodes with a shared ET column and a shared temperature controller. The multi-currency net is just Penman–Monteith let off its leash: the same closure, now for any number of budgets, solved numerically rather than by hand. And when all the controllers descend from a single free energy, the cross-couplings ought to be symmetric — Onsager reciprocity — which gives a quiet, structural way to check that the coupled model is thermodynamically honest.
Routing, travel times, and the unit hydrograph
One flux refuses to be memoryless, and it rewards a closer look, because its kernel is not arbitrary — it is a travel-time distribution. The instantaneous unit hydrograph carries the effective rainfall to the outlet by convolution, and the cleanest way to hold it is not the IUH \(f\) itself but its integral, the S-function
\[ s_f(T) \;:=\; \int_0^T f(y)\,\mathrm{d}y, \]which is, up to the catchment area, the cumulative distribution of travel times — the very residence-time object that runs through the age-ranked budget story (Rigon, Bancheri and Green, 2016). Write the discharge against travel time and a single rain record contributes differences of \(s_f\) over its own length; the records then simply superpose, because the routing is linear and time-invariant. That is the entire numerical recipe, worked out impulse by impulse in the illustrated guide (Rigon et al., 2022b; Rigon et al., 2016).
The interesting part is what the kernel's origin decides. A parametric hydrograph — an exponential, which is just a single linear reservoir; or a Nash cascade — reduces exactly to a little chain of reservoir places, so it folds back into the basic vocabulary and asks for no new type. A geomorphological hydrograph does not: the width function, read off a digital elevation model as the area of the catchment at each flow distance from the outlet and mapped to time by a velocity, gives \(s_f\) straight from the shape of the basin and is no finite chain of reservoirs. That is exactly why the convolution flux has to be a first-class citizen rather than sugar over a cascade. And the linearity is a genuine assumption: when the hydrograph changes shape with the storm — an event-specific GIUH — the kernel becomes a controller of the forcing, and the clean convolution gives way to the general, time-varying case.
There is a quiet bonus for anyone thinking of running the model in real time. Because each incoming rain record commits the discharge for the next several steps — water already fallen, travel times already fixed — the convolution hands you a short forecast for nothing, unmodifiable by rain that has not yet arrived. Feeding the engine live data is then only a matter of swapping the file behind a forcing for a streaming source; the engine never notices whether the rain fell last year or a minute ago.
Why I like this
What pleases me here is how much the architecture buys by simply refusing to mix two things up. Conservation lives in the incidence matrix. Causation lives in the dependency graph. The physics lives in the fluxes, written one at a time. And the assembler — the small piece of code that compiles all of it into a system of equations — is one loop. It is the kind of separation that, once you see it, makes you wonder why the equations ever felt like the hard part. They were never the hard part. The hard part was deciding what was a place, what was a flux, and what was only a controller.
And that, in the end, is the whole point of the kit. Every new model — a different catchment, a snow scheme, a coupled carbon budget — is a handful of new flux classes implementing the same interface, dropped into the same engine, solved by the same Newton. Nothing in the machinery changes; the machinery was closed to modification from the start. The code stays small not because we were clever line by line, but because we let the abstraction carry the weight. That is what generic programming promised for scientific computing, and it is satisfying to watch hydrology turn out to be such a natural place to collect on the promise.
References
Bancheri, M., Serafin, F., and Rigon, R. (2019). The Representation of Hydrological Dynamical Systems Using Extended Petri Nets (EPN). Water Resources Research, 55(11), 8895–8921. doi:10.1029/2019WR025099.
Berti, G. (2000). Generic Software Components for Scientific Computing. PhD thesis, BTU Cottbus. See also Berti, G. (2006), GrAL — the grid algorithms library, Future Generation Computer Systems, 22(1–2), 110–122.
Knoben, W. J. M., Freer, J. E., Fowler, K. J. A., Peel, M. C., and Woods, R. A. (2019). Modular Assessment of Rainfall–Runoff Models Toolbox (MARRMoT) v1.2: an open-source, extendable framework providing implementations of 46 conceptual hydrologic models as continuous state-space formulations. Geoscientific Model Development, 12, 2463–2480. doi:10.5194/gmd-12-2463-2019.
Rigon, R., Bancheri, M., Formetta, G., and de Lavenne, A. (2016a). The geomorphological unit hydrograph from a historical-critical perspective. Earth Surface Processes and Landforms, 41(1), 27–37. doi:10.1002/esp.3855.
Rigon, R., Bancheri, M., and Green, T. R. (2016b). Age-ranked hydrological budgets and a travel time description of catchment hydrology. Hydrology and Earth System Sciences, 20(12), 4929–4947. doi:10.5194/hess-20-4929-2016.
Rigon, R., Formetta, G., Bancheri, M., Tubini, N., D'Amato, C., David, O., and Massari, C. (2022a). HESS Opinions: Participatory Digital eARth Twin Hydrology systems (DARTHs) for everyone — a blueprint for hydrologists. Hydrology and Earth System Sciences, 26, 4773–4800. doi:10.5194/hess-26-4773-2022.
Rigon, R., Franceschi, S., Formetta, G., Bancheri, M., and Tubini, N. (2022b). An illustrated guide to IUH/GIUH estimation. Authorea preprint. doi:10.22541/au.164192110.08629205/v1.
Serafin, F. (2019). Enabling Modeling Framework with Surrogate Modeling Capabilities and Complex Networks (the Net3 subsystem). PhD thesis, University of Trento. See also Serafin, F., David, O., Carlson, J. R., Green, T. R., and Rigon, R. (2021), Environmental Modelling & Software, 146, 105231.
Tubini, N. and Rigon, R. (2022). Implementing the Water, HEat and Transport model in GEOframe (WHETGEO-1D v.1.0): algorithms, informatics, design patterns, open science features, and 1D deployment. Geoscientific Model Development, 15, 75–104. doi:10.5194/gmd-15-75-2022.
Sunday, May 31, 2026
PROMISE Project: A PROcess-based MountaIn permafrost Sensitivity indEx for the Euregio
PROMISE — PROcess-based MountaIn permafrost Sensitivity indEx — is our proposal to build one such tool for the Euregio Tyrol–South Tyrol–Trentino, led by Jan Beutel (UIBK), Andrea Andreoli (UNIBZ) and myself (UNITN), with Dominik Amschwand (UIBK) coordinating the scientific deliverables and John Mohd Wani (UNITN) leading the modelling effort. Stephan Gruber (Carleton) and colleagues from the Chinese Academy of Sciences accompany us as international partners.
| Photo by B Edmaier: https://www.facebook.com/B.Edmaier/posts/thawing-permafrost-due-to-global-warming-can-trigger-huge-landslides-like-yester/835248057961452/ |
The idea in one paragraph
Permafrost in mountains is not a uniform sheet of frozen ground that retreats upward as it warms. It is a mosaic — rock walls, talus cones, rock glaciers, ice-cored moraines, scree slopes — and each of these landforms transmits atmospheric warming to the deeper subsurface very differently. Some are buffers (an ice-rich rock glacier with a thick coarse-blocky active layer can stay cold for decades after the climate signal arrives); others are amplifiers (a steep, snow-poor rock wall couples almost directly to the air). PROMISE will produce, for the first time at regional scale in the European Alps, a thermal sensitivity index (thSI) that classifies the Euregio terrain along this buffer–amplifier axis, in the present and into the near future.
The thSI is not a permafrost distribution map. Distribution maps answer: where is permafrost likely to be present? The thSI answers a different and, today, more pressing question: where is the ground thermal regime most vulnerable to ongoing and future change?
Why now, and why this approach
There are precedents — but none for the Alps. Smith & Burgess (2004) built a semi-quantitative sensitivity index for the Canadian Arctic using the buffer-layer model of Luthin & Guymon. The Qinghai–Tibet community has produced beautiful regional assessments (Du et al. 2024 mapped the 1982–2020 trend in soil thermal conductivity, revealing a self-reinforcing degradation: as ground warms toward 0 °C, wetting raises STC, which raises heat flux, which accelerates thaw). But the QTP is a low-relief plateau with fine-grained soils. The Euregio is rugged terrain dominated by coarse-blocky debris, fractured bedrock and snow-driven microclimates. We need a landform-resolved approach.
Two findings from the recent literature anchor our framing:
- Preconditioning (Hauck & Hilbich 2024). A single hot-dry summer can permanently flip an ice-rich landform from buffered to sensitive: once meltwater drains, the latent-heat reservoir is gone and cannot be refilled. Climate sensitivity is not a static material property.
- Snow melt-out timing dominates over winter snow thickness for many high-elevation landforms. Once snow exceeds the ~0.6 m decoupling threshold, mid-winter variations matter little; what matters is the snow melt-out date (SMOD), after which the dark debris is exposed to the June sun (Amschwand et al. 2025b).
Both effects make a process-based, time-varying index essential. An empirical regression on today's climatology won't capture them.
The framework: thermal resistance of the snow–active-layer system
The thSI rests on a simple but physically grounded backbone. The heat transfer between atmosphere and permafrost is $Q = \Delta T / R_{tot}$, where the total thermal resistance is additive across the seasonal snow cover and the active layer:
$$ R_{tot} = R_{snow} + R_{AL} = \frac{h_{snow}}{k_{snow}} + \frac{h_{AL}}{\alpha_{eff} C_v} $$
A high (or rising) $R_{tot}$ means climate-robust terrain; a low (or falling) $R_{tot}$ means climate-sensitive terrain. The thSI is then a convex combination of $R_{tot}$ and its relative change with respect to a reference time. Continuous values are binned into four ordinal classes — low, moderate, high, very high sensitivity — following the spirit of Smith & Burgess (2004).
The trick is that none of the terms in $R_{tot}$ is a constant. $h_{snow}$ and $k_{snow}$ evolve through the season; $\alpha_{eff}$ in coarse blocks includes non-conductive transfer (subsurface airflow) and depends non-linearly on water/ice content. This is where physically based modelling enters.
The three pillars
PROMISE rests on three tightly coupled work packages.
WP1 — Ground truth (UNIBZ, Andrea Andreoli, Raul-David Șerban). Continuing the PERMAWAT line, the consortium extends the existing 32-site ground-surface-temperature network in Matsch and Schnals (with the iconic Lazaun rock glacier) by adding paired soil-moisture/temperature loggers, and instruments two new permanent permafrost boreholes at Hochebenkar / "Auf dem Grat" in the Rofental — the first permanent permafrost boreholes in Tyrol, filling a long-standing observational gap. From these data, the team derives the full battery of thermal indices (MAGST, FDD/TDD, frost number, zero-curtain, SOD/SDD, SCD, frost-cracking window, ALT, MAGT, dza), and uses the semi-empirical FROSTNUM model (Nelson & Outcalt 1987, updated by Cao et al. 2022) as a first-pass hot-spot screening.
WP2 — Numerical modelling (UNITN, with John Mohd Wani). The role of the Trento group is to convert atmospheric forcing into atmosphere–ground transfer functions using GEOtop 3.0, the process-based, three-dimensional land-surface model that solves the coupled mass and energy balance, the multi-layer snowpack, Richards-equation flow with freeze–thaw, and (where relevant) non-conductive subsurface heat transfer in coarse-blocky terrain (Zegers et al. 2025). Two complementary tracks:
- A point-scale 1D ensemble at the cluster centroids defined by the TopoSUB landscape clustering, designed to provide statistically independent samples across the predictor space and to feed both the per-terrain transfer functions and the ML upscaling.
- Distributed catchment simulations (one in Tyrol, one in South Tyrol, one in Trentino, at 50–100 m resolution) that serve as full-physics process diagnostics — quantifying how much lateral water and heat fluxes, slope-aspect contrasts and terrain heterogeneity matter for the transfer functions.
The 1D ensemble is calibrated against the WP1 thermal indices; the distributed runs use the WP3 snow-cover products as boundary conditions and provide the sanity check on what 1D necessarily misses.
WP3 — Upscaling (UIBK, with the new PhD student). Two preparatory products — terrain classification from sub-3-m DEMs and rock glacier inventories, and a pixel-wise SMOD trend analysis over the Euregio building on the 30-m Landsat product of Bayle et al. (2025) — feed into the final thSI map. We will explicitly test the hypothesis that SMOD trends dominate over $R_{snow}$ variability for most high-elevation landforms, by comparing alternative snow-cover descriptors in the GEOtop ensemble. The upscaling itself follows the TopoSUB hybrid statistical–process approach: cluster the landscape, simulate at centroids, map back to the full Euregio.
What's genuinely new
Three things, I think:
- Forward-looking, not descriptive. The thSI estimates rates of change, not present-day occurrence. It is meant to be read together with conventional permafrost distribution maps (Boeckli et al. 2012), not against them.
- Physics-grounded, not regression-fitted. Every grid cell of the final map is anchored, via the cluster centroid it belongs to, to a GEOtop simulation that explicitly resolves snow dynamics, freeze–thaw, and (where relevant) convective heat transfer in coarse blocks.
- A bridge between communities. Mountain permafrost research is, today, fragmented between detailed point-scale process studies (the Murtèl and Matterhorn traditions) and large-scale Arctic / QTP statistical assessments. PROMISE deliberately operates at the intermediate scale where the Alps actually live.
Caveats — what the thSI is not
This deserves emphasis. The thSI quantifies the thermal-conditioning component of permafrost vulnerability. It does not predict slope failures, rockfall release, or rock-glacier surges. Mechanical instability also depends on lithology, fracture geometry, glacial debuttressing, and meteorological triggers we do not model here. The thSI is meant to be added to — not to replace — the topographic, geological and geomorphological information already available to hazard assessors.
Wider context on this blog
For readers who want to follow the technical thread, the cryospheric work of the group is documented here in some detail:
- Summarizing my cryospheric work (made with good company) — the most recent overview, with all the relevant references.
- Permafrost is not ice — soil-freezing thermodynamics — slides and video on why frozen soil is a multiphase system and why proper models must carry three thermodynamic potentials.
- Freezing soil requires new algorithms — on the Newton–Casulli–Zanolli (NCZ) nested-Newton method that underpins our energy-conserving freezing-soil solver.
- Advances in permafrost modelling: application of the Nested Newton algorithm for solving the heat equation — the follow-up on Tubini, Gruber & Rigon (2021, The Cryosphere).
- New Insights in Permafrost modelling (EGU Wien 2017) — the earlier conceptual setup.
- Snow, Ice and Permafrost — the broader cryosphere framing with Alberto Bellin.
- Advanced Topics in Snow Hydrology — measurements, modelling, remote sensing — context on snow–permafrost interactions.
- All posts tagged Permafrost and Snow.
Timeline and acknowledgements
If funded (decision in March 2027), PROMISE will run May 2027 – April 2030. Field installations and the first GEOtop terrain-specific runs are scheduled for the first year; the snow-cover trend product and the first thSI metrics for the second; the final Euregio thSI map and the dissemination workshops for the third. Data and code will go out FAIR and open-source, through PANGAEA, the partners' geoportals, and the existing GEOtop/GEOframe GitHub repositories.
A warm thank you to Dominik Amschwand and Jan Beutel (UIBK), Andrea Andreoli and Raul-David Șerban (UNIBZ), John Mohd Wani (UNITN), and Stephan Gruber (Carleton), whose combined expertise on rock-glacier thermodynamics, wireless sensor networks, periglacial geomorphology, cryo-hydrological modelling and topographic downscaling makes this proposal possible.
Riccardo Rigon, with the PROMISE consortium.
TACOS Project: Redefining How We Map and Model Catchments Response
A few minutes before midnight on May 31, we submitted TACOS — Transferability of soil water process understanding Across sCales for flOod and shallow landSlide prediction — to the PRIN 2026 call (Prot. 2026P2HL9S). Five Research Units, 36 months, €1.49 M total budget, €1.19 M requested from MUR.
The question
How much does knowing the soil actually help us predict floods in small ungauged catchments and rainfall-induced shallow landslides — and at which spatial scales does that knowledge pay off?
The question sounds simple but is curiously unresolved. Operational frameworks for ungauged basins lean on climate, topography, and geology; soil tends to be either smoothed away or absorbed into calibration. Yet soil is the first interface water meets in the critical zone — its depth, layering, pore structure, macropore connectivity, hydraulic properties, and antecedent moisture decide whether intense rainfall infiltrates or runs off, and whether a slope holds or fails.
The idea: a data degradation experiment
The methodological heart of TACOS is straightforward to state, and (we believe) unusually clean. Hold the model fixed and progressively coarsen the soil inputs — high-resolution DSM from full field profiles (Scenario A) → national-scale soil databases (Scenario B) → global coarse products like SoilGrids (Scenario C) — then test the predictions against independent flood events and landslide inventories. Pre-declared metrics with a priori tolerances identify the soil-information ceiling: the coarsest scenario for which predictions remain reliable.
The point is not to demonstrate that better soil information is better — that's almost trivially true — but to find where the curve flattens. Where it does, expensive high-resolution soil mapping is not justified by predictive gains. Where it doesn't, it is. This is a decision rule public authorities can actually use to prioritise soil-monitoring investments.
Four knowledge gaps, four work packages
The project addresses four interlocking gaps:
KG1 — Hydrology-oriented soil mapping (WP2, led by RU_UniNA, F. Terribile). Existing maps were built for agronomy; their relevance for hydrological response has rarely been evaluated systematically. We re-derive uncertainty-aware soil classifications explicitly oriented toward hydrological behaviour, combining Sentinel-1/Sentinel-2/PRISMA, machine learning (Random Forest, Gradient Boosting, spatiotemporal Transformers), and targeted field campaigns.
KG2 — The scaling problem and the breakdown of continuum assumptions (WP3, led by RU_CNR, M. Rossi). Richards' equation works — until it doesn't. We investigate, experimentally and theoretically, the conditions under which preferential flow, macropore activation, and non-equilibrium effects overtake equilibrium-based formulations. The framework links flow-regime classification to a-priori-evaluable thresholds (soil type, antecedent moisture, rainfall intensity) that determine which governing equation enters the Scale-2 model.
KG3 — The soil-information ceiling (WP4, led by RU_UniPD, M. Borga). The data degradation experiment itself, run inside both hydrological (GEOframe, GEOtop, WHETGEO) and landslide-triggering (GEOtop-LFS, TRIGRS, SlideforMAP, LANDPLANER) frameworks.
KG4 — Regionalisation lacking pedologically meaningful storage (WP5, led by RU_PoliTO, P. Claps). Index-flood regionalisation across ~100 small catchments (FOCA / FOCA2), runoff-coefficient analysis via SEASONEX and SIREN, leave-one-region-out cross-validation with and without soil-derived covariates. If soil information does not reduce quantile error, we say so.
The pilot sites
We work across three nested scales:
- Scale 1 (pore → pedon → hillslope): laboratory infiltration experiments, X-ray microtomography (SkyScan 1273, 3.5 μm/voxel), tracer transport tests, and seasonal/interannual in-situ parameter monitoring.
- Scale 2 (hillslope → small basin): three pilot catchments spanning a useful range — Ressi (0.02 km², Italian pre-Alps; the long-term ecohydrological catchment of the Padova group), Sangone at Trana (145 km², mixed forest–agricultural), Cordevole at La Vizza (7 km², high-elevation Dolomitic). The Collazzone pilot area (Umbria, 90 km²) anchors the landslide work; Langhe (NW Italy, 600 km²) provides the statistical-benchmarking testbed via the 1994 widespread event.
- Scale 3 (regional → territorial): ~100 small catchments nationwide.
The team
The consortium pulls together complementary competences:
- RU_UniTN — R. Rigon, G. Formetta. Coordination, process-based modelling (GEOframe/GEOtop), hydrological connectivity, kinetic theory of unsaturated flow.
- RU_PoliTO — P. Claps (substitute PI), S. Tamea, P. Mazzoglio. Regional hydrology, flood frequency analysis, the FOCA and I²-RED national databases, regionalisation methodology.
- RU_UniNA — F. Terribile, G. Langella, N. Mzid. Pedology, Digital Soil Mapping, EO covariates, LANDSUPPORT legacy.
- RU_UniPD — M. Borga. Mountain basin response, debris flows, hillslope-to-channel transfer indices, geo-hydrological modelling.
- RU_CNR (IRPI / ISAFOM) — M. Rossi, M. Bancheri, R. De Mascellis, S. L. Gariano. Physical infiltration experiments, X-ray CT, shallow-landslide thresholds, preferential flow.
The five RUs commit 38.6 person-months of permanent-staff effort plus 11 new temporary contracts (~228 PM total).
What's next
If funded, TACOS would start in 2027. Either way, the proposal is now part of how I think about soil hydrology: not as a parameter to calibrate, but as an empirically measurable structural control whose value for prediction is a question we can settle by experiment rather than assertion.
The intellectual threads reach back through several conversations on this blog — DARTHs and participatory digital twins; the kinetic theory of unsaturated flow that replaces Richards' equation with a pore-occupancy distribution; the percolation-based reading of field capacity and macropore connectivity; the GEOframe ecosystem. TACOS is where these strands meet operational prediction in ungauged basins, with shallow landslides as the natural companion problem — same soil–water dynamics, different observable.
Thanks to the four co-PIs and their teams for the intense final weeks, and to the RETURN PNRR and AdBPo communities for the questions that made this proposal, in a real sense, write itself.
Monday, May 11, 2026
When the panel speaks: reading the STRADIVARI evaluation
A follow-up to "A double failure is a giant failure"
The convergent verdict: "incremental"
What was actually in the proposal that nobody saw
The four-pillar problem
The Giono problem, and credit to existing literature
And then: the Beven attribution
"I also have to note one surprising aspect: on page 3 (bottom), the formulation 'parameters as garbage collectors' is used with reference to a paper by Keith Beven. Interestingly, this term can not be found in that publication (or any other publication of Beven), but appears as a (made-up) quote when checking with ChatGPT."


