Product

SCADA/EMS Weather Data Integration: A Complete Guide

Olivier Lam·July 2, 2026
SCADA/EMS Weather Data Integration: A Complete Guide

Written by: Olivier Lam, Physical AI Team, Jua.ai AG

Key Takeaways for SCADA/EMS Teams

  • SCADA/EMS weather data integration runs from forecast source through protocol ingestion and historian mapping to renewable dispatch and BESS scheduling decisions.
  • Stale four-times-daily NWP feeds create downstream control errors, and EPT-2 beats ECMWF HRES on wind, temperature, and solar radiation across all lead times.
  • EPT-2 RR delivers multiple daily updates, and EPT-2e beats the 50-member ECMWF ENS mean on RMSE and CRPS, which enables intraday optimization.
  • Jua for Energy provides REST API and Python SDK access with historian-ready schemas, so SCADA/EMS teams can retire custom grib-decode pipelines.
  • See Jua for Energy in action and benchmark EPT-2 against your current provider in under five minutes.

Executive Summary and Evaluation Lens for Jua for Energy

The integration value chain has four links: forecast quality, ingestion protocol, historian mapping, and control logic. Most utilities and trading operations have invested heavily in ingestion, mapping, and control while treating forecast quality as fixed by a four-times-daily NWP feed. That constraint is now removable. Jua is a foundation model and agent company, and Jua for Energy is its first applied product, built on the Earth Physics Transformer (EPT) family and the AI agent Athena.

EPT-2, the deterministic flagship, outperforms ECMWF HRES on every lead time and on 10 m wind, 100 m wind, 2 m temperature, and surface solar radiation across the full 0–240 hour range. For uncertainty quantification, EPT-2e, the ensemble variant, beats the 50-member ECMWF ENS mean on both RMSE (root-mean-square error) and CRPS (continuous ranked probability score) at virtually every lead time, which provides the probabilistic spread required for BESS dispatch optimization. Both deterministic and ensemble results are documented in peer-reviewed technical reports on arXiv (2507.09703 and 2410.15076).

Evaluation criteria for any SCADA/EMS weather integration should cover forecast accuracy on hub-height wind and surface solar radiation, update cadence, spatial resolution, protocol compatibility, and historian schema fit. These criteria define whether a new forecast source can drop into your existing infrastructure without rewriting control logic.

See a live benchmark and compare EPT-2 with your current forecast provider in under five minutes.

Where Jua for Energy Fits in the Weather Data Landscape

Those five criteria expose the limitations of current SCADA/EMS weather ingestion practice, which follows a pattern established when NWP was the only option. A grib file arrives four times per day from ECMWF or NOAA GFS, a custom pipeline decodes it, and selected variables are written to the historian. Between runs, the SCADA/EMS operates on stale numbers, which compounds forecast error into dispatch error and imbalance penalties. A 1 GW wind portfolio that gains four percentage points of forecast accuracy saves approximately €1.5 million per year under typical hedging and imbalance penalty structures, and that figure scales linearly with portfolio size.

Three categories of weather data source are in active use across the industry. Traditional NWP (ECMWF HRES, NOAA GFS, DWD ICON) provides the reference baseline at two to four runs per day. AI weather research outputs (Microsoft Aurora, Google DeepMind GraphCast, ECMWF AIFS) are consumed as raw model files by quant teams that can build and maintain their own ingestion pipelines. Productised AI-physics platforms, the category Jua for Energy occupies, expose forecast data through REST APIs and Python SDKs with historian-ready schemas, which removes the need for custom pipelines.

Jua for Energy fills a specific gap that the other two categories leave open. It combines superior accuracy, frequent daily updates via EPT-2 RR, and a developer stack that maps directly to existing SCADA/EMS historian architectures without bespoke integration work. You keep your existing control logic and historian schema and replace only the forecast feed.

Compare EPT-2 against your current NWP feed on your own region and variables on the Jua benchmark platform, with results in under five minutes.

Core Concepts and System Components for SCADA/EMS Integration

SCADA (Supervisory Control and Data Acquisition) is the real-time monitoring and control layer that communicates with field devices, such as inverters, turbine controllers, and substation RTUs, using industrial protocols. EMS (Energy Management System) sits above SCADA and handles grid-level optimization, including economic dispatch, unit commitment, and automatic generation control. The historian is the time-series database (OSIsoft PI, InfluxDB, and equivalents) that stores both real-time telemetry and forecast inputs as tagged, timestamped records.

