<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-18-8663-2025</article-id><title-group><article-title>Data-driven estimation of the hydrologic response using generalized additive models</article-title><alt-title>Data-driven estimation of watershed response</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" equal-contrib="yes" corresp="no" rid="aff1">
          <name><surname>Duchemin</surname><given-names>Quentin</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" equal-contrib="yes" corresp="no" rid="aff2">
          <name><surname>Zanoni</surname><given-names>Maria Grazia</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-5466-787X</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2 aff3">
          <name><surname>Floriancic</surname><given-names>Marius G.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-5108-4580</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Seybold</surname><given-names>Hansjörg</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-3793-1904</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Obozinski</surname><given-names>Guillaume</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3 aff4 aff5">
          <name><surname>Kirchner</surname><given-names>James W.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-6577-3619</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff6">
          <name><surname>Benettin</surname><given-names>Paolo</given-names></name>
          <email>paolo.benettin@unil.ch</email>
        <ext-link>https://orcid.org/0000-0001-7556-1417</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Swiss Data Science Center, ETH Zürich &amp; EPFL, Zürich &amp; Lausanne, Switzerland</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Department of Environmental Systems Science, ETH Zürich, Zürich, Switzerland</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Department of Civil, Environmental and Geomatic Engineering, ETH Zürich, Zürich, Switzerland</institution>
        </aff>
        <aff id="aff4"><label>4</label><institution>Swiss Federal Research Institute WSL, Birmensdorf, Switzerland</institution>
        </aff>
        <aff id="aff5"><label>5</label><institution>Department of Earth and Planetary Science, University of California, Berkeley, California, USA</institution>
        </aff>
        <aff id="aff6"><label>6</label><institution>Institute of Earth Surface Dynamics (IDYST), Faculty of Geosciences and Environment, Université de Lausanne, Lausanne, Switzerland</institution>
        </aff><author-comment content-type="econtrib"><p>These authors contributed equally to this work.</p></author-comment>
      </contrib-group>
      <author-notes><corresp id="corr1">Paolo Benettin (paolo.benettin@unil.ch)</corresp></author-notes><pub-date><day>17</day><month>November</month><year>2025</year></pub-date>
      
      <volume>18</volume>
      <issue>22</issue>
      <fpage>8663</fpage><lpage>8678</lpage>
      <history>
        <date date-type="received"><day>4</day><month>April</month><year>2025</year></date>
           <date date-type="rev-request"><day>25</day><month>April</month><year>2025</year></date>
           <date date-type="rev-recd"><day>30</day><month>September</month><year>2025</year></date>
           <date date-type="accepted"><day>11</day><month>October</month><year>2025</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2025 Quentin Duchemin et al.</copyright-statement>
        <copyright-year>2025</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025.html">This article is available from https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e176">Estimating the hydrologic response of watersheds to precipitation events is key to understanding streamflow generation processes. Impulse Response Functions, commonly referred to as the Instantaneous Unit Hydrograph (IUH) in hydrology, have been used for over 50 years to predict stormflow and compare catchment behaviors. These response functions are often strongly affected by modelers' choices of parameters and data preprocessing procedures, limiting their diagnostic utility and generalizability across different sites and time periods. With the increasing availability of compiled rainfall-runoff series, there is now a growing opportunity to develop new approaches that fully exploit such datasets. This paper introduces GAMCR, a novel data-driven approach that employs Generalized Additive Models (GAM) to estimate time-dependent Catchment Responses (CR). GAMCR is designed to capture the complex, nonlinear relationships between precipitation and runoff, offering a flexible and interpretable framework for the systematic analysis of hydrological responses. The model is successfully validated on synthetic data, where the true response functions are known. Additionally, we demonstrate the model's potential using observed data from six Swiss basins with distinct hydrological behaviors. Results are fully consistent with those obtained from ERRA, another recent data-driven approach with a very different architecture, as well as with the climate and physical properties of the sites. Overall, GAMCR is a modern and effective tool for leveraging rainfall-runoff datasets to investigate the controls on hydrologic responses in small to midsize basins under conditions similar to those studied here, and it provides a framework that can be further explored in other climatic and physiographic settings in future research.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Swiss Data Science Center</funding-source>
