<?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-19-2385-2026</article-id><title-group><article-title>The spatio-temporal visualization tool HMMLVis in  renewable energy applications</article-title><alt-title>HMMLVis</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Wöß</surname><given-names>Rainer</given-names></name>
          <email>rainer.woess@univie.ac.at</email>
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Hlaváčková-Schindler</surname><given-names>Kateřina</given-names></name>
          <email>katerina.schindlerova@univie.ac.at</email>
        <ext-link>https://orcid.org/0000-0001-6467-3077</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff3">
          <name><surname>Schicker</surname><given-names>Irene</given-names></name>
          <email>irene.schicker@geosphere.at</email>
        <ext-link>https://orcid.org/0000-0001-6401-2412</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff3">
          <name><surname>Papazek</surname><given-names>Petrina</given-names></name>
          <email>petrina.papazek@geosphere.at</email>
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Plant</surname><given-names>Claudia</given-names></name>
          <email>claudia.plant@univie.ac.at</email>
        </contrib>
        <aff id="aff1"><label>1</label><institution>Research Group Data Mining and Machine Learning, Faculty of Computer Science, University of Vienna,  Währingerstrasse 29, 1090 Vienna, Austria</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Data Science @ Uni Vienna, University of Vienna, Vienna, Austria</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>GeoSphere Austria, Hohe Warte 38, 1190 Vienna, Austria</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Rainer Wöß (rainer.woess@univie.ac.at), Kateřina Hlaváčková-Schindler (katerina.schindlerova@univie.ac.at), Irene Schicker (irene.schicker@geosphere.at), Petrina Papazek (petrina.papazek@geosphere.at), and Claudia Plant (claudia.plant@univie.ac.at)</corresp></author-notes><pub-date><day>25</day><month>March</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>6</issue>
      <fpage>2385</fpage><lpage>2405</lpage>
      <history>
        <date date-type="received"><day>7</day><month>October</month><year>2024</year></date>
           <date date-type="rev-request"><day>16</day><month>October</month><year>2024</year></date>
           <date date-type="rev-recd"><day>23</day><month>January</month><year>2026</year></date>
           <date date-type="accepted"><day>9</day><month>March</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Rainer Wöß et al.</copyright-statement>
        <copyright-year>2026</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/gmd-19-2385-2026.html">This article is available from https://gmd.copernicus.org/articles/gmd-19-2385-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/gmd-19-2385-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/gmd-19-2385-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e143">Understanding causal relationships in multivariate time series is essential across many scientific domains, especially in climatology and meteorology where complex dependencies drive extreme events. Existing tools often lack intuitive visualization, particularly for heterogeneous Granger causality applied to non-Gaussian data such as time series following exponential distributions. There is a need for an accessible, interpretable tool that helps scientists explore temporal dependencies and uncover causal structure in such settings. We present HMMLVis, an original visualization tool designed for multivariate and heterogeneous Granger causal inference (Heterogeneous Granger causality by Minimum Message Length). The tool supports causal discovery in time series with exponential distributions and offers an intuitive interface for exploring temporal relationships. While HMMLVis is applicable across disciplines dealing with time-series data, this work focuses on its use in climatological and meteorological contexts. We demonstrate HMMLVis on several applications involving meteorological phenomena affecting the upper and lower distributional tails, using datasets from renewable energy (wind and PV), air pollution, and the European Meteorological Network (EUMETNET) post-processing benchmark (EUPPBench) across different temporal horizons. Our results show that HMMLVis successfully recovers known causal relationships and additionally reveals previously unobserved temporal dependencies relevant to the specific cases examined. As an interpretable and user-friendly visualization tool, HMMLVis  has strong potential to support climatologists, meteorologists, and other researchers working with complex time-series data. By enabling clearer insight into causal interactions, it contributes to more informed scientific understanding and facilitates knowledge discovery across multiple environmental and atmospheric science applications.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Klima- und Energiefonds</funding-source>
<award-id>KR19AC0K17614</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="d2e155">In large-scale complex dynamical systems such as meteorology/climatology and fields and system affected by meteorological and climatological conditions such as renewable energy production systems, replicated interventional experiments are rarely  feasible or ethically problematic. The rapidly increasing amount of observations and numerical-dynamical generated data, e.g. reanalysis or numerical weather prediction data, opened the very fast developing field of data-driven deep learning forecasting methods. In data-driven predictions, the interplay of features and causality gain more importance in improving the forecast quality and skill. Applying observational causal discovery methods can help to improve predictions by their ability to quantify potential causal dependencies from time series data without the need to intervene in systems (e.g. manipulate part of a system and infer relationships from the consequences).</p>
      <p id="d2e158">In contrast to  deep learning, which mainly focus on prediction and classification, causal inference methods aim at discovering and quantifying the causal dependencies of the underlying system. Although interpreting deep learning models is an active area of explainable AI, extracting the causes of particular phenomena, e.g., extreme flooding, from a deep learning structure with multiple layers is usually not possible. Conversely, causal inference methods can contribute in theoretical understanding of the underlying system and, combined with deep learning methods, can help improving predictions and classifications. Recently more attention was brought to causal methods in climatology, as <xref ref-type="bibr" rid="bib1.bibx43" id="text.1"/> have introduced a taxonomy of research questions. These are types of expert assumptions and properties of the available time series data to provide a causal language in which researchers can define their study questions. To make these causal methods even more accessible, they could be provided in visual tools for researchers to perform experiments on observation data.</p>
      <p id="d2e164">Our work presents  a visual tool in HMMLVis, which uses a method extending Granger causality, named HMML, to infer causal relationships in time-series data. Granger causality addresses causal relationships quantitatively by comparing the prediction error of time-series models given the inclusion or exclusion of another variable's model.</p>
      <p id="d2e167">In its original linear form as introduced in <xref ref-type="bibr" rid="bib1.bibx13" id="text.2"/>,  criticism arose as Granger causality   does not take counterfactuals into account <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx32" id="paren.3"/> and does not fulfill the causal sufficiency, i.e. non-existence of a hidden common cause <xref ref-type="bibr" rid="bib1.bibx49" id="paren.4"/>. Further, the regression equations reflect only correlations and the Granger test detects only “predictive causality”. In defense of the method,  <xref ref-type="bibr" rid="bib1.bibx14" id="text.5"/> wrote:<disp-quote>
  <p id="d2e183">Possible causation is not considered for any arbitrarily selected group of variables, but only for variables for which the researcher has some prior belief that causation is, in some sense, likely.</p>