Modbus is a serial or TCP register-based protocol used for device-level communication, and DNP3 (Distributed Network Protocol 3) is the dominant protocol for substation-to-control-center communication in North American and many global utility environments. An ensemble is a set of forecast runs initialized with perturbed conditions to quantify forecast uncertainty. EPT-2e produces ensemble output that beats the 50-member ECMWF ENS mean on RMSE and CRPS, which gives operators a higher quality uncertainty signal than the incumbent standard.

These foundations matter because SCADA and EMS systems must ingest both deterministic forecasts and ensemble spreads to manage BESS dispatch and curtailment under uncertainty. EPT2-HRRR produces forecasts at about 5 km spatial resolution over Europe, and the Jua platform covers 25 variables, including wind at 11 height levels from 10 m to 200 m, which matches turbine hub-height dispatch needs. EPT-2 RR provides frequent daily updates, and EPT-2e provides multiple updates per day, so intraday optimization can run on fresh data rather than stale snapshots.

That update frequency is economically viable because a single EPT-2 inference runs on a single GPU in minutes at approximately 0.25 kWh and $0.20–$15, versus approximately 8,400 kWh and €1,000–€20,000 for a traditional NWP simulation on HPC, which is roughly four orders of magnitude cheaper per run. EPT-2 delivers hourly global weather updates at 6× higher resolution than comparable AI models and outperforms leading AI weather models and traditional numerical baselines across all forecast horizons on RMSE.

Test EPT-2 hub-height wind and solar accuracy on your portfolio’s coordinates on the Jua benchmark platform.

Strategic Trade-offs When Replacing an NWP Feed

The table below isolates the dimensions that determine whether a forecast source can replace an incumbent NWP feed in a SCADA/EMS environment. These dimensions include accuracy on dispatch-critical variables, ensemble quality for uncertainty quantification, update frequency for intraday optimization, and native spatial resolution. EPT-2 outperforms ECMWF HRES and Microsoft Aurora on every dimension that affects dispatch decisions.

DimensionEPT-2 / EPT-2e (Jua for Energy)ECMWF HRES / ENSMicrosoft Aurora
10 m wind accuracy (0–240 h)Outperforms HRES on every lead time40-year NWP benchmarkLoses to EPT-2 across full range
100 m wind accuracy (0–240 h)Outperforms HRES on every lead time40-year NWP benchmarkLoses to EPT-2 across full range
2 m temperature accuracy (0–240 h)Outperforms HRES on every lead time40-year NWP benchmarkLoses to EPT-2 up to ~130 h
Surface solar radiation (SSRD)Outperforms HRES on every lead time40-year NWP benchmarkNo SSRD output
Ensemble vs. ECMWF ENS meanEPT-2e beats 50-member ENS mean on RMSE and CRPS at virtually every lead timeGold standard, 50 membersNo productised ensemble
Update frequencyMultiple updates per day (EPT-2 RR), regular updates (EPT-2e)2–4×/dayTypically 4×/day, research cadence
Spatial resolution (native)~5 km (EPT2-HRRR, Europe)9 km (HRES)~25 km published resolution

Aurora’s absence of SSRD output disqualifies it for solar dispatch use cases that depend on surface solar radiation. EPT-2 any-Δt forecasting, trained to predict at arbitrary time steps rather than rolling forward in fixed 6-hour increments, avoids the error compounding that Aurora and most NWP peers incur when producing sub-6-hour outputs for intraday SCADA control.

Run the live accuracy benchmark on your dispatch variables at the Jua benchmark platform to validate the patterns in the table above.

Implementation Patterns and Operational Best Practices

The accuracy and update-frequency advantages described above only matter if SCADA/EMS teams can integrate EPT-2 without rewriting existing historian pipelines. Jua for Energy exposes EPT-2 forecasts through a REST API (POST /v1/forecast/data) and a Python SDK (pip install jua), documented at docs.jua.ai. Apache Arrow is supported for large-payload queries, which is the format required for continental, multi-variable, multi-model historian writes.

The following pattern pulls 100 m wind and surface solar radiation for a German wind zone and writes the result to a historian-compatible schema.

import jua import pandas as pd client = jua.Client() # authenticates via JUAL_API_KEY env var forecast = client.forecast.get( model="ept-2", variables=["wind_speed_100m", "surface_solar_radiation_downwards"], latitude=52.5, longitude=13.4, horizon_hours=48, format="arrow" # Apache Arrow payload for large writes ) df = forecast.to_pandas() # Historian mapping: tag name follows OSIsoft PI naming convention df["tag"] = df["variable"].map({ "wind_speed_100m": "WIND.HUB.100M.DE_NORTH", "surface_solar_radiation_downwards": "SOLAR.SSRD.DE_NORTH" }) df_historian = df[["valid_time", "tag", "value"]].rename( columns={"valid_time": "timestamp"} ) # Write to historian (replace with your PI Web API or InfluxDB client) historian_client.write_batch(df_historian) 

