1 · locate
Select source grid cells
The inputs come from three grids with different roles. seNorge / KSS provides the location-specific daily climate, NORA3 provides hourly patterns, and ERA5 provides humidity, pressure and radiation.
The grids differ in resolution and coordinate system. Each one is therefore associated with the requested location independently before the series is built.
1 · locate
Match the grids to the location
Selection on the 1 km daily grid starts with the nearest cell. It is used when it contains valid land data and is within the configured elevation limit; otherwise, the resolver searches nearby cells.
NORA3 uses the nearest 3 km cell. ERA5 values are interpolated from the four surrounding cells.
The selected cell indices and ERA5 interpolation weights are stored with the data so the selection can be reproduced.
2 · anchor
Use the daily reference as the target
The KSS daily reference provides the target values for each day. It includes seNorge temperature and precipitation together with the other daily reference variables. NORA3 and ERA5 are used as hourly templates.
The daily reference sets the required daily mean or total. The assigned reanalysis source provides the within-day pattern used to distribute that value across hours.
3 · reconstruct
Reconstruct the hourly series
For each daily window, the relevant reanalysis template is transformed so its mean or total matches the daily target. Depending on the variable, this may use an offset, a scale factor, or a bounded redistribution across hours.
After reconstruction, aggregating the hourly values on the same daily window must reproduce the reference value. The chart shows this operation schematically.
3 · reconstruct
Reconstruct temperature
NORA3 provides the hourly temperature template. The daily reference provides the mean, minimum and maximum. The reconstruction adjusts the template level and diurnal range to those targets.
The chart compares the NORA3 template with the reconstructed hourly series and the daily target levels used to constrain it.
Daily means use a 06:00–06:00 UTC window; minima and maxima use 18:00–18:00. The offset lines in the chart reflect those source conventions.
3 · reconstruct
Apply variable-specific constraints
Humidity, longwave radiation and pressure use daily offsets. Shortwave radiation is zero at night and is reconstructed within an hourly solar envelope. During daylight, its default upper bound is the larger of the ERA5 template and the clear-sky irradiance.
Precipitation uses NORA3 hourly values as its template. Those values are scaled so their 06:00–06:00 UTC total matches the daily reference.
4 · verify
Verify against the daily reference
The finished hourly series is aggregated back onto the original daily clocks. Across all days, every reconstructed variable matches its daily target within storage precision.
This checks the numerical consistency of the reconstruction. It does not validate the daily reference or reanalysis data against observations; uncertainty in those sources remains in the finished historical series.
5 · validate
Compare with station observations
The temperature reconstruction is intended to improve the local hourly series relative to its reanalysis template. That is a hypothesis to test, not a result of the reconstruction itself.
At , all three series were compared with Frost 2 m temperature over the same accepted hours. RMSE was °C for NORA3, °C for ERA5, and °C after reconstruction.
For station locations, the browser overlays the generated series with these screened observations for a selected year or month. It does not add NORA3 or ERA5 as a third curve; those remain comparison baselines in this analysis.
This is a single-station diagnostic, not an independent holdout: gridded products can incorporate station observations. The Oslo municipal centre is km from Blindern and m lower. Its reconstructed RMSE against Blindern was °C, but that comparison is not co-located. CERRA was not available locally for this run.
5 · validate
Screen observations before comparison
The validation series uses Frost temperature measured at the required 2 m sensor level. Each hour is screened independently using the quality code supplied with the observation.
Codes 0–2 are included: controlled values, controlled values that were corrected or interpolated, and values marked slightly uncertain because they were not controlled. Higher codes and observations without a quality code remain gaps.
Of hours in 2005–2025, passed this screen (%). Missing periods are not filled, and a visual overlay is a diagnostic rather than a network-wide validation result.