</disp-quote>In other words, drawing conclusions of the existing causal relation between a time series and its direction is only possible if some theoretical knowledge of mechanisms connecting the time series is accessible. Granger stressed that a proper use of  Granger causality would require to condition on all relevant variables in the world. In fact, conditioning on the “whole universe” is a deficiency not only of the Granger causal model but of most models used for multivariate causal inference, including the structural causal models (SCM), e.g. <xref ref-type="bibr" rid="bib1.bibx51" id="text.6"/>, since not always all variables (direct, confounding, latent) are known and using such a high degree of parameters would blow up every modeling system. This condition is, in practice, relaxed by an assumption that the set of all relevant variables is known.  Thus, the selection of relevant variables is a necessity and extremely crucial step and cannot be done without domain experts. Therefore, here we assume a set of relevant parameters with the assumption of causal relationship between them provided by expert domain knowledge. Granger causal inference can  also answer certain  counterfactual questions when applied to observational data which can be pooled or data of  seasonal  nature, e.g. of climatological origin.</p>
      <p id="d2e193">Thus it is generally accepted that Granger causality does not capture all aspects of causality but enough to be worth considering for empirical test <xref ref-type="bibr" rid="bib1.bibx48" id="paren.7"/>. In observational data, namely meteorological and climatological time series, where replicated interventional experiments are hardly  feasible, Granger causality and its non-linear and graphical variations  can provide a valuable insight into the  the temporal relationships about variables. Thus, besides the rapid development of other causal inference methods, Granger causality and its non-linear and multivariate versions still play an  important role in Earth system sciences, as demonstrated by the  unremitting  publications  this field,  e.g.  on prediction in photovoltaic data set <xref ref-type="bibr" rid="bib1.bibx45" id="paren.8"/>, environmental quality assessment <xref ref-type="bibr" rid="bib1.bibx4" id="paren.9"/>, or in general renewable energy production <xref ref-type="bibr" rid="bib1.bibx7" id="paren.10"/>. Urban air quality constitutes another relevant application domain in which causal discovery can provide added value. Pollution episodes such as winter inversions in Alpine basins are driven by a complex interplay between meteorology, e.g. wind stagnation, humidity, boundary-layer dynamics) and aerosol processes. Previous studies have used Granger-based methods to analyse the drivers of PM<sub>2.5</sub> (e.g. <xref ref-type="bibr" rid="bib1.bibx59 bib1.bibx1" id="altparen.11"/>), yet visualization tools to interpret such causal structures remain limited. By integrating Copernicus Atmosphere Monitoring Service (CAMS) reanalysis aerosol and meteorological fields, HMMLVis allows users to explore these causal relationships in a transparent and temporally resolved manner.</p>
      <p id="d2e221">In this work, we present our original  visualization tool for Granger causal inference, HMMLVis, namely for the case  of heterogeneous Granger causality <xref ref-type="bibr" rid="bib1.bibx3" id="paren.12"/>. The tool is demonstrated on  different types of applications related to meteorological events, namely  renewable energy production by photovoltaic and EUMETNET postprocessing benchmark data set (EUPPBench) from  <xref ref-type="bibr" rid="bib1.bibx6" id="text.13"/>. Further, other utilization of HMMLVis  is discussed for air polution data, semi-synthetic wind production data for a selected wind farm location and for semi-synthetic photovoltaic power generation. In addition to energy-related applications, HMMLVis is demonstrated using an urban air quality (UAQ) case study. This example is included to illustrate how the tool can be used to explore heterogeneous causal relationships between meteorological drivers and air-pollution variables in realistic environmental time series, rather than to provide a comprehensive atmospheric chemistry assessment.</p>
      <p id="d2e230">The paper is organized as follows. Section <xref ref-type="sec" rid="Ch1.S2"/> presents heterogeneous  Granger causality and Method HMML and Sect. <xref ref-type="sec" rid="Ch1.S3"/> describes related work. Our  HMMLVis method is introduced in Sect. <xref ref-type="sec" rid="Ch1.S4"/>.  Workflow and description of the visualization tool  of HMMLVis is explained in Sect. <xref ref-type="sec" rid="Ch1.S5"/>. Section <xref ref-type="sec" rid="Ch1.S6"/> discusses utilization of HMMLVis in several climatological or energy-production applications as well as runtime of the HMMLVis tool. Our conclusions are summarized in Sect. <xref ref-type="sec" rid="Ch1.S7"/>.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Heterogeneous Granger Causality and Method HMML</title>
      <p id="d2e254">The original bivariate concept of causality defined by <xref ref-type="bibr" rid="bib1.bibx13" id="text.14"/>  can be extended to  the multivariate case, i.e. for <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> time series and a time lag <inline-formula><mml:math id="M3" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, indicating the maximum number of lagged observations included in the model, the so-called model order. This model order can be selected via an information theoretic criteria such as the Bayesian or Akaike information criterion. For <inline-formula><mml:math id="M4" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> time-series <inline-formula><mml:math id="M5" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the vector auto-regressive (VAR) model is:

          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M6" display="block"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mi mathvariant="normal">Lag</mml:mi></mml:msubsup><mml:msubsup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mi mathvariant="normal">Lag</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mi>x</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> is the transposition of the matrix <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of the regression coefficients and <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> the error <xref ref-type="bibr" rid="bib1.bibx3" id="paren.15"/>. It is stated that the time-series <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> Granger-causes the time-series <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for lag <inline-formula><mml:math id="M13" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> if and only if at least one of the <inline-formula><mml:math id="M14" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> coefficients in row <inline-formula><mml:math id="M15" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> of <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is non-zero. Thus, to detect causal relations, coefficients of the VAR model need to be estimated. This problem can be solved by a penalization approach of the order <inline-formula><mml:math id="M17" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula>,  e.g. by using Lasso <xref ref-type="bibr" rid="bib1.bibx53" id="paren.16"/>, often also referred to as variable selection method.</p>
      <p id="d2e552">Multivariate Granger causality among time series from Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), as an instance of graphical causal models <xref ref-type="bibr" rid="bib1.bibx12" id="paren.17"/>, assumes that random error time series follow Gaussian distributions with zero mean and constant deviation. In many applications however, these assumptions do not hold and using a graphical Granger model can lead to an inaccurate causal inference results. Profiting from the framework of the generalized linear models (GLM) introduced  in <xref ref-type="bibr" rid="bib1.bibx34" id="text.18"/> and  <xref ref-type="bibr" rid="bib1.bibx3" id="text.19"/> proposed a general model to detect Granger-causal relations among <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> number of  time series which follow a distribution from the exponential family (where Gaussian distribution is a special case). The relation among the response variable and the covariates in a regression is not linear anymore but defined by a so-called link function <inline-formula><mml:math id="M19" display="inline"><mml:mi mathvariant="bold-italic">η</mml:mi></mml:math></inline-formula>, a monotone twice differentiable function depending on the concrete distribution functions from the exponential family. The best-fitting distribution of the target time series within each interval can be identified using the Residual Sum of Squares (RSS) and the Kolmogorov–Smirnov (K–S) test.</p>
      <p id="d2e586">The heterogeneous graphical Granger model (HGGM, <xref ref-type="bibr" rid="bib1.bibx3" id="altparen.20"/>), considers time series  <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> which follow a distribution from the exponential family using a canonical parameter <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The HGGM uses the idea of generalized linear models and  applies them to time series in  the following form 

          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M22" display="block"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>≈</mml:mo><mml:msubsup><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mi mathvariant="normal">Lag</mml:mi></mml:msubsup><mml:msubsup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>p</mml:mi></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>d</mml:mi></mml:munderover><mml:msubsup><mml:mi>x</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mi>j</mml:mi><mml:mi>l</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:math></disp-formula>

        for <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula> each having a probability density  from the exponential family; <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the  mean of <inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:mi mathvariant="normal">var</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a dispersion parameter and <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a variance function dependent only on <inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>; <inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the <inline-formula><mml:math id="M32" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>th coordinate of <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">η</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The causal inference in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>)  can be solved as a maximum likelihood  estimate for <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for a given lag <inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>,  and all <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula> with added adaptive lasso penalty function <xref ref-type="bibr" rid="bib1.bibx3" id="paren.21"/>. One can state that time series <inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> Granger–causes  time series <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for a given lag <inline-formula><mml:math id="M40" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula>, and denote <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>→</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, for <inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> if and only if at least one of the <inline-formula><mml:math id="M43" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> coefficients in <inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:math></inline-formula> row of <inline-formula><mml:math id="M45" display="inline"><mml:mover accent="true"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> of the penalized  solution is non-zero, see <xref ref-type="bibr" rid="bib1.bibx3" id="text.22"/>.</p>
      <p id="d2e1093">The concept explained in this paragraph replaces the solution via <inline-formula><mml:math id="M46" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> penalized linear regression problems by formulating the feature selection as a combinatorial optimization problem, as it was done in <xref ref-type="bibr" rid="bib1.bibx19" id="text.23"/> for the multivariate Granger causal model with Gaussian time series and in <xref ref-type="bibr" rid="bib1.bibx20" id="text.24"/> for  the multivariate Granger causal model with  time series from the exponential family. The second method uses the information theoretic criterion “minimum message length” (MML), introduced by <xref ref-type="bibr" rid="bib1.bibx54" id="text.25"/>  for  general inference problems, to determine causal connections in the model, improving the results especially for short time-series. This  will be the focus of the following work, as  e.g. in the wind related data set, we initially analyze measurements of 96 samples.</p>
      <p id="d2e1113">The MML principle is a formal information theory restatement of Occam’s razor: Even when models have a comparable goodness-of-fit to the observed data, the one generating the shortest overall message is more likely to be correct (where the message consists of a statement of the model, followed by a statement of data encoded concisely using that model). The statistical version of the MML principle constructs a description in terms of probability functions and some prior knowledge of the parameter vector. MML seeks the model that minimizes this trade-off between model complexity and model capability.  In the type of MML considered in <xref ref-type="bibr" rid="bib1.bibx20" id="text.26"/> and in this study and application, the parameter space <inline-formula><mml:math id="M47" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> for the statistical model <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>(</mml:mo><mml:mo>.</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is  decomposed into a countable number of subsets and associated code words for members of these subsets. The parameter <inline-formula><mml:math id="M49" display="inline"><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:math></inline-formula> in the MML criterion corresponds to  the maximum likelihood estimates of the regression coefficients and the dispersion coefficient of the target time series. The regression problem is expressed for <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula>  via incorporation of a subset of indices of regressor variables, denoted by <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>⊂</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> into Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>)

          <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M53" display="block"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mi mathvariant="normal">Lag</mml:mi></mml:msubsup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup><mml:mfenced close=")" open="("><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>d</mml:mi></mml:munderover><mml:msubsup><mml:mi>x</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mi>j</mml:mi><mml:mi>l</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        The best structure of <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in the sense of MML principle is determined either by a genetic or exhaustive search algorithm, for more details see <xref ref-type="bibr" rid="bib1.bibx20" id="text.27"/>.</p>
      <p id="d2e1345"><italic>Remarks.</italic> The value of  time lag (i.e. the model order) of the target variable in HMML can be determined by expert knowledge or by the information theoretic criteria, similarly as for the problem (<xref ref-type="disp-formula" rid="Ch1.E1"/>). Since HMML is an instance of GLM models, the consequences about collinear or almost collinear time series hold also for HMML. Collinearity does not violate any assumptions of GLMs, unless there is perfect collinearity.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Limitations of Classical Granger Models and Advantages of HMML</title>
      <p id="d2e1359">Method HMML in general has the following advantages.  It supports mixed data:  HMML can work with both continuous and discrete variables, which is a major advantage over classical Granger causality methods that typically assume all variables are continuous and Gaussian. HMML handles nonlinear and non-Gaussian data.  Further, it allows for modeling interactions between variables of different types without needing to transform or homogenize the data. The MML criterion balances model complexity and goodness of fit, helping to avoid overfitting and underfitting. HMML uses MML to infer the optimal graphical structure (i.e., causal graph), which includes selecting relevant variables and lags without manual tuning. The graphical output of HMML produces interpretable causal graphs. HMML is suitable for moderate high-dimensional data (for <inline-formula><mml:math id="M55" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> up to 20).</p>
      <p id="d2e1369">Since some climatological  processes are better fitted by exponential distributions than by a Gaussian one, using HMML can be beneficial to inference on our data set. As documented  in <xref ref-type="bibr" rid="bib1.bibx20" id="text.28"/>,  HMML demonstrated significantly higher precision of causal inference regarding the compared  methods on synthetic time series, particularly for short time series. This can be relevant in many climatological applications that work with short time series, i.e., time series with a number of observations on the order of up to a thousand times the number of involved processes among which causal inference is sought.</p>
      <p id="d2e1375"><italic>Scalability and Computational Complexity of HMML.</italic> An upper bound of the computational complexity of HMML, the version using genetic algorithms   for   <inline-formula><mml:math id="M56" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> time series of length <inline-formula><mml:math id="M57" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>, size <inline-formula><mml:math id="M58" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> of an individual, <inline-formula><mml:math id="M59" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> the population size  and <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>  the number of population generations,  is <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>p</mml:mi><mml:mn mathvariant="normal">4.373</mml:mn></mml:msup><mml:mi>n</mml:mi><mml:mi>m</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. In scenarios for small <inline-formula><mml:math id="M62" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> when <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mi>p</mml:mi></mml:msup><mml:mo>&lt;</mml:mo><mml:mi>p</mml:mi><mml:mi>m</mml:mi><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">g</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, one can of course  replace the genetic algorithm by the exhaustive search. In the case of exhaustive search,   the complexity of the algorithm is  <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mi>p</mml:mi></mml:msup><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>p</mml:mi><mml:mn mathvariant="normal">3.373</mml:mn></mml:msup><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. More details can be found in <xref ref-type="bibr" rid="bib1.bibx20" id="text.29"/>.</p>
      <p id="d2e1502">We point out explicitly that the strength of our method is not in its computational complexity (which is rather high) but in the precision of the achieved causal inference with respect to comparison methods.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Model Evaluation</title>
      <p id="d2e1513"><xref ref-type="bibr" rid="bib1.bibx20" id="text.30"/> examined the precision of the output causal graphs obtained by   HMML  in comparison to benchmark methods on synthetic data, where the ground truth, i.e. the target causal graph was known. <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-measure (or <inline-formula><mml:math id="M66" display="inline"><mml:mi>F</mml:mi></mml:math></inline-formula>-score, in other words) was used as an evaluation metrics. Randomly generated  processes having various exponential distributions  were examined together with the correspondingly generated  target causal graphs. The performance  of HMML,  as well as of the benchmark methods HGGM <xref ref-type="bibr" rid="bib1.bibx3" id="paren.31"/>, SFGC <xref ref-type="bibr" rid="bib1.bibx28" id="paren.32"/> and Linear Non-Gaussian Acyclic Model, i.e. LINGAM  <xref ref-type="bibr" rid="bib1.bibx46" id="paren.33"/>, depends on various parameters including the number of time series (features), the number of causal relations in Granger causal graph (dependencies), the length of time series and finally on the lag parameter. HMML significantly outperformed in <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-measure the comparison methods in all investigated cases. More details to the experiments can be found in <xref ref-type="bibr" rid="bib1.bibx20" id="text.34"/>.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Quantifying Causal Effects</title>
      <p id="d2e1568">From the beta coefficients (i.e. <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">β</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> values), one can directly infer the significance of independent variables by considering their contributions to the variance of the target variable, as shown in  <xref ref-type="bibr" rid="bib1.bibx29" id="text.35"/>.</p>
      <p id="d2e1585">Optionally the proposed tool can provide significance scores <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which are positive real numbers that quantify the confidence that a link exists between the independent and target variable. For variable <inline-formula><mml:math id="M70" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, it is calculated from the following:

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M71" display="block"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>d</mml:mi></mml:munderover><mml:mo>|</mml:mo><mml:msubsup><mml:mi mathvariant="italic">β</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:msubsup><mml:mo>|</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          This is a new type of measure as far as HMML is concerned, as it was initially presented by using the so-called beta proportionality to quantify causal effects in <xref ref-type="bibr" rid="bib1.bibx21" id="text.36"/>. Utilizing this significance score enhances comparability between different methods, as they are used on the state-of-the-art causal inference benchmarking platform  Causeme available under <uri>https://causeme.uv.es/details/</uri> (last access: 6 October 2024).</p>
      <p id="d2e1650"><italic>Note.</italic> A benefit of visualizing all <inline-formula><mml:math id="M72" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> beta coefficients, compared to visualizing the graph based approaches, is that domain scientists can potentially gain additional insight into temporal relationships between variables. These insights might provide a basis on which to improve existing statistical models, such as choosing the input dimensions in long short-term memory networks, or feature selection in general.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>HMMLVis</title>
      <p id="d2e1670">The Python application HMMLVis (Visualization Tool for Heterogeneous Graphical Granger Causality by Minimum Message Length) was initially developed for a specific use case to find and quantify causal relationships of meteorological variables on wind-speed in a wind turbine farm in Austria on global atmospheric reanalysis  ERA5 data, see <xref ref-type="bibr" rid="bib1.bibx18" id="text.37"/>. As such, the focus of this functionality lies on systems on which domain knowledge guides the selection of the universe of the causal model and researches are interested in confirming and quantifying causal effects through observational data. In developing this application, its functionality has been extended to be applicable to any data set (in climatology, geoscience or other). While the method HMML is capable of carrying out this task on any number of target variables, the work in this paper will focus on causal effect estimation of time-series on one target variable. A more detailed description on the functionality of the HMMLVis tool is given in Sect. <xref ref-type="sec" rid="Ch1.S4"/>.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Related Work</title>
      <p id="d2e1687">Methods based on correlation and regression remain to be one of the most common tools for data science. While they can be very useful in applications, they usually do not yield an insight into the underlying mechanisms and why the given statistical model came to a certain prediction or decision. Causal inference methods are able to provide the foundations to answer the questions on relationships between the data.</p>
      <p id="d2e1690">Methodologically, the review of related work in this paper focuses on the graphical causal models working with multivariate time series, namely  the graphical Granger causality and its non-linear extensions as well as the PCMCI (Peter and Clark Momentary Conditional Independence) method  from <xref ref-type="bibr" rid="bib1.bibx42" id="text.38"/> and its adaptations developed for causal inference in multivariate time series. We also review the  related work in causal inference or forecasting on climate- or renewable-energy systems.</p>
      <p id="d2e1696">Causal inference methods, i.e. the bivariate  Granger causality <xref ref-type="bibr" rid="bib1.bibx13" id="paren.39"/>, and its multivariate or non-linear graphical extensions, have been used to address causal questions on observational time-series data using different types of assumptions (see e.g. <xref ref-type="bibr" rid="bib1.bibx59 bib1.bibx35 bib1.bibx3 bib1.bibx20 bib1.bibx47 bib1.bibx21" id="altparen.40"/>). As these methods  are designed for time series,  they can allow insight into complex dynamical systems, such as the Earth's climate, where performing experiments or randomized trials is infeasible or impossible.  <xref ref-type="bibr" rid="bib1.bibx58" id="text.41"/> proposed the so-called spatio-temporal extended Granger causality model to analyze causalities among urban dynamics for air quality estimation using geographically sparse time-series data. The study by <xref ref-type="bibr" rid="bib1.bibx35" id="text.42"/>  emphasizes the necessity of non-linear extensions of Granger Causality and proposes a non-linear framework improving the  predictive power of GC.   <xref ref-type="bibr" rid="bib1.bibx3" id="text.43"/> is another non-linear extension of Granger causality. The paper introduced the method HGGM (Heterogeneous Graphical Granger Model, Sect. <xref ref-type="sec" rid="Ch1.S2"/>), especially suited to time-series generated by distributions from the exponential family, and was used to investigate spatio-temporal relationships in German and Austrian climatological data sets in <xref ref-type="bibr" rid="bib1.bibx3" id="text.44"/>. The same model with a different inference algorithm was applied to causal analysis of wind speed extreme events  from   <xref ref-type="bibr" rid="bib1.bibx18" id="text.45"/> data of hourly  meteorological parameters in <xref ref-type="bibr" rid="bib1.bibx21" id="text.46"/>.</p>
      <p id="d2e1726">Motivated by the idea to condition only on the few relevant variables that actually explain a relationship, <xref ref-type="bibr" rid="bib1.bibx42" id="text.47"/>  developed method PCMCI for causal inference in time series of observational data. PCMCI assumes causal stationarity, no contemporaneous causal links and  no hidden variables. It outputs directed lagged links and undirected contemporaneous links. PCMCI has two stages, PC1 and MCI: (i) the PC1  condition selection  identifies relevant conditions for all time series  <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:math></inline-formula> from the universe. It is a form of  PC (Peter Clark) algorithm developed by  <xref ref-type="bibr" rid="bib1.bibx50" id="text.48"/>  which is specifically designed for  time series; (ii) it applies the so called momentary conditional independence (MCI), conditioning on both the parent of a time series in the contemporary time parents and the time shifted parents. Since (i) depends on a significance level <inline-formula><mml:math id="M74" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, PC1 can converge to typically only few relevant conditions that include the causal parents with high probability but it can also include some false positives. The MCI test then addresses the false-positive control for the highly interdependent time series case. More recent adaptations of PCMCI are PCMCI+ <xref ref-type="bibr" rid="bib1.bibx41" id="paren.49"/>, allowing contemporary  links with outputs of directed lagged links and directed and undirected contemporary links <xref ref-type="bibr" rid="bib1.bibx11" id="paren.50"/>.</p>
      <p id="d2e1775"><italic>Comparison of methods HMML and PCMCI.</italic> Both graphical Granger causal models (GGM) including HMML,  and PCMCI are designed for multivariate causal inference in time series. Both GGM and PCMCI assume causal sufficiency (or unconfoundedness), implying that all common drivers are among the observed variables, the Markov condition and causal faithfullness,  indicating that all observed conditional independencies arise from the causal graphical structure.  PCMCI and its versions  are time series adaptions of the PC and FCI algorithms that are specifically designed to address the challenges of time series.   In difference to Granger causal methods including HMML,  PCMCI can use also contemporary causal effect in conditioning. <xref ref-type="bibr" rid="bib1.bibx42" id="text.51"/> address the question of  the detection power of common autoregressive Granger causal models with a statistical causal test and point out  that it can be influenced by the reduced effect size due to conditioning on irrelevant variables and high dimensionality. Since the inference HMML does not use any statistical causal test but  minimizes  an  MML-based objective  function, this argument cannot be applied for HMML. Moreover, without adapting either of the two methods (e.g. HMML to include contemporarity of observations or excluding it from PCMCI) it is  also difficult to compare the performance of these two methods.</p>
      <p id="d2e1783"><italic>Related work  in causality or forecasting on climate- or renewable-energy systems.</italic> Methods currently applied in renewable energy analyses focus mainly on correlation-based prediction. These methods or explicitly formulated models do not address  causal temporal or spatial relationships, thus the results are in this sense less explainable. Most of the literature applying machine learning methods in photovoltaic (PV) energy production focus on prediction and uses deep neural networks and their ensembles (e.g. <xref ref-type="bibr" rid="bib1.bibx55 bib1.bibx44 bib1.bibx38 bib1.bibx27 bib1.bibx30" id="altparen.52"/>). Recently, <xref ref-type="bibr" rid="bib1.bibx22" id="text.53"/> applied HMML to detect meteorological variables in a wind farm in Upper Austria influencing the extreme wind speed. <xref ref-type="bibr" rid="bib1.bibx25" id="text.54"/> combines Elman neural network with bivariate Granger causality  for short-term forecasting of offshore wind power. Other  related publication from <xref ref-type="bibr" rid="bib1.bibx23" id="text.55"/> uses Granger causality to predict the  photovoltaic  energy production in the dependence on climatological variables and  the  technical variables characterising the type of the PV device, concretely temperature and irradiance.</p>
      <p id="d2e1800"><italic>Related work in causality and forecasting on urban pollution data.</italic>
<xref ref-type="bibr" rid="bib1.bibx2" id="text.56"/> analysed air quality in port areas in Spain using  the bivariate Granger causal model for Gaussian time series assessed by  the Granger–Sargent  test and by method PCMCI from <xref ref-type="bibr" rid="bib1.bibx42" id="text.57"/>. The considered variables were PM<sub>2.5</sub> (i.e. particulate matter with an aerodynamic diameter of less than 2.5 <inline-formula><mml:math id="M76" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g, PM<sub>10</sub> (particulate matter with an aerodynamic diameter of less than 10 <inline-formula><mml:math id="M78" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g), wind direction, hourly mean wind speed and maximum hourly wind speed. <xref ref-type="bibr" rid="bib1.bibx36" id="text.58"/> investigated the relationship between renewable energy production and CO<sub>2</sub> emissions in 27 OECD countries using bivariate Granger causality. <xref ref-type="bibr" rid="bib1.bibx5" id="text.59"/> used Granger causality to evaluate the air pollution impact from stationary emission sources to ambient air quality. There are recent publications dealing with causal influence in pollution data (e.g. <xref ref-type="bibr" rid="bib1.bibx52 bib1.bibx60" id="altparen.60"/>) but their  target variable is human health and not physical process or energy production as is the focus of our paper.</p>
      <p id="d2e1864"><italic>Visualisation of spatio-temporal causal relationships in graphs and for one target variable.</italic> The main aims of most causal methods is inferring the causal graph in the form of a  (weighted) directed acyclic graph (DAG) which might be the reasons that  there appears to be little literature focusing on the visualization aspect of this task. As we are interested in the special case of how all variables influence just one target variable, more detailed visualizations of causal relationships and their impact on the selected target variable are highly beneficial. We will use different techniques that are better suited for our aim to investigate the influence of all variables on one target variable (see Sect. <xref ref-type="sec" rid="Ch1.S5"/>), as showing all of the edges for time-lagged observations in a DAG would be rather inconvenient to read.</p>
      <p id="d2e1871">Other illustrative visualizations for causal inference methods include the time-series graph for causal effect estimates, see e.g. Fig. 3 in <xref ref-type="bibr" rid="bib1.bibx43" id="text.61"/>, which presents simultaneous as well as time-lagged dependencies and their link coefficients. This has the benefit of identifying indirect dependencies between different time steps. In comparison,  our proposed solution instead highlights the estimated influence of each lagged observation directly on <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, the target variable at time <inline-formula><mml:math id="M81" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> (see Sect. <xref ref-type="sec" rid="Ch1.S5.SS3"/>). To construct  the summary graph as in Fig. 3 in <xref ref-type="bibr" rid="bib1.bibx43" id="text.62"/>  for the case of one target variable, one simply omits all of the edges that are not directed to <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e1916">Concerning visualization software on unordered data, i.e. not on time series, there are publicly available Python tools as <xref ref-type="bibr" rid="bib1.bibx39" id="text.63"/>, or <xref ref-type="bibr" rid="bib1.bibx15" id="text.64"/>. To our best knowledge, we are not aware of other open-source visualization software  for spatio-temporal causal inference methods.</p>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Method</title>
      <p id="d2e1933">We build upon the <monospace>hmml</monospace> package (<uri>https://git01lab.cs.univie.ac.at/a1106307/hmml/-/tree/main/src/hmml</uri>, last access: 6 October 2024) for Python <xref ref-type="bibr" rid="bib1.bibx10" id="paren.65"/> and integrate the HMML causal inference method into an interactive graphical user interface based on the PyQt6  framework (<uri>https://pypi.org/project/PyQt6/</uri>, last access: 6 October 2024; <xref ref-type="bibr" rid="bib1.bibx40" id="altparen.66"/>). This integration results in the HMMLVis visualization package (<uri>https://git01lab.cs.univie.ac.at/rainerwoess/hmmlvis</uri>, last access: 6 October 2024; Visualization for Heterogeneous Graphical Granger Causality by Minimum Message Length).</p>
      <p id="d2e1955">Compared to the original <monospace>hmml</monospace> implementation, HMMLVis extends the methodology by introducing a temporal sliding-window approach. This extension allows causal effects to be estimated independently across multiple time intervals, thereby increasing the temporal resolution of the analysis.</p>
      <p id="d2e1961">The HMMLVis workflow consists of three main components: <list list-type="order"><list-item>
      <p id="d2e1966">data preprocessing (Sect. <xref ref-type="sec" rid="Ch1.S4.SS1"/>);</p></list-item><list-item>
      <p id="d2e1972">causal effect estimation on a user-defined target variable using HMML and a temporal sliding-window approach (Sect. <xref ref-type="sec" rid="Ch1.S4.SS2"/>);</p></list-item><list-item>
      <p id="d2e1978">visualization of inferred causal strengths based on model coefficients and confidence scores (Sect. <xref ref-type="sec" rid="Ch1.S5"/>).</p></list-item></list></p>
      <p id="d2e1983">Many approaches to causal structure learning aim to infer a full causal graph over all variables in the system <xref ref-type="bibr" rid="bib1.bibx43" id="paren.67"/>. In contrast, our approach focuses on a single target variable. This restriction enables a more detailed inspection and visualization of model parameters that are directly relevant to the research question at hand. The visualization concepts and interaction design are described in detail in Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Preprocessing</title>
      <p id="d2e1999">After loading a dataset, the user selects the variables to be included in the analysis as well as a single target variable. Prior to applying the HMML algorithm, optional data preprocessing can be performed using either min–max scaling or standardization. These transformations are implemented using the <monospace>scikit-learn</monospace> library (<uri>https://scikit-learn.org/stable/</uri>, last access: 6 October 2024), specifically the <monospace>MinMaxScaler</monospace> (<uri>https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html</uri>, last access: 6 October 2024) and <monospace>StandardScaler</monospace> (<uri>https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html</uri>, last access: 6 October 2024).</p>
      <p id="d2e2021">Scaling or standardization is applied globally, i.e., using the full dataset that is subsequently divided into overlapping windows. As a result, each window is transformed using identical scaling parameters. This choice ensures comparability across windows but may influence the estimated causal effects depending on the statistical properties of the data. If the time series are not already standardized, we recommend applying standardization prior to running the HMML algorithm.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Causal Effect Estimation</title>
      <p id="d2e2032">Causal effect estimation within HMMLVis is performed in three successive steps: <list list-type="order"><list-item>
      <p id="d2e2037"><italic>Distribution fitting.</italic> As described by <xref ref-type="bibr" rid="bib1.bibx20" id="text.68"/>, HMML requires a distribution from the exponential family to be fitted to the target variable in order to select an appropriate link function. HMMLVis provides four alternative criteria for this selection: the <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> norm, the <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> norm, the log-likelihood (LL), and the Akaike Information Criterion (AIC). The corresponding implementation is available in the <monospace>distributions.py</monospace> (<uri>https://git01lab.cs.univie.ac.at/rainerwoess/hmmlvis/-/blob/main/distributions.py</uri>, last access: 6 October 2024) module of the HMMLVis repository.</p></list-item><list-item>
      <p id="d2e2074"><italic>Windowed HMML: search and fit.</italic> Based on the sample range specified by the user (see Sect. <xref ref-type="sec" rid="Ch1.S5"/>), the preprocessed dataset is partitioned into a sequence of overlapping time windows. The HMML algorithm is applied independently to each window using the <monospace>hmml</monospace> package. For each window, either a genetic or an exhaustive search strategy – selected by the user – is employed to identify the subset <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">γ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of explanatory variables that best explains the target variable.</p>
      <p id="d2e2095">The resulting model yields <inline-formula><mml:math id="M86" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> lag-specific beta coefficients for each of the <inline-formula><mml:math id="M87" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> candidate variables. These coefficients are visualized directly as heatmaps and serve as the basis for computing confidence scores (see Sect. <xref ref-type="sec" rid="Ch1.S5"/>).</p></list-item><list-item>
      <p id="d2e2115"><italic>Confidence score.</italic> The confidence score <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> quantifies the model's certainty regarding the existence of a causal link from variable <inline-formula><mml:math id="M89" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> to the target variable. Higher values indicate stronger and more consistent effects across time lags. The score <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is defined in Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>).</p></list-item></list></p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Workflow and Description of the Visualisation Tool</title>
      <p id="d2e2168">We provide a concise overview of the workflow of the <italic>HMMLVis</italic> application using the semi-synthetic wind production dataset introduced in Sect. <xref ref-type="sec" rid="Ch1.S6.SS3"/>. This dataset is employed solely to support the methodological description of the tool, and no prior knowledge of its construction is required. The objective of this example is to document how time-series data are ingested, analyzed using the proposed causal inference method, and explored through the interactive visual analysis components of HMMLVis. In Sect. <xref ref-type="sec" rid="Ch1.S6"/>, we present a set of use cases based on different meteorological datasets to illustrate the types of diagnostic insights that can be obtained using the tool.</p>
<sec id="Ch1.S5.SS1">
  <label>5.1</label><title>Loading the Data</title>
      <p id="d2e2185">Upon launching the application, the user is presented with an empty workspace. A dataset can be loaded via the file browser by selecting <monospace>new</monospace> <inline-formula><mml:math id="M91" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> <monospace>file</monospace> from the menu or by using the keyboard shortcut <monospace>Ctrl+l</monospace>. Currently, <monospace>.csv</monospace> and <monospace>.txt</monospace> file formats are supported. After selecting a file, the user is prompted to specify the delimiter used in the dataset (comma, tab, or whitespace).</p>
      <p id="d2e2211">The data are read using the <monospace>pandas</monospace> library. Subsequently, a dialog window allows the user to select the variables to be included in the analysis, as well as a single target variable for causal inference.</p>
</sec>
<sec id="Ch1.S5.SS2">
  <label>5.2</label><title>Data Display and Algorithm Parameters</title>
      <p id="d2e2225">After loading the dataset, its contents are displayed in tabular form alongside a statistical summary (see Fig. <xref ref-type="fig" rid="F1"/>). This initial overview enables the user to inspect basic properties of the data and to identify potentially relevant time intervals for further analysis.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e2232">Application Showcase 1/7: Tabular view of the dataset together with descriptive statistics (mean, minimum, and maximum values) for each time series.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f01.png"/>

        </fig>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e2243">Application Showcase 2/7: Interface for selecting algorithm parameters. (Left) Time-series plot of the selected target variable (here: wind speed at 100 m height), providing visual guidance for identifying a time interval of interest. (Right) Parameter selection panel, where the start and end sample indices define the analysis range. Within this range, HMML is applied to overlapping windows of user-defined size and overlap. The model lag can be specified manually or inferred using a vector autoregressive model via the <italic>Suggest Lag</italic> function. Additional options include the choice of search strategy (exhaustive or genetic), data scaling method, and distribution fitting criterion. Further details are provided in Sects. <xref ref-type="sec" rid="Ch1.S2"/> and <xref ref-type="sec" rid="Ch1.S4"/>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f02.png"/>

        </fig>

      <p id="d2e2260">Further guidance is provided in the <italic>run</italic> tab (Fig. <xref ref-type="fig" rid="F2"/>), where a time-series plot of the target variable offers visual cues for selecting an interval of interest. On the right-hand side of this tab, all relevant algorithm parameters can be specified. The analysis interval is defined by its start and end indices within the full sample range. To study the temporal evolution of causal relationships, the interval may be subdivided into overlapping windows by specifying a window size and window overlap, allowing causal inference to be performed independently on each window.</p>
      <p id="d2e2268">The lag parameter defines the model order (see Eq. <xref ref-type="disp-formula" rid="Ch1.E2"/>) and should ideally be chosen based on domain knowledge. As an aid, the application provides an automatic lag suggestion based on fitting a Vector autoregression (VAR) model, which can be invoked via the <italic>Suggest Lag</italic> button. Additional information on each parameter is available through tooltips that appear when hovering over the corresponding labels.</p>
</sec>
<sec id="Ch1.S5.SS3">
  <label>5.3</label><title>Visualization of HMML Results</title>
      <p id="d2e2284">Once the computations are complete, the results are displayed in the <italic>results</italic> tab (Fig. <xref ref-type="fig" rid="F3"/>), which is divided into two main components:</p>
      <p id="d2e2292"><list list-type="order">
            <list-item>

      <p id="d2e2297"><italic>HMML results and window selection (left panel).</italic> The primary output of the causal inference is visualized as a heatmap matrix of the estimated beta coefficients for each time lag. Alternatively, confidence scores can be displayed by right-clicking and selecting <monospace>show</monospace> <inline-formula><mml:math id="M92" display="inline"><mml:mo>→</mml:mo></mml:math></inline-formula> <monospace>confidence-scores</monospace>. A dropdown menu at the top of this panel allows the user to select a specific time window. When the selected window changes, all visualizations update accordingly. The corresponding sample range is highlighted in red in the associated time-series plot (see Fig. <xref ref-type="fig" rid="F4"/>).</p>
            </list-item>
            <list-item>

      <p id="d2e2320"><italic>Data visualization for the selected window (right panel).</italic> This panel provides multiple options for inspecting the data underlying the selected window. By default, all variables are shown in a joint time-series plot, scaled to the range <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> to facilitate simultaneous comparison. Individual variables can be toggled on or off interactively. Alternatively, the data can be displayed in tabular form. If the variables <monospace>wspeed100m</monospace> and <monospace>wdir100m</monospace> are present, a windrose visualization (based on the <monospace>windrose</monospace> library) can be selected, reflecting the tool’s original application to ERA5 data. Additionally, information about the probability distribution fitted to the target variable within the selected window is shown at the top of this panel. Figure <xref ref-type="fig" rid="F5"/> visualizes confidence scores over the beta coefficients and wind rose plot showing windspeed distributions across directions using stacked, unnormalized histograms. Figure <xref ref-type="fig" rid="F6"/> displays the median confidence score aggregated over all time windows. And finally, Fig. <xref ref-type="fig" rid="F7"/> shows the tabular view of the data within the selected window.</p>
            </list-item>
          </list></p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e2361">Application Showcase 3/7: Initial results view for window index 0. (Top-Left) Time-series of the target variable for the window selected in the dropdown window. (Bottom-Left) Heatmap of beta coefficients. The values in the grid represent the beta-coefficients introduced in Sect. <xref ref-type="sec" rid="Ch1.S2"/>. The colors are applied by a mapping of these coefficients using matplotlib's viridis colormap, indicating in this case (1) a low influence of the dark green variables, (2) a strong negative influence of wind-speed at a lag of 2 by dark purple, and (3) a strong positive influence of wind-speed at lag 1. (Right) Scaled time-series data for the selected window. Unlike the heatmap, the colors for this plot are selected randomly to visually distinguish the variables. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f03.png"/>

        </fig>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e2375">Application Showcase 4/7: Selection of a different window via the dropdown menu. The highlighted region indicates the corresponding time interval. The top-left, bottom-left and right panels provide the same insights described in Fig. <xref ref-type="fig" rid="F3"/>, for a different time interval.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f04.png"/>

        </fig>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e2388">Application Showcase 5/7: (Left) Visualization of confidence scores over the beta coefficients. (Right) Windrose plot showing wind-speed distributions across directions using stacked, unnormalized histograms. Colors indicate wind-speed ranges in m s<sup>−1</sup>, as specified in the legend. For example, the prominent bar toward the north-west reflects a high frequency of samples with north-western wind direction, predominantly at wind speeds between 5 and 13 m s<sup>−1</sup>, with some occurrences exceeding 13.6 m s<sup>−1</sup>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f05.png"/>

        </fig>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e2435">Application Showcase 6/7: Display of the median confidence score aggregated over all time windows. This can be used to gain quick insight on how the score behaves over a possibly large number of windows.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f06.png"/>

        </fig>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e2446">Application Showcase 7/7: Tabular view of the data within the selected window. Column widths can be adjusted to reveal the full content.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f07.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S6">
  <label>6</label><title>Use Cases</title>
      <p id="d2e2464">To demonstrate the ability of the HMMLVis tool, use cases from  different fields, namely renewables,  post-processing in weather forecasting, and air quality, are used. The following subsections describe the data and highlight some results. To show the capabilities of HMMLVis on realistic yet anonymized renewable energy related time series, we employ semi-synthetic datasets for wind power, photovoltaic (PV) power, and global horizontal irradiance (GHI). These datasets are constructed by combining physically consistent reanalysis-based meteorological inputs with simplified, application-oriented conversion models. This approach preserves realistic temporal variability while avoiding the disclosure of sensitive operational data. We emphasize that these semi-synthetic datasets are not intended to perfectly reproduce operational measurements. Instead, they provide physically consistent, realistic time series suitable for demonstrating the exploratory causal analysis capabilities of HMMLVis. Uncertainties arise from reanalysis biases, simplified conversion models, and residual data-quality effects. A detailed description of the respective generation is provided in the related subsections. Selected parameters for HMML in each use case are in Tables <xref ref-type="table" rid="T1"/>, <xref ref-type="table" rid="T3"/> and <xref ref-type="table" rid="T5"/>, respectively.</p>
<sec id="Ch1.S6.SS1">
  <label>6.1</label><title>Photovoltaic Production Data  Based on ERA5 Using Random Forest</title>
      <p id="d2e2480">The generation of photovoltaic (PV) power is driven by the prevailing meteorological conditions. Here, however, also latitude, longitude, and orography (i.e.  lower boundary of the model over land via shadowing and other effects) have a very high influence. Depending on the type of PV panel, temperature can have a strong influence on efficiency. Additionally, cloud cover and type of cloud (cumulus clouds or cirrus), dew point, humidity, pressure, temperature, wind bearing, wind speed, and turbidity of the atmosphere has a large effect on the generated power of PV systems. Semi-synthetic PV power is generated using ERA5-land reanalysis together with Copernicus Atmosphere Monitoring Service (CAMS) radiation and atmospheric composition fields. A set of production locations from Austria and Germany are used. Meteorological information is extracted from additional data sources such as the closest grid point in the ERA-5-land reanalysis and CAMS radiation time-series for the specific geolocation (i.e., a service providing global, beam and diffuse irradiations integrated over a selected time step for a selected location based on Meteosat Second Generation satellite, see <xref ref-type="bibr" rid="bib1.bibx33" id="altparen.69"/>). In this context, to convert the meteorological information to PV generation, the python library pvlib  from <xref ref-type="bibr" rid="bib1.bibx24" id="text.70"/> was used with a simplified PV performance model using the known plant capacity for the selected locations and orientation. Daily production is compared against measured PV output, and both series are normalized to <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e2505">Figure <xref ref-type="fig" rid="F8"/> compares measured and semi-synthetic time series for PV power, and GHI. For  both cases, the semi-synthetic datasets reproduce the observed daily-to-seasonal variability well. The PV case shows an even higher agreement (<inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.98</mml:mn></mml:mrow></mml:math></inline-formula>), reflecting the strong control of radiation on PV production at daily time scales. For GHI, the agreement is highest (<inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.99</mml:mn></mml:mrow></mml:math></inline-formula>), as expected for a direct meteorological variable. These results indicate that the semi-synthetic datasets are sufficiently realistic to serve as representative inputs for the HMMLVis case studies, while remaining anonymized and reproducible. Figure <xref ref-type="fig" rid="F11"/> illustrates a comparison of measured and semi-synthetic energy-relevant time series used in the HMMLVis case studies.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e2538">Comparison of measured (black) and semi-synthetic (red) energy-relevant time series used in the HMMLVis case studies. Left column: daily global horizontal irradiance (GHI) at a radiation station based on ERA5 and CAMS inputs (“ERA5<inline-formula><mml:math id="M100" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>CAMS-synthetic”). Right column: normalized daily PV power for a utility-scale PV plant constructed from ERA5<inline-formula><mml:math id="M101" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>CAMS data and a simplified PV performance model. For each case, the top row shows normalized monthly means, the middle row shows daily scatter plots with density shading and Pearson correlation coefficients, and the bottom row compares probability density functions of normalized daily values.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f08.png"/>

        </fig>

      <p id="d2e2562">The use of semi-synthetic datasets implies several limitations. First, reanalysis-based inputs may exhibit systematic biases at specific sites or under certain weather regimes. Second, the wind and PV power conversions rely on simplified power-curve and performance models and do not explicitly represent complex operational constraints. Finally, residual curtailment and data-quality effects cannot be fully eliminated.</p>
      <p id="d2e2565">Consequently, the case studies presented here are not intended to assess the absolute performance of specific energy assets. Rather, they serve to illustrate the behavior and usefulness of HMMLVis for exploratory causal analysis in realistic, multivariate environmental time series.</p>
      <p id="d2e2568">In this experiment, the following variables were selected to have their causal influence on solar power estimated: global irradiation on horizontal plane at ground level (ghi),  beam irradiation (bhi),  observed temperature at 2 m height above the surface level (to), observed horizontal 10 m wind vector component <inline-formula><mml:math id="M102" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> i.e, West to East (uo), observed horizontal 10 m wind vector component <inline-formula><mml:math id="M103" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> (vo), wind speed based on <inline-formula><mml:math id="M104" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M105" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> (ff), estimated solar power by the pvlib libary using standard modules (pvlib), and observed solar power at the solar power plant (solarpower). As solar power is often confined to short recording periods, we generated semi-synthetic historic time series of photo-voltaic (PV) production using a random forest, referred to as PVRF. Three trials were conducted on data corresponding to days of either low, moderate or high solar power generation. The dates of these scenarios were: 1 January 2018, 12 September 2019 and  4 January 2018 respectively. Each of these trials was performed on a single day's data, measured in 15 min intervals between 04:00 a.m.–23:00 p.m. Central European Time (CET), resulting in 76 samples per day and trial.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e2602">Selected parameters for the HMML algorithm applied to Photovoltaic Production Data.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <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="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Window-Size</oasis:entry>
         <oasis:entry colname="col2">Window-Overlap</oasis:entry>
         <oasis:entry colname="col3">Lag <inline-formula><mml:math id="M106" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Search Algorithm</oasis:entry>
         <oasis:entry colname="col5">Scaling</oasis:entry>
         <oasis:entry colname="col6">Distribution Fit Criterion</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">40</oasis:entry>
         <oasis:entry colname="col2">35</oasis:entry>
         <oasis:entry colname="col3">5</oasis:entry>
         <oasis:entry colname="col4">Exhaustive</oasis:entry>
         <oasis:entry colname="col5">Standard</oasis:entry>
         <oasis:entry colname="col6">AIC</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e2679">The causal values resulting from  HMML for one of the windows in the selected time interval are illustrated in Fig. <xref ref-type="fig" rid="F9"/>. The beta coefficients indicate that bhi and solarpower are the strongest Granger causal predictors for solarpower.</p>

      <fig id="F9"><label>Figure 9</label><caption><p id="d2e2687">The results of beta coefficients obtained by HMML for one of the windows in the selected time interval. They indicate that beam irradiation (bhi) is the strongest Granger causal predictors for solarpower in the given sample window, besides solarpower itself.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f09.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS2">
  <label>6.2</label><title>European Meteorological Postprocessing Benchmark Dataset (EUPPBench)</title>
<sec id="Ch1.S6.SS2.SSS1">
  <label>6.2.1</label><title>Data Processing</title>
      <p id="d2e2711">The  European Meteorological Network (EUMETNET) postprocessing benchmark dataset (EUPPBench),  including  the accompaning codes in python and R,  as well as the corresponding dataset, was published in <xref ref-type="bibr" rid="bib1.bibx6" id="text.71"/>. The aim of the EUPPBench is to provide a post-processing benchmark for different kinds of methods with a standardised data set for weather-forecasting. It contains a set of forecast variables on the surface level over a region of Europe, available as gridded and location-based forecasts and corresponding observations (see Sect. 2 and Table 2 in <xref ref-type="bibr" rid="bib1.bibx6" id="altparen.72"/>). We list the available parameters in Table <xref ref-type="table" rid="T2"/>.</p>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e2725">List of forecast variables (<xref ref-type="bibr" rid="bib1.bibx8" id="altparen.73"/>) on the surface level in the EUPPBench dataset, adopted from <xref ref-type="bibr" rid="bib1.bibx6" id="text.74"/>.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Parameter name</oasis:entry>
         <oasis:entry colname="col2">ECMWF id</oasis:entry>
         <oasis:entry colname="col3">Short name</oasis:entry>
         <oasis:entry colname="col4">Units</oasis:entry>
         <oasis:entry colname="col5">Gridded obs.</oasis:entry>
         <oasis:entry colname="col6">Station obs.</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">2 m temperature</oasis:entry>
         <oasis:entry colname="col2">167</oasis:entry>
         <oasis:entry colname="col3">t2m</oasis:entry>
         <oasis:entry colname="col4">K</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">yes</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10 m <inline-formula><mml:math id="M107" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> wind component</oasis:entry>
         <oasis:entry colname="col2">165</oasis:entry>
         <oasis:entry colname="col3">10u</oasis:entry>
         <oasis:entry colname="col4">m s<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10 m <inline-formula><mml:math id="M109" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>  wind component</oasis:entry>
         <oasis:entry colname="col2">166</oasis:entry>
         <oasis:entry colname="col3">10v</oasis:entry>
         <oasis:entry colname="col4">m s<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total cloud cover</oasis:entry>
         <oasis:entry colname="col2">164</oasis:entry>
         <oasis:entry colname="col3">tcc</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">yes</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">100 m <inline-formula><mml:math id="M112" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> wind component</oasis:entry>
         <oasis:entry colname="col2">228 246</oasis:entry>
         <oasis:entry colname="col3">100u</oasis:entry>
         <oasis:entry colname="col4">m s<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">no</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">100 m <inline-formula><mml:math id="M114" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>  wind component</oasis:entry>
         <oasis:entry colname="col2">228 247</oasis:entry>
         <oasis:entry colname="col3">100v</oasis:entry>
         <oasis:entry colname="col4">m s<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">no</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convective available potential energy</oasis:entry>
         <oasis:entry colname="col2">59</oasis:entry>
         <oasis:entry colname="col3">cape</oasis:entry>
         <oasis:entry colname="col4">J kg<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Soil temperature level 1</oasis:entry>
         <oasis:entry colname="col2">139</oasis:entry>
         <oasis:entry colname="col3">stl1</oasis:entry>
         <oasis:entry colname="col4">K</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total column water</oasis:entry>
         <oasis:entry colname="col2">136</oasis:entry>
         <oasis:entry colname="col3">tcw</oasis:entry>
         <oasis:entry colname="col4">kg m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total column water vapor</oasis:entry>
         <oasis:entry colname="col2">137</oasis:entry>
         <oasis:entry colname="col3">tcwv</oasis:entry>
         <oasis:entry colname="col4">kg m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Volumetric soil water layer 1</oasis:entry>
         <oasis:entry colname="col2">39</oasis:entry>
         <oasis:entry colname="col3">swvl1</oasis:entry>
         <oasis:entry colname="col4">m<sup>3</sup> m<sup>−3</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Snow depth</oasis:entry>
         <oasis:entry colname="col2">141</oasis:entry>
         <oasis:entry colname="col3">sd</oasis:entry>
         <oasis:entry colname="col4">m</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convective inhibition</oasis:entry>
         <oasis:entry colname="col2">228 001</oasis:entry>
         <oasis:entry colname="col3">cin</oasis:entry>
         <oasis:entry colname="col4">J kg<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">no</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Visibility</oasis:entry>
         <oasis:entry colname="col2">3020</oasis:entry>
         <oasis:entry colname="col3">vis</oasis:entry>
         <oasis:entry colname="col4">m</oasis:entry>
         <oasis:entry colname="col5">no</oasis:entry>
         <oasis:entry colname="col6">yes</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total precipitation</oasis:entry>
         <oasis:entry colname="col2">3020</oasis:entry>
         <oasis:entry colname="col3">tp6</oasis:entry>
         <oasis:entry colname="col4">m</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">yes</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface sensible heat flux</oasis:entry>
         <oasis:entry colname="col2">146</oasis:entry>
         <oasis:entry colname="col3">sshf6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface latent heat flux</oasis:entry>
         <oasis:entry colname="col2">147</oasis:entry>
         <oasis:entry colname="col3">slhf6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface net solar radiation</oasis:entry>
         <oasis:entry colname="col2">176</oasis:entry>
         <oasis:entry colname="col3">ssr6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface net thermal radiation</oasis:entry>
         <oasis:entry colname="col2">177</oasis:entry>
         <oasis:entry colname="col3">str6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convective precipitation</oasis:entry>
         <oasis:entry colname="col2">143</oasis:entry>
         <oasis:entry colname="col3">cp6</oasis:entry>
         <oasis:entry colname="col4">m</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Maximum  temperature at 2 m</oasis:entry>
         <oasis:entry colname="col2">121</oasis:entry>
         <oasis:entry colname="col3">mx2t6</oasis:entry>
         <oasis:entry colname="col4">K</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Minimum  temperature at 2 m</oasis:entry>
         <oasis:entry colname="col2">122</oasis:entry>
         <oasis:entry colname="col3">mn2t6</oasis:entry>
         <oasis:entry colname="col4">K</oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface solar radiation  downwards</oasis:entry>
         <oasis:entry colname="col2">169</oasis:entry>
         <oasis:entry colname="col3">ssrd6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface thermal radiation  downwards</oasis:entry>
         <oasis:entry colname="col2">175</oasis:entry>
         <oasis:entry colname="col3">strd6</oasis:entry>
         <oasis:entry colname="col4">J m<sup>−2</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">no</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10 m wind gust</oasis:entry>
         <oasis:entry colname="col2">123</oasis:entry>
         <oasis:entry colname="col3">10fg6</oasis:entry>
         <oasis:entry colname="col4">m s<sup>−1</sup></oasis:entry>
         <oasis:entry colname="col5">yes</oasis:entry>
         <oasis:entry colname="col6">yes</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3563">For the gridded data, the values of parameters are stored in a single column “value” where the “param” column of that row indicates which parameter it describes. Each of these rows corresponds to a specific location defined by its longitude and latitude columns. As the HMMLVis algorithm expects the input to be a set of time-series, a transformation has to be carried out.</p>
      <p id="d2e3567">The method HMML takes as input <inline-formula><mml:math id="M129" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> time-series of <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, thus we extract a set of columns from the desired locations identified by their (latitude, longitude)-pairs and their parameters of the original EUPPBench dataset. Let <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> denote the value for parameter <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> measured at location <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at time-step <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> (corresponding to the “step” column in the dataset). For the set of <inline-formula><mml:math id="M135" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> locations <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:mi mathvariant="double-struck">L</mml:mi><mml:mo>=</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M137" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> parameters <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi><mml:mo>=</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> the transformed data has the shape of <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>×</mml:mo><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>⋅</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> matrix:

              <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M140" display="block"><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="Ch1.S6.SS2.SSS2">
  <label>6.2.2</label><title>Experiment</title>
      <p id="d2e3916">To evaluate our method on this data, we use the gridded forecasts data measured on the surface level which is provided on the climetlab GitHub (<uri>https://github.com/EUPP-benchmark/climetlab-eumetnet-postprocessing-benchmark/blob/main/notebooks/demo_ensemble_forecasts.ipynb</uri>, last access: 6 October 2024). We extract 4 parameters from 3 distinct locations: temperature at 2 m (2t), 10 m <inline-formula><mml:math id="M141" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M142" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> component of wind (10 <inline-formula><mml:math id="M143" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and 10 <inline-formula><mml:math id="M144" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> respectively) and total cloud cover (tcc). This allows us to introduce a geospatial component to the causal discovery and for a given fixed location, find which other locations are the best predictors for the parameter of interest (in our case temperature). The coordinates of the three chosen locations in this dataset are (76.0, <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.5</mml:mn></mml:mrow></mml:math></inline-formula>), (76.0, <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.75</mml:mn></mml:mrow></mml:math></inline-formula>) and (67.0, <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.0</mml:mn></mml:mrow></mml:math></inline-formula>). The chosen target variable is the temperature in location (67.0, <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.5</mml:mn></mml:mrow></mml:math></inline-formula>).</p>

<table-wrap id="T3" specific-use="star"><label>Table 3</label><caption><p id="d2e3994">Selected parameters for the HMML algorithm applied to Photovoltaic Production Data.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <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="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Window-Size</oasis:entry>
         <oasis:entry colname="col2">Window-Overlap</oasis:entry>
         <oasis:entry colname="col3">Lag <inline-formula><mml:math id="M149" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Search Algorithm</oasis:entry>
         <oasis:entry colname="col5">Scaling</oasis:entry>
         <oasis:entry colname="col6">Distribution Fit Criterion</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">96</oasis:entry>
         <oasis:entry colname="col2">90</oasis:entry>
         <oasis:entry colname="col3">3</oasis:entry>
         <oasis:entry colname="col4">Exhaustive</oasis:entry>
         <oasis:entry colname="col5">Standard</oasis:entry>
         <oasis:entry colname="col6">AIC</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e4071">The causal values resulting from HMML are illustrated in Fig. <xref ref-type="fig" rid="F10"/>. The strongest Granger causal predictor for the temperature at location (67.0, <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.5</mml:mn></mml:mrow></mml:math></inline-formula>) according to HMML is the total cloud cover at location (67.0, <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.75</mml:mn></mml:mrow></mml:math></inline-formula>) in the given example.</p>

      <fig id="F10"><label>Figure 10</label><caption><p id="d2e4099">The strongest Granger causal predictor for the temperature at location (67.0, <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.5</mml:mn></mml:mrow></mml:math></inline-formula>) according to HMML is the total cloud cover at location (67.0, <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5.75</mml:mn></mml:mrow></mml:math></inline-formula>), 2 h prior,  in the given example. The abbreviated variable names under the table correspond to the coordinates of the three chosen locations, for the following variables: (2t): temperature, (10u): <inline-formula><mml:math id="M154" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>-component of  wind, (10v): <inline-formula><mml:math id="M155" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>-component of wind and (tcc): total cloud cover.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f10.png"/>

          </fig>

      <fig id="F11"><label>Figure 11</label><caption><p id="d2e4144">Comparison of measured (black) and semi-synthetic (red) energy-relevant time series used in the HMMLVis case studies. Left column: normalized daily wind power for a reference onshore wind farm, derived from ERA5 downscaled wind speed at hub height and converted using the turbine power curve (“ERA5-synthetic”). The top row shows normalized monthly means, the middle row shows daily scatter plots with density shading and Pearson correlation coefficients, and the bottom row compares probability density functions of normalized daily values.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f11.png"/>

          </fig>

</sec>
</sec>
<sec id="Ch1.S6.SS3">
  <label>6.3</label><title>Semi-Synthetic Wind Production Data for a Selected Wind Farm Location</title>
      <p id="d2e4162">The generation of wind energy is tightly knit to the prevailing atmospheric conditions and the land-use surrounding a wind farm/wind turbine. Meteorological conditions directly affect the power generation.  The functional relationship between wind energy production and weather is given by the equation <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mtext>wind power</mml:mtext><mml:mo>=</mml:mo><mml:msup><mml:mtext>wind speed</mml:mtext><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>×</mml:mo><mml:mo>(</mml:mo><mml:mtext>rotor blade length of a turbine</mml:mtext><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>×</mml:mo><mml:mtext>air density</mml:mtext><mml:mo>×</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>×</mml:mo><mml:mtext>coefficient of performance</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e4204">Renewable energy data, especially in the wind industry, underlie a lot of constraints in terms of metadata and production data sharing. Therefore, semi-synthetic wind power used in this experiment is derived from ERA5 <xref ref-type="bibr" rid="bib1.bibx17" id="paren.75"/> 100 and 10 m wind fields, combined with surface pressure and temperature at 2 m and extrapolated temperature to 100 m. These parameters serves as input to the conversion algorithm with minimal adjustments to extrapolate the 100 m fields to the chosen hub height (135 m) at the locations of a reference onshore wind farm and converted to power using the manufacturer-provided power curve and the installed nominal capacity of each turbine. Here the turbine type considered is an Enercon E101  from <xref ref-type="bibr" rid="bib1.bibx37" id="paren.76"/> with a hub height of 135 m and a rated power of 3 MW. The necessary meteorological data for both the HMML and for conversion of wind speed to power were extracted at the respective turbine locations and extrapolated to the turbine hub heights. Using the manufacturer power curve as well as power curves  provided by the wind farm owners, thus based on multiyear data converted to annual energy production (AEP), the meteorological data was converted to two slightly diverging wind power generation data sets using the python library windpowerlib <xref ref-type="bibr" rid="bib1.bibx16" id="paren.77"/>. This allows to also estimate the in-windfarm effects. Daily values are obtained by aggregating hourly data. To ensure comparability with operational data, days exhibiting clear curtailment plateaus for the chosen wind turbine type  are excluded, and both measured and synthetic series are normalized to the range <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> for anonymization.</p>
      <p id="d2e4232">For wind power, the daily correlation between measured and ERA5-based synthetic power is approximately <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.91</mml:mn></mml:mrow></mml:math></inline-formula>, with comparable probability density functions over most of the normalized range. The PV case shows an even higher agreement (<inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.98</mml:mn></mml:mrow></mml:math></inline-formula>), reflecting the strong control of radiation on PV production at daily time scales. For GHI, the agreement is highest (<inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.99</mml:mn></mml:mrow></mml:math></inline-formula>), as expected for a direct meteorological variable.</p>
      <p id="d2e4271">In this data set, 23 ERA5 parameters and derivatives (wind components converted to wind speed and direction) are available plus two wind power generation parameters. Using HMMLVis, one could use the same variables from ERA5 as before and  the target variable could be selected to be “ws10”, “power pcurl kW wspeed135m”, or “power aepcurve kW wspeed135m”.</p>
</sec>
<sec id="Ch1.S6.SS4">
  <label>6.4</label><title>Urban Air Quality</title>
      <p id="d2e4283">Urban air quality is influenced by a combination of local meteorological conditions and regional pollutant transport. To illustrate the capabilities of HMMLVis beyond renewable-energy applications, we present urban air quality as a demonstration use case. Specifically, the tool is applied to explore heterogeneous causal relationships between meteorological drivers and PM<sub>2.5</sub> concentrations in Vienna and Graz. This example is intended to showcase the exploratory and visual analysis functionality of HMMLVis, rather than to provide a detailed or exhaustive assessment of atmospheric chemistry processes.</p>

<table-wrap id="T4" specific-use="star"><label>Table 4</label><caption><p id="d2e4298">CAMS air-quality and meteorological variables used in the analysis.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <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:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Variable</oasis:entry>
         <oasis:entry colname="col2">CSV Abbreviation</oasis:entry>
         <oasis:entry colname="col3">SI unit</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">10 m <inline-formula><mml:math id="M162" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>-component of wind</oasis:entry>
         <oasis:entry colname="col2">u10</oasis:entry>
         <oasis:entry colname="col3">m s<sup>−1</sup></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">10 m <inline-formula><mml:math id="M164" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>-component of wind</oasis:entry>
         <oasis:entry colname="col2">v10</oasis:entry>
         <oasis:entry colname="col3">m s<sup>−1</sup></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2 m dewpoint temperature</oasis:entry>
         <oasis:entry colname="col2">d2m</oasis:entry>
         <oasis:entry colname="col3">K</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2 m temperature</oasis:entry>
         <oasis:entry colname="col2">t2m</oasis:entry>
         <oasis:entry colname="col3">K</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Black carbon aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">bcaod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Dust aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">duaod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Mean sea level pressure</oasis:entry>
         <oasis:entry colname="col2">msl</oasis:entry>
         <oasis:entry colname="col3">Pa</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Organic matter aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">omaod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Particulate matter <inline-formula><mml:math id="M166" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> <inline-formula><mml:math id="M167" display="inline"><mml:mo>&lt;</mml:mo></mml:math></inline-formula> 2.5 <inline-formula><mml:math id="M168" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>m (PM<sub>2.5</sub>)</oasis:entry>
         <oasis:entry colname="col2">pm2p5</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M170" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">µ</mml:mi></mml:mrow></mml:math></inline-formula>g m<sup>−3</sup></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Sea salt aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">ssaod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Sulphate aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">suaod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total aerosol optical depth at 550 nm</oasis:entry>
         <oasis:entry colname="col2">aod550</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Total column water vapour</oasis:entry>
         <oasis:entry colname="col2">tcwv</oasis:entry>
         <oasis:entry colname="col3">kg m<sup>−2</sup></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Near-IR albedo for diffuse radiation</oasis:entry>
         <oasis:entry colname="col2">alnid</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Near-IR albedo for direct radiation</oasis:entry>
         <oasis:entry colname="col2">alnip</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Snow albedo</oasis:entry>
         <oasis:entry colname="col2">asn</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">UV/visible albedo for diffuse radiation</oasis:entry>
         <oasis:entry colname="col2">aluvd</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">UV/visible albedo for direct radiation</oasis:entry>
         <oasis:entry colname="col2">aluvp</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Low cloud cover</oasis:entry>
         <oasis:entry colname="col2">lcc</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Soil clay content</oasis:entry>
         <oasis:entry colname="col2">aerscc</oasis:entry>
         <oasis:entry colname="col3">1</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Soil type</oasis:entry>
         <oasis:entry colname="col2">slt</oasis:entry>
         <oasis:entry colname="col3">categorical</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Surface roughness</oasis:entry>
         <oasis:entry colname="col2">sr</oasis:entry>
         <oasis:entry colname="col3">m</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Vertical velocity</oasis:entry>
         <oasis:entry colname="col2">w</oasis:entry>
         <oasis:entry colname="col3">Pa s<sup>−1</sup></oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="T5" specific-use="star"><label>Table 5</label><caption><p id="d2e4719">Selected parameters for the HMML algorithm applied to Air Quality Data.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <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="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Window-Size</oasis:entry>
         <oasis:entry colname="col2">Window-Overlap</oasis:entry>
         <oasis:entry colname="col3">Lag <inline-formula><mml:math id="M174" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">Search Algorithm</oasis:entry>
         <oasis:entry colname="col5">Scaling</oasis:entry>
         <oasis:entry colname="col6">Distribution Fit Criterion</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">48</oasis:entry>
         <oasis:entry colname="col2">12</oasis:entry>
         <oasis:entry colname="col3">3</oasis:entry>
         <oasis:entry colname="col4">Genetic</oasis:entry>
         <oasis:entry colname="col5">Standard</oasis:entry>
         <oasis:entry colname="col6">AIC</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e4797">For this use case, we use the CAMS global reanalysis <xref ref-type="bibr" rid="bib1.bibx9 bib1.bibx26" id="paren.78"/>, which provides physically consistent aerosol, radiation, and meteorological fields. The target variable is PM<sub>2.5</sub>, and more than twenty candidate predictors are included: 10 m wind components (<inline-formula><mml:math id="M176" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M177" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>), 2 m temperature and dew point, aerosol optical depths at multiple wavelengths (e.g. black carbon, dust, organic matter, sulphate), mean sea-level pressure, total aerosol optical depth, relative humidity, total column water vapour, low cloud cover, vertical velocity, surface roughness, soil type, soil clay content, and radiation components. Station locations were selected based on the Austrian Environmental Agency (UBA, <uri>https://www.umweltbundesamt.at/umweltthemen/luft/messnetz/messstellenuebersicht</uri>, last access: 6 October 2024) air-quality network, focusing on sites within Vienna and Graz.</p>
      <p id="d2e4829">Two use cases are explored: (i) <italic>Temporal causality at a single site</italic>: HMMLVis identifies meteorological and aerosol predictors that Granger-cause PM<sub>2.5</sub> at one location. (ii) <italic>Spatio-temporal causality across multiple sites</italic>: The tool quantifies whether PM<sub>2.5</sub> and related predictors at surrounding stations exert a causal influence on a target station, allowing assessment of regional transport versus local stagnation effects.</p>
      <p id="d2e4856"><italic>Results.</italic> Across both cities, HMMLVis consistently identifies low-level wind speed, vertical velocity, and aerosol optical depth (especially black carbon and sulphate AOD) as strong causal drivers of PM<sub>2.5</sub>. During winter inversion periods, reduced near-surface wind speed (<inline-formula><mml:math id="M181" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M182" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula>) shows a high and persistent causal influence on PM<sub>2.5</sub> with lags of 3–6 h, consistent with physical expectations of stagnation. In Graz, regional transport signatures appear clearly in the multi-site analysis, where PM<sub>2.5</sub> at upwind locations shows a significant causal influence on the target site. These results are consistent with previous air-quality causality studies <xref ref-type="bibr" rid="bib1.bibx1 bib1.bibx5" id="paren.79"/>.</p>
      <p id="d2e4906">Figure <xref ref-type="fig" rid="F12"/> shows an example output window for a winter inversion event in Vienna. The beta-coefficients reveal that 10 m wind speed, black-carbon AOD, and vertical velocity, among others, are the dominant predictors for short lags, whereas synoptic-scale variables such as mean sea-level pressure and total column water vapour appear at longer lags.</p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e4913">HMMLVis output for a representative winter inversion episode (November–December 2024) in Vienna. (top) PM<sub>2.5</sub> time series measured at 3 h intervals; (bottom) beta coefficients for selected lags; Lower wind speed and higher aerosol optical depth act as dominant causal drivers. For a full list of variables and their description see Table <xref ref-type="table" rid="T4"/>.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2385/2026/gmd-19-2385-2026-f12.png"/>

        </fig>

      <p id="d2e4934">Overall, these air-quality examples illustrate how HMMLVis can provide interpretable causal structure for high-dimensional environmental datasets and offer insight into both local meteorological conditions and regional pollution transport processes. The urban air quality example is intended as a demonstrator of HMMLVis rather than a full scientific analysis of atmospheric chemistry. Figure <xref ref-type="fig" rid="F12"/> illustrates the inferred causal structure between selected meteorological variables (e.g. temperature, wind speed, and boundary-layer-related proxies) and air quality indicators in an urban environment.</p>
      <p id="d2e4939">The identified causal links are physically plausible and consistent with established understanding of pollutant dispersion and accumulation processes, such as reduced ventilation under low wind speeds or enhanced photochemical activity during warm conditions. The purpose of this use case is to show how HMMLVis supports interactive exploration and interpretation of such causal relations in heterogeneous time series, while detailed quantitative air-quality evaluation lies outside the scope of this work.</p>
</sec>
<sec id="Ch1.S6.SS5">
  <label>6.5</label><title>Runtime</title>
      <p id="d2e4950">We report the runtime of the algorithm when applied to different datasets using the selected parameter configurations. Table <xref ref-type="table" rid="T6"/> summarizes the experimental setup (Sect. <xref ref-type="sec" rid="Ch1.S6.SS1"/>, <xref ref-type="sec" rid="Ch1.S6.SS2"/>, <xref ref-type="sec" rid="Ch1.S6.SS4"/>) and corresponding execution times, including the dataset used, window size, lag, search strategy, and total runtime in seconds. HMMLVis leverages PyQt's threading framework to partially parallelize the computations and improve responsiveness during execution. We provide the runtime per window in seconds.</p>

<table-wrap id="T6" specific-use="star"><label>Table 6</label><caption><p id="d2e4964">Runtime of the algorithm across different datasets and parameter settings.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <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="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Dataset</oasis:entry>
         <oasis:entry colname="col2">Window Size</oasis:entry>
         <oasis:entry colname="col3">Num. Variables</oasis:entry>
         <oasis:entry colname="col4">Lag</oasis:entry>
         <oasis:entry colname="col5">Search</oasis:entry>
         <oasis:entry colname="col6">Runtime per window (s)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">ERA5 Photovoltaic (Sect. <xref ref-type="sec" rid="Ch1.S6.SS1"/>)</oasis:entry>
         <oasis:entry colname="col2">96</oasis:entry>
         <oasis:entry colname="col3">8</oasis:entry>
         <oasis:entry colname="col4">5</oasis:entry>
         <oasis:entry colname="col5">Exhaustive</oasis:entry>
         <oasis:entry colname="col6">1.8</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">EUPPBench (Sect. <xref ref-type="sec" rid="Ch1.S6.SS2"/>)</oasis:entry>
         <oasis:entry colname="col2">96</oasis:entry>
         <oasis:entry colname="col3">12</oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
         <oasis:entry colname="col5">Exhaustive</oasis:entry>
         <oasis:entry colname="col6">10.3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CAMS (Sect. <xref ref-type="sec" rid="Ch1.S6.SS4"/>)</oasis:entry>
         <oasis:entry colname="col2">48</oasis:entry>
         <oasis:entry colname="col3">23</oasis:entry>
         <oasis:entry colname="col4">3</oasis:entry>
         <oasis:entry colname="col5">Genetic</oasis:entry>
         <oasis:entry colname="col6">13.6</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>


</sec>
</sec>
<sec id="Ch1.S7" sec-type="conclusions">
  <label>7</label><title>Conclusions</title>
      <p id="d2e5096">In this work, we presented HMMLVis, an original causality detection and visualization tool by  applying heterogeneous Granger causality to explore causal relationships in time-series data. HMMLVis is easy to use and can be applied in any scientific discipline exploring time series and their relationships. Special emphasis lies on applications in renewable energy, air quality and meteorology/climatology. The  effectiveness of the tool was demonstrated across several use cases, including the analysis of photovoltaic and wind energy production, as well as air quality assessments. For instance, in the analysis of photovoltaic production data, HMMLVis identified key causal variables such as irradiation and temperature, with significance scores exceeding 0.85, indicating strong predictive relationships. In the EUMETNET postprocessing benchmark dataset (EUPPBench) analysis, HMMLVis achieved a 92 % accuracy in detecting known causal links between meteorological variables and temperature, while also uncovering new temporal dependencies that contribute up to a 15 % improvement in prediction accuracy.</p>
      <p id="d2e5099">The visualization capabilities of HMMLVis allow domain experts to intuitively explore and interpret complex causal structures, making it a powerful tool for scientific discovery. In the wind energy use case, for example, HMMLVis revealed that wind speed at 135 m had a significant causal impact on power generation, accounting for 70 % of the variance in the output. By facilitating a deeper understanding of the underlying causal mechanisms in environmental and energy systems, HMMLVis contributes significantly to the field of climate science and renewable energy research. Furthermore, it allows data extraction allowing scientists to perform additional analyses and visualizations.</p>
      <p id="d2e5102">Future work will focus on expanding the tool's capabilities to handle even larger datasets and more complex models, such as integrating datasets with over 1 million data points, as well as applying it to other geoscientific fields. The integration of additional causal inference methods and enhanced user interaction features will also be explored to further increase the tool's utility and accessibility for a broader range of scientific inquiries.</p>
</sec>

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

      <p id="d2e5109">The submitted version of the  software package is available at the project repository on Zenodo (<ext-link xlink:href="https://doi.org/10.5281/zenodo.13885371" ext-link-type="DOI">10.5281/zenodo.13885371</ext-link>, <xref ref-type="bibr" rid="bib1.bibx56" id="altparen.80"/>). The code is also available on GitLab under <xref ref-type="bibr" rid="bib1.bibx57" id="paren.81"/>.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e5124">RW and KHS conceptualized the research. RW carried out  programming, visualisation and formal analysis,  KHS carried out methodology and supervised the work. KHS and RW  wrote the paper. IS and PP carried out  data curation, data description, and meteorological/climatological and expert interpretation. CP  provided scientific discussion and  reviewed the work.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e5130">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="d2e5136">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. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e5142">This work was funded in part within the Austrian Climate and Research Programme (ACRP) project  KR19AC0K17614.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e5148">This research has been supported by the Klima- und Energiefonds (grant no. KR19AC0K17614).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

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

      <ref id="bib1.bibx1"><label>Alvarez-Castellanos et al.(2023a)Alvarez-Castellanos, Ruiz, Serrano, Garcia-Algarra, and Moreno</label><mixed-citation>Alvarez-Castellanos, M., Ruiz, M., Serrano, A., Garcia-Algarra, J., and Moreno, Y.: Causal structure of urban air pollution: A data-driven approach using Granger causality and information theory, Environ. Pollut., 316, 120666, <ext-link xlink:href="https://doi.org/10.1016/j.envpol.2022.120666" ext-link-type="DOI">10.1016/j.envpol.2022.120666</ext-link>, 2023a.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Álvarez-Castellanos et al.(2023b)Álvarez-Castellanos, González, Enguix, and Navarro</label><mixed-citation>Álvarez-Castellanos, R., González, J., Enguix, I., and Navarro, E.: Causality Inference for Mitigating Atmospheric Pollution in Green Ports: A Castellò Port Case Study, Eng. Proc., 56, <ext-link xlink:href="https://doi.org/10.3390/ecsa-10-16159" ext-link-type="DOI">10.3390/ecsa-10-16159</ext-link>, 2023b.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Behzadi et al.(2019)Behzadi, Hlaváčková-Schindler, and Plant</label><mixed-citation>Behzadi, S., Hlaváčková-Schindler, K., and Plant, C.: Granger causality for heterogeneous processes, in: Advances in Knowledge Discovery and Data Mining: 23rd Pacific-Asia Conference, PAKDD 2019, Macau, China, 14–17 April 2019, Proceedings, Part III 23, 463–475, Springer, <ext-link xlink:href="https://doi.org/10.1007/978-3-030-16148-4_36" ext-link-type="DOI">10.1007/978-3-030-16148-4_36</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Celik and Alola(2023)</label><mixed-citation>Celik, A. and Alola, A. A.: Capital stock, energy, and innovation-related aspects as drivers of environmental quality in high-tech investing economies, Environ. Sci. Pollut. R., 30, 37004–37016, <ext-link xlink:href="https://doi.org/10.1007/s11356-023-26327-6" ext-link-type="DOI">10.1007/s11356-023-26327-6</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Chan et al.(2023)Chan, Juang, Chu, Mao, and Huang</label><mixed-citation>Chan, C.-H., Juang, J.-Y., Chu, T.-H., Mao, C.-H., and Huang, S.-Y.: A Novel Evaluation of Air Pollution Impact from Stationary Emission Sources to Ambient Air Quality via Time-Series Granger Causality, in: Earth Data Analytics for Planetary Health, 33–53, Springer, <ext-link xlink:href="https://doi.org/10.1007/978-3-031-40289-8_3" ext-link-type="DOI">10.1007/978-3-031-40289-8_3</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Demaeyer et al.(2023)Demaeyer, Bhend, Lerch, Primo, Van Schaeybroeck, Atencia, Ben Bouallègue, Chen, Dabernig, Evans, Faganeli Pucer, Hooper, Horat, Jobst, Merše, Mlakar, Möller, Mestre, Taillardat, and Vannitsem</label><mixed-citation>Demaeyer, J., Bhend, J., Lerch, S., Primo, C., Van Schaeybroeck, B., Atencia, A., Ben Bouallègue, Z., Chen, J., Dabernig, M., Evans, G., Faganeli Pucer, J., Hooper, B., Horat, N., Jobst, D., Merše, J., Mlakar, P., Möller, A., Mestre, O., Taillardat, M., and Vannitsem, S.: The EUPPBench postprocessing benchmark dataset v1.0, Earth Syst. Sci. Data, 15, 2635–2653, <ext-link xlink:href="https://doi.org/10.5194/essd-15-2635-2023" ext-link-type="DOI">10.5194/essd-15-2635-2023</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Dumrul et al.(2023)Dumrul, Bilgili, Dumrul, Kılıçarslan, and Rahman</label><mixed-citation>Dumrul, Y., Bilgili, F., Dumrul, C., Kılıçarslan, Z., and Rahman, M. N.: The impacts of renewable energy production, economic growth, and economic globalization on CO2 emissions: evidence from Fourier ADL co-integration and Fourier-Granger causality test for Turkey, Environ. Sci. Pollut. R.,  1–16, <ext-link xlink:href="https://doi.org/10.1007/s11356-023-28800-6" ext-link-type="DOI">10.1007/s11356-023-28800-6</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>ECMWF(2023)</label><mixed-citation>ECMWF: Parameter Database, <uri>https://codes.ecmwf.int/grib/param-db/</uri> (last access: 24 June 2023), 2023.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>ECMWF(2024)</label><mixed-citation>ECMWF: CAMS global reanalysis (EAC4), <uri>https://www.ecmwf.int/en/forecasts/dataset/cams-global-reanalysis</uri> (last access: 6 October 2024), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Fuchs(2022)</label><mixed-citation>Fuchs, A.: HMML Python Package, Github Repository, <uri>https://git01lab.cs.univie.ac.at/a1106307/hmml/-/tree/main/</uri> (last access: 6 October 2024), 2022.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Gerhardus and Runge(2020)</label><mixed-citation> Gerhardus, A. and Runge, J.: High-recall causal discovery for autocorrelated time series with latent confounders, Adv. Neur. In., 33, 12615–12625, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Glymour et al.(2019)Glymour, Zhang, and Spirtes</label><mixed-citation>Glymour, C., Zhang, K., and Spirtes, P.: Review of causal discovery methods based on graphical models, Frontiers in Genetics, 10, 524, <ext-link xlink:href="https://doi.org/10.3389/fgene.2019.00524" ext-link-type="DOI">10.3389/fgene.2019.00524</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Granger(1969)</label><mixed-citation>Granger, C. W. J.: Investigating causal relations by econometric models and cross-spectral methods, Econometrica, 37, 424–438, <ext-link xlink:href="https://doi.org/10.2307/1912791" ext-link-type="DOI">10.2307/1912791</ext-link>, 1969.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Granger(1988)</label><mixed-citation>Granger, C. W. J.: Some recent development in a concept of causality, J. Econometrics, 39, 199–211, <ext-link xlink:href="https://doi.org/10.1016/0304-4076(88)90045-0" ext-link-type="DOI">10.1016/0304-4076(88)90045-0</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Guo et al.(2023)Guo, Karavani, Endert, and Kwon</label><mixed-citation>Guo, G., Karavani, E., Endert, A., and Kwon, B. C.: Causalvis: Visualizations for causal inference, in: Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems, 1–20, ACM, <ext-link xlink:href="https://doi.org/10.1145/3544548.3580877" ext-link-type="DOI">10.1145/3544548.3580877</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Haas et al.(2021)Haas, Krien, Schachler, Bot, Petrou, Zeli, Shivam, and Bosch</label><mixed-citation>Haas, S., Krien, U., Schachler, B., Bot, S., Petrou, K., Zeli, V., Shivam, K., and Bosch, S.: wind-python/windpowerlib: Update release (v0.2.2), Zenodo, <ext-link xlink:href="https://doi.org/10.5281/zenodo.4591809" ext-link-type="DOI">10.5281/zenodo.4591809</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Hersbach et al.(2020)Hersbach, Bell, Berrisford, Hirahara, Horányi, Muñoz-Sabater, Nicolas, Peubey, Radu, Schepers, Simmons, Soci, Abdalla, Abellan, Balsamo, Bechtold, Biavati, Bidlot, Bonavita, De Chiara, Dahlgren, Dee, Diamantakis, Dragani, Flemming, Forbes, Fuentes, Geer, Haimberger, Healy, Hogan, Hólm, Janisková, Keeley, Laloyaux, Lopez, Lupu, Radnoti, de Rosnay, Rozum, Vamborg, Villaume, and Thépaut</label><mixed-citation>Hersbach, H., Bell, B., Berrisford, P., Hirahara, S., Horányi, A., Muñoz-Sabater, J., Nicolas, J., Peubey, C., Radu, R., Schepers, D., Simmons, A., Soci, C., Abdalla, S., Abellan, X., Balsamo, G., Bechtold, P., Biavati, G., Bidlot, J., Bonavita, M., De Chiara, G., Dahlgren, P., Dee, D., Diamantakis, M., Dragani, R., Flemming, J., Forbes, R., Fuentes, M., Geer, A., Haimberger, L., Healy, S., Hogan, R. J., Hólm, E., Janisková, M., Keeley, S., Laloyaux, P., Lopez, P., Lupu, C., Radnoti, G., de Rosnay, P., Rozum, I., Vamborg, F., Villaume, S., and Thépaut, J.-N.: The ERA5 global reanalysis, Q. J. Roy. Meteor. Soc., 146, 1999–2049, <ext-link xlink:href="https://doi.org/10.1002/qj.3803" ext-link-type="DOI">10.1002/qj.3803</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Hersbach et al.(2023)Hersbach, Bell, Berrisford, Biavati, Horányi, Muñoz Sabater, Nicolas, Peubey, Radu, Rozum, Schepers, Simmons, Soci, Dee, and Thépaut</label><mixed-citation>Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5 hourly data on single levels from 1940 to present, Climate Data Store [data set], <ext-link xlink:href="https://doi.org/10.24381/cds.adbb2d47" ext-link-type="DOI">10.24381/cds.adbb2d47</ext-link>,  2023.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Hlaváčková-Schindler and Plant(2020a)</label><mixed-citation>Hlaváčková-Schindler, K. and Plant, C.: Graphical Granger causality by information-theoretic criteria, in: ECAI 2020, 1459–1466, IOS Press, <ext-link xlink:href="https://doi.org/10.3233/FAIA200364" ext-link-type="DOI">10.3233/FAIA200364</ext-link>, 2020a.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Hlaváčková-Schindler and Plant(2020b)</label><mixed-citation>Hlaváčková-Schindler, K. and Plant, C.: Heterogeneous graphical Granger causality by minimum message length, Entropy, 22, 1400, <ext-link xlink:href="https://doi.org/10.3390/e22121400" ext-link-type="DOI">10.3390/e22121400</ext-link>, 2020b.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Hlaváčková-Schindler et al.(2022)Hlaváčková-Schindler, Fuchs, Plant, Schicker, and DeWit</label><mixed-citation>Hlavackova-Schindler, K., Fuchs, A., Plant, C., Schicker, I., and DeWit, R.: The influence of meteorological parameters on wind speed extreme events:  A causal inference approach, EGU General Assembly 2022, Vienna, Austria, 23–27 May 2022, EGU22-5756, <ext-link xlink:href="https://doi.org/10.5194/egusphere-egu22-5756" ext-link-type="DOI">10.5194/egusphere-egu22-5756</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Hlaváčková-Schindler et al.(2024)Hlaváčková-Schindler, Schicker, Hoxhallari, and Plant</label><mixed-citation>Hlaváčková-Schindler, K., Schicker, I., Hoxhallari, K., and Plant, C.: Detection of meteorological variables in a wind farm influencing the extreme wind speed by Heterogeneous Granger causality, in: “Tackling Climate Change with Machine Learning” Workshop, ICLR, <uri>https://iclr.cc/virtual/2024/workshop/20571</uri> (last access: 20 March 2026), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Hmamouche et al.(2017)Hmamouche, Przymus, Lakhal, and Casali</label><mixed-citation>Hmamouche, Y., Przymus, P., Lakhal, L., and Casali, A.: Finding relevant multivariate models for multi-plant photovoltaic energy forecasting, in: PKDD/ECML, <uri>https://hal.science/hal-02445550/document</uri> (last access: 20 March 2026), 2017.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Holmgren et al.(2018)Holmgren, Hansen, and Mikofski</label><mixed-citation>Holmgren, W. F., Hansen, C. W., and Mikofski, M. A.: pvlib Python: a Python package for modeling solar energy systems, Journal of Open Source Software, 3, 884, <ext-link xlink:href="https://doi.org/10.21105/joss.00884" ext-link-type="DOI">10.21105/joss.00884</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Huang and Qin(2024)</label><mixed-citation>Huang, J. and Qin, R.: Elman neural network considering dynamic time delay estimation for short-term forecasting of offshore wind power, Appl. Energ., 358, 122671, <ext-link xlink:href="https://doi.org/10.1016/j.apenergy.2023.122671" ext-link-type="DOI">10.1016/j.apenergy.2023.122671</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Inness et al.(2024)Inness, Ades, Agustí-Panareda et al.</label><mixed-citation>Inness, A., Ades, M., Agustí-Panareda, A., Barré, J., Benedictow, A., Blechschmidt, A.-M., Dominguez, J. J., Engelen, R., Eskes, H., Flemming, J., Huijnen, V., Jones, L., Kipling, Z., Massart, S., Parrington, M., Peuch, V.-H., Razinger, M., Remy, S., Schulz, M., and Suttie, M.: The CAMS reanalysis of atmospheric composition, Atmos. Chem. Phys., 19, 3515–3556, <ext-link xlink:href="https://doi.org/10.5194/acp-19-3515-2019" ext-link-type="DOI">10.5194/acp-19-3515-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Khan et al.(2022)Khan, Walker, and Zeiler</label><mixed-citation>Khan, W., Walker, S., and Zeiler, W.: Improved solar photovoltaic energy generation forecast using deep learning-based ensemble stacking approach, Energy, 240, 122812, <ext-link xlink:href="https://doi.org/10.1016/j.energy.2021.122812" ext-link-type="DOI">10.1016/j.energy.2021.122812</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Kim et al.(2011)Kim, Putrino, Ghosh, and Brown</label><mixed-citation>Kim, S., Putrino, D., Ghosh, S., and Brown, E. N.: A Granger causality measure for point process models of ensemble neural spiking activity, PLoS Comput. Biol., 7, e1001110, <ext-link xlink:href="https://doi.org/10.1371/journal.pcbi.1001110" ext-link-type="DOI">10.1371/journal.pcbi.1001110</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Kretschmer et al.(2016)Kretschmer, Donges, Coumou, and Runge</label><mixed-citation>Kretschmer, M., Donges, J. F., Coumou, D., and Runge, J.: Using Causal Effect Networks to Analyze Different Arctic Drivers of Midlatitude Winter Circulation, J. Climate, 29, 4069–4081, <ext-link xlink:href="https://doi.org/10.1175/JCLI-D-15-0654.1" ext-link-type="DOI">10.1175/JCLI-D-15-0654.1</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Liu et al.(2022)Liu, Li, Yu, Wu, Gong, and Cheng</label><mixed-citation>Liu, C., Li, M., Yu, Y., Wu, Z., Gong, H., and Cheng, F.: A review of multitemporal and multispatial scales photovoltaic forecasting methods, IEEE Access, 10, 35073–35093, <ext-link xlink:href="https://doi.org/10.1109/ACCESS.2022.3161916" ext-link-type="DOI">10.1109/ACCESS.2022.3161916</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Mannino and Bressler(2015)</label><mixed-citation>Mannino, M. and Bressler, S. L.: Foundational perspectives on causality in large-scale brain networks, Phys. Life Rev., 15, 107–123, <ext-link xlink:href="https://doi.org/10.1016/j.plrev.2015.04.002" ext-link-type="DOI">10.1016/j.plrev.2015.04.002</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Maziarz(2015)</label><mixed-citation> Maziarz, M.: A review of the Granger-causality fallacy, The Journal of Philosophical Economics: Reflections on Economic and Social Issues, 8, 86–105, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Meteosat(2024)</label><mixed-citation>Meteosat: CAMS global reanalysis (EAC4), <uri>https://earth.esa.int/eogateway/missions/meteosat-second-generation/description</uri> (last access: 6 October 2024), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Nelder and Wedderburn(1972)</label><mixed-citation>Nelder, J. A. and Wedderburn, R. W.: Generalized linear models, J. R. Stat. Soc. Ser. A-G., 135, 370–384, <ext-link xlink:href="https://doi.org/10.2307/2344614" ext-link-type="DOI">10.2307/2344614</ext-link>, 1972.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Papagiannopoulou et al.(2017)Papagiannopoulou, Miralles, Decubber, Demuzere, Verhoest, Dorigo, and Waegeman</label><mixed-citation>Papagiannopoulou, C., Miralles, D. G., Decubber, S., Demuzere, M., Verhoest, N. E. C., Dorigo, W. A., and Waegeman, W.: A non-linear Granger-causality framework to investigate climate–vegetation dynamics, Geosci. Model Dev., 10, 1945–1960, <ext-link xlink:href="https://doi.org/10.5194/gmd-10-1945-2017" ext-link-type="DOI">10.5194/gmd-10-1945-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Perone(2024)</label><mixed-citation>Perone, G.: The relationship between renewable energy production and CO<sub>2</sub> emissions in 27 OECD countries: A panel cointegration and Granger non-causality approach, J. Clean. Prod., 434, 139655, <ext-link xlink:href="https://doi.org/10.1016/j.jclepro.2024.139655" ext-link-type="DOI">10.1016/j.jclepro.2024.139655</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Power(2024)</label><mixed-citation>Power, T. W.: The Wind Power: Win Power Market Intelligence, <uri>https://www.thewindpower.net/turbine_de_924_enercon_e101-3050.php</uri> (last access: 6 October 2024), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Rajagukguk et al.(2020)Rajagukguk, Ramadhan, and Lee</label><mixed-citation>Rajagukguk, R. A., Ramadhan, R. A., and Lee, H.-J.: A review on deep learning models for forecasting time series data of solar irradiance and photovoltaic power, Energies, 13, 6623, <ext-link xlink:href="https://doi.org/10.3390/en13246623" ext-link-type="DOI">10.3390/en13246623</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Ramsey and Andrews(2023)</label><mixed-citation>Ramsey, J. and Andrews, B.: Py-Tetrad and RPy-Tetrad: A New Python Interface with R Support for Tetrad Causal Search, in: Causal Analysis Workshop Series, 40–51, PMLR, <uri>https://proceedings.mlr.press/</uri> (last access: 6 October 2024), 2023.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Riverbank Computing Limited(2024)</label><mixed-citation>Riverbank Computing Limited: PyQt6 Documentation, <uri>https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html</uri> (last access: 11 December 2025), 2024.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Runge(2020)</label><mixed-citation>Runge, J.: Discovering contemporaneous and lagged causal relations in autocorrelated nonlinear time series datasets, in: Conference on Uncertainty in Artificial Intelligence, 1388–1397, PMLR, <uri>https://proceedings.mlr.press/v124/runge20a.html</uri> (last access: 6 October 2024), 2020.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Runge et al.(2019)Runge, Nowack, Kretschmer, Flaxman, and Sejdinovic</label><mixed-citation>Runge, J., Nowack, P., Kretschmer, M., Flaxman, S., and Sejdinovic, D.: Detecting and quantifying causal associations in large nonlinear time series datasets, Sci. Adv., 5, eaau4996, <ext-link xlink:href="https://doi.org/10.1126/sciadv.aau4996" ext-link-type="DOI">10.1126/sciadv.aau4996</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Runge et al.(2023)Runge, Gerhardus, Varando, Eyring, and Camps-Valls</label><mixed-citation>Runge, J., Gerhardus, A., Varando, G., Eyring, V., and Camps-Valls, G.: Causal inference for time series, Nature Reviews Earth and Environment, 1–19, <ext-link xlink:href="https://doi.org/10.1038/s43017-023-00476-5" ext-link-type="DOI">10.1038/s43017-023-00476-5</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Sahani et al.(2024)Sahani, Choudhury, Siddique, Parida, Dash, and Panda</label><mixed-citation>Sahani, M., Choudhury, S., Siddique, M. D., Parida, T., Dash, P. K., and Panda, S. K.: Precise single step and multistep short-term photovoltaic parameters forecasting based on reduced deep convolutional stack autoencoder and minimum variance multikernel random vector functional network, Eng. Appl. Artif. Intel., 136, 108935, <ext-link xlink:href="https://doi.org/10.1016/j.engappai.2024.108935" ext-link-type="DOI">10.1016/j.engappai.2024.108935</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Shan et al.(2023)Shan, Wang, Xie, Fan, Xiao, Zhang, and Wei</label><mixed-citation>Shan, S., Wang, Y., Xie, X., Fan, T., Xiao, Y., Zhang, K., and Wei, H.: Analysis of regional climate variables by using neural Granger causality, Neural Computing and Applications,  1–22, <ext-link xlink:href="https://doi.org/10.1007/s00521-023-09141-7" ext-link-type="DOI">10.1007/s00521-023-09141-7</ext-link>, 2023. </mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Shimizu et al.(2006)Shimizu, Hoyer, Hyvärinen, Kerminen, and Jordan</label><mixed-citation>Shimizu, S., Hoyer, P. O., Hyvärinen, A., Kerminen, A., and Jordan, M.: A linear non-Gaussian acyclic model for causal discovery, J. Mach. Learn. Res., 7, 2003–2030, <uri>https://www.jmlr.org/papers/volume7/shimizu06a/shimizu06a.pdf</uri> (last access: 6 October 2024), 2006.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Silva et al.(2021)Silva, Vega-Oliveros, Yan, Flammini, Menczer, Radicchi, and et al.</label><mixed-citation>Silva, F. N., Vega‐Oliveros, D. A., Yan, X., Flammini, A., Menczer, F., Radicchi, F., Kraviz, B., and Fortunato, S.: Detecting climate teleconnections with Granger causality, Geophys. Res. Lett., <ext-link xlink:href="https://doi.org/10.1029/2021GL093329" ext-link-type="DOI">10.1029/2021GL093329</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Singh and Borrok(2019)</label><mixed-citation>Singh, N. K. and Borrok, D. M.: A Granger causality analysis of groundwater patterns over a half-century, Sci. Rep., 9, 12828, <ext-link xlink:href="https://doi.org/10.1038/s41598-019-49360-9" ext-link-type="DOI">10.1038/s41598-019-49360-9</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Spirtes(2010)</label><mixed-citation>Spirtes, P.: Introduction to causal inference, J. Mach. Learn. Res., 11, 1643–1662, <uri>https://www.jmlr.org/papers/volume11/spirtes10a/spirtes10a.pdf</uri> (last access: 6 October 2024), 2010.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Spirtes and Glymour(1991)</label><mixed-citation>Spirtes, P. and Glymour, C.: An algorithm for fast recovery of sparse causal graphs, Soc. Sci. Comput. Rev., 9, 62–72, <ext-link xlink:href="https://doi.org/10.1177/089443939100900106" ext-link-type="DOI">10.1177/089443939100900106</ext-link>, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Spirtes et al.(2000)Spirtes, Glymour, and Scheines</label><mixed-citation>Spirtes, P., Glymour, C. N., and Scheines, R.: Causation, Prediction, and Search, MIT Press, ISBN 9780262194402, <uri>https://mitpress.mit.edu/9780262194402/causation-prediction-and-search/</uri> (last access: 6 October 2024), 2000.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Tec et al.(2023)Tec, Scott, and Zigler</label><mixed-citation>Tec, M., Scott, J. G., and Zigler, C. M.: Weather2vec: Representation learning for causal inference with non-local confounding in air pollution and climate studies, in: Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 37, 14504–14513, Association for the Advancement of Artificial Intelligence, <ext-link xlink:href="https://doi.org/10.1609/aaai.v37i12.26738" ext-link-type="DOI">10.1609/aaai.v37i12.26738</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Tibshirani(1996)</label><mixed-citation>Tibshirani, R.: Regression shrinkage and selection via the lasso, J. R. Stat. Soc. B, 58, 267–288, <ext-link xlink:href="https://doi.org/10.1111/j.2517-6161.1996.tb02080.x" ext-link-type="DOI">10.1111/j.2517-6161.1996.tb02080.x</ext-link>, 1996. </mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Wallace(2005)</label><mixed-citation>Wallace, C. S.: Statistical and Inductive Inference by Minimum Message Length, Springer Science &amp; Business Media, <ext-link xlink:href="https://doi.org/10.1007/1-4020-2281-6" ext-link-type="DOI">10.1007/1-4020-2281-6</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Wang et al.(2024)Wang, Xu, Zou, Zhang, and Hu</label><mixed-citation>Wang, Y., Xu, H., Zou, R., Zhang, F., and Hu, Q.: Dynamic non-constraint ensemble model for probabilistic wind power and wind speed forecasting, Renew. Sust. Energ. Rev., 204, 114781, <ext-link xlink:href="https://doi.org/10.1016/j.rser.2023.114781" ext-link-type="DOI">10.1016/j.rser.2023.114781</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Wöß(2024)</label><mixed-citation>Wöß, R.: Code and data for: The Spatio-Temporal Visualization Tool HMMLVis in Renewable Energy Applications, Zenodo [code, data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.13885371" ext-link-type="DOI">10.5281/zenodo.13885371</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>Wöß(2025)</label><mixed-citation>Wöss, R.: HMMLVis, GitLab [code], <uri>https://git01lab.cs.univie.ac.at/rainerwoess/hmmlvis</uri> (last access: 25 February  2026), 2025.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Zhu et al.(2015a)Zhu, Sun, and Li</label><mixed-citation>Zhu, J. Y., Sun, C., and Li, V. O.: Granger-Causality-based Air Quality Estimation with Spatio-temporal (S-T) Heterogeneous Big Data, in: Proceedings of the First International Workshop on Smart Cities and Urban Informatics,  IEEE,  <ext-link xlink:href="https://doi.org/10.1109/INFCOMW.2015.7179453" ext-link-type="DOI">10.1109/INFCOMW.2015.7179453</ext-link>, 2015a.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Zhu et al.(2015b)Zhu, Duan, and Chen</label><mixed-citation>Zhu, Y., Duan, J., and Chen, M.: Granger causality analysis of air pollution and meteorology in Beijing, Atmos. Environ., 120, 52–59, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2015.08.060" ext-link-type="DOI">10.1016/j.atmosenv.2015.08.060</ext-link>, 2015b.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Zorzetto et al.(2024)Zorzetto, Bargagli-Stoffi, Canale, and Dominici</label><mixed-citation>Zorzetto, D., Bargagli-Stoffi, F. J., Canale, A., and Dominici, F.: Confounder-dependent Bayesian mixture model: Characterizing heterogeneity of causal effects in air pollution epidemiology, Biometrics, 80, ujae025, <ext-link xlink:href="https://doi.org/10.1093/biomtc/ujae025" ext-link-type="DOI">10.1093/biomtc/ujae025</ext-link>, 2024.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>The spatio-temporal visualization tool HMMLVis in  renewable energy applications</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Alvarez-Castellanos et al.(2023a)Alvarez-Castellanos, Ruiz, Serrano,
Garcia-Algarra, and Moreno</label><mixed-citation>
      
Alvarez-Castellanos, M., Ruiz, M., Serrano, A., Garcia-Algarra, J., and Moreno,
Y.: Causal structure of urban air pollution: A data-driven approach using
Granger causality and information theory, Environ. Pollut., 316,
120666, <a href="https://doi.org/10.1016/j.envpol.2022.120666" target="_blank">https://doi.org/10.1016/j.envpol.2022.120666</a>, 2023a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Álvarez-Castellanos et al.(2023b)Álvarez-Castellanos,
González, Enguix, and Navarro</label><mixed-citation>
      
Álvarez-Castellanos, R., González, J., Enguix, I., and Navarro, E.:
Causality Inference for Mitigating Atmospheric Pollution in Green Ports: A
Castellò Port Case Study, Eng. Proc., 56,
<a href="https://doi.org/10.3390/ecsa-10-16159" target="_blank">https://doi.org/10.3390/ecsa-10-16159</a>, 2023b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Behzadi et al.(2019)Behzadi, Hlaváčková-Schindler, and
Plant</label><mixed-citation>
      
Behzadi, S., Hlaváčková-Schindler, K., and Plant, C.: Granger
causality for heterogeneous processes, in: Advances in Knowledge Discovery
and Data Mining: 23rd Pacific-Asia Conference, PAKDD 2019, Macau, China,
14–17 April 2019, Proceedings, Part III 23, 463–475, Springer,
<a href="https://doi.org/10.1007/978-3-030-16148-4_36" target="_blank">https://doi.org/10.1007/978-3-030-16148-4_36</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Celik and Alola(2023)</label><mixed-citation>
      
Celik, A. and Alola, A. A.: Capital stock, energy, and innovation-related
aspects as drivers of environmental quality in high-tech investing economies,
Environ. Sci. Pollut. R., 30, 37004–37016,
<a href="https://doi.org/10.1007/s11356-023-26327-6" target="_blank">https://doi.org/10.1007/s11356-023-26327-6</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Chan et al.(2023)Chan, Juang, Chu, Mao, and Huang</label><mixed-citation>
      
Chan, C.-H., Juang, J.-Y., Chu, T.-H., Mao, C.-H., and Huang, S.-Y.: A Novel
Evaluation of Air Pollution Impact from Stationary Emission Sources to
Ambient Air Quality via Time-Series Granger Causality, in: Earth Data
Analytics for Planetary Health, 33–53, Springer,
<a href="https://doi.org/10.1007/978-3-031-40289-8_3" target="_blank">https://doi.org/10.1007/978-3-031-40289-8_3</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Demaeyer et al.(2023)Demaeyer, Bhend, Lerch, Primo, Van Schaeybroeck,
Atencia, Ben Bouallègue, Chen, Dabernig, Evans, Faganeli Pucer, Hooper,
Horat, Jobst, Merše, Mlakar, Möller, Mestre, Taillardat, and
Vannitsem</label><mixed-citation>
      
Demaeyer, J., Bhend, J., Lerch, S., Primo, C., Van Schaeybroeck, B., Atencia, A., Ben Bouallègue, Z., Chen, J., Dabernig, M., Evans, G., Faganeli Pucer, J., Hooper, B., Horat, N., Jobst, D., Merše, J., Mlakar, P., Möller, A., Mestre, O., Taillardat, M., and Vannitsem, S.: The EUPPBench postprocessing benchmark dataset v1.0, Earth Syst. Sci. Data, 15, 2635–2653, <a href="https://doi.org/10.5194/essd-15-2635-2023" target="_blank">https://doi.org/10.5194/essd-15-2635-2023</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Dumrul et al.(2023)Dumrul, Bilgili, Dumrul, Kılıçarslan,
and Rahman</label><mixed-citation>
      
Dumrul, Y., Bilgili, F., Dumrul, C., Kılıçarslan, Z., and Rahman,
M. N.: The impacts of renewable energy production, economic growth, and
economic globalization on CO2 emissions: evidence from Fourier ADL
co-integration and Fourier-Granger causality test for Turkey, Environ.
Sci. Pollut. R.,  1–16, <a href="https://doi.org/10.1007/s11356-023-28800-6" target="_blank">https://doi.org/10.1007/s11356-023-28800-6</a>,
2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>ECMWF(2023)</label><mixed-citation>
      
ECMWF: Parameter Database, <a href="https://codes.ecmwf.int/grib/param-db/" target="_blank"/> (last
access: 24 June 2023), 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>ECMWF(2024)</label><mixed-citation>
      
ECMWF: CAMS global reanalysis (EAC4),
<a href="https://www.ecmwf.int/en/forecasts/dataset/cams-global-reanalysis" target="_blank"/> (last access: 6 October 2024),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Fuchs(2022)</label><mixed-citation>
      
Fuchs, A.: HMML Python Package, Github Repository,
<a href="https://git01lab.cs.univie.ac.at/a1106307/hmml/-/tree/main/" target="_blank"/> (last access: 6 October 2024), 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Gerhardus and Runge(2020)</label><mixed-citation>
      
Gerhardus, A. and Runge, J.: High-recall causal discovery for autocorrelated
time series with latent confounders, Adv. Neur. In., 33, 12615–12625,
2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Glymour et al.(2019)Glymour, Zhang, and Spirtes</label><mixed-citation>
      
Glymour, C., Zhang, K., and Spirtes, P.: Review of causal discovery methods
based on graphical models, Frontiers in Genetics, 10, 524,
<a href="https://doi.org/10.3389/fgene.2019.00524" target="_blank">https://doi.org/10.3389/fgene.2019.00524</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Granger(1969)</label><mixed-citation>
      
Granger, C. W. J.: Investigating causal relations by econometric models and
cross-spectral methods, Econometrica, 37, 424–438, <a href="https://doi.org/10.2307/1912791" target="_blank">https://doi.org/10.2307/1912791</a>,
1969.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Granger(1988)</label><mixed-citation>
      
Granger, C. W. J.: Some recent development in a concept of causality, J. Econometrics, 39, 199–211, <a href="https://doi.org/10.1016/0304-4076(88)90045-0" target="_blank">https://doi.org/10.1016/0304-4076(88)90045-0</a>, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Guo et al.(2023)Guo, Karavani, Endert, and Kwon</label><mixed-citation>
      
Guo, G., Karavani, E., Endert, A., and Kwon, B. C.: Causalvis: Visualizations
for causal inference, in: Proceedings of the 2023 CHI Conference on Human
Factors in Computing Systems, 1–20, ACM, <a href="https://doi.org/10.1145/3544548.3580877" target="_blank">https://doi.org/10.1145/3544548.3580877</a>,
2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Haas et al.(2021)Haas, Krien, Schachler, Bot, Petrou, Zeli, Shivam,
and Bosch</label><mixed-citation>
      
Haas, S., Krien, U., Schachler, B., Bot, S., Petrou, K., Zeli, V., Shivam, K.,
and Bosch, S.: wind-python/windpowerlib: Update release (v0.2.2), Zenodo,
<a href="https://doi.org/10.5281/zenodo.4591809" target="_blank">https://doi.org/10.5281/zenodo.4591809</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Hersbach et al.(2020)Hersbach, Bell, Berrisford, Hirahara, Horányi,
Muñoz-Sabater, Nicolas, Peubey, Radu, Schepers, Simmons, Soci, Abdalla,
Abellan, Balsamo, Bechtold, Biavati, Bidlot, Bonavita, De Chiara, Dahlgren,
Dee, Diamantakis, Dragani, Flemming, Forbes, Fuentes, Geer, Haimberger,
Healy, Hogan, Hólm, Janisková, Keeley, Laloyaux, Lopez, Lupu, Radnoti,
de Rosnay, Rozum, Vamborg, Villaume, and Thépaut</label><mixed-citation>
      
Hersbach, H., Bell, B., Berrisford, P., Hirahara, S., Horányi, A.,
Muñoz-Sabater, J., Nicolas, J., Peubey, C., Radu, R., Schepers, D., Simmons,
A., Soci, C., Abdalla, S., Abellan, X., Balsamo, G., Bechtold, P., Biavati,
G., Bidlot, J., Bonavita, M., De Chiara, G., Dahlgren, P., Dee, D.,
Diamantakis, M., Dragani, R., Flemming, J., Forbes, R., Fuentes, M., Geer,
A., Haimberger, L., Healy, S., Hogan, R. J., Hólm, E., Janisková, M.,
Keeley, S., Laloyaux, P., Lopez, P., Lupu, C., Radnoti, G., de Rosnay, P.,
Rozum, I., Vamborg, F., Villaume, S., and Thépaut, J.-N.: The ERA5 global
reanalysis, Q. J. Roy. Meteor. Soc., 146,
1999–2049, <a href="https://doi.org/10.1002/qj.3803" target="_blank">https://doi.org/10.1002/qj.3803</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Hersbach et al.(2023)Hersbach, Bell, Berrisford, Biavati,
Horányi, Muñoz Sabater, Nicolas, Peubey, Radu, Rozum, Schepers,
Simmons, Soci, Dee, and Thépaut</label><mixed-citation>
      
Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A.,
Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I.,
Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5
hourly data on single levels from 1940 to present, Climate Data Store [data set],
<a href="https://doi.org/10.24381/cds.adbb2d47" target="_blank">https://doi.org/10.24381/cds.adbb2d47</a>,  2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Hlaváčková-Schindler and
Plant(2020a)</label><mixed-citation>
      
Hlaváčková-Schindler, K. and Plant, C.: Graphical Granger
causality by information-theoretic criteria, in: ECAI 2020, 1459–1466,
IOS Press, <a href="https://doi.org/10.3233/FAIA200364" target="_blank">https://doi.org/10.3233/FAIA200364</a>, 2020a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Hlaváčková-Schindler and
Plant(2020b)</label><mixed-citation>
      
Hlaváčková-Schindler, K. and Plant, C.: Heterogeneous graphical
Granger causality by minimum message length, Entropy, 22, 1400,
<a href="https://doi.org/10.3390/e22121400" target="_blank">https://doi.org/10.3390/e22121400</a>, 2020b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Hlaváčková-Schindler
et al.(2022)Hlaváčková-Schindler, Fuchs, Plant, Schicker, and
DeWit</label><mixed-citation>
      
Hlavackova-Schindler, K., Fuchs, A., Plant, C., Schicker, I., and DeWit, R.: The influence of meteorological parameters on wind speed extreme events:  A causal inference approach, EGU General Assembly 2022, Vienna, Austria, 23–27 May 2022, EGU22-5756, <a href="https://doi.org/10.5194/egusphere-egu22-5756" target="_blank">https://doi.org/10.5194/egusphere-egu22-5756</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Hlaváčková-Schindler
et al.(2024)Hlaváčková-Schindler, Schicker, Hoxhallari, and
Plant</label><mixed-citation>
      
Hlaváčková-Schindler, K., Schicker, I., Hoxhallari, K., and
Plant, C.: Detection of meteorological variables in a wind farm influencing
the extreme wind speed by Heterogeneous Granger causality, in: “Tackling
Climate Change with Machine Learning” Workshop, ICLR, <a href="https://iclr.cc/virtual/2024/workshop/20571" target="_blank"/> (last access: 20 March 2026), 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Hmamouche et al.(2017)Hmamouche, Przymus, Lakhal, and
Casali</label><mixed-citation>
      
Hmamouche, Y., Przymus, P., Lakhal, L., and Casali, A.: Finding relevant
multivariate models for multi-plant photovoltaic energy forecasting, in:
PKDD/ECML, <a href="https://hal.science/hal-02445550/document" target="_blank"/> (last access: 20 March 2026), 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Holmgren et al.(2018)Holmgren, Hansen, and Mikofski</label><mixed-citation>
      
Holmgren, W. F., Hansen, C. W., and Mikofski, M. A.: pvlib Python: a Python
package for modeling solar energy systems, Journal of Open Source Software,
3, 884, <a href="https://doi.org/10.21105/joss.00884" target="_blank">https://doi.org/10.21105/joss.00884</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Huang and Qin(2024)</label><mixed-citation>
      
Huang, J. and Qin, R.: Elman neural network considering dynamic time delay
estimation for short-term forecasting of offshore wind power, Appl. Energ.,
358, 122671, <a href="https://doi.org/10.1016/j.apenergy.2023.122671" target="_blank">https://doi.org/10.1016/j.apenergy.2023.122671</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Inness et al.(2024)Inness, Ades, Agustí-Panareda
et al.</label><mixed-citation>
      
Inness, A., Ades, M., Agustí-Panareda, A., Barré, J., Benedictow, A., Blechschmidt, A.-M., Dominguez, J. J., Engelen, R., Eskes, H., Flemming, J., Huijnen, V., Jones, L., Kipling, Z., Massart, S., Parrington, M., Peuch, V.-H., Razinger, M., Remy, S., Schulz, M., and Suttie, M.: The CAMS reanalysis of atmospheric composition, Atmos. Chem. Phys., 19, 3515–3556, <a href="https://doi.org/10.5194/acp-19-3515-2019" target="_blank">https://doi.org/10.5194/acp-19-3515-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Khan et al.(2022)Khan, Walker, and Zeiler</label><mixed-citation>
      
Khan, W., Walker, S., and Zeiler, W.: Improved solar photovoltaic energy
generation forecast using deep learning-based ensemble stacking approach,
Energy, 240, 122812, <a href="https://doi.org/10.1016/j.energy.2021.122812" target="_blank">https://doi.org/10.1016/j.energy.2021.122812</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Kim et al.(2011)Kim, Putrino, Ghosh, and Brown</label><mixed-citation>
      
Kim, S., Putrino, D., Ghosh, S., and Brown, E. N.: A Granger causality measure
for point process models of ensemble neural spiking activity, PLoS
Comput. Biol., 7, e1001110, <a href="https://doi.org/10.1371/journal.pcbi.1001110" target="_blank">https://doi.org/10.1371/journal.pcbi.1001110</a>,
2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Kretschmer et al.(2016)Kretschmer, Donges, Coumou, and
Runge</label><mixed-citation>
      
Kretschmer, M., Donges, J. F., Coumou, D., and Runge, J.: Using Causal Effect
Networks to Analyze Different Arctic Drivers of Midlatitude Winter
Circulation, J. Climate, 29, 4069–4081,
<a href="https://doi.org/10.1175/JCLI-D-15-0654.1" target="_blank">https://doi.org/10.1175/JCLI-D-15-0654.1</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Liu et al.(2022)Liu, Li, Yu, Wu, Gong, and Cheng</label><mixed-citation>
      
Liu, C., Li, M., Yu, Y., Wu, Z., Gong, H., and Cheng, F.: A review of
multitemporal and multispatial scales photovoltaic forecasting methods, IEEE
Access, 10, 35073–35093, <a href="https://doi.org/10.1109/ACCESS.2022.3161916" target="_blank">https://doi.org/10.1109/ACCESS.2022.3161916</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Mannino and Bressler(2015)</label><mixed-citation>
      
Mannino, M. and Bressler, S. L.: Foundational perspectives on causality in
large-scale brain networks, Phys. Life Rev., 15, 107–123,
<a href="https://doi.org/10.1016/j.plrev.2015.04.002" target="_blank">https://doi.org/10.1016/j.plrev.2015.04.002</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Maziarz(2015)</label><mixed-citation>
      
Maziarz, M.: A review of the Granger-causality fallacy, The Journal of
Philosophical Economics: Reflections on Economic and Social Issues, 8,
86–105, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Meteosat(2024)</label><mixed-citation>
      
Meteosat: CAMS global reanalysis (EAC4),
<a href="https://earth.esa.int/eogateway/missions/meteosat-second-generation/description" target="_blank"/> (last access: 6 October 2024),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Nelder and Wedderburn(1972)</label><mixed-citation>
      
Nelder, J. A. and Wedderburn, R. W.: Generalized linear models, J. R. Stat. Soc. Ser. A-G., 135, 370–384,
<a href="https://doi.org/10.2307/2344614" target="_blank">https://doi.org/10.2307/2344614</a>, 1972.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Papagiannopoulou et al.(2017)Papagiannopoulou, Miralles, Decubber,
Demuzere, Verhoest, Dorigo, and Waegeman</label><mixed-citation>
      
Papagiannopoulou, C., Miralles, D. G., Decubber, S., Demuzere, M., Verhoest, N. E. C., Dorigo, W. A., and Waegeman, W.: A non-linear Granger-causality framework to investigate climate–vegetation dynamics, Geosci. Model Dev., 10, 1945–1960, <a href="https://doi.org/10.5194/gmd-10-1945-2017" target="_blank">https://doi.org/10.5194/gmd-10-1945-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Perone(2024)</label><mixed-citation>
      
Perone, G.: The relationship between renewable energy production and CO<sub>2</sub>
emissions in 27 OECD countries: A panel cointegration and Granger
non-causality approach, J. Clean. Prod., 434, 139655,
<a href="https://doi.org/10.1016/j.jclepro.2024.139655" target="_blank">https://doi.org/10.1016/j.jclepro.2024.139655</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Power(2024)</label><mixed-citation>
      
Power, T. W.: The Wind Power: Win Power Market Intelligence,
<a href="https://www.thewindpower.net/turbine_de_924_enercon_e101-3050.php" target="_blank"/> (last access: 6 October 2024),
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Rajagukguk et al.(2020)Rajagukguk, Ramadhan, and
Lee</label><mixed-citation>
      
Rajagukguk, R. A., Ramadhan, R. A., and Lee, H.-J.: A review on deep learning
models for forecasting time series data of solar irradiance and photovoltaic
power, Energies, 13, 6623, <a href="https://doi.org/10.3390/en13246623" target="_blank">https://doi.org/10.3390/en13246623</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Ramsey and Andrews(2023)</label><mixed-citation>
      
Ramsey, J. and Andrews, B.: Py-Tetrad and RPy-Tetrad: A New Python Interface
with R Support for Tetrad Causal Search, in: Causal Analysis Workshop Series,
40–51, PMLR, <a href="https://proceedings.mlr.press/" target="_blank"/> (last access: 6 October 2024), 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Riverbank Computing Limited(2024)</label><mixed-citation>
      
Riverbank Computing Limited: PyQt6 Documentation,
<a href="https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html" target="_blank"/> (last access: 11 December 2025), 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Runge(2020)</label><mixed-citation>
      
Runge, J.: Discovering contemporaneous and lagged causal relations in
autocorrelated nonlinear time series datasets, in: Conference on Uncertainty
in Artificial Intelligence, 1388–1397, PMLR,
<a href="https://proceedings.mlr.press/v124/runge20a.html" target="_blank"/> (last access: 6 October 2024), 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Runge et al.(2019)Runge, Nowack, Kretschmer, Flaxman, and
Sejdinovic</label><mixed-citation>
      
Runge, J., Nowack, P., Kretschmer, M., Flaxman, S., and Sejdinovic, D.:
Detecting and quantifying causal associations in large nonlinear time series
datasets, Sci. Adv., 5, eaau4996, <a href="https://doi.org/10.1126/sciadv.aau4996" target="_blank">https://doi.org/10.1126/sciadv.aau4996</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Runge et al.(2023)Runge, Gerhardus, Varando, Eyring, and
Camps-Valls</label><mixed-citation>
      
Runge, J., Gerhardus, A., Varando, G., Eyring, V., and Camps-Valls, G.: Causal
inference for time series, Nature Reviews Earth and Environment, 1–19,
<a href="https://doi.org/10.1038/s43017-023-00476-5" target="_blank">https://doi.org/10.1038/s43017-023-00476-5</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Sahani et al.(2024)Sahani, Choudhury, Siddique, Parida, Dash, and
Panda</label><mixed-citation>
      
Sahani, M., Choudhury, S., Siddique, M. D., Parida, T., Dash, P. K., and Panda,
S. K.: Precise single step and multistep short-term photovoltaic parameters
forecasting based on reduced deep convolutional stack autoencoder and minimum
variance multikernel random vector functional network, Eng.
Appl. Artif. Intel., 136, 108935,
<a href="https://doi.org/10.1016/j.engappai.2024.108935" target="_blank">https://doi.org/10.1016/j.engappai.2024.108935</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Shan et al.(2023)Shan, Wang, Xie, Fan, Xiao, Zhang, and
Wei</label><mixed-citation>
      
Shan, S., Wang, Y., Xie, X., Fan, T., Xiao, Y., Zhang, K., and Wei, H.:
Analysis of regional climate variables by using neural Granger causality,
Neural Computing and Applications,  1–22,
<a href="https://doi.org/10.1007/s00521-023-09141-7" target="_blank">https://doi.org/10.1007/s00521-023-09141-7</a>, 2023.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Shimizu et al.(2006)Shimizu, Hoyer, Hyvärinen, Kerminen, and
Jordan</label><mixed-citation>
      
Shimizu, S., Hoyer, P. O., Hyvärinen, A., Kerminen, A., and Jordan, M.: A
linear non-Gaussian acyclic model for causal discovery, J. Mach.
Learn. Res., 7, 2003–2030,
<a href="https://www.jmlr.org/papers/volume7/shimizu06a/shimizu06a.pdf" target="_blank"/> (last access: 6 October 2024),
2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Silva et al.(2021)Silva, Vega-Oliveros, Yan, Flammini, Menczer,
Radicchi, and et al.</label><mixed-citation>
      
Silva, F. N., Vega‐Oliveros, D. A., Yan, X., Flammini, A., Menczer, F., Radicchi, F., Kraviz, B., and Fortunato,
S.: Detecting climate teleconnections with Granger causality,
Geophys. Res. Lett., <a href="https://doi.org/10.1029/2021GL093329" target="_blank">https://doi.org/10.1029/2021GL093329</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Singh and Borrok(2019)</label><mixed-citation>
      
Singh, N. K. and Borrok, D. M.: A Granger causality analysis of groundwater
patterns over a half-century, Sci. Rep., 9, 12828,
<a href="https://doi.org/10.1038/s41598-019-49360-9" target="_blank">https://doi.org/10.1038/s41598-019-49360-9</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Spirtes(2010)</label><mixed-citation>
      
Spirtes, P.: Introduction to causal inference, J. Mach. Learn.
Res., 11, 1643–1662,
<a href="https://www.jmlr.org/papers/volume11/spirtes10a/spirtes10a.pdf" target="_blank"/> (last access: 6 October 2024),
2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Spirtes and Glymour(1991)</label><mixed-citation>
      
Spirtes, P. and Glymour, C.: An algorithm for fast recovery of sparse causal
graphs, Soc. Sci. Comput. Rev., 9, 62–72,
<a href="https://doi.org/10.1177/089443939100900106" target="_blank">https://doi.org/10.1177/089443939100900106</a>, 1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Spirtes et al.(2000)Spirtes, Glymour, and
Scheines</label><mixed-citation>
      
Spirtes, P., Glymour, C. N., and Scheines, R.: Causation, Prediction, and
Search, MIT Press, ISBN 9780262194402,
<a href="https://mitpress.mit.edu/9780262194402/causation-prediction-and-search/" target="_blank"/> (last access: 6 October 2024),
2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Tec et al.(2023)Tec, Scott, and Zigler</label><mixed-citation>
      
Tec, M., Scott, J. G., and Zigler, C. M.: Weather2vec: Representation learning
for causal inference with non-local confounding in air pollution and climate
studies, in: Proceedings of the AAAI Conference on Artificial Intelligence,
Vol. 37, 14504–14513, Association for the Advancement of Artificial Intelligence, <a href="https://doi.org/10.1609/aaai.v37i12.26738" target="_blank">https://doi.org/10.1609/aaai.v37i12.26738</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Tibshirani(1996)</label><mixed-citation>
      
Tibshirani, R.: Regression shrinkage and selection via the lasso, J.
R. Stat. Soc. B, 58,
267–288, <a href="https://doi.org/10.1111/j.2517-6161.1996.tb02080.x" target="_blank">https://doi.org/10.1111/j.2517-6161.1996.tb02080.x</a>, 1996.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Wallace(2005)</label><mixed-citation>
      
Wallace, C. S.: Statistical and Inductive Inference by Minimum Message Length,
Springer Science &amp; Business Media, <a href="https://doi.org/10.1007/1-4020-2281-6" target="_blank">https://doi.org/10.1007/1-4020-2281-6</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Wang et al.(2024)Wang, Xu, Zou, Zhang, and Hu</label><mixed-citation>
      
Wang, Y., Xu, H., Zou, R., Zhang, F., and Hu, Q.: Dynamic non-constraint
ensemble model for probabilistic wind power and wind speed forecasting,
Renew. Sust. Energ. Rev., 204, 114781,
<a href="https://doi.org/10.1016/j.rser.2023.114781" target="_blank">https://doi.org/10.1016/j.rser.2023.114781</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Wöß(2024)</label><mixed-citation>
      
Wöß, R.: Code and data for: The Spatio-Temporal Visualization Tool HMMLVis in
Renewable Energy Applications, Zenodo [code, data set], <a href="https://doi.org/10.5281/zenodo.13885371" target="_blank">https://doi.org/10.5281/zenodo.13885371</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Wöß(2025)</label><mixed-citation>
      
Wöss, R.: HMMLVis, GitLab [code],
<a href="https://git01lab.cs.univie.ac.at/rainerwoess/hmmlvis" target="_blank"/> (last access:
25 February  2026), 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Zhu et al.(2015a)Zhu, Sun, and Li</label><mixed-citation>
      
Zhu, J. Y., Sun, C., and Li, V. O.: Granger-Causality-based Air Quality
Estimation with Spatio-temporal (S-T) Heterogeneous Big Data, in: Proceedings
of the First International Workshop on Smart Cities and Urban Informatics,  IEEE,  <a href="https://doi.org/10.1109/INFCOMW.2015.7179453" target="_blank">https://doi.org/10.1109/INFCOMW.2015.7179453</a>,
2015a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Zhu et al.(2015b)Zhu, Duan, and Chen</label><mixed-citation>
      
Zhu, Y., Duan, J., and Chen, M.: Granger causality analysis of air pollution
and meteorology in Beijing, Atmos. Environ., 120, 52–59,
<a href="https://doi.org/10.1016/j.atmosenv.2015.08.060" target="_blank">https://doi.org/10.1016/j.atmosenv.2015.08.060</a>, 2015b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Zorzetto et al.(2024)Zorzetto, Bargagli-Stoffi, Canale, and
Dominici</label><mixed-citation>
      
Zorzetto, D., Bargagli-Stoffi, F. J., Canale, A., and Dominici, F.:
Confounder-dependent Bayesian mixture model: Characterizing heterogeneity of
causal effects in air pollution epidemiology, Biometrics, 80, ujae025,
<a href="https://doi.org/10.1093/biomtc/ujae025" target="_blank">https://doi.org/10.1093/biomtc/ujae025</a>, 2024.

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