Many SCADA environments also rely on Modbus or DNP3, so the integration pattern extends one layer closer to field devices. For Modbus and DNP3 environments, the standard pattern is to run a lightweight forecast-to-register bridge. The Python SDK writes forecast values to a local time-series buffer, and a DNP3 outstation process maps buffer entries to analog input objects (object group 30) on a configurable polling interval.

Historian mapping should align forecast variable names to existing telemetry tag conventions. Wind speed at hub height, irradiance, and temperature already appear in most SCADA historians as real-time tags, and the forecast write adds a _FCST suffix and a lead_time_hours attribute to the same tag structure. EPT-2 RR frequent updates mean the historian receives a new forecast write roughly every hour, which matches the intraday control cycle of most modern EMS platforms.

Before committing to a full integration, validate EPT-2 accuracy on your region and variables on the Jua benchmark platform.

Readiness and Opportunity Assessment for Your Portfolio

The economic case for upgrading SCADA/EMS weather data integration is quantifiable at the portfolio level. The €1.5 million annual saving for a 1 GW wind portfolio at a four-percentage-point accuracy gain scales to about €3 million for an equivalent solar portfolio, and customers operating multi-GW portfolios scale these economics linearly. Jua serves major utilities across four continents, including some of Europe’s largest energy companies, as well as commodity traders and hedge funds, with sales cycles compressed to within weeks.

Readiness assessment for SCADA/EMS integration spans four related dimensions that must align for a smooth rollout. Protocol compatibility focuses on network access, because REST and Python SDK access require only outbound HTTPS from the historian server or an intermediary data concentrator, with no inbound firewall changes. Schema fit checks that EPT-2 variables map directly to existing SCADA tag structures for wind speed, irradiance, and temperature, which avoids schema redesign.

Historian capacity addresses write throughput. EPT-2 RR frequent updates for a 48-hour horizon at 1-hour resolution generate a manageable number of forecast records per variable per day, well within the capabilities of OSIsoft PI, InfluxDB, or TimescaleDB at utility scale. Organizational readiness then determines how quickly a team can move, and Jua sales cycles compress to within weeks for technically led evaluations because the live benchmark closes the accuracy question before procurement begins.

Quantify the uplift on your portfolio in a live benchmark session.

Common Pitfalls and How to Avoid Them

Pitfall 1: Treating update cadence as fixed. Engineering teams often design historian write jobs around a four-times-daily schedule because that is what NWP delivers. EPT-2 RR supports frequent updates per day, so you should design the write job with a configurable polling interval from the start. Hardcoding a 6-hour cycle forfeits the intraday accuracy advantage.

Pitfall 2: Mapping forecast variables to surface-level tags only. Most SCADA historians contain wind speed at 10 m from met-mast telemetry. Turbine hub heights range from 80 m to 160 m, so dispatch decisions require wind speed at hub height rather than at the surface measurement level. EPT-2 covers wind at 11 height levels from 10 m to 200 m, which provides the hub-height granularity that surface-only NWP feeds lack. Map hub-height forecasts, typically 100 m or 120 m, to dedicated historian tags from day one, because retrofitting the tag structure after go-live is operationally disruptive.

Pitfall 3: Ingesting deterministic forecasts only and discarding ensemble uncertainty. EPT-2e ensemble output, which beats the 50-member ECMWF ENS mean on RMSE and CRPS, provides the probabilistic spread required for BESS dispatch optimization and curtailment risk quantification. Historian schemas that store only the deterministic mean lose the uncertainty signal that drives optimal control decisions under variable renewable penetration.

Pitfall 4: Building a bespoke grib-decode pipeline. The Jua for Energy REST API and Python SDK return forecast data in structured, historian-ready formats with Apache Arrow support. Teams that replicate the grib-decode pattern from their existing NWP pipeline add maintenance overhead without gaining accuracy. The SDK removes that layer entirely.

Pitfall 5: Benchmarking on vendor-provided graphics rather than ground-truth station data. EPT-2 is benchmarked against more than 10,000 real ground stations on open-source StationBench, with no post-processing or station fine-tuning, and results are published on arXiv (2507.09703). You should run the live benchmark on the Jua platform against your own region and variables before committing to any integration architecture.

Benchmark EPT-2 against ground-truth station data for your region on the Jua benchmark platform before you finalize your integration design.