<award-id>C21-09</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e188">Precipitation is generally the main water input to a landscape and the fundamental driver of streamflow generation. Quantifying how much streamflow is produced after a rain event is essential for water resources management and flood prevention, and is also useful to characterize watershed behavior. The hydrologic response (or runoff response) is usually defined as the change in streamflow induced by a given input of precipitation <xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx14 bib1.bibx17" id="paren.1"/>. Years of tracer studies have clarified that, apart from rare exceptions, such a response does not primarily consist of water that fell as precipitation during the same event, but rather by water already existing in the landscape (in the form of soil water and groundwater) that is quickly mobilized during the storm <xref ref-type="bibr" rid="bib1.bibx16 bib1.bibx23 bib1.bibx3 bib1.bibx30 bib1.bibx13 bib1.bibx18" id="paren.2"/>. The hydrologic response can be interpreted as reflecting the celerity with which increases in hydraulic potentials, induced by the new precipitation, propagate through the subsurface <xref ref-type="bibr" rid="bib1.bibx21" id="paren.3"/>. Thus, stream water is generally much ”older” than the most recent rainfall <xref ref-type="bibr" rid="bib1.bibx22" id="paren.4"/>, although it may respond within minutes after the onset of precipitation.</p>
      <p id="d2e203">The hydrologic response is a fundamental catchment signature, but its estimation is not straightforward, because catchment behavior is often nonlinear and nonstationary, meaning that the effects of precipitation inputs are not simply additive, and the same rain can generate different hydrological responses, depending on when it falls  <xref ref-type="bibr" rid="bib1.bibx15 bib1.bibx2" id="paren.5"/>. The first approaches to characterize the hydrologic response came from the need to make streamflow predictions for engineering design. These approaches were based on instantaneous unit hydrographs <xref ref-type="bibr" rid="bib1.bibx27" id="paren.6"><named-content content-type="pre">IUH,</named-content></xref>, analogous to the concepts of impulse response functions or transfer functions in signal processing, which are probability density functions describing how impulses of precipitation are transformed into runoff. The IUH has been typically modeled as a parametric curve like a Gamma or Weibull distribution. To cope with the complexities of runoff generation processes, the classic IUH approaches rely heavily on the concept of effective rainfall (or rainfall excess, <inline-formula><mml:math id="M1" display="inline"><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), which is the fraction of rainfall that effectively mobilizes runoff. The effective rainfall is typically modeled as a (nonlinear) function of antecedent wetness <xref ref-type="bibr" rid="bib1.bibx29" id="paren.7"><named-content content-type="pre">e.g. through the popular SCS Curve Number approach,</named-content></xref> and acts as a filter that separates the rainfall volumes that effectively produce runoff from those that evaporate or that recharge subsurface storage. The IUH is then assumed to be linear and time-invariant, enabling the use of standard convolution approaches to compute streamflow <inline-formula><mml:math id="M2" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> from an effective precipitation time series. The IUH theory, pioneered by the work of <xref ref-type="bibr" rid="bib1.bibx27" id="text.8"/> and further developed by <xref ref-type="bibr" rid="bib1.bibx28" id="text.9"/> and by <xref ref-type="bibr" rid="bib1.bibx5" id="text.10"/>, provided an effective and structured way to represent the relationship between (effective) rainfall and runoff. Several advances to IUH theory have been made over the years, including linking the IUH shape with basins' geomorphological properties <xref ref-type="bibr" rid="bib1.bibx26" id="paren.11"><named-content content-type="pre">see</named-content></xref>. The IUH approach is also popular for teaching the rainfall-runoff transformation in many engineering programs <xref ref-type="bibr" rid="bib1.bibx20" id="paren.12"/>.</p>
      <p id="d2e255">Although IUH approaches are often successful at reproducing stormflow hydrographs, they typically require pre-processing steps to estimate effective precipitation, and to separate the hydrograph into stormflow vs. baseflow. These pre-processing steps limit the diagnostic capability of the IUH and its generality for comparing different sites and time periods. Rainfall-runoff data from hundreds of watersheds worldwide is increasingly available in harmonized databases that facilitate modeling and cross-site comparisons <xref ref-type="bibr" rid="bib1.bibx19 bib1.bibx6" id="paren.13"><named-content content-type="pre">e.g.</named-content></xref>. These emerging datasets create the possibility to characterize hydrological responses from many diverse watersheds, and thus to better understand their controlling factors. To characterize hydrological response without the constraints inherent in the IUH approach, <xref ref-type="bibr" rid="bib1.bibx14" id="text.14"/> proposed a data-driven approach for estimating impulse response functions that account for nonlinear, nonstationary and heterogeneous system behavior. This approach was further developed for rainfall-runoff data and termed ensemble rainfall-runoff analysis, or ERRA <xref ref-type="bibr" rid="bib1.bibx15" id="paren.15"/>.  Although the ERRA approach shows considerable promise (e.g. <xref ref-type="bibr" rid="bib1.bibx9" id="text.16"/>), it is worth considering whether other approaches can be developed to exploit the power of machine learning for innovative explorations of hydrological response.</p>
      <p id="d2e272">Building on these advancements and on the widespread availability of rainfall-runoff data, here we introduce GAMCR, a data-driven approach that employs Generalized Additive Models (GAM) to estimate time-dependent Catchment Responses (CR). We present the general model architecture and provide a series of synthetic and observed data examples to: (1) validate GAMCR and compare its performance with the ERRA approach, and (2) showcase the model's potential to estimate hydrological response at diverse watersheds, characterized by diverse properties and behaviors. Differently from ERRA, GAMCR aims to estimate the hydrologic response to each individual precipitation event using combinations of spline basis functions, with coefficients determined through machine learning techniques. This approach, though requiring to fit Generalized Additive Models, allows for greater flexibility since additional information (e.g., temperature, dam operations, or site-specific characteristics) can be incorporated into the model. The goal of GAMCR is to facilitate systematic comparisons of hydrological responses across sites where precipitation-runoff time series are available.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Model development</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>General convolution model</title>
      <p id="d2e290">According to the classic convolution integral, streamflow <inline-formula><mml:math id="M3" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> is computed as the convolution of precipitation <inline-formula><mml:math id="M4" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> with the stationary hydrologic response IUH, which in continuous time is expressed as:

            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M5" display="block"><mml:mrow><mml:mi>Q</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi mathvariant="normal">∞</mml:mi></mml:munderover><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">IUH</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="italic">τ</mml:mi></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e356">Here we use a discrete-time approximation to Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), generalized to allow the IUH to vary with time:

            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M6" display="block"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M7" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> is the output flux (i.e., streamflow) at time <inline-formula><mml:math id="M8" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M9" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> is the input flux (i.e., precipitation) <inline-formula><mml:math id="M10" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> time steps earlier (i.e., at time <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula>), and <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is a time-variable and non-unitary response function that reflects the streamflow response to precipitation falling at time  <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula>, as a function of lag time <inline-formula><mml:math id="M14" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>. The dependence of <inline-formula><mml:math id="M15" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> on the precipitation time <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula> incorporates any dependence on internal and external forcings, such as precipitation intensity and wetness conditions at the time that rain falls.</p>
      <p id="d2e525">At this stage we make very few assumptions about the shape that <inline-formula><mml:math id="M17" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> can take. It is not a probability density function, meaning that its area can be smaller or larger than one. While in principle <inline-formula><mml:math id="M18" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> can take negative values (if this is what the system under consideration does, and is reflected in its data), we will assume that <inline-formula><mml:math id="M19" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is always non-negative (see Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>). By design, <inline-formula><mml:math id="M20" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> refers to the response to precipitation falling over a specific time step <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula>. Any two time steps are generally expected to initiate different responses, but Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) is obviously ill-posed because the array <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> contains many more unknowns than can be constrained by the vectors <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Thus it is necessary to evaluate  <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> as an average over one or more ensembles of time steps (for example during which the precipitation intensity or antecedent wetness is within a given range).  In particular, the ensemble responses introduced by <xref ref-type="bibr" rid="bib1.bibx15" id="text.17"/> can be readily obtained in a post-processing step. Given an ensemble of time points <inline-formula><mml:math id="M26" display="inline"><mml:mi mathvariant="script">E</mml:mi></mml:math></inline-formula>, the Runoff Response Distribution (RRD, units of <inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula>) is the average response weighted by precipitation intensity <inline-formula><mml:math id="M28" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> over the selected time points <inline-formula><mml:math id="M29" display="inline"><mml:mi mathvariant="script">E</mml:mi></mml:math></inline-formula>:

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M30" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="normal">RRD</mml:mi><mml:mi mathvariant="script">E</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>:=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>∈</mml:mo><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:msub><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mo>∑</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>∈</mml:mo><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:msub><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          (where <inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></inline-formula> represents the time that precipitation falls), while the Nonlinear Response Function (NRF, units L/T<sup>2</sup>) is the average response multiplied by the corresponding precipitation intensity:

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M33" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="normal">NRF</mml:mi><mml:mi mathvariant="script">E</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>:=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="script">E</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>∈</mml:mo><mml:mi mathvariant="script">E</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>GAMCR model</title>
      <p id="d2e873">GAMCR is a machine learning model that estimates transfer functions from flux data. GAMCR models the catchment's response to any single precipitation event as a weighted sum of spline basis functions. The time-varying coefficients of these basis functions are estimated using machine learning techniques, specifically Generalized Additive Models. As a result, we use more technical language in this section and the next, drawing terminology from the data science literature.</p>
      <p id="d2e876">The problem of learning time-dependent transfer functions from rainfall-runoff data is ill-posed, meaning that considering a too large model class might result in zero training loss but with poor test error. In the machine learning community, the standard approach to cope with such badly conditioned inverse problems is to exploit prior knowledge on the structure of the studied system to either shrink the class of target functions or to regularize the optimization problem <xref ref-type="bibr" rid="bib1.bibx1" id="paren.18"/>. Following this approach, GAMCR is built on three core principles. <list list-type="order"><list-item>
      <p id="d2e884">First, GAMCR specifies a set of features that are assumed to be the main drivers of the catchment response to a given precipitation event. These features can be modified by the user if needed and should typically include information characterizing the catchment condition and the precipitation event considered.</p></list-item><list-item>
      <p id="d2e888">Second, we assume that the catchment response to a precipitation event will vary smoothly as a function of this feature vector, a structural assumption similar to the one implicitly used in the approach by <xref ref-type="bibr" rid="bib1.bibx14" id="text.19"/>. This means we expect similar feature vectors to produce similar hydrologic responses.</p></list-item><list-item>
      <p id="d2e895">Third, we expect the transfer functions, <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>↦</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, to exhibit sharp peaks for short time lags, that progressively smooth out as the lag time <inline-formula><mml:math id="M35" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> increases.</p></list-item></list></p>
      <p id="d2e930">With these guiding principles, we model the transfer functions as follows:

            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M36" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:munderover><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are B-splines constructed by considering an irregular spacing of knots, <inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is a feature vector describing both the catchment conditions and the precipitation event at time <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a GAM. The basis functions <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are illustrated in Fig. <xref ref-type="fig" rid="F1"/>, highlighting that the knot density is much higher for shorter lags, while the knots become more spaced out for longer lags. This design enables the model to capture the large variability of the transfer functions at short lags, while still accounting for potentially long recessions. The feature vectors <inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> used in GAMCR are the intensity of the precipitation event at time <inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, the weighted averages of both the past precipitation and the past evapotranspiration over different time windows, and the sine and cosine of the fractional year.</p>

      <fig id="F1"><label>Figure 1</label><caption><p id="d2e1117">Overview of GAMCR. Given some precipitation event of interest occurring at time <inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, GAMCR computes a feature vector <inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> including information on the system up to time <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>. The response function is expressed as a weighted sum of spline basis functions, <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:msub><mml:mo mathsize="1.1em">)</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, where the weights are derived from <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> through <inline-formula><mml:math id="M49" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> distinct Generalized Additive Models <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo><mml:msub><mml:mo mathsize="1.1em">)</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f01.png"/>

        </fig>

      <p id="d2e1246">Since we model the functions <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> using GAMs, one can write

            <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M52" display="block"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mo>⊤</mml:mo></mml:msubsup><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mo>⊤</mml:mo></mml:msubsup><mml:msub><mml:mo>)</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the design matrix of the GAM. Each entry of <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> corresponds to one of the spline basis functions evaluated at a given feature (i.e. a specific entry of <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>). We have:

            <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M56" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:munderover><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>⊤</mml:mo></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mo>:</mml:mo></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mover><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mi>t</mml:mi><mml:mo>⊤</mml:mo></mml:msubsup><mml:mover><mml:mi mathvariant="italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mo>:=</mml:mo><mml:mi mathvariant="normal">vec</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mover><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mi>t</mml:mi></mml:msub><mml:mo>:=</mml:mo><mml:mi mathvariant="normal">vec</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mo>:</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> given by <inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:mi mathvariant="bold">W</mml:mi><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mi>L</mml:mi><mml:mo>×</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> such that:

            <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M60" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mo>:</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the number of features resulting from the GAM formulation.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Model training</title>
      <p id="d2e1720">With GAMs we can encode prior knowledge and control overfitting by using penalties and constraints during training. In our case, we consider two smoothness-inducing penalties. The first one promotes the smoothness of the functions <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by penalizing the second order derivative, as commonly done in the GAM literature (see <xref ref-type="bibr" rid="bib1.bibx12" id="altparen.20"/>). This penalty ensures that the coefficients of the transfer functions in the basis <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> smoothly evolve with respect to the catchment features <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. This penalty acts on the <inline-formula><mml:math id="M65" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> time-dependent coefficients of the transfer functions in the basis <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> independently. The second regularization term promotes the smoothness of the transfer functions globally by adding a similar penalty on the model coefficients.</p>
      <p id="d2e1797">The final optimization problem considered is:

            <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M67" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:munder><mml:mo movablelimits="false">min⁡</mml:mo><mml:mrow><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:msub><mml:mo mathsize="1.1em">)</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mi>L</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="bold">W</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mo>:</mml:mo></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:msup><mml:mo mathsize="1.1em">)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>L</mml:mi></mml:munderover><mml:msubsup><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>⊤</mml:mo></mml:msubsup><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>≤</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mo>⊤</mml:mo></mml:msubsup><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo mathsize="1.1em">[</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="bold">2</mml:mn></mml:msub><mml:msub><mml:mo mathsize="1.1em">]</mml:mo><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mo>⊤</mml:mo></mml:msubsup><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          which can be equivalently written using a vectorized formulation as:

            <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M68" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">min⁡</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mover><mml:mi mathvariant="bold-italic">w</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mi>t</mml:mi><mml:mo>⊤</mml:mo></mml:msubsup><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:msup><mml:mo mathsize="1.1em">)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mo>⊤</mml:mo></mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msubsup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:mfenced><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where, denoting by <inline-formula><mml:math id="M69" display="inline"><mml:mo>⊗</mml:mo></mml:math></inline-formula> the Kronecker product between two matrices we have defined

            <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M70" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msubsup><mml:mo>:=</mml:mo><mml:msub><mml:mi mathvariant="normal">Id</mml:mi><mml:mi>L</mml:mi></mml:msub><mml:mo>⊗</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mtext>and</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msubsup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msubsup><mml:mo>:=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>⊗</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msubsup><mml:mi mathvariant="bold-italic">ξ</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mo>⊤</mml:mo></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e2274">Provided that the hyperparameters <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are not both zero, the optimization problem Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>) has a strongly convex objective function with convex constraints. As a result, it admits a unique optimal solution, and the projected gradient descent algorithm is guaranteed to converge to this solution provided that the learning rate is set small enough (cf. <xref ref-type="bibr" rid="bib1.bibx4" id="altparen.21"/>). For all experiments, we used <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> (we refer to Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/> for further details). In practice, the parameters <inline-formula><mml:math id="M75" display="inline"><mml:mover><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mo>→</mml:mo></mml:mover></mml:math></inline-formula> are initialized by solving the unconstrained version of the problem, which involves computing the minimum <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msup><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>-norm solution via the pseudoinverse of a matrix. This initial solution is then projected onto the positive orthant, after which the projected gradient descent algorithm is applied. The learning rate starts at a large value (namely <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) and is gradually and adaptively reduced throughout the iterations to ensure a strict decrease in training loss at each step.</p>
      <p id="d2e2378">The matrix <inline-formula><mml:math id="M78" display="inline"><mml:mi mathvariant="bold">W</mml:mi></mml:math></inline-formula> is precomputed offline prior to running the projected gradient descent algorithm, and parallel computation can be employed to obtain <inline-formula><mml:math id="M79" display="inline"><mml:mi mathvariant="bold">W</mml:mi></mml:math></inline-formula> quickly. This precomputation significantly accelerates the training process by eliminating redundant calculations.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Software GAMCR v1.0 description</title>
      <p id="d2e2403">The model developed in Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/> has been implemented in the Python language as the software GAMCR v1.0. The code is publicly available on Zenodo <xref ref-type="bibr" rid="bib1.bibx7" id="paren.22"/>, and a detailed online tutorial <uri>https://quentin-duchemin.github.io/GAMCR/tutorials/</uri> (last access: 30 September 2025) is provided to guide users through usage and reproducibility steps. To use GAMCR, the user must provide time series of precipitation, streamflow, potential evapotranspiration and the corresponding dates and times at equally spaced time intervals. The software operates in a series of steps to ensure accurate and efficient analysis. First, users can use a pre-defined notebook to ensure that their data has the proper format (e.g. column names that conform to the software's requirements). Next, a predefined script is run to perform key precomputations, including the calculation of the matrix <inline-formula><mml:math id="M80" display="inline"><mml:mi mathvariant="bold">W</mml:mi></mml:math></inline-formula>, which significantly enhance the efficiency of the model training process. These precomputations are completed within a few seconds to a few minutes on a standard laptop for a decade of hourly data. Once these precomputations are completed, users can proceed to train the GAMCR model on their dataset. Let us stress once again that the number of basis functions <inline-formula><mml:math id="M81" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> used by the model is automatically computed based on the maximum lag <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>. With <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M84" display="inline"><mml:mn mathvariant="normal">10</mml:mn></mml:math></inline-formula> or <inline-formula><mml:math id="M85" display="inline"><mml:mn mathvariant="normal">15</mml:mn></mml:math></inline-formula> d the model uses 6, 7 or 8 basis functions, respectively. After the model has been trained, users can launch another predefined script to compute key statistics of interest, such as the NRFs over predefined ensembles (such as different precipitation quantiles) and the RRD. These results are automatically saved for further analysis. A detailed tutorial is provided in the online documentation of the GAMCR package, where users can reproduce the results of this paper for the Euthal catchment. The tutorial offers a step-by-step explanation of each stage, equipping users with the necessary tools to apply GAMCR effectively to their own datasets. Overall, GAMCR can be efficiently used on personal laptops, with model training on 20 years of hourly data typically taking around 30 min for <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> d.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Model testing</title>
      <p id="d2e2493">Developing strategies to rigorously quantify the performance of trained machine learning models is essential. In the case of the hydrologic response, the evaluation step is particularly important because impulse response functions cannot be measured directly, and the model is trained on streamflow data only <xref ref-type="bibr" rid="bib1.bibx10 bib1.bibx21 bib1.bibx14" id="paren.23"/>.</p>
      <p id="d2e2499">Below, we describe two datasets that serve two different purposes. A synthetic dataset (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>) is used to validate the model, because the estimated response can be compared against the benchmark “ground truth” response, which is exactly known (unlike in real-world catchments). An observed dataset (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>), which includes measurements from six diverse catchments across Switzerland, is used to showcase how the model can be used to estimate the hydrologic response at different locations.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Synthetic data and model validation strategy</title>
