Experiment record
Open-Meteoの1時間日射量はどの時間を表すか:直前1時間平均と太陽光発電時系列の整合
Open-Meteoのhourly非instant日射量は時刻Tまでの直前1時間平均で、instant版は表示時刻Tの値である。この違いを確認し、一律1時間shiftを避ける時系列整合方法を整理した。
概要
hourly APIのtimestampは、必ずしも「その瞬間の値」を意味しません。
今回確認した現行Open-Meteoでは、shortwave_radiationやglobal_tilted_irradianceなどの非instant hourly日射量は直前1時間の平均です。したがって14:00の値は13:00〜14:00の区間を表します。14:00〜15:00の値でも、14:00瞬間の日射量でもありません。
一方、Open-Meteoには別に*_instant日射量があります。表示時刻そのものの日射量と比較したい場合はこちらを使います。
この違いを誤ると、PV発電量との比較で「1時間ずれている」ように見えることがあります。非公開PV系列でも補助確認しましたが、API時間意味の決定的Evidenceには公式資料を用いました。
実験の背景
調査のきっかけは、Open-Meteoの1時間日射量と実測太陽光発電量の時間対応への疑問でした。
保持された気象履歴には、平均GHI、平均GTI、瞬時GHI、瞬時GTIが別々に存在していました。そこで問いを「何時間ずらせば合うか」ではなく、「各timestampはどの時刻・区間を表すのか」と設定しました。
この問いは個別住宅だけの問題ではありません。Open-Meteoの日射量をPV出力、電力量、日射計、その他のセンサーデータと結合する利用者にも同じ時刻整合問題が生じます。またhourly response内でも変数ごとにvalid timeが異なり得るため、response全体を一律に1時間shiftする方法は安全ではありません。
実験方法
まず現行Open-Meteoのfirst-party documentationで、hourly shortwave_radiation、global_tilted_irradianceとinstant版のvalid-time定義を確認しました。
次に、保持された非公開PVデータで時間shift感度を確認しました。GTI時刻Tに対し、実測PV 1時間発電量の終了時刻を
T-2h, T-1h, T, T+1h, T+2h
と変えて比較しました。GTI 20 W/m²以上に限定し、2026-09-17〜09-26の104時間を使用しました。
shift 0はGTI(T)をTで終わる直前1時間のPV発電量と比較する方法で、公式定義に対応します。非公開のRaw観測と機微なシステム情報は記事本文には含めず、集約したtime-alignment統計だけを使用します。
実験ログ
Open-Meteoは、今回確認した非instant hourly日射量を直前1時間平均として定義し、表示時刻の値にはinstant版を別に提供しています。
| API値 | timestamp Tの意味 |
|---|---|
shortwave_radiation(T) | Tで終わる直前1時間の平均 |
global_tilted_irradiance(T) | Tで終わる直前1時間の平均 |
shortwave_radiation_instant(T) | T時点の日射量 |
global_tilted_irradiance_instant(T) | T時点の傾斜面日射量 |
非公開PV系列によるsanitized比較は次の結果でした。
| PV 1時間発電量の終了時刻 | GTI(T)との相関 |
|---|---|
| T − 2 h | 0.417 |
| T − 1 h | 0.627 |
| T — 公式定義どおり | 0.769 |
| T + 1 h | 0.764 |
| T + 2 h | 0.635 |
公式定義どおりの整合が最大でしたが、0.769と0.764の差は小さく、ローカルPV系列だけでtime semanticsを独立に証明できるほどの差ではありません。このためprovider公式資料を主要Evidence、field dataを補助Evidenceとしました。
保持された監視系には現在、Open-Meteo 時刻T = 直前1時間平均という規則を明示しています。
結論
今回確認した現行Open-Meteo hourly日射量では、非instant日射量のtimestamp TはTまでの直前1時間平均です。
14:00のGTI → 13:00〜14:00の平均日射量
であり、14:00〜15:00の日射量ではありません。表示時刻Tの時点値が必要なら*_instant版を使用します。
この結論はOpen-Meteoのfirst-party documentationからVERIFIEDです。非公開PV 104点の比較は公式整合と矛盾しませんが、単独で仕様を証明するEvidenceとは扱いません。
実装では、各変数のdocumented valid timeを保持し、Open-Meteo hourly response全体を一律に1時間shiftしないことが重要です。
証拠区分のまとめ
このExperimentで得られた情報のEvidence Stateは次のとおりです。
各Evidence Stateの意味はEvidence State(証拠状態)を参照してください。
| 記録内容 | Evidence State | 根拠 |
|---|---|---|
| 非instant hourly日射量は直前1時間平均 | VERIFIED | Open-Meteo公式資料 |
| instant日射量は表示時刻の値 | VERIFIED | Open-Meteo公式資料 |
| ローカル系は平均値とinstant値を別保存している | OBSERVED | 非公開保持履歴 |
| Tを次の1時間の開始として扱うと見かけのPV時間ずれを生じさせ得る | INFERRED | 公式定義+時系列比較 |
| 104点PV比較は公式整合と矛盾しないが単独では仕様を証明しない | INFERRED | sanitized shift比較 |
| hourly fieldは各変数のvalid timeで整合する | VERIFIED | 公式変数定義 |
運用上の示唆
非instant hourly日射量は内部的にinterval_end = T、interval_duration = 1hとして扱うと意味が明確です。瞬時PV powerとの比較にはinstant日射量を、1時間PV発電量との比較には同じ1時間区間の非instant日射量を使います。
time-shift比較の集約結果はtime-alignment-summary.jsonで公開します。
情報源
主要結論にはOpen-Meteoの現行公式資料を使用しました。
機械可読な実験記録
このExperimentの機械可読な正本記録をJSONとして公開しています。
AIEL-2026-0012 experiment.json
関連実験
OPENMETEO-MSM-001は収集経路の信頼性とdirect API化を扱いました。本Experimentはtimestamp semanticsとsub-daily時系列整合を扱います。