FAQ

What protocols does Jua for Energy support for SCADA/EMS weather data integration?

Jua for Energy exposes EPT-2 forecasts through a REST API and a Python SDK installable via pip install jua. Both interfaces return structured, timestamped forecast data compatible with any historian that accepts programmatic writes, including OSIsoft PI via PI Web API, InfluxDB, TimescaleDB, and equivalents. For Modbus and DNP3 environments, the standard integration pattern is a forecast-to-register bridge, where the SDK writes forecast values to a local time-series buffer and a DNP3 outstation process maps buffer entries to analog input objects on a configurable polling interval. No bespoke grib-decode pipeline is required. Apache Arrow is supported for large-payload queries, which covers continental, multi-variable, multi-model historian writes at the data volumes generated by EPT-2 RR frequent updates.

How does EPT-2 accuracy compare to ECMWF HRES for wind and solar dispatch?

As documented in the executive summary, EPT-2 outperforms ECMWF HRES on all four variables directly relevant to renewable dispatch (10 m wind, 100 m wind, 2 m temperature, and surface solar radiation) across the full 0–240 hour forecast range. EPT-2e, the ensemble variant, beats the 50-member ECMWF ENS mean on both RMSE and CRPS at virtually every lead time. These results are validated against more than 10,000 real ground stations on open-source StationBench with no post-processing or station fine-tuning, and published in peer-reviewed technical reports on arXiv (2507.09703 for EPT-2 and 2410.15076 for EPT-1.5). Jua for Energy does not replace ECMWF, because serious customers keep their ECMWF subscription and run Jua for Energy alongside it. The integration displaces the brittle custom pipeline around the incumbent feed and the stale four-times-daily update cycle.

What historian mapping approach works best for EPT-2 forecast variables?

The recommended approach aligns EPT-2 variable names to existing SCADA telemetry tag conventions using a suffix and attribute pattern. Wind speed, irradiance, and temperature already appear in most historians as real-time tags from met-mast or pyranometer telemetry. The forecast write adds a _FCST suffix and a lead_time_hours attribute to the same tag structure, which preserves the existing tag hierarchy while adding the forecast dimension. Hub-height wind, typically 100 m or 120 m depending on turbine specification, should be mapped to dedicated tags from the start, because EPT-2 covers wind at 11 height levels from 10 m to 200 m and exposes the correct hub-height variable without post-processing interpolation. EPT-2e ensemble members should be stored as separate tags or as a probabilistic attribute on the deterministic tag, depending on the historian schema capabilities, to preserve the uncertainty signal for BESS dispatch and curtailment optimization.

How quickly can a SCADA/EMS team stand up an EPT-2 integration?

The Python SDK installs in seconds via pip install jua. A basic historian write job that pulls EPT-2 forecasts for a defined set of variables and coordinates and writes them to a tagged time-series schema can be operational within a day for a team with existing Python and historian API experience. The REST API is documented at query.jua.ai/docs, and the developer dashboard at developer.jua.ai. For teams that want to evaluate accuracy before committing to integration, the live benchmark on the Jua platform returns a head-to-head comparison against any of 25+ models on a chosen region and variable in under five minutes, so the evaluation step requires no integration work.

Conclusion and Next Steps for SCADA/EMS Weather Upgrades

The four-times-daily constraint described earlier is removable rather than inherent to SCADA/EMS weather data integration. EPT-2 delivers superior accuracy on 10 m wind, 100 m wind, 2 m temperature, and surface solar radiation versus ECMWF HRES across the full 0–240 hour range, with EPT-2 RR providing frequent daily updates and EPT-2e ensemble output beating the 50-member ECMWF ENS mean on RMSE and CRPS. The integration path remains direct, using the REST API or Python SDK, historian tag mapping with hub-height wind variables, and a DNP3 or Modbus bridge for field-device environments.

A 1 GW wind portfolio that gains four percentage points of forecast accuracy saves approximately €1.5 million per year, and a 1 GW solar portfolio saves approximately €3 million per year, with these economics scaling linearly with portfolio size. These gains arrive without discarding existing SCADA/EMS infrastructure, because you replace only the forecast feed while preserving control logic and historian schemas. Jua is a foundation model and agent company, and Jua for Energy is the first applied product built on the Earth Physics Transformer architecture.

Run a live benchmark to see EPT-2 head-to-head against your current forecast provider and quantify the integration value for your portfolio.

View the key takeaways as a web story

Want to talk to the team behind the writing?

Book a demo to see EPT-2 and Athena in production, or read the open papers behind the work.