<sec id="Ch1.S3.SS1.SSS1">
  <label>3.1.1</label><title>Generation of Synthetic Data</title>
      <p id="d2e2520">The synthetic dataset was generated using precipitation and air temperature measurements available from the Federal Office of Meteorology and Climatology (MeteoSwiss) for the station of Lugano, along with streamflow data from the nearby gauging station Chiasso, Ponte di Polenta, on the Breggia River. These measurements were used to calibrate a lumped nonlinear and nonstationary conceptual model (Sect. S2), allowing us to create a synthetic streamflow time series (40 years at hourly resolution) that realistically reflects observed dynamics (case A) without aiming for exact replication. To explore different hydrological responses, we adjusted the model parameters to represent both a more damped (case B) and a more flashy (case C) hydrologic system. By working with these synthetic yet realistic datasets, we can rigorously assess the model's performance, because the underlying mechanisms are exactly known and the data are free from disturbances such as dams, hydropeaking, or leakages. Details of the approach employed in the model and the parameters used are provided in Sect. S2.</p>
      <p id="d2e2523">The generated synthetic time series are shown in Fig. <xref ref-type="fig" rid="F2"/> over an example 4-month period. The figure shows clearly that, compared to the reference streamflow series (case A), the damped series (case B) has lower peaks and longer recessions, while the flashy series (case C) has higher peaks and similar recessions. The data also clearly show the nonlinearity and nonstationarity of hydrologic systems, as some precipitation events cause almost no streamflow response (e.g. in June 2010) while others may cause a sharp response (e.g. in late August 2010).</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e2530">Example of the synthetic streamflow time series (for snow-free months in 2010): case A is the reference (orange curve); case B is a more damped response (purple curve), with lower peaks and longer recessions; case C is a flashier response with higher peaks (green curve). Additionally, the Lugano precipitation time series is shown (light blue curve) with an inverted <inline-formula><mml:math id="M87" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> axis for comparison.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f02.png"/>

          </fig>

      <p id="d2e2547">To compute the response functions for the synthetic data (ground-truth response), we simply ran the lumped hydrological model as many time as there were time steps with nonzero precipitation. In every simulation, we masked a different time step by setting its precipitation to zero. The hydrologic response to precipitation occurring on a specific time step was then computed as the difference between the modeled series with and without precipitation over that time step. This approach provides responses for each event individually, which can be aggregated to compute ensemble responses over e.g. particular periods, precipitation events or antecedent conditions.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS2">
  <label>3.1.2</label><title>Model validation strategy</title>
      <p id="d2e2558">For each of the three synthetic study cases, GAMCR was trained, and hydrologic responses were computed from the trained model as NRFs aggregated over six precipitation-intensity quantiles. Validation was performed by comparing the GAMCR predictions the corresponding aggregated ground-truth NRFs from the synthetic datasets. We also compared our estimates with those derived from ERRA. Detailed results of the validation are presented in Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Real-world data</title>
      <p id="d2e2572">We compiled a 15-year record (2005–2019) of measured, hourly precipitation-runoff data from six Swiss watersheds (Fig. <xref ref-type="fig" rid="F3"/>). The data from the first 13 years were used for model training, while the final two years of data (2018 and 2019) served as the test period. Streamflow time series were provided by the Federal Office for the Environment (FOEN). Precipitation data were sourced from the `CombiPrecip' product, developed by MeteoSwiss (<xref ref-type="bibr" rid="bib1.bibx24" id="altparen.24"/>). Potential evapotranspiration time series were computed based on air temperatures provided by MeteoSwiss, through the Hargreaves method from <xref ref-type="bibr" rid="bib1.bibx11" id="text.25"/> (implemented through the Python Pyeto package <uri>https://github.com/woodcrafty/PyETo</uri>, last access: 30 September 2025) and then uniformly distributed across each day at hourly intervals. At each site we also extracted key catchment attributes and hydrological statistics (Tables <xref ref-type="table" rid="T1"/> and <xref ref-type="table" rid="T2"/>) and computed the mean monthly precipitation, streamflow, potential evapotranspiration over the study period (Fig. <xref ref-type="fig" rid="F4"/>), and the flow duration curve for the snow-free period (Fig. <xref ref-type="fig" rid="F5"/>). We selected these sites because of their diversity in hydrological regimes, elevation and soil depths, which we expect will be reflected in substantially different hydrologic responses. Additional criteria included minimal glacier influence, natural flow regimes (no dams or major abstractions), and complete, reliable data records. The sites have comparable size (between 34–185 km<sup>2</sup>), which classifies them as small to small/medium basins. Further catchment characteristic analyses appear in Sect. S1 in the Supplement.</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e2606">Map of Switzerland showing the six catchments analyzed, along with their corresponding gauging stations (listed on the left with the river names in brackets). Each catchment is displayed in a separate plot for a detailed view of its dimensions and elevation ranges. Numbers mark the catchments' locations within Switzerland and can be seen on the map in the center. The sixth gauging station (Chiasso, Ponte di Polenta) also provided the streamflow time series used to create the synthetic dataset with precipitation data from Lugano.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f03.png"/>

        </fig>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e2618">Overview of the gauging stations and their catchment features: associated river; mean elevation; mean slope; area; mean soil depth; mean permeability.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Station</oasis:entry>
         <oasis:entry colname="col2">River</oasis:entry>
         <oasis:entry colname="col3">Mean Alt.</oasis:entry>
         <oasis:entry colname="col4">Mean Slope</oasis:entry>
         <oasis:entry colname="col5">Area</oasis:entry>
         <oasis:entry colname="col6">Mean soil</oasis:entry>
         <oasis:entry colname="col7">Mean permeability</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3">(m a.s.l.)</oasis:entry>
         <oasis:entry colname="col4">(°)</oasis:entry>
         <oasis:entry colname="col5">(km<sup>2</sup>)</oasis:entry>
         <oasis:entry colname="col6">depth (cm)</oasis:entry>
         <oasis:entry colname="col7">(cm d<sup>−1</sup>)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Sonceboz</oasis:entry>
         <oasis:entry colname="col2">Suze</oasis:entry>
         <oasis:entry colname="col3">1036.95</oasis:entry>
         <oasis:entry colname="col4">14.77</oasis:entry>
         <oasis:entry colname="col5">127.25</oasis:entry>
         <oasis:entry colname="col6">49.12</oasis:entry>
         <oasis:entry colname="col7">72.09</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Euthal, Rüti</oasis:entry>
         <oasis:entry colname="col2">Minster</oasis:entry>
         <oasis:entry colname="col3">1346.91</oasis:entry>
         <oasis:entry colname="col4">22.20</oasis:entry>
         <oasis:entry colname="col5">59.13</oasis:entry>
         <oasis:entry colname="col6">33.87</oasis:entry>
         <oasis:entry colname="col7">54.27</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Salmsach, Hungerbühl</oasis:entry>
         <oasis:entry colname="col2">Aach</oasis:entry>
         <oasis:entry colname="col3">472.47</oasis:entry>
         <oasis:entry colname="col4">3.42</oasis:entry>
         <oasis:entry colname="col5">47.38</oasis:entry>
         <oasis:entry colname="col6">69.57</oasis:entry>
         <oasis:entry colname="col7">52.22</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Lavertezzo, Campiòi</oasis:entry>
         <oasis:entry colname="col2">Verzasca</oasis:entry>
         <oasis:entry colname="col3">1655.71</oasis:entry>
         <oasis:entry colname="col4">38.49</oasis:entry>
         <oasis:entry colname="col5">185.12</oasis:entry>
         <oasis:entry colname="col6">17.16</oasis:entry>
         <oasis:entry colname="col7">81.56</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Magliaso</oasis:entry>
         <oasis:entry colname="col2">Magliasina</oasis:entry>
         <oasis:entry colname="col3">928.25</oasis:entry>
         <oasis:entry colname="col4">28.44</oasis:entry>
         <oasis:entry colname="col5">34.38</oasis:entry>
         <oasis:entry colname="col6">29.44</oasis:entry>
         <oasis:entry colname="col7">96.77</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Chiasso, Ponte di Polenta</oasis:entry>
         <oasis:entry colname="col2">Breggia</oasis:entry>
         <oasis:entry colname="col3">934.40</oasis:entry>
         <oasis:entry colname="col4">33.21</oasis:entry>
         <oasis:entry colname="col5">47.10</oasis:entry>
         <oasis:entry colname="col6">20.87</oasis:entry>
         <oasis:entry colname="col7">75.98</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e2871">Overview of the gauging stations, their hydrological regime type, and key hydrological statistics: snow-free months considered in the study; 10th, 50th, and 90th percentiles of snow-free streamflow (Q10, Q50, Q90); runoff ratio (RR); and center of timing (CT, expressed as the Julian day when 50 % of the snow-free discharge has occurred)</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="8">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:colspec colnum="8" colname="col8" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Station</oasis:entry>
         <oasis:entry colname="col2">Regime</oasis:entry>
         <oasis:entry colname="col3">Snow-free</oasis:entry>
         <oasis:entry colname="col4">Q10</oasis:entry>
         <oasis:entry colname="col5">Q50</oasis:entry>
         <oasis:entry colname="col6">Q90</oasis:entry>
         <oasis:entry colname="col7">RR</oasis:entry>
         <oasis:entry colname="col8">CT (day</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">type</oasis:entry>
         <oasis:entry colname="col3">months</oasis:entry>
         <oasis:entry colname="col4">(mm h<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col5">(mm h<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col6">(mm h <sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col7">(–)</oasis:entry>
         <oasis:entry colname="col8">of year)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Sonceboz</oasis:entry>
         <oasis:entry colname="col2">Jura-nivopluvial</oasis:entry>
         <oasis:entry colname="col3">May–Oct</oasis:entry>
         <oasis:entry colname="col4">0.020</oasis:entry>
         <oasis:entry colname="col5">0.053</oasis:entry>
         <oasis:entry colname="col6">0.174</oasis:entry>
         <oasis:entry colname="col7">0.437</oasis:entry>
         <oasis:entry colname="col8">194</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Euthal, Rüti</oasis:entry>
         <oasis:entry colname="col2">Transition nival</oasis:entry>
         <oasis:entry colname="col3">Jun–Oct</oasis:entry>
         <oasis:entry colname="col4">0.025</oasis:entry>
         <oasis:entry colname="col5">0.077</oasis:entry>
         <oasis:entry colname="col6">0.435</oasis:entry>
         <oasis:entry colname="col7">0.808</oasis:entry>
         <oasis:entry colname="col8">221</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Salmsach, Hungerbühl</oasis:entry>
         <oasis:entry colname="col2">Pluvial</oasis:entry>
         <oasis:entry colname="col3">May–Oct</oasis:entry>
         <oasis:entry colname="col4">0.009</oasis:entry>
         <oasis:entry colname="col5">0.021</oasis:entry>
         <oasis:entry colname="col6">0.092</oasis:entry>
         <oasis:entry colname="col7">0.317</oasis:entry>
         <oasis:entry colname="col8">211</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Lavertezzo, Campiòi</oasis:entry>
         <oasis:entry colname="col2">Southern nivo-pluvial</oasis:entry>
         <oasis:entry colname="col3">Jun–Oct</oasis:entry>
         <oasis:entry colname="col4">0.051</oasis:entry>
         <oasis:entry colname="col5">0.106</oasis:entry>
         <oasis:entry colname="col6">0.429</oasis:entry>
         <oasis:entry colname="col7">0.823</oasis:entry>
         <oasis:entry colname="col8">218</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Magliaso</oasis:entry>
         <oasis:entry colname="col2">Southern pluvio-nival</oasis:entry>
         <oasis:entry colname="col3">May–Oct</oasis:entry>
         <oasis:entry colname="col4">0.018</oasis:entry>
         <oasis:entry colname="col5">0.056</oasis:entry>
         <oasis:entry colname="col6">0.211</oasis:entry>
         <oasis:entry colname="col7">0.524</oasis:entry>
         <oasis:entry colname="col8">187</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Chiasso, Ponte di Polenta</oasis:entry>
         <oasis:entry colname="col2">Southern pluvio-nival</oasis:entry>
         <oasis:entry colname="col3">May–Oct</oasis:entry>
         <oasis:entry colname="col4">0.003</oasis:entry>
         <oasis:entry colname="col5">0.014</oasis:entry>
         <oasis:entry colname="col6">0.111</oasis:entry>
         <oasis:entry colname="col7">0.296</oasis:entry>
         <oasis:entry colname="col8">184</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3162">As snow introduces complexities in catchment response, such as delayed runoff generation and temperature-driven melt rates, we focused our analysis on snow-free periods only. We considered as snow-free periods the months from May to October, inclusive, except for two basins at the highest altitudes (Euthal and Lavertezzo, with maximum and mean elevations above 2200 and 1300 m a.s.l., respectively), for which we assumed that first snow-free month is June (Fig. <xref ref-type="fig" rid="F4"/>).</p>

      <fig id="F4"><label>Figure 4</label><caption><p id="d2e3169">Hydrological regimes, in terms of monthly mean precipitation <bold>(a)</bold>, streamflow <bold>(b)</bold>, and potential evapotranspiration <bold>(c)</bold> for the six sites. The time series were averaged over the complete period of study (2005–2019). The light grey shadowed areas indicate what we considered as snowy periods with potential snow-melt effects on streamflow, including also May for Lavertezzo and Euthal (dotted grey shadowed band).</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f04.png"/>

        </fig>

      <p id="d2e3187">Figure <xref ref-type="fig" rid="F5"/> shows the Flow Duration Curves (FDCs) of streamflow during the snow-free months. The curves highlight clear contrasts among catchments: Chiasso and Salmsach are dominated by low flows typical of pluvial regimes, while Lavertezzo and Euthal display broader distributions with higher discharges, reflecting steep topography and rapid runoff. Magliaso and Sonceboz fall in between, balancing frequent low flows with moderate events. These patterns confirm that the selected basins capture a meaningful gradient of hydrological responses, even when snow-driven processes are excluded.</p>

      <fig id="F5"><label>Figure 5</label><caption><p id="d2e3194">Flow Duration Curves (FDCs) for the six sites during the snow-free period (June–October for Euthal and Lavertezzo and May–October for the other basins).</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f05.png"/>

        </fig>

      <p id="d2e3204">Key hydrological statistics (Table <xref ref-type="table" rid="T2"/>) further quantify these differences. Q10–Q90 ranges emphasize the variability between rainfall-dominated and more responsive basins, with Chiasso and Salmsach showing low median flows and narrow ranges, and Lavertezzo and Euthal displaying much higher values. Runoff ratios vary widely (0.30–0.82), while the center of timing (CT) spans from day 184 to 221, marking earlier peaks in pluvial catchments and later ones in higher-elevation sites. Together, these indicators confirm the diversity of regimes and support the suitability of these basins for testing the proposed methodology.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Implementation details</title>
      <p id="d2e3218">While our model is designed to estimate the hydrologic response to each precipitation event, we are primarily interested in the model's ability to reproduce the ensemble responses (RRD or NRF) over given conditions of precipitation intensity or antecedent wetness. Therefore, the model will be tested over ensemble responses. This also offers the opportunity to estimate the hydrologic response – and its main statistics – with ERRA and assess the consistency between GAMCR and ERRA.</p>
      <p id="d2e3221">We tested the need for optimization of the hyperparameters <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> through initial (and computationally expensive) cross-validation experiments. Since we obtained only minor improvements over the default values <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, we consistently used the defaults across all applications. Since we are only interested in the evaluation of the hydrologic response up to a few days after precipitation, we kept the hyperparameter <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> h. The positions of the knots to get the B-splines basis functions <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi mathvariant="normal">ℓ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> follow an exponentially increasing sequence, starting at 0 with an initial step of 1. After each step, the step size doubles, leading to a pattern where knots are densely spaced at the beginning and become increasingly sparse as values grow. Following this procedure, the value of <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> automatically sets the number of basis functions to <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:math></inline-formula> in our case. All models were trained for the full set of predefined epochs using gradient descent with adaptive learning rate, ensuring a strictly decreasing training loss.</p>
      <p id="d2e3336">In the observed data series, the response to very small rainfall events may be easily hidden by measurement noise and other processes. While these events are not particularly relevant for the hydrologic response, they may corrupt the training phase. Hence it is convenient to set a precipitation intensity threshold <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">th</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and train the model only for events that exceed <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">th</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. We trained GAMCR using <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi mathvariant="normal">th</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn></mml:mrow></mml:math></inline-formula> mm h<sup>−1</sup>.</p>
      <p id="d2e3388">The results from ERRA were obtained using the R scripts accessible at the following repository: <ext-link xlink:href="https://doi.org/10.16904/envidat.529" ext-link-type="DOI">10.16904/envidat.529</ext-link>, as specified in <xref ref-type="bibr" rid="bib1.bibx15" id="text.26"/>. The RRD curves were computed considering a maximum lag of 40 h. Initial estimates of precipitation bins were automatically generated by the algorithm, invoking six approximately even ranges, while ensuring a minimum threshold of 40 nonzero values in each precipitation bin. To improve comparability across models, the same precipitation ensembles were used to average the true transfer functions and the GAMCR estimates. Using a coarser input data resolution is beneficial to ERRA when the hydrologic response is long relative to the input temporal resolution (because in such cases, it can be difficult to separate the overprinted effects of input signals at closely spaced lag times). Using a coarser time step helps clarify these impacts. For this reason, after some initial testing, the flashy, base, and damped synthetic input time series are aggregated into 2, 3, and 6 h time steps, respectively.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results</title>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Model validation</title>
      <p id="d2e3413">The model was trained (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>) on the synthetic data (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>), which consists of three cases: the reference response, a flashier response, and a more damped response. We validate the model by first computing the hydrologic response in the form of NRF over six quantiles of precipitation intensity, and comparing it against the ERRA estimates and the benchmark generated directly from the model Fig. <xref ref-type="fig" rid="F6"/>.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e3424">NRFs averaged across different precipitation intensity ensembles from GAMCR, ERRA and the ground truth, for the base <bold>(a)</bold>, damped <bold>(b)</bold>, and flashy <bold>(c)</bold> synthetic time series. Readers should note the different scales of NRFs between flashy, base and damped scenarios. Panel <bold>(d)</bold> combines the overall average NRFs for the three cases in a single plot .</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f06.png"/>

        </fig>

      <p id="d2e3445">As a result of the different aggregation of the input time series for the three synthetic data sets, their precipitation intensities (and thus the bins used in Fig. <xref ref-type="fig" rid="F6"/>a–c) appear different, although the original hourly input data are the same.</p>
      <p id="d2e3451">Figure <xref ref-type="fig" rid="F6"/> shows that GAMCR accurately estimates the transfer functions on synthetic data, particularly in the flashy and damped scenarios, where their curves nearly overlap with the benchmark. In the base case, (panel a) the peak value and tail of the response are well captured, but the peak timing is systematically early compared to the benchmark. Overall, in these three cases characterized by very different responses (Fig. <xref ref-type="fig" rid="F6"/>d) ERRA and GAMCR provide generally consistent estimates.</p>
      <p id="d2e3458">We also computed the peak height, peak lag and runoff volume of the NRF, and explored their relationship with precipitation intensity (Fig. <xref ref-type="fig" rid="F7"/>). The results highlight GAMCR's ability to accurately estimate key quantities related to the magnitude of the catchment's response (peak height and runoff volume). These statistics are also very consistent with those estimated by ERRA. For both approaches, the flashy case remains the most sensitive for estimation, with GAMCR underestimating runoff volume for intermediate precipitation values (from 10 to 25 mm h<sup>−1</sup>) but accurately capturing peak height. In the base case, GAMCR slightly underestimates runoff volume while maintaining accurate peak height estimates. For the damped scenario, it closely matches ground truth values for peak height and produces nearly overlapping runoff volume estimates. Overall, both approaches show a strong consistency in their peak height and runoff volume estimates across different scenarios.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e3477">Different statistics computed on NRFs obtained from either GAMCR, ERRA, or the ground truth averaged across different precipitation intensity ensembles for the flashy, base, and damped datasets. Figures <bold>(a)</bold>, <bold>(b)</bold> and <bold>(c)</bold> respectively depict the NRF runoff volume, NRF peak height and the peak lag.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f07.png"/>

        </fig>

      <p id="d2e3495">Despite the models' strong performance in estimating the magnitude of the catchment response, both face challenges in predicting peak lag, though in opposite ways. ERRA tends to produce more variability across the NRFs (as shown by dashed lines with triangles in all the right panels). By contrast, GAMCR tends to produce lag values that are much less variable than the benchmark across different precipitation ranges.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Estimation of catchment hydrological responses</title>
      <p id="d2e3506">When applying GAMCR to observed data it is not possible to validate its accuracy in estimating hydrologic response, because the true response is not known. However, it is instructive to compare the modeled vs measured streamflow series, for both the training and test periods. Since the model was not developed for the purpose of reproducing streamflow, its performance should not be compared to hydrologic models that are designed to maximize fit, but the simulated hydrograph serves as a valuable diagnostic tool. For example, periods where the modeled hydrograph deviates significantly from the measurements could be flagged as unreliable and excluded from the analysis. To support this evaluation, Fig. <xref ref-type="fig" rid="F8"/> shows the streamflow predictions generated by GAMCR.</p><fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e3513">Fitted streamflow estimated through GAMCR for the six investigated sites. The larger light blue dots show measured and fitted discharges during the 2005–2017 snow-free seasons (training set); The smaller dark blue dots indicate measured and predicted discharges during 2018 and 2019 snow-free seasons (test set). <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>:</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> lines are shown in grey.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f08.png"/>

        </fig>

      <p id="d2e3534">The agreement between training and test set results varies across basins. Sonceboz and Magliaso show the strongest consistency, with only minor over- or underestimations. Lavertezzo follows a similar pattern but has some overestimated values on training points. Salmsach and Chiasso, by contrast exhibit considerable dispersion and overestimation on the test set, suggesting lower predictive performance. Performance at Euthal is intermediate between these two groups, with overestimation of low test streamflow values. These results suggest that the performance of GAMCR in reproducing streamflow is not directly correlated with the hydrological characteristics of the basins. This is even more visible when looking at the model performance aggregated over streamflow quantiles (Fig. S2), where the fit is consistently good across sites and only a minor underestimation of the lowest flow conditions stands out. Timeseries plots for the test period (Fig. S3) indicate that the temporal dynamics of the predicted hydrograph are appropriate and there are no periods that should be flagged and removed from the analysis.</p>
      <p id="d2e3538">Figure <xref ref-type="fig" rid="F9"/> presents the weighted average RRDs and the peak heights of the NRFs estimated by ERRA and GAMCR for the six sites in the observed dataset. Computations consider all events whose precipitation intensity exceeds 0.5 mm h<sup>−1</sup>. The differences in basin response are also evident in the range of runoff coefficients derived from ERRA, which vary from 0.10 in Sonceboz to 0.64 in Euthal. The results align well with the hydrological regimes and characteristics of the basins (see Table <xref ref-type="table" rid="T1"/> and Figs. <xref ref-type="fig" rid="F3"/> and <xref ref-type="fig" rid="F4"/>). The Sonceboz basin, in particular, shows a very flat runoff-response distribution, which is consistent with the relatively low mean slope, large area, and elongated shape of its basin. These features, along with its moderate permeability and location in the Jura's pluvio-nival region, contribute to the basin's very damped runoff response, reflected in the low runoff coefficient (0.10). A slightly flashier response is observed in the Salmsach basin, which has low mean slope, low permeability, and a pluvial hydrological regime. This results in a damped response, though less damped than Sonceboz's, consistent with its higher runoff coefficient (0.19). The Chiasso and Magliaso basins exhibit similar peak values, but with different response shapes. Despite similarities in altitude and mean slope, Chiasso is larger than Magliaso and has lower permeability, consistent with the larger area under its RRD (i.e. the runoff coefficient, 0.26 versus 0.23 for Magliaso). The flashier response in Magliaso is consistent with its high mean slope, in common with Lavertezzo and Euthal, where the flashiest responses (at least for GAMCR) are observed. Lavertezzo and Euthal are characterized by the highest altitudes, highest annual precipitation and lowest annual potential evapotranspiration. The higher RRD peak for Euthal compared to Lavertezzo is consistent with the lower permeability in the Euthal basin and is also reflected in its larger runoff coefficient (0.64 versus 0.40). Overall, the weighted average RRDs provided by both GAMCR and ERRA are broadly consistent with the distinctive characteristics of each basin. The results shown in Fig. <xref ref-type="fig" rid="F9"/> demonstrate the general consistency between the GAMCR and ERRA approaches across the different sites. Only two basins exhibit some discrepancy: the Chiasso and Lavertezzo basins (purple and brown curves, respectively). In both these cases, GAMCR estimates a more pronounced RRD peak than ERRA within the first 7 h, and a slightly lower tail after 10 h. The estimated NRF peaks for different precipitation intensities for these sites (Fig. <xref ref-type="fig" rid="F9"/>d and f) are consistent between ERRA and GAMCR for most precipitation bins, but deviate slightly for the highest one. Overall, the responses estimated by GAMCR and ERRA are broadly similar, and since the models work very differently, consistency in their estimates increases our confidence in both approaches.</p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e3568">Hydrologic responses and their relationship with precipitation intensity for GAMCR and ERRA. Panels <bold>(a)</bold>, <bold>(c)</bold> and <bold>(e)</bold>: Weighted average RRD, where we keep time points with precipitation intensity above 0.5 mm h<sup>−1</sup>. Panel <bold>(b)</bold>, <bold>(d)</bold> and <bold>(f)</bold>: NRF peak heights against precipitation intensity.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f09.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Effects of precipitation intensity and antecedent wetness</title>
      <p id="d2e3616">GAMCR can be used to investigate how variations in precipitation intensity and antecedent wetness affect the hydrologic response. Here we explore such effects at the six study sites. To characterize precipitation intensity, we use the same six precipitation intervals defined in Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/> above. As a proxy for antecedent wetness, we use the values of streamflow during the timestep prior to the precipitation event under consideration, which we separate into five ranges. We then aggregate the individual response (RRD curves) over each class of precipitation intensity or antecedent wetness. Results are shown in Fig. <xref ref-type="fig" rid="F10"/>, where we plot the RRD peak height (not to be confused with the peak of the NRF shown in Fig. <xref ref-type="fig" rid="F9"/>) against precipitation intensity and antecedent wetness.</p>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e3627">Peak height of RRDs when stratifying with respect to precipitation intensity <bold>(a)</bold> or antecedent wetness <bold>(b)</bold>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/18/8663/2025/gmd-18-8663-2025-f10.png"/>

        </fig>

      <p id="d2e3642">As Fig. <xref ref-type="fig" rid="F10"/>a shows, the RRD peak heights do not vary systematically with precipitation intensity. By contrast, Fig. <xref ref-type="fig" rid="F10"/>b demonstrates clear increasing trends in RRD peak heights with increasing antecedent wetness. Nearly all sites exhibit at least a threefold increase in peak heights across antecedent wetness levels, with the exception of Lavertezzo, which shows a rise in peak heights just for only the last two bins of antecedent wetness. Chiasso, in particular, displays the highest variability, with peak heights spanning almost an order of magnitude (from 0.006 to 0.05 h<sup>−1</sup>). Notably, for each site, the highest two antecedent wetness levels are widely separated, leading to a marked increase in RRD peak heights. These findings highlight a clear nonstationary response of the six catchments, strongly influenced by their antecedent wetness.</p>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Discussion and Conclusions</title>
      <p id="d2e3671">We introduced a model based on GAMs to estimate the hydrologic response of watersheds based on precipitation-runoff data. The model was validated against three benchmark synthetic datasets and showed excellent agreement with the response curves of the underlying benchmark model, based only on its input and output time series (Fig. <xref ref-type="fig" rid="F6"/>). While the accurate reproduction of the individual responses goes beyond the scope of the model, the ensemble responses (RRD and NRF curves) proved accurate. Closer inspection of the statistics of the responses (Fig. <xref ref-type="fig" rid="F7"/>) showed that GAMCR accurately estimated NRF peak height and volume across different precipitation bins. By contrast, the timing of the NRF peak was generally not very accurate, with GAMCR systematically underestimating the peak lag. While this behavior can likely be improved through a different organization of the basis functions that form the core of the response (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>), GAMCR should currently not be used to estimate the timing of the hydrologic response. Comparisons between GAMCR and ERRA highlight that these two models, despite their very different architectures, provide similar hydrologic responses that closely match the (synthetic) ground truth.</p>
      <p id="d2e3680">Additionally, we analyzed the runoff response during snow-free periods for six Swiss catchments with diverse climatic and physical characteristics (Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>). As the hydrologic response of a catchment is not directly measurable, verifying it in physical basins is challenging. Among the diagnostic tools that help build confidence on the results (beyond the benchmark tests of Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>), we verified that the modeled streamflow was generally realistic for both training and test data (Fig. <xref ref-type="fig" rid="F8"/>) and compared GAMCR's RRD and NRF statistics with those obtained from ERRA (Fig. <xref ref-type="fig" rid="F9"/>). GAMCR produced results that were closely aligned with ERRA and consistent with the properties of the catchments. For example, the Salmsach catchment, with flatter topography and deeper soils than Euthal, had a slower and less marked average response to rainfall. We conclude that GAMCR is a robust tool to study runoff response behavior in catchments. As such, it enables advanced data-based analyses such as quantifying the effects of precipitation intensity and antecedent wetness on the average response peak (Fig. <xref ref-type="fig" rid="F10"/>).</p>
      <p id="d2e3693">Since we have often referred to the ERRA approach <xref ref-type="bibr" rid="bib1.bibx15" id="paren.27"/> in our analyses, it is worthwhile to clarify the differences and similarities between ERRA and GAMCR. Both methods aim to estimate runoff response to precipitation based on time series data, and they both can quantify nonlinear and nonstationary runoff responses to precipitation. Both methods also implicitly assume that precipitation intensity and catchment conditions are the main controls on the catchment response. However, the two approaches achieve their (common) objective in radically different ways. ERRA fundamentally works on ensemble responses rather than single events. It extracts information from the entire precipitation-runoff time series or from portions of it that are selected to investigate different periods or conditions (provided that each portion has sufficient data). In contrast, GAMCR estimates the hydrologic response to each individual precipitation event using combinations of spline basis functions, with coefficients determined through machine learning techniques (Sect. <xref ref-type="sec" rid="Ch1.S2.SS2"/>–<xref ref-type="sec" rid="Ch1.S2.SS3"/>). These individual responses can then be aggregated to ensemble responses. These different starting points result in different ways to run the models. GAMCR is based on a single training phase to estimate all the responses. Then, users can simply aggregate such responses in various ways as a post-processing phase. Instead, ERRA runs instantly but any sub-setting of the time series (for periods or conditions of particular interest, for example) needs to be specified a priori and the code is re-run for each analysis. The way ERRA and GAMCR are parameterized limits the types of transfer functions they can estimate, embedding specific assumptions about their shape. ERRA produces piecewise linear transfer functions, which might take negative values, especially when the water balance in the data is not maintained. In contrast, GAMCR ensures strictly positive transfer functions and promotes smoothness by relying on smooth basis functions. Other minor operational differences between ERRA and GAMCR include the potential need to aggregate the temporal resolution of the data to improve the estimate (ERRA) and the need for potential evapotranspiration series, along with precipitation and runoff (GAMCR, although in the absence of potential evapotranspiration data the user may simply change the default set of features of GAMCR by removing the ones based on PET). Finally, ERRA not only estimates statistics and responses but also quantifies their uncertainty through standard errors. In contrast, GAMCR currently lacks this capability, highlighting the need for future integration of uncertainty quantification.</p>
      <p id="d2e3703">These first applications of GAMCR to synthetic and observed data help us identify some current model limitations and encourage further model development. While the peak value and area of the aggregated response functions proved accurate, the timing of the response was not, systematically underestimating the peak lag (Fig. <xref ref-type="fig" rid="F7"/>). Predicting peak lag is statistically challenging because small changes in lag often cause only minor variations in discharge, making estimation difficult. While larger training datasets can help, model architecture – particularly the choice of basis functions – is crucial. GAMCR's reliance on unimodal basis functions (namely B-splines with irregular knots) may introduce ambiguity, as dense placement at short lags can bias peak selection due to identifiability issues. Future work could focus on learning basis functions directly from data under suitable constraints, allowing models to adapt flexibly to watershed characteristics while preserving meaningful inductive biases.</p>
      <p id="d2e3709">We also stress that while the model simulates the response to every time step with precipitation, it was only evaluated on its capacity to reproduce ensemble behavior and so we do not recommend using it to evaluate individual responses or predict streamflow time series. Additional features that could be implemented in the future include an uncertainty estimation tool capable of providing accurate uncertainty bounds in the response, and the opportunity to integrate additional data (e.g. soil moisture series from sensors or remote sensing products) while training the model.</p>
      <p id="d2e3712">Catchments' capacity to mobilize water after storm events is a distinctive feature that is relevant for water resources management and useful to characterize catchment behavior. Quantifying the runoff response to precipitation using data-driven approaches is challenging due to the nonlinear and nonstationary nature of streamflow generation processes. GAMCR addresses these challenges by introducing a robust and flexible framework that leverages spline basis functions and Generalized Additive Models to learn the model’s time-variable coefficients. Overall, GAMCR is a modern and effective tool for using the increasingly available rainfall-runoff series to investigate controls on hydrologic responses. Although testing and validation were performed in Swiss catchments, the basins studied span a gradient of physical properties and hydrologic regimes that result in different hydrologic responses. Broader testing of the approach in other climatic regions is a key next step for future research.</p>
</sec>

      
      </body>
    <back><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e3719">The GAMCR code is available on the Zenodo archive: <xref ref-type="bibr" rid="bib1.bibx7" id="text.28"/> with <ext-link xlink:href="https://doi.org/10.5281/zenodo.15180816" ext-link-type="DOI">10.5281/zenodo.15180816</ext-link>. Both the synthetic and real data are available on the Zenodo archive: <xref ref-type="bibr" rid="bib1.bibx8" id="text.29"/> with DOI <ext-link xlink:href="https://doi.org/10.5281/zenodo.15180911" ext-link-type="DOI">10.5281/zenodo.15180911</ext-link>. All the material is published on the FAIR-compliant Zenodo repository: <ext-link xlink:href="https://doi.org/10.5281/zenodo.15180911" ext-link-type="DOI">10.5281/zenodo.15180911</ext-link> <xref ref-type="bibr" rid="bib1.bibx8" id="paren.30"/>.</p>
  </notes><app-group>
        <supplementary-material position="anchor"><p id="d2e3741">The supplement related to this article is available online at <inline-supplementary-material xlink:href="https://doi.org/10.5194/gmd-18-8663-2025-supplement" xlink:title="pdf">https://doi.org/10.5194/gmd-18-8663-2025-supplement</inline-supplementary-material>.</p></supplementary-material>
        </app-group><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e3750">QD developed the GAMCR model and performed the GAMCR computations. MGZ processed all the observational data and performed the ERRA computations. MGF and HS gathered the observed data. GO supervised the model development. PB and JWK conceived the project and supervised this work. JWK developed the ERRA method and the benchmark model. All authors discussed the results and contributed to the final manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e3756">The contact author has declared that none of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e3762">Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e3768">This research has been supported by the Swiss Data Science Center Fifth Call for Data Science Projects, project C21-09).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e3774">This paper was edited by Charles Onyutha and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Arridge et al.(2019)Arridge, Maass, Öktem, and Schönlieb</label><mixed-citation> Arridge, S., Maass, P., Öktem, O., and Schönlieb, C.-B.: Solving inverse problems using data-driven models, Acta Numerica, 28, 1–174, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Beven(2001)</label><mixed-citation>Beven, K.: How far can we go in distributed hydrological modelling?, Hydrol. Earth Syst. Sci., 5, 1–12, <ext-link xlink:href="https://doi.org/10.5194/hess-5-1-2001" ext-link-type="DOI">10.5194/hess-5-1-2001</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Botter et al.(2010)Botter, Bertuzzo, and Rinaldo</label><mixed-citation>Botter, G., Bertuzzo, E., and Rinaldo, A.: Transport in the hydrologic response: Travel time distributions, soil moisture dynamics, and the old water paradox, Water Resources Research, 46, <ext-link xlink:href="https://doi.org/10.1029/2009WR008371" ext-link-type="DOI">10.1029/2009WR008371</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Boyd(2004)</label><mixed-citation>Boyd, S.: Convex optimization, Cambridge UP,  <ext-link xlink:href="https://doi.org/10.1007/978-1-4419-9863-7_1449" ext-link-type="DOI">10.1007/978-1-4419-9863-7_1449</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Bruen and Dooge(1992)</label><mixed-citation> Bruen, M. and Dooge, J.: Unit hydrograph estimation with multiple events and prior information: I. Theory and a computer program, Hydrological Sciences Journal, 37, 429–443, 1992.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>do Nascimento et al.(2024)do Nascimento, Rudlang, Höge, van der Ent, Chappon, Seibert, Hrachowitz, and Fenicia</label><mixed-citation>do Nascimento, T. V., Rudlang, J., Höge, M., van der Ent, R., Chappon, M., Seibert, J., Hrachowitz, M., and Fenicia, F.: EStreams: An integrated dataset and catalogue of streamflow, hydro-climatic and landscape variables for Europe, Scientific Data, 11, 879, <ext-link xlink:href="https://doi.org/10.1038/s41597-024-03706-1" ext-link-type="DOI">10.1038/s41597-024-03706-1</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Duchemin(2025)</label><mixed-citation>Duchemin, Q.: quentin-duchemin/GAMCR: GAMCR package, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.15180816" ext-link-type="DOI">10.5281/zenodo.15180816</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Duchemin et al.(2025)Duchemin, Floriancic, Seybold, and Zanoni</label><mixed-citation>Duchemin, Q., Floriancic, M. G., Seybold, H., and Zanoni, M. G.: GAMCR paper: Data, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.15180911" ext-link-type="DOI">10.5281/zenodo.15180911</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Gao et al.(2025)Gao, Ju, Zhang, Wang, Hao, and Kirchner</label><mixed-citation>Gao, H., Ju, Q., Zhang, D., Wang, Z., Hao, Z., and Kirchner, J. W.: Quantifying Dynamic Linkages Between Precipitation, Groundwater Recharge, and Streamflow Using Ensemble Rainfall-Runoff Analysis, Water Resources Research, 61, e2024WR037821, <ext-link xlink:href="https://doi.org/10.1029/2024WR037821" ext-link-type="DOI">10.1029/2024WR037821</ext-link>,  2025.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Gupta et al.(2008)Gupta, Wagener, and Liu</label><mixed-citation>Gupta, H. V., Wagener, T., and Liu, Y.: Reconciling theory with observations: elements of a diagnostic approach to model evaluation, Hydrological Processes, 22, 3802–3813, <ext-link xlink:href="https://doi.org/10.1002/hyp.6989" ext-link-type="DOI">10.1002/hyp.6989</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Hargreaves and Samani(1985)</label><mixed-citation> Hargreaves, G. H. and Samani, Z. A.: Reference crop evapotranspiration from temperature, Applied Engineering in Agriculture, 1, 96–99, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Hastie et al.(2017)Hastie, Tibshirani, and Friedman</label><mixed-citation>Hastie, T., Tibshirani, R., and Friedman, J.: The elements of statistical learning: data mining, inference, and prediction, Springer, <ext-link xlink:href="https://doi.org/10.1007/978-0-387-84858-7" ext-link-type="DOI">10.1007/978-0-387-84858-7</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Kirchner(2003)</label><mixed-citation>Kirchner, J. W.: A double paradox in catchment hydrology and geochemistry, Hydrological Processes, 17, 871–874, <ext-link xlink:href="https://doi.org/10.1002/hyp.5108" ext-link-type="DOI">10.1002/hyp.5108</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Kirchner(2022)</label><mixed-citation>Kirchner, J. W.: Impulse response functions for nonlinear, nonstationary, and heterogeneous systems, estimated by deconvolution and demixing of noisy time series, Sensors, 22, 3291, <ext-link xlink:href="https://doi.org/10.3390/s22093291" ext-link-type="DOI">10.3390/s22093291</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Kirchner(2024)</label><mixed-citation>Kirchner, J. W.: Characterizing nonlinear, nonstationary, and heterogeneous hydrologic behavior using ensemble rainfall–runoff analysis (ERRA): proof of concept, Hydrol. Earth Syst. Sci., 28, 4427–4454, <ext-link xlink:href="https://doi.org/10.5194/hess-28-4427-2024" ext-link-type="DOI">10.5194/hess-28-4427-2024</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Kirchner et al.(2000)Kirchner, Feng, and Neal</label><mixed-citation>Kirchner, J. W., Feng, X., and Neal, C.: Fractal stream chemistry and its implications for contaminant transport in catchments, Nature, 403, 524–527, <ext-link xlink:href="https://doi.org/10.1038/35000537" ext-link-type="DOI">10.1038/35000537</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Kirchner et al.(2023)Kirchner, Benettin, and van Meerveld</label><mixed-citation>Kirchner, J. W., Benettin, P., and van Meerveld, I.: Instructive Surprises in the Hydrological Functioning of Landscapes, Annual Review of Earth and Planetary Sciences, 51, 277–299, <ext-link xlink:href="https://doi.org/10.1146/annurev-earth-071822-100356" ext-link-type="DOI">10.1146/annurev-earth-071822-100356</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Knapp et al.(2025)Knapp, Berghuijs, Floriancic, and Kirchner</label><mixed-citation>Knapp, J. L. A., Berghuijs, W. R., Floriancic, M. G., and Kirchner, J. W.: Catchment hydrological response and transport are affected differently by precipitation intensity and antecedent wetness, Hydrol. Earth Syst. Sci., 29, 3673–3685, <ext-link xlink:href="https://doi.org/10.5194/hess-29-3673-2025" ext-link-type="DOI">10.5194/hess-29-3673-2025</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Kratzert et al.(2023)Kratzert, Nearing, Addor, Erickson, Gauch, Gilon, Gudmundsson, Hassidim, Klotz, Nevo, Shalev, and Matias</label><mixed-citation>Kratzert, F., Nearing, G., Addor, N., Erickson, T., Gauch, M., Gilon, O., Gudmundsson, L., Hassidim, A., Klotz, D., Nevo, S., Shalev, G., and Matias, Y.: Caravan – A global community dataset for large-sample hydrology, Scientific Data, 10, 61, <ext-link xlink:href="https://doi.org/10.1038/s41597-023-01975-w" ext-link-type="DOI">10.1038/s41597-023-01975-w</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Mays(2019)</label><mixed-citation> Mays, L. W.: Water resources engineering, 3rd edn., John Wiley &amp; Sons, Inc., New York, ISBN 978-1-119-59051-4, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>McDonnell and Beven(2014)</label><mixed-citation>McDonnell, J. J. and Beven, K.: Debates – The future of hydrological sciences: A (common) path forward? A call to action aimed at understanding velocities, celerities and residence time distributions of the headwater hydrograph, Water Resources Research, 50, 5342–5350, <ext-link xlink:href="https://doi.org/10.1002/2013WR015141" ext-link-type="DOI">10.1002/2013WR015141</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>McDonnell et al.(2010)McDonnell, McGuire, Aggarwal, Beven, Biondi, Destouni, Dunn, James, Kirchner, Kraft, and others</label><mixed-citation> McDonnell, J. J., McGuire, K., Aggarwal, P., Beven, K. J., Biondi, D., Destouni, G., Dunn, S., James, A., Kirchner, J. W., Kraft, P., and others: How old is streamwater? Open questions in catchment transit time conceptualization, modelling and analysis, Hydrological Processes, 24, 1745–1754,  2010.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>McGuire and McDonnell(2006)</label><mixed-citation>McGuire, K. J. and McDonnell, J. J.: A review and evaluation of catchment transit time modeling, Journal of Hydrology, 330, 543–563, <ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2006.04.020" ext-link-type="DOI">10.1016/j.jhydrol.2006.04.020</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>MeteoSwiss CombiPrecip(2005)</label><mixed-citation>MeteoSwiss CombiPrecip: CombiPrecip precipitation data – MeteoSwiss, <uri>https://opendatadocs.meteoswiss.ch/d-radar-data/d1-precipitation-radar-products</uri> (last access: 28 November 2023), 2005.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Ponce(1995)</label><mixed-citation>Ponce, V. M.: Hydrologic and Environmental Impact of Small and Medium-Size Basins, <uri>https://pon.sdsu.edu/protected29/cive445_ponce_chapter05a_lecture.html</uri> (last access: 3 September 2025), 1995.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Rigon et al.(2016)Rigon, Bancheri, Formetta, and de Lavenne</label><mixed-citation> Rigon, R., Bancheri, M., Formetta, G., and de Lavenne, A.: The geomorphological unit hydrograph from a historical-critical perspective, Earth Surface Processes and Landforms, 41, 27–37, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Sherman(1932)</label><mixed-citation> Sherman, L. K.: Streamflow from rainfall by the unit-graph method, Eng. News Record, 108, 501–505, 1932.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Snyder(1955)</label><mixed-citation>Snyder, W. M.: Hydrograph analysis by the method of least square, in: Proceedings of the American Society of Civil Engineers, vol. 81, 1–25, ASCE, <uri>https://books.google.ch/books?id=gDBQ0AEACAAJ</uri> (last access: 10 March 2025), 1955.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Soil Conservation Service(1985)</label><mixed-citation>Soil Conservation Service: Section 4: Hydrology, in: SCS National Engineering Handbook, USDA, Washington D.C., <uri>https://books.google.ch/books?id=sjOEf-5zjXgC</uri> (last access: 2 April 2025), 1985.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>van der Velde et al.(2012)van der Velde, Torfs, van der Zee, and Uijlenhoet</label><mixed-citation>van der Velde, Y., Torfs, P. J. J. F., van der Zee, S. E. A. T. M., and Uijlenhoet, R.: Quantifying catchment-scale mixing and its effect on time-varying travel time distributions, Water Resources Research, 48, <ext-link xlink:href="https://doi.org/10.1029/2011WR011310" ext-link-type="DOI">10.1029/2011WR011310</ext-link>, 2012.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Data-driven estimation of the hydrologic response using generalized additive models</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Arridge et al.(2019)Arridge, Maass, Öktem, and
Schönlieb</label><mixed-citation>
      
Arridge, S., Maass, P., Öktem, O., and Schönlieb, C.-B.: Solving
inverse problems using data-driven models, Acta Numerica, 28, 1–174, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Beven(2001)</label><mixed-citation>
      
Beven, K.: How far can we go in distributed hydrological modelling?, Hydrol. Earth Syst. Sci., 5, 1–12, <a href="https://doi.org/10.5194/hess-5-1-2001" target="_blank">https://doi.org/10.5194/hess-5-1-2001</a>, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Botter et al.(2010)Botter, Bertuzzo, and Rinaldo</label><mixed-citation>
      
Botter, G., Bertuzzo, E., and Rinaldo, A.: Transport in the hydrologic
response: Travel time distributions, soil moisture dynamics, and the old
water paradox, Water Resources Research, 46,
<a href="https://doi.org/10.1029/2009WR008371" target="_blank">https://doi.org/10.1029/2009WR008371</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Boyd(2004)</label><mixed-citation>
      
Boyd, S.: Convex optimization, Cambridge UP,  <a href="https://doi.org/10.1007/978-1-4419-9863-7_1449" target="_blank">https://doi.org/10.1007/978-1-4419-9863-7_1449</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Bruen and Dooge(1992)</label><mixed-citation>
      
Bruen, M. and Dooge, J.: Unit hydrograph estimation with multiple events and
prior information: I. Theory and a computer program, Hydrological Sciences
Journal, 37, 429–443, 1992.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>do Nascimento et al.(2024)do Nascimento, Rudlang, Höge, van der
Ent, Chappon, Seibert, Hrachowitz, and Fenicia</label><mixed-citation>
      
do Nascimento, T. V., Rudlang, J., Höge, M., van der Ent, R., Chappon, M.,
Seibert, J., Hrachowitz, M., and Fenicia, F.: EStreams: An integrated dataset
and catalogue of streamflow, hydro-climatic and landscape variables for
Europe, Scientific Data, 11, 879, <a href="https://doi.org/10.1038/s41597-024-03706-1" target="_blank">https://doi.org/10.1038/s41597-024-03706-1</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Duchemin(2025)</label><mixed-citation>
      
Duchemin, Q.: quentin-duchemin/GAMCR: GAMCR package, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.15180816" target="_blank">https://doi.org/10.5281/zenodo.15180816</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Duchemin et al.(2025)Duchemin, Floriancic, Seybold, and
Zanoni</label><mixed-citation>
      
Duchemin, Q., Floriancic, M. G., Seybold, H., and Zanoni, M. G.: GAMCR paper:
Data, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.15180911" target="_blank">https://doi.org/10.5281/zenodo.15180911</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Gao et al.(2025)Gao, Ju, Zhang, Wang, Hao, and Kirchner</label><mixed-citation>
      
Gao, H., Ju, Q., Zhang, D., Wang, Z., Hao, Z., and Kirchner, J. W.: Quantifying
Dynamic Linkages Between Precipitation, Groundwater Recharge, and Streamflow
Using Ensemble Rainfall-Runoff Analysis, Water Resources Research, 61,
e2024WR037821, <a href="https://doi.org/10.1029/2024WR037821" target="_blank">https://doi.org/10.1029/2024WR037821</a>,  2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Gupta et al.(2008)Gupta, Wagener, and Liu</label><mixed-citation>
      
Gupta, H. V., Wagener, T., and Liu, Y.: Reconciling theory with observations:
elements of a diagnostic approach to model evaluation, Hydrological
Processes, 22, 3802–3813, <a href="https://doi.org/10.1002/hyp.6989" target="_blank">https://doi.org/10.1002/hyp.6989</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Hargreaves and Samani(1985)</label><mixed-citation>
      
Hargreaves, G. H. and Samani, Z. A.: Reference crop evapotranspiration from
temperature, Applied Engineering in Agriculture, 1, 96–99, 1985.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Hastie et al.(2017)Hastie, Tibshirani, and
Friedman</label><mixed-citation>
      
Hastie, T., Tibshirani, R., and Friedman, J.: The elements of statistical
learning: data mining, inference, and prediction, Springer, <a href="https://doi.org/10.1007/978-0-387-84858-7" target="_blank">https://doi.org/10.1007/978-0-387-84858-7</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Kirchner(2003)</label><mixed-citation>
      
Kirchner, J. W.: A double paradox in catchment hydrology and geochemistry,
Hydrological Processes, 17, 871–874, <a href="https://doi.org/10.1002/hyp.5108" target="_blank">https://doi.org/10.1002/hyp.5108</a>,
2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Kirchner(2022)</label><mixed-citation>
      
Kirchner, J. W.: Impulse response functions for nonlinear, nonstationary, and
heterogeneous systems, estimated by deconvolution and demixing of noisy time
series, Sensors, 22, 3291, <a href="https://doi.org/10.3390/s22093291" target="_blank">https://doi.org/10.3390/s22093291</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Kirchner(2024)</label><mixed-citation>
      
Kirchner, J. W.: Characterizing nonlinear, nonstationary, and heterogeneous hydrologic behavior using ensemble rainfall–runoff analysis (ERRA): proof of concept, Hydrol. Earth Syst. Sci., 28, 4427–4454, <a href="https://doi.org/10.5194/hess-28-4427-2024" target="_blank">https://doi.org/10.5194/hess-28-4427-2024</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Kirchner et al.(2000)Kirchner, Feng, and
Neal</label><mixed-citation>
      
Kirchner, J. W., Feng, X., and Neal, C.: Fractal stream chemistry and its
implications for contaminant transport in catchments, Nature, 403, 524–527,
<a href="https://doi.org/10.1038/35000537" target="_blank">https://doi.org/10.1038/35000537</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Kirchner et al.(2023)Kirchner, Benettin, and van
Meerveld</label><mixed-citation>
      
Kirchner, J. W., Benettin, P., and van Meerveld, I.: Instructive Surprises in
the Hydrological Functioning of Landscapes, Annual Review of Earth and
Planetary Sciences, 51, 277–299, <a href="https://doi.org/10.1146/annurev-earth-071822-100356" target="_blank">https://doi.org/10.1146/annurev-earth-071822-100356</a>,
2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Knapp et al.(2025)Knapp, Berghuijs, Floriancic, and
Kirchner</label><mixed-citation>
      
Knapp, J. L. A., Berghuijs, W. R., Floriancic, M. G., and Kirchner, J. W.: Catchment hydrological response and transport are affected differently by precipitation intensity and antecedent wetness, Hydrol. Earth Syst. Sci., 29, 3673–3685, <a href="https://doi.org/10.5194/hess-29-3673-2025" target="_blank">https://doi.org/10.5194/hess-29-3673-2025</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Kratzert et al.(2023)Kratzert, Nearing, Addor, Erickson, Gauch,
Gilon, Gudmundsson, Hassidim, Klotz, Nevo, Shalev, and
Matias</label><mixed-citation>
      
Kratzert, F., Nearing, G., Addor, N., Erickson, T., Gauch, M., Gilon, O.,
Gudmundsson, L., Hassidim, A., Klotz, D., Nevo, S., Shalev, G., and Matias,
Y.: Caravan – A global community dataset for large-sample hydrology,
Scientific Data, 10, 61, <a href="https://doi.org/10.1038/s41597-023-01975-w" target="_blank">https://doi.org/10.1038/s41597-023-01975-w</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Mays(2019)</label><mixed-citation>
      
Mays, L. W.: Water resources engineering, 3rd edn., John Wiley &amp; Sons, Inc., New York,
ISBN 978-1-119-59051-4, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>McDonnell and Beven(2014)</label><mixed-citation>
      
McDonnell, J. J. and Beven, K.: Debates – The future of hydrological sciences:
A (common) path forward? A call to action aimed at understanding velocities,
celerities and residence time distributions of the headwater hydrograph,
Water Resources Research, 50, 5342–5350,
<a href="https://doi.org/10.1002/2013WR015141" target="_blank">https://doi.org/10.1002/2013WR015141</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>McDonnell et al.(2010)McDonnell, McGuire, Aggarwal, Beven, Biondi,
Destouni, Dunn, James, Kirchner, Kraft, and others</label><mixed-citation>
      
McDonnell, J. J., McGuire, K., Aggarwal, P., Beven, K. J., Biondi, D.,
Destouni, G., Dunn, S., James, A., Kirchner, J. W., Kraft, P., and others:
How old is streamwater? Open questions in catchment transit time
conceptualization, modelling and analysis, Hydrological Processes, 24,
1745–1754,  2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>McGuire and McDonnell(2006)</label><mixed-citation>
      
McGuire, K. J. and McDonnell, J. J.: A review and evaluation of catchment
transit time modeling, Journal of Hydrology, 330, 543–563,
<a href="https://doi.org/10.1016/j.jhydrol.2006.04.020" target="_blank">https://doi.org/10.1016/j.jhydrol.2006.04.020</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>MeteoSwiss CombiPrecip(2005)</label><mixed-citation>
      
MeteoSwiss CombiPrecip: CombiPrecip precipitation data – MeteoSwiss,
<a href="https://opendatadocs.meteoswiss.ch/d-radar-data/d1-precipitation-radar-products" target="_blank"/> (last access: 28 November 2023), 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Ponce(1995)</label><mixed-citation>
      
Ponce, V. M.: Hydrologic and Environmental Impact of Small and Medium-Size
Basins,
<a href="https://pon.sdsu.edu/protected29/cive445_ponce_chapter05a_lecture.html" target="_blank"/> (last access: 3 September 2025), 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Rigon et al.(2016)Rigon, Bancheri, Formetta, and
de Lavenne</label><mixed-citation>
      
Rigon, R., Bancheri, M., Formetta, G., and de Lavenne, A.: The geomorphological
unit hydrograph from a historical-critical perspective, Earth Surface
Processes and Landforms, 41, 27–37, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Sherman(1932)</label><mixed-citation>
      
Sherman, L. K.: Streamflow from rainfall by the unit-graph method, Eng. News
Record, 108, 501–505, 1932.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Snyder(1955)</label><mixed-citation>
      
Snyder, W. M.: Hydrograph analysis by the method of least square, in:
Proceedings of the American Society of Civil Engineers, vol. 81, 1–25,
ASCE, <a href="https://books.google.ch/books?id=gDBQ0AEACAAJ" target="_blank"/> (last access: 10 March 2025), 1955.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Soil Conservation
Service(1985)</label><mixed-citation>
      
Soil Conservation Service: Section 4: Hydrology, in: SCS National
Engineering Handbook, USDA, Washington D.C., <a href="https://books.google.ch/books?id=sjOEf-5zjXgC" target="_blank"/> (last access: 2 April 2025), 1985.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>van der Velde et al.(2012)van der Velde, Torfs, van der Zee, and
Uijlenhoet</label><mixed-citation>
      
van der Velde, Y., Torfs, P. J. J. F., van der Zee, S. E. A. T. M., and
Uijlenhoet, R.: Quantifying catchment-scale mixing and its effect on
time-varying travel time distributions, Water Resources Research, 48,
<a href="https://doi.org/10.1029/2011WR011310" target="_blank">https://doi.org/10.1029/2011WR011310</a>, 2012.

    </mixed-citation></ref-html>--></article>
