Solar Forecasting with Causality: A Graph-Transformer Approach to Spatiotemporal Dependencies

Yanan Niu, Demetri Psaltis, Christophe Moser, Luisa Lambertini
9/18/2025
cs.LGcs.SI

No confident code implementation found for this paper.

Abstract

Accurate solar forecasting underpins effective renewable energy management. We present SolarCAST, a causally informed model predicting future global horizontal irradiance (GHI) at a target site using only historical GHI from site X and nearby stations S - unlike prior work that relies on sky-camera or satellite imagery requiring specialized hardware and heavy preprocessing. To deliver high accuracy with only public sensor data, SolarCAST models three classes of confounding factors behind X-S correlations using scalable neural components: (i) observable synchronous variables (e.g., time of day, station identity), handled via an embedding module; (ii) latent synchronous factors (e.g., regional weather patterns), captured by a spatio-temporal graph neural network; and (iii) time-lagged influences (e.g., cloud movement across stations), modeled with a gated transformer that learns temporal shifts. It outperforms leading time-series and multimodal baselines across diverse geographical conditions, and achieves a 25.9% error reduction over the top commercial forecaster, Solcast. SolarCAST offers a lightweight, practical, and generalizable solution for localized solar forecasting.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{niu2025solar,
  title  = {Solar Forecasting with Causality: A Graph-Transformer Approach to Spatiotemporal Dependencies},
  author = {Yanan Niu and Demetri Psaltis and Christophe Moser and Luisa Lambertini},
  year   = {2025},
  eprint = {2509.15481},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2509.15481v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2509.15481.svg)](https://codeofpaper.com/paper/2509.15481)

Discussion