From 7ca9acdc561caef91c0cac7c29e4cc5c90542db0 Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Tue, 4 Aug 2026 22:43:49 +0200 Subject: [PATCH 1/3] Add forecast lead-time example using real NOAA water level forecasts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a worked example of assessing forecast skill as a function of lead time, built on real data rather than synthetic values. The dataset pairs NOAA Delaware Bay OFS (DBOFS) water level forecasts with observations at CO-OPS station 8557380 (Lewes, DE): 28 forecast cycles over one week, lead times 0-48 h, plus harmonic tide predictions as a reference forecast that is not initialised and so does not degrade with lead time. Both sources are US federal works in the public domain. 83 KB. The OFS station files on AWS make this practical — they carry time series at 64 predefined stations rather than the full model grid, so no grid subsetting is needed. build_dataset.py regenerates the CSV and declares its dependencies inline (PEP 723); it reproduces the committed file byte for byte. The example needs no new API: lead time rides along as an auxiliary variable and skill(by=["model", "lead_time"]) does the grouping. Note that overlapping forecast cycles mean 1161 of 1372 timestamps are duplicated, which from_matched accepts without complaint. README.md in the data directory records provenance and four known limitations: the model station is identified by position rather than name, model and observation datums are not reconciled, the week contains no storm surge, and the longest lead time has only 28 points. --- docs/_quarto.yml | 2 + docs/examples/Forecast_lead_time.qmd | 124 ++ tests/testdata/forecast_lewes/README.md | 61 + .../testdata/forecast_lewes/build_dataset.py | 108 ++ .../forecast_lewes/lewes_dbofs_forecast.csv | 1373 +++++++++++++++++ 5 files changed, 1668 insertions(+) create mode 100644 docs/examples/Forecast_lead_time.qmd create mode 100644 tests/testdata/forecast_lewes/README.md create mode 100644 tests/testdata/forecast_lewes/build_dataset.py create mode 100644 tests/testdata/forecast_lewes/lewes_dbofs_forecast.csv diff --git a/docs/_quarto.yml b/docs/_quarto.yml index 7569b6bd0..f8fb4a2e1 100644 --- a/docs/_quarto.yml +++ b/docs/_quarto.yml @@ -66,6 +66,8 @@ website: text: Gridded NetCDF ModelResult - href: examples/Prematched_with_auxiliary.qmd text: Prematched with auxiliary + - href: examples/Forecast_lead_time.qmd + text: Forecast skill by lead time - href: examples/Skill_vs_dummy.qmd text: Compare with dummy results - href: examples/Metrics_custom_metric.qmd diff --git a/docs/examples/Forecast_lead_time.qmd b/docs/examples/Forecast_lead_time.qmd new file mode 100644 index 000000000..bf0bc8f62 --- /dev/null +++ b/docs/examples/Forecast_lead_time.qmd @@ -0,0 +1,124 @@ +--- +title: Forecast skill by lead time +jupyter: python3 +--- + +A forecast issued 6 hours ahead is usually better than one issued 48 hours ahead. This example +shows how to quantify that degradation, using real water level forecasts from the NOAA Delaware +Bay Operational Forecast System (DBOFS) compared against observations at Lewes, Delaware. + +The key idea is that a forecast dataset needs **two** time dimensions: the time the forecast is +*for* (the valid time) and how far ahead it was issued (the lead time). ModelSkill handles this +by carrying the lead time as an auxiliary variable, which can then be used to group the skill +assessment. + +```{python} +import pandas as pd +import modelskill as ms +``` + +## The data + +Each row is one forecast: issued at `reference_time`, valid at `valid_time`, at a horizon of +`lead_time` hours. The forecast model runs four times a day out to 48 hours, so successive runs +overlap — the same valid time is forecast repeatedly, at a shorter lead time each run. + +```{python} +df = pd.read_csv( + "../data/forecast_lewes/lewes_dbofs_forecast.csv", + parse_dates=["reference_time", "valid_time"], +) +df.head() +``` + +Alongside the model there is a `tide` column: the harmonic tide prediction for the same station. +It is a useful reference because it is *not* initialised from recent conditions, so unlike the +forecast its error should not grow with lead time. + +## Matching + +The data is already matched, so `from_matched()` takes it directly. The index is the valid time, +and `lead_time` is passed as an auxiliary item so it can be used for grouping. + +```{python} +cmp = ms.from_matched( + df.set_index("valid_time").drop(columns="reference_time"), + obs_item="observed", + mod_items=["dbofs", "tide"], + aux_items=["lead_time"], + quantity=ms.Quantity("Water Level", "m"), +) +cmp +``` + +## Skill as a function of lead time + +Grouping by both model and lead time gives one skill score per horizon. + +```{python} +sk = cmp.skill(by=["model", "lead_time"], metrics=["bias", "rmse"]) +sk.to_dataframe().head() +``` + +Plotting the RMSE against lead time shows the degradation directly. + +```{python} +import matplotlib.pyplot as plt + +_, ax = plt.subplots() +sk.rmse.plot.line(ax=ax) +ax.set_xlabel("Lead time [hours]") +ax.set_ylabel("RMSE [m]") +ax.set_title("Water level forecast skill by lead time, Lewes DE"); +``` + +Two things are visible. The forecast error grows with the horizon, as expected — the further +ahead you predict, the less the recent observations constrain the model. The tide-only prediction +is flat, since it depends only on astronomy and not on how long ago the forecast was made. The +forecast beats the tide-only reference at every lead time here, but its margin narrows as the +horizon extends. + +## Aggregating into horizon bins + +Per-hour scores are noisy, particularly at the longest lead times where fewer forecasts are +available. Grouping into coarser bins is often more readable for reporting. + +```{python} +binned = df.assign( + horizon=pd.cut( + df.lead_time, [-1, 12, 24, 36, 48], labels=["0-12h", "12-24h", "24-36h", "36-48h"] + ) +) +cmp_binned = ms.from_matched( + binned.set_index("valid_time").drop(columns=["reference_time", "lead_time"]), + obs_item="observed", + mod_items=["dbofs", "tide"], + aux_items=["horizon"], + quantity=ms.Quantity("Water Level", "m"), +) +cmp_binned.skill(by=["model", "horizon"], metrics=["bias", "rmse"]).round(3) +``` + +## Selecting a single horizon + +Because the lead time is an ordinary auxiliary variable, `where()` can isolate one horizon, and +the rest of ModelSkill behaves normally on the result. + +```{python} +day2 = cmp.where(cmp.data["lead_time"] == 48) +day2.plot.scatter(); +``` + +## Interpreting these numbers + +The bias is around -0.05 m even at lead time 0, where the forecast has barely diverged from its +initial state. Part of that is likely a datum offset rather than forecast error: the model's free +surface and the observed water level are referenced to different levels. This is worth resolving +before quoting bias figures in a report, and illustrates why bias and RMSE should be read +together. + +The dataset also covers a week of ordinary tidal conditions with no storm surge, which is exactly +when an operational forecast earns its keep relative to a tide table — so the margin over the +tide-only reference shown here is a conservative one. + +See `data/forecast_lewes/README.md` for full provenance and known limitations of this dataset. diff --git a/tests/testdata/forecast_lewes/README.md b/tests/testdata/forecast_lewes/README.md new file mode 100644 index 000000000..f976b682d --- /dev/null +++ b/tests/testdata/forecast_lewes/README.md @@ -0,0 +1,61 @@ +# Forecast lead-time example data: Lewes, Delaware + +Water level forecasts at multiple lead times, paired with observations, for use in the +forecast lead-time example. All data originate from NOAA and are in the public domain. + +## `lewes_dbofs_forecast.csv` + +Long format, one row per (forecast cycle, valid time): + +| column | description | +| --- | --- | +| `reference_time` | when the forecast was issued (the model cycle, 4 per day) | +| `valid_time` | the time the forecast is *for* | +| `lead_time` | forecast horizon in hours, `valid_time - reference_time`, 0–48 | +| `dbofs` | forecast water level from NOAA Delaware Bay OFS \[m] | +| `observed` | observed water level, CO-OPS station 8557380 \[m, MSL] | +| `tide` | harmonic tide prediction for the same station \[m, MSL] — a reference forecast with no initialisation, so its error does not grow with lead time | + +28 cycles covering 2026-07-26 to 2026-08-01, hourly, 1372 rows. + +## Sources + +- **Model**: NOAA Delaware Bay Operational Forecast System (DBOFS) station files, from the + [NOAA OFS data on AWS](https://registry.opendata.aws/noaa-ofs-pds/) + (`s3://noaa-ofs-pds/dbofs./dbofs.tz..stations.forecast.nc`). + The station files contain time series at 64 predefined stations rather than the full model + grid, which is why they are small enough to subset quickly. + The AWS bucket holds only a trailing 30-day window; longer archives (back to 2014) are at + [NCEI](https://www.ncei.noaa.gov/products/weather-climate-models/co-ops-operational-forecast). +- **Observations and tide predictions**: NOAA CO-OPS station 8557380 (Lewes, DE) via the + [CO-OPS data API](https://api.tidesandcurrents.noaa.gov/api/prod/). + +Both are works of the US federal government and are in the public domain. + +## Known limitations + +These are real caveats, not artefacts of the export — an example built on this data should +acknowledge them rather than paper over them. + +- **The model station is identified by position, not by name.** DBOFS station files carry only + `lon_rho`/`lat_rho`, with no station identifiers. Station index 5 was selected as the nearest + to the Lewes gauge, about 1.4 km away. This has not been verified against a published DBOFS + station list. +- **Datums are not reconciled.** Model `zeta` is free-surface relative to the model's own + reference level; observations are relative to the station MSL datum. Part of the roughly + -0.05 m bias at lead time 0 is likely a datum offset rather than forecast error. +- **No storm event.** Observed water level spans -0.48 to 1.12 m over this week — ordinary + tidal conditions. A surge event would show the value of the forecast over the tide-only + reference far more clearly. +- **The 48 h lead time has only 28 points** (one per cycle), so the end of any skill-vs-lead-time + curve is noisier than the rest. + +## Regenerating + +`build_dataset.py` re-downloads and rebuilds the CSV. It declares its own dependencies inline +(PEP 723), so it runs standalone. It requires network access, and will only work for dates still +inside the AWS 30-day window — the committed CSV is the durable artefact. + +```bash +uv run tests/testdata/forecast_lewes/build_dataset.py +``` diff --git a/tests/testdata/forecast_lewes/build_dataset.py b/tests/testdata/forecast_lewes/build_dataset.py new file mode 100644 index 000000000..a20f711e5 --- /dev/null +++ b/tests/testdata/forecast_lewes/build_dataset.py @@ -0,0 +1,108 @@ +# /// script +# requires-python = ">=3.10" +# dependencies = ["xarray", "netCDF4", "pandas"] +# /// +"""Rebuild lewes_dbofs_forecast.csv from NOAA sources. + +Pairs NOAA Delaware Bay OFS (DBOFS) water level forecasts at multiple lead times with +observations from CO-OPS station 8557380 (Lewes, DE), plus harmonic tide predictions as a +reference forecast. + +Requires network access. The AWS bucket keeps only a trailing 30-day window, so DATES must +be recent; see README.md for the NCEI archive if you need an older period. + + uv run build_dataset.py +""" + +from __future__ import annotations + +import tempfile +from pathlib import Path +from urllib.request import urlretrieve + +import pandas as pd +import xarray as xr + +DATES = [f"202607{d:02d}" for d in range(26, 32)] + ["20260801"] +CYCLES = ["00", "06", "12", "18"] + +STATION_ID = "8557380" # CO-OPS Lewes, DE +STATION_IX = 5 # nearest DBOFS station; see "Known limitations" in README.md + +S3 = "https://noaa-ofs-pds.s3.amazonaws.com" +API = "https://api.tidesandcurrents.noaa.gov/api/prod/datagetter" + +OUT = Path(__file__).parent / "lewes_dbofs_forecast.csv" + + +def read_cycle(date: str, cycle: str) -> pd.DataFrame: + """Read one forecast cycle and return its hourly water level by lead time.""" + url = f"{S3}/dbofs.{date}/dbofs.t{cycle}z.{date}.stations.forecast.nc" + with tempfile.NamedTemporaryFile(suffix=".nc") as tmp: + urlretrieve(url, tmp.name) # noqa: S310 - fixed https host + with xr.open_dataset(tmp.name, decode_timedelta=False) as ds: + time = pd.DatetimeIndex(ds.ocean_time.values) + zeta = pd.Series(ds.zeta.isel(station=STATION_IX).values, index=time) + + zeta = zeta[zeta.index.minute == 0] # 6-min output -> hourly + reference_time = time[0] + + return pd.DataFrame( + { + "reference_time": reference_time, + "valid_time": zeta.index, + "lead_time": ((zeta.index - reference_time).total_seconds() / 3600).astype( + int + ), + "dbofs": zeta.values, + } + ) + + +def read_coops(product: str, column: str, **extra: str) -> pd.DataFrame: + """Read a CO-OPS product for the observation station.""" + params = { + "product": product, + "application": "modelskill", + "begin_date": DATES[0], + "end_date": "20260804", + "datum": "MSL", + "station": STATION_ID, + "time_zone": "gmt", + "units": "metric", + "format": "csv", + **extra, + } + url = API + "?" + "&".join(f"{k}={v}" for k, v in params.items()) + df = pd.read_csv(url, parse_dates=["Date Time"]) + df = df.rename(columns={c: c.strip() for c in df.columns}) + return df.rename(columns={"Date Time": "valid_time"})[["valid_time", column]] + + +def main() -> None: + forecasts = pd.concat( + [read_cycle(date, cycle) for date in DATES for cycle in CYCLES], + ignore_index=True, + ) + + observed = read_coops("water_level", "Water Level").rename( + columns={"Water Level": "observed"} + ) + observed = observed[observed.valid_time.dt.minute == 0] + tide = read_coops("predictions", "Prediction", interval="h").rename( + columns={"Prediction": "tide"} + ) + + df = forecasts.merge(observed, on="valid_time").merge(tide, on="valid_time") + df = df.sort_values(["reference_time", "lead_time"]).reset_index(drop=True) + df[["dbofs", "observed", "tide"]] = df[["dbofs", "observed", "tide"]].round(3) + + df.to_csv(OUT, index=False) + print( + f"wrote {OUT} - {len(df)} rows, {df.reference_time.nunique()} cycles, " + f"lead times {df.lead_time.min()}-{df.lead_time.max()} h" + ) + + +if __name__ == "__main__": + main() diff --git a/tests/testdata/forecast_lewes/lewes_dbofs_forecast.csv b/tests/testdata/forecast_lewes/lewes_dbofs_forecast.csv new file mode 100644 index 000000000..2932fdbdb --- /dev/null +++ b/tests/testdata/forecast_lewes/lewes_dbofs_forecast.csv @@ -0,0 +1,1373 @@ +reference_time,valid_time,lead_time,dbofs,observed,tide +2026-07-26 00:00:00,2026-07-26 00:00:00,0,0.864,0.915,0.601 +2026-07-26 00:00:00,2026-07-26 01:00:00,1,0.74,0.728,0.418 +2026-07-26 00:00:00,2026-07-26 02:00:00,2,0.519,0.47,0.165 +2026-07-26 00:00:00,2026-07-26 03:00:00,3,0.233,0.222,-0.103 +2026-07-26 00:00:00,2026-07-26 04:00:00,4,-0.025,0.002,-0.307 +2026-07-26 00:00:00,2026-07-26 05:00:00,5,-0.187,-0.127,-0.404 +2026-07-26 00:00:00,2026-07-26 06:00:00,6,-0.23,-0.12,-0.396 +2026-07-26 00:00:00,2026-07-26 07:00:00,7,-0.18,-0.021,-0.291 +2026-07-26 00:00:00,2026-07-26 08:00:00,8,-0.042,0.15,-0.11 +2026-07-26 00:00:00,2026-07-26 09:00:00,9,0.166,0.354,0.087 +2026-07-26 00:00:00,2026-07-26 10:00:00,10,0.364,0.497,0.238 +2026-07-26 00:00:00,2026-07-26 11:00:00,11,0.513,0.556,0.307 +2026-07-26 00:00:00,2026-07-26 12:00:00,12,0.583,0.555,0.277 +2026-07-26 00:00:00,2026-07-26 13:00:00,13,0.55,0.441,0.157 +2026-07-26 00:00:00,2026-07-26 14:00:00,14,0.443,0.23,-0.029 +2026-07-26 00:00:00,2026-07-26 15:00:00,15,0.266,0.02,-0.24 +2026-07-26 00:00:00,2026-07-26 16:00:00,16,0.09,-0.131,-0.402 +2026-07-26 00:00:00,2026-07-26 17:00:00,17,-0.013,-0.165,-0.452 +2026-07-26 00:00:00,2026-07-26 18:00:00,18,-0.027,-0.1,-0.385 +2026-07-26 00:00:00,2026-07-26 19:00:00,19,0.055,0.085,-0.216 +2026-07-26 00:00:00,2026-07-26 20:00:00,20,0.235,0.283,0.039 +2026-07-26 00:00:00,2026-07-26 21:00:00,21,0.477,0.568,0.325 +2026-07-26 00:00:00,2026-07-26 22:00:00,22,0.71,0.832,0.562 +2026-07-26 00:00:00,2026-07-26 23:00:00,23,0.888,1.006,0.698 +2026-07-26 00:00:00,2026-07-27 00:00:00,24,0.953,1.002,0.709 +2026-07-26 00:00:00,2026-07-27 01:00:00,25,0.906,0.88,0.595 +2026-07-26 00:00:00,2026-07-27 02:00:00,26,0.729,0.653,0.378 +2026-07-26 00:00:00,2026-07-27 03:00:00,27,0.457,0.35,0.096 +2026-07-26 00:00:00,2026-07-27 04:00:00,28,0.16,0.067,-0.181 +2026-07-26 00:00:00,2026-07-27 05:00:00,29,-0.078,-0.155,-0.374 +2026-07-26 00:00:00,2026-07-27 06:00:00,30,-0.193,-0.246,-0.448 +2026-07-26 00:00:00,2026-07-27 07:00:00,31,-0.189,-0.2,-0.412 +2026-07-26 00:00:00,2026-07-27 08:00:00,32,-0.108,-0.08,-0.273 +2026-07-26 00:00:00,2026-07-27 09:00:00,33,0.073,0.179,-0.062 +2026-07-26 00:00:00,2026-07-27 10:00:00,34,0.295,0.389,0.147 +2026-07-26 00:00:00,2026-07-27 11:00:00,35,0.479,0.477,0.291 +2026-07-26 00:00:00,2026-07-27 12:00:00,36,0.586,0.511,0.34 +2026-07-26 00:00:00,2026-07-27 13:00:00,37,0.601,0.502,0.284 +2026-07-26 00:00:00,2026-07-27 14:00:00,38,0.52,0.329,0.133 +2026-07-26 00:00:00,2026-07-27 15:00:00,39,0.362,0.152,-0.081 +2026-07-26 00:00:00,2026-07-27 16:00:00,40,0.159,-0.096,-0.303 +2026-07-26 00:00:00,2026-07-27 17:00:00,41,-0.014,-0.22,-0.452 +2026-07-26 00:00:00,2026-07-27 18:00:00,42,-0.104,-0.249,-0.475 +2026-07-26 00:00:00,2026-07-27 19:00:00,43,-0.066,-0.15,-0.375 +2026-07-26 00:00:00,2026-07-27 20:00:00,44,0.056,0.026,-0.168 +2026-07-26 00:00:00,2026-07-27 21:00:00,45,0.287,0.313,0.12 +2026-07-26 00:00:00,2026-07-27 22:00:00,46,0.57,0.603,0.417 +2026-07-26 00:00:00,2026-07-27 23:00:00,47,0.785,0.876,0.642 +2026-07-26 00:00:00,2026-07-28 00:00:00,48,0.911,1.016,0.75 +2026-07-26 06:00:00,2026-07-26 06:00:00,0,-0.234,-0.12,-0.396 +2026-07-26 06:00:00,2026-07-26 07:00:00,1,-0.199,-0.021,-0.291 +2026-07-26 06:00:00,2026-07-26 08:00:00,2,-0.048,0.15,-0.11 +2026-07-26 06:00:00,2026-07-26 09:00:00,3,0.146,0.354,0.087 +2026-07-26 06:00:00,2026-07-26 10:00:00,4,0.355,0.497,0.238 +2026-07-26 06:00:00,2026-07-26 11:00:00,5,0.505,0.556,0.307 +2026-07-26 06:00:00,2026-07-26 12:00:00,6,0.569,0.555,0.277 +2026-07-26 06:00:00,2026-07-26 13:00:00,7,0.543,0.441,0.157 +2026-07-26 06:00:00,2026-07-26 14:00:00,8,0.433,0.23,-0.029 +2026-07-26 06:00:00,2026-07-26 15:00:00,9,0.257,0.02,-0.24 +2026-07-26 06:00:00,2026-07-26 16:00:00,10,0.081,-0.131,-0.402 +2026-07-26 06:00:00,2026-07-26 17:00:00,11,-0.022,-0.165,-0.452 +2026-07-26 06:00:00,2026-07-26 18:00:00,12,-0.039,-0.1,-0.385 +2026-07-26 06:00:00,2026-07-26 19:00:00,13,0.041,0.085,-0.216 +2026-07-26 06:00:00,2026-07-26 20:00:00,14,0.224,0.283,0.039 +2026-07-26 06:00:00,2026-07-26 21:00:00,15,0.467,0.568,0.325 +2026-07-26 06:00:00,2026-07-26 22:00:00,16,0.7,0.832,0.562 +2026-07-26 06:00:00,2026-07-26 23:00:00,17,0.874,1.006,0.698 +2026-07-26 06:00:00,2026-07-27 00:00:00,18,0.94,1.002,0.709 +2026-07-26 06:00:00,2026-07-27 01:00:00,19,0.888,0.88,0.595 +2026-07-26 06:00:00,2026-07-27 02:00:00,20,0.715,0.653,0.378 +2026-07-26 06:00:00,2026-07-27 03:00:00,21,0.447,0.35,0.096 +2026-07-26 06:00:00,2026-07-27 04:00:00,22,0.153,0.067,-0.181 +2026-07-26 06:00:00,2026-07-27 05:00:00,23,-0.091,-0.155,-0.374 +2026-07-26 06:00:00,2026-07-27 06:00:00,24,-0.206,-0.246,-0.448 +2026-07-26 06:00:00,2026-07-27 07:00:00,25,-0.206,-0.2,-0.412 +2026-07-26 06:00:00,2026-07-27 08:00:00,26,-0.121,-0.08,-0.273 +2026-07-26 06:00:00,2026-07-27 09:00:00,27,0.06,0.179,-0.062 +2026-07-26 06:00:00,2026-07-27 10:00:00,28,0.283,0.389,0.147 +2026-07-26 06:00:00,2026-07-27 11:00:00,29,0.464,0.477,0.291 +2026-07-26 06:00:00,2026-07-27 12:00:00,30,0.574,0.511,0.34 +2026-07-26 06:00:00,2026-07-27 13:00:00,31,0.592,0.502,0.284 +2026-07-26 06:00:00,2026-07-27 14:00:00,32,0.511,0.329,0.133 +2026-07-26 06:00:00,2026-07-27 15:00:00,33,0.347,0.152,-0.081 +2026-07-26 06:00:00,2026-07-27 16:00:00,34,0.144,-0.096,-0.303 +2026-07-26 06:00:00,2026-07-27 17:00:00,35,-0.033,-0.22,-0.452 +2026-07-26 06:00:00,2026-07-27 18:00:00,36,-0.112,-0.249,-0.475 +2026-07-26 06:00:00,2026-07-27 19:00:00,37,-0.072,-0.15,-0.375 +2026-07-26 06:00:00,2026-07-27 20:00:00,38,0.059,0.026,-0.168 +2026-07-26 06:00:00,2026-07-27 21:00:00,39,0.273,0.313,0.12 +2026-07-26 06:00:00,2026-07-27 22:00:00,40,0.555,0.603,0.417 +2026-07-26 06:00:00,2026-07-27 23:00:00,41,0.78,0.876,0.642 +2026-07-26 06:00:00,2026-07-28 00:00:00,42,0.901,1.016,0.75 +2026-07-26 06:00:00,2026-07-28 01:00:00,43,0.9,0.968,0.724 +2026-07-26 06:00:00,2026-07-28 02:00:00,44,0.78,0.804,0.565 +2026-07-26 06:00:00,2026-07-28 03:00:00,45,0.551,0.506,0.305 +2026-07-26 06:00:00,2026-07-28 04:00:00,46,0.261,0.188,-0.002 +2026-07-26 06:00:00,2026-07-28 05:00:00,47,-0.024,-0.074,-0.279 +2026-07-26 06:00:00,2026-07-28 06:00:00,48,-0.216,-0.239,-0.448 +2026-07-26 12:00:00,2026-07-26 12:00:00,0,0.534,0.555,0.277 +2026-07-26 12:00:00,2026-07-26 13:00:00,1,0.515,0.441,0.157 +2026-07-26 12:00:00,2026-07-26 14:00:00,2,0.421,0.23,-0.029 +2026-07-26 12:00:00,2026-07-26 15:00:00,3,0.247,0.02,-0.24 +2026-07-26 12:00:00,2026-07-26 16:00:00,4,0.067,-0.131,-0.402 +2026-07-26 12:00:00,2026-07-26 17:00:00,5,-0.043,-0.165,-0.452 +2026-07-26 12:00:00,2026-07-26 18:00:00,6,-0.065,-0.1,-0.385 +2026-07-26 12:00:00,2026-07-26 19:00:00,7,0.013,0.085,-0.216 +2026-07-26 12:00:00,2026-07-26 20:00:00,8,0.187,0.283,0.039 +2026-07-26 12:00:00,2026-07-26 21:00:00,9,0.428,0.568,0.325 +2026-07-26 12:00:00,2026-07-26 22:00:00,10,0.666,0.832,0.562 +2026-07-26 12:00:00,2026-07-26 23:00:00,11,0.839,1.006,0.698 +2026-07-26 12:00:00,2026-07-27 00:00:00,12,0.902,1.002,0.709 +2026-07-26 12:00:00,2026-07-27 01:00:00,13,0.852,0.88,0.595 +2026-07-26 12:00:00,2026-07-27 02:00:00,14,0.676,0.653,0.378 +2026-07-26 12:00:00,2026-07-27 03:00:00,15,0.415,0.35,0.096 +2026-07-26 12:00:00,2026-07-27 04:00:00,16,0.125,0.067,-0.181 +2026-07-26 12:00:00,2026-07-27 05:00:00,17,-0.114,-0.155,-0.374 +2026-07-26 12:00:00,2026-07-27 06:00:00,18,-0.23,-0.246,-0.448 +2026-07-26 12:00:00,2026-07-27 07:00:00,19,-0.222,-0.2,-0.412 +2026-07-26 12:00:00,2026-07-27 08:00:00,20,-0.13,-0.08,-0.273 +2026-07-26 12:00:00,2026-07-27 09:00:00,21,0.045,0.179,-0.062 +2026-07-26 12:00:00,2026-07-27 10:00:00,22,0.265,0.389,0.147 +2026-07-26 12:00:00,2026-07-27 11:00:00,23,0.445,0.477,0.291 +2026-07-26 12:00:00,2026-07-27 12:00:00,24,0.554,0.511,0.34 +2026-07-26 12:00:00,2026-07-27 13:00:00,25,0.564,0.502,0.284 +2026-07-26 12:00:00,2026-07-27 14:00:00,26,0.473,0.329,0.133 +2026-07-26 12:00:00,2026-07-27 15:00:00,27,0.314,0.152,-0.081 +2026-07-26 12:00:00,2026-07-27 16:00:00,28,0.108,-0.096,-0.303 +2026-07-26 12:00:00,2026-07-27 17:00:00,29,-0.06,-0.22,-0.452 +2026-07-26 12:00:00,2026-07-27 18:00:00,30,-0.136,-0.249,-0.475 +2026-07-26 12:00:00,2026-07-27 19:00:00,31,-0.093,-0.15,-0.375 +2026-07-26 12:00:00,2026-07-27 20:00:00,32,0.042,0.026,-0.168 +2026-07-26 12:00:00,2026-07-27 21:00:00,33,0.265,0.313,0.12 +2026-07-26 12:00:00,2026-07-27 22:00:00,34,0.527,0.603,0.417 +2026-07-26 12:00:00,2026-07-27 23:00:00,35,0.736,0.876,0.642 +2026-07-26 12:00:00,2026-07-28 00:00:00,36,0.871,1.016,0.75 +2026-07-26 12:00:00,2026-07-28 01:00:00,37,0.871,0.968,0.724 +2026-07-26 12:00:00,2026-07-28 02:00:00,38,0.758,0.804,0.565 +2026-07-26 12:00:00,2026-07-28 03:00:00,39,0.531,0.506,0.305 +2026-07-26 12:00:00,2026-07-28 04:00:00,40,0.234,0.188,-0.002 +2026-07-26 12:00:00,2026-07-28 05:00:00,41,-0.049,-0.074,-0.279 +2026-07-26 12:00:00,2026-07-28 06:00:00,42,-0.241,-0.239,-0.448 +2026-07-26 12:00:00,2026-07-28 07:00:00,43,-0.289,-0.292,-0.486 +2026-07-26 12:00:00,2026-07-28 08:00:00,44,-0.229,-0.193,-0.405 +2026-07-26 12:00:00,2026-07-28 09:00:00,45,-0.091,-0.037,-0.221 +2026-07-26 12:00:00,2026-07-28 10:00:00,46,0.13,0.187,0.016 +2026-07-26 12:00:00,2026-07-28 11:00:00,47,0.364,0.431,0.225 +2026-07-26 12:00:00,2026-07-28 12:00:00,48,0.519,0.561,0.353 +2026-07-26 18:00:00,2026-07-26 18:00:00,0,-0.05,-0.1,-0.385 +2026-07-26 18:00:00,2026-07-26 19:00:00,1,0.031,0.085,-0.216 +2026-07-26 18:00:00,2026-07-26 20:00:00,2,0.202,0.283,0.039 +2026-07-26 18:00:00,2026-07-26 21:00:00,3,0.438,0.568,0.325 +2026-07-26 18:00:00,2026-07-26 22:00:00,4,0.685,0.832,0.562 +2026-07-26 18:00:00,2026-07-26 23:00:00,5,0.857,1.006,0.698 +2026-07-26 18:00:00,2026-07-27 00:00:00,6,0.919,1.002,0.709 +2026-07-26 18:00:00,2026-07-27 01:00:00,7,0.871,0.88,0.595 +2026-07-26 18:00:00,2026-07-27 02:00:00,8,0.697,0.653,0.378 +2026-07-26 18:00:00,2026-07-27 03:00:00,9,0.434,0.35,0.096 +2026-07-26 18:00:00,2026-07-27 04:00:00,10,0.142,0.067,-0.181 +2026-07-26 18:00:00,2026-07-27 05:00:00,11,-0.097,-0.155,-0.374 +2026-07-26 18:00:00,2026-07-27 06:00:00,12,-0.212,-0.246,-0.448 +2026-07-26 18:00:00,2026-07-27 07:00:00,13,-0.205,-0.2,-0.412 +2026-07-26 18:00:00,2026-07-27 08:00:00,14,-0.117,-0.08,-0.273 +2026-07-26 18:00:00,2026-07-27 09:00:00,15,0.045,0.179,-0.062 +2026-07-26 18:00:00,2026-07-27 10:00:00,16,0.267,0.389,0.147 +2026-07-26 18:00:00,2026-07-27 11:00:00,17,0.442,0.477,0.291 +2026-07-26 18:00:00,2026-07-27 12:00:00,18,0.556,0.511,0.34 +2026-07-26 18:00:00,2026-07-27 13:00:00,19,0.571,0.502,0.284 +2026-07-26 18:00:00,2026-07-27 14:00:00,20,0.485,0.329,0.133 +2026-07-26 18:00:00,2026-07-27 15:00:00,21,0.331,0.152,-0.081 +2026-07-26 18:00:00,2026-07-27 16:00:00,22,0.124,-0.096,-0.303 +2026-07-26 18:00:00,2026-07-27 17:00:00,23,-0.046,-0.22,-0.452 +2026-07-26 18:00:00,2026-07-27 18:00:00,24,-0.115,-0.249,-0.475 +2026-07-26 18:00:00,2026-07-27 19:00:00,25,-0.077,-0.15,-0.375 +2026-07-26 18:00:00,2026-07-27 20:00:00,26,0.069,0.026,-0.168 +2026-07-26 18:00:00,2026-07-27 21:00:00,27,0.288,0.313,0.12 +2026-07-26 18:00:00,2026-07-27 22:00:00,28,0.561,0.603,0.417 +2026-07-26 18:00:00,2026-07-27 23:00:00,29,0.758,0.876,0.642 +2026-07-26 18:00:00,2026-07-28 00:00:00,30,0.872,1.016,0.75 +2026-07-26 18:00:00,2026-07-28 01:00:00,31,0.872,0.968,0.724 +2026-07-26 18:00:00,2026-07-28 02:00:00,32,0.755,0.804,0.565 +2026-07-26 18:00:00,2026-07-28 03:00:00,33,0.537,0.506,0.305 +2026-07-26 18:00:00,2026-07-28 04:00:00,34,0.234,0.188,-0.002 +2026-07-26 18:00:00,2026-07-28 05:00:00,35,-0.046,-0.074,-0.279 +2026-07-26 18:00:00,2026-07-28 06:00:00,36,-0.242,-0.239,-0.448 +2026-07-26 18:00:00,2026-07-28 07:00:00,37,-0.294,-0.292,-0.486 +2026-07-26 18:00:00,2026-07-28 08:00:00,38,-0.227,-0.193,-0.405 +2026-07-26 18:00:00,2026-07-28 09:00:00,39,-0.086,-0.037,-0.221 +2026-07-26 18:00:00,2026-07-28 10:00:00,40,0.137,0.187,0.016 +2026-07-26 18:00:00,2026-07-28 11:00:00,41,0.376,0.431,0.225 +2026-07-26 18:00:00,2026-07-28 12:00:00,42,0.529,0.561,0.353 +2026-07-26 18:00:00,2026-07-28 13:00:00,43,0.598,0.59,0.374 +2026-07-26 18:00:00,2026-07-28 14:00:00,44,0.558,0.491,0.28 +2026-07-26 18:00:00,2026-07-28 15:00:00,45,0.424,0.344,0.089 +2026-07-26 18:00:00,2026-07-28 16:00:00,46,0.22,0.061,-0.152 +2026-07-26 18:00:00,2026-07-28 17:00:00,47,-0.002,-0.151,-0.377 +2026-07-26 18:00:00,2026-07-28 18:00:00,48,-0.151,-0.303,-0.504 +2026-07-27 00:00:00,2026-07-27 00:00:00,0,0.905,1.002,0.709 +2026-07-27 00:00:00,2026-07-27 01:00:00,1,0.857,0.88,0.595 +2026-07-27 00:00:00,2026-07-27 02:00:00,2,0.696,0.653,0.378 +2026-07-27 00:00:00,2026-07-27 03:00:00,3,0.42,0.35,0.096 +2026-07-27 00:00:00,2026-07-27 04:00:00,4,0.133,0.067,-0.181 +2026-07-27 00:00:00,2026-07-27 05:00:00,5,-0.111,-0.155,-0.374 +2026-07-27 00:00:00,2026-07-27 06:00:00,6,-0.229,-0.246,-0.448 +2026-07-27 00:00:00,2026-07-27 07:00:00,7,-0.226,-0.2,-0.412 +2026-07-27 00:00:00,2026-07-27 08:00:00,8,-0.129,-0.08,-0.273 +2026-07-27 00:00:00,2026-07-27 09:00:00,9,0.041,0.179,-0.062 +2026-07-27 00:00:00,2026-07-27 10:00:00,10,0.258,0.389,0.147 +2026-07-27 00:00:00,2026-07-27 11:00:00,11,0.439,0.477,0.291 +2026-07-27 00:00:00,2026-07-27 12:00:00,12,0.55,0.511,0.34 +2026-07-27 00:00:00,2026-07-27 13:00:00,13,0.568,0.502,0.284 +2026-07-27 00:00:00,2026-07-27 14:00:00,14,0.483,0.329,0.133 +2026-07-27 00:00:00,2026-07-27 15:00:00,15,0.325,0.152,-0.081 +2026-07-27 00:00:00,2026-07-27 16:00:00,16,0.125,-0.096,-0.303 +2026-07-27 00:00:00,2026-07-27 17:00:00,17,-0.054,-0.22,-0.452 +2026-07-27 00:00:00,2026-07-27 18:00:00,18,-0.129,-0.249,-0.475 +2026-07-27 00:00:00,2026-07-27 19:00:00,19,-0.085,-0.15,-0.375 +2026-07-27 00:00:00,2026-07-27 20:00:00,20,0.053,0.026,-0.168 +2026-07-27 00:00:00,2026-07-27 21:00:00,21,0.279,0.313,0.12 +2026-07-27 00:00:00,2026-07-27 22:00:00,22,0.554,0.603,0.417 +2026-07-27 00:00:00,2026-07-27 23:00:00,23,0.756,0.876,0.642 +2026-07-27 00:00:00,2026-07-28 00:00:00,24,0.878,1.016,0.75 +2026-07-27 00:00:00,2026-07-28 01:00:00,25,0.884,0.968,0.724 +2026-07-27 00:00:00,2026-07-28 02:00:00,26,0.761,0.804,0.565 +2026-07-27 00:00:00,2026-07-28 03:00:00,27,0.536,0.506,0.305 +2026-07-27 00:00:00,2026-07-28 04:00:00,28,0.226,0.188,-0.002 +2026-07-27 00:00:00,2026-07-28 05:00:00,29,-0.055,-0.074,-0.279 +2026-07-27 00:00:00,2026-07-28 06:00:00,30,-0.251,-0.239,-0.448 +2026-07-27 00:00:00,2026-07-28 07:00:00,31,-0.295,-0.292,-0.486 +2026-07-27 00:00:00,2026-07-28 08:00:00,32,-0.225,-0.193,-0.405 +2026-07-27 00:00:00,2026-07-28 09:00:00,33,-0.093,-0.037,-0.221 +2026-07-27 00:00:00,2026-07-28 10:00:00,34,0.131,0.187,0.016 +2026-07-27 00:00:00,2026-07-28 11:00:00,35,0.359,0.431,0.225 +2026-07-27 00:00:00,2026-07-28 12:00:00,36,0.521,0.561,0.353 +2026-07-27 00:00:00,2026-07-28 13:00:00,37,0.591,0.59,0.374 +2026-07-27 00:00:00,2026-07-28 14:00:00,38,0.547,0.491,0.28 +2026-07-27 00:00:00,2026-07-28 15:00:00,39,0.416,0.344,0.089 +2026-07-27 00:00:00,2026-07-28 16:00:00,40,0.209,0.061,-0.152 +2026-07-27 00:00:00,2026-07-28 17:00:00,41,-0.02,-0.151,-0.377 +2026-07-27 00:00:00,2026-07-28 18:00:00,42,-0.168,-0.303,-0.504 +2026-07-27 00:00:00,2026-07-28 19:00:00,43,-0.189,-0.274,-0.488 +2026-07-27 00:00:00,2026-07-28 20:00:00,44,-0.094,-0.139,-0.342 +2026-07-27 00:00:00,2026-07-28 21:00:00,45,0.091,0.135,-0.091 +2026-07-27 00:00:00,2026-07-28 22:00:00,46,0.371,0.451,0.222 +2026-07-27 00:00:00,2026-07-28 23:00:00,47,0.654,0.771,0.515 +2026-07-27 00:00:00,2026-07-29 00:00:00,48,0.836,1.014,0.715 +2026-07-27 06:00:00,2026-07-27 06:00:00,0,-0.293,-0.246,-0.448 +2026-07-27 06:00:00,2026-07-27 07:00:00,1,-0.294,-0.2,-0.412 +2026-07-27 06:00:00,2026-07-27 08:00:00,2,-0.188,-0.08,-0.273 +2026-07-27 06:00:00,2026-07-27 09:00:00,3,-0.02,0.179,-0.062 +2026-07-27 06:00:00,2026-07-27 10:00:00,4,0.197,0.389,0.147 +2026-07-27 06:00:00,2026-07-27 11:00:00,5,0.38,0.477,0.291 +2026-07-27 06:00:00,2026-07-27 12:00:00,6,0.486,0.511,0.34 +2026-07-27 06:00:00,2026-07-27 13:00:00,7,0.509,0.502,0.284 +2026-07-27 06:00:00,2026-07-27 14:00:00,8,0.425,0.329,0.133 +2026-07-27 06:00:00,2026-07-27 15:00:00,9,0.267,0.152,-0.081 +2026-07-27 06:00:00,2026-07-27 16:00:00,10,0.064,-0.096,-0.303 +2026-07-27 06:00:00,2026-07-27 17:00:00,11,-0.106,-0.22,-0.452 +2026-07-27 06:00:00,2026-07-27 18:00:00,12,-0.183,-0.249,-0.475 +2026-07-27 06:00:00,2026-07-27 19:00:00,13,-0.149,-0.15,-0.375 +2026-07-27 06:00:00,2026-07-27 20:00:00,14,-0.032,0.026,-0.168 +2026-07-27 06:00:00,2026-07-27 21:00:00,15,0.186,0.313,0.12 +2026-07-27 06:00:00,2026-07-27 22:00:00,16,0.45,0.603,0.417 +2026-07-27 06:00:00,2026-07-27 23:00:00,17,0.677,0.876,0.642 +2026-07-27 06:00:00,2026-07-28 00:00:00,18,0.796,1.016,0.75 +2026-07-27 06:00:00,2026-07-28 01:00:00,19,0.801,0.968,0.724 +2026-07-27 06:00:00,2026-07-28 02:00:00,20,0.684,0.804,0.565 +2026-07-27 06:00:00,2026-07-28 03:00:00,21,0.467,0.506,0.305 +2026-07-27 06:00:00,2026-07-28 04:00:00,22,0.169,0.188,-0.002 +2026-07-27 06:00:00,2026-07-28 05:00:00,23,-0.122,-0.074,-0.279 +2026-07-27 06:00:00,2026-07-28 06:00:00,24,-0.316,-0.239,-0.448 +2026-07-27 06:00:00,2026-07-28 07:00:00,25,-0.362,-0.292,-0.486 +2026-07-27 06:00:00,2026-07-28 08:00:00,26,-0.303,-0.193,-0.405 +2026-07-27 06:00:00,2026-07-28 09:00:00,27,-0.157,-0.037,-0.221 +2026-07-27 06:00:00,2026-07-28 10:00:00,28,0.048,0.187,0.016 +2026-07-27 06:00:00,2026-07-28 11:00:00,29,0.271,0.431,0.225 +2026-07-27 06:00:00,2026-07-28 12:00:00,30,0.43,0.561,0.353 +2026-07-27 06:00:00,2026-07-28 13:00:00,31,0.508,0.59,0.374 +2026-07-27 06:00:00,2026-07-28 14:00:00,32,0.476,0.491,0.28 +2026-07-27 06:00:00,2026-07-28 15:00:00,33,0.35,0.344,0.089 +2026-07-27 06:00:00,2026-07-28 16:00:00,34,0.149,0.061,-0.152 +2026-07-27 06:00:00,2026-07-28 17:00:00,35,-0.074,-0.151,-0.377 +2026-07-27 06:00:00,2026-07-28 18:00:00,36,-0.221,-0.303,-0.504 +2026-07-27 06:00:00,2026-07-28 19:00:00,37,-0.248,-0.274,-0.488 +2026-07-27 06:00:00,2026-07-28 20:00:00,38,-0.159,-0.139,-0.342 +2026-07-27 06:00:00,2026-07-28 21:00:00,39,0.02,0.135,-0.091 +2026-07-27 06:00:00,2026-07-28 22:00:00,40,0.305,0.451,0.222 +2026-07-27 06:00:00,2026-07-28 23:00:00,41,0.603,0.771,0.515 +2026-07-27 06:00:00,2026-07-29 00:00:00,42,0.808,1.014,0.715 +2026-07-27 06:00:00,2026-07-29 01:00:00,43,0.897,1.121,0.785 +2026-07-27 06:00:00,2026-07-29 02:00:00,44,0.82,1.0,0.709 +2026-07-27 06:00:00,2026-07-29 03:00:00,45,0.652,0.777,0.499 +2026-07-27 06:00:00,2026-07-29 04:00:00,46,0.337,0.407,0.199 +2026-07-27 06:00:00,2026-07-29 05:00:00,47,-0.001,0.039,-0.125 +2026-07-27 06:00:00,2026-07-29 06:00:00,48,-0.225,-0.117,-0.385 +2026-07-27 12:00:00,2026-07-27 12:00:00,0,0.514,0.511,0.34 +2026-07-27 12:00:00,2026-07-27 13:00:00,1,0.537,0.502,0.284 +2026-07-27 12:00:00,2026-07-27 14:00:00,2,0.462,0.329,0.133 +2026-07-27 12:00:00,2026-07-27 15:00:00,3,0.3,0.152,-0.081 +2026-07-27 12:00:00,2026-07-27 16:00:00,4,0.101,-0.096,-0.303 +2026-07-27 12:00:00,2026-07-27 17:00:00,5,-0.067,-0.22,-0.452 +2026-07-27 12:00:00,2026-07-27 18:00:00,6,-0.146,-0.249,-0.475 +2026-07-27 12:00:00,2026-07-27 19:00:00,7,-0.105,-0.15,-0.375 +2026-07-27 12:00:00,2026-07-27 20:00:00,8,0.021,0.026,-0.168 +2026-07-27 12:00:00,2026-07-27 21:00:00,9,0.241,0.313,0.12 +2026-07-27 12:00:00,2026-07-27 22:00:00,10,0.504,0.603,0.417 +2026-07-27 12:00:00,2026-07-27 23:00:00,11,0.719,0.876,0.642 +2026-07-27 12:00:00,2026-07-28 00:00:00,12,0.847,1.016,0.75 +2026-07-27 12:00:00,2026-07-28 01:00:00,13,0.853,0.968,0.724 +2026-07-27 12:00:00,2026-07-28 02:00:00,14,0.738,0.804,0.565 +2026-07-27 12:00:00,2026-07-28 03:00:00,15,0.508,0.506,0.305 +2026-07-27 12:00:00,2026-07-28 04:00:00,16,0.204,0.188,-0.002 +2026-07-27 12:00:00,2026-07-28 05:00:00,17,-0.09,-0.074,-0.279 +2026-07-27 12:00:00,2026-07-28 06:00:00,18,-0.289,-0.239,-0.448 +2026-07-27 12:00:00,2026-07-28 07:00:00,19,-0.328,-0.292,-0.486 +2026-07-27 12:00:00,2026-07-28 08:00:00,20,-0.287,-0.193,-0.405 +2026-07-27 12:00:00,2026-07-28 09:00:00,21,-0.139,-0.037,-0.221 +2026-07-27 12:00:00,2026-07-28 10:00:00,22,0.081,0.187,0.016 +2026-07-27 12:00:00,2026-07-28 11:00:00,23,0.307,0.431,0.225 +2026-07-27 12:00:00,2026-07-28 12:00:00,24,0.484,0.561,0.353 +2026-07-27 12:00:00,2026-07-28 13:00:00,25,0.56,0.59,0.374 +2026-07-27 12:00:00,2026-07-28 14:00:00,26,0.523,0.491,0.28 +2026-07-27 12:00:00,2026-07-28 15:00:00,27,0.391,0.344,0.089 +2026-07-27 12:00:00,2026-07-28 16:00:00,28,0.17,0.061,-0.152 +2026-07-27 12:00:00,2026-07-28 17:00:00,29,-0.061,-0.151,-0.377 +2026-07-27 12:00:00,2026-07-28 18:00:00,30,-0.215,-0.303,-0.504 +2026-07-27 12:00:00,2026-07-28 19:00:00,31,-0.252,-0.274,-0.488 +2026-07-27 12:00:00,2026-07-28 20:00:00,32,-0.171,-0.139,-0.342 +2026-07-27 12:00:00,2026-07-28 21:00:00,33,0.041,0.135,-0.091 +2026-07-27 12:00:00,2026-07-28 22:00:00,34,0.338,0.451,0.222 +2026-07-27 12:00:00,2026-07-28 23:00:00,35,0.614,0.771,0.515 +2026-07-27 12:00:00,2026-07-29 00:00:00,36,0.823,1.014,0.715 +2026-07-27 12:00:00,2026-07-29 01:00:00,37,0.913,1.121,0.785 +2026-07-27 12:00:00,2026-07-29 02:00:00,38,0.865,1.0,0.709 +2026-07-27 12:00:00,2026-07-29 03:00:00,39,0.699,0.777,0.499 +2026-07-27 12:00:00,2026-07-29 04:00:00,40,0.39,0.407,0.199 +2026-07-27 12:00:00,2026-07-29 05:00:00,41,0.06,0.039,-0.125 +2026-07-27 12:00:00,2026-07-29 06:00:00,42,-0.188,-0.117,-0.385 +2026-07-27 12:00:00,2026-07-29 07:00:00,43,-0.375,-0.242,-0.513 +2026-07-27 12:00:00,2026-07-29 08:00:00,44,-0.383,-0.291,-0.496 +2026-07-27 12:00:00,2026-07-29 09:00:00,45,-0.239,-0.125,-0.361 +2026-07-27 12:00:00,2026-07-29 10:00:00,46,-0.067,0.111,-0.136 +2026-07-27 12:00:00,2026-07-29 11:00:00,47,0.194,0.364,0.114 +2026-07-27 12:00:00,2026-07-29 12:00:00,48,0.42,0.565,0.313 +2026-07-27 18:00:00,2026-07-27 18:00:00,0,-0.189,-0.249,-0.475 +2026-07-27 18:00:00,2026-07-27 19:00:00,1,-0.158,-0.15,-0.375 +2026-07-27 18:00:00,2026-07-27 20:00:00,2,-0.024,0.026,-0.168 +2026-07-27 18:00:00,2026-07-27 21:00:00,3,0.202,0.313,0.12 +2026-07-27 18:00:00,2026-07-27 22:00:00,4,0.479,0.603,0.417 +2026-07-27 18:00:00,2026-07-27 23:00:00,5,0.691,0.876,0.642 +2026-07-27 18:00:00,2026-07-28 00:00:00,6,0.813,1.016,0.75 +2026-07-27 18:00:00,2026-07-28 01:00:00,7,0.825,0.968,0.724 +2026-07-27 18:00:00,2026-07-28 02:00:00,8,0.71,0.804,0.565 +2026-07-27 18:00:00,2026-07-28 03:00:00,9,0.475,0.506,0.305 +2026-07-27 18:00:00,2026-07-28 04:00:00,10,0.167,0.188,-0.002 +2026-07-27 18:00:00,2026-07-28 05:00:00,11,-0.125,-0.074,-0.279 +2026-07-27 18:00:00,2026-07-28 06:00:00,12,-0.313,-0.239,-0.448 +2026-07-27 18:00:00,2026-07-28 07:00:00,13,-0.36,-0.292,-0.486 +2026-07-27 18:00:00,2026-07-28 08:00:00,14,-0.306,-0.193,-0.405 +2026-07-27 18:00:00,2026-07-28 09:00:00,15,-0.168,-0.037,-0.221 +2026-07-27 18:00:00,2026-07-28 10:00:00,16,0.053,0.187,0.016 +2026-07-27 18:00:00,2026-07-28 11:00:00,17,0.277,0.431,0.225 +2026-07-27 18:00:00,2026-07-28 12:00:00,18,0.449,0.561,0.353 +2026-07-27 18:00:00,2026-07-28 13:00:00,19,0.523,0.59,0.374 +2026-07-27 18:00:00,2026-07-28 14:00:00,20,0.481,0.491,0.28 +2026-07-27 18:00:00,2026-07-28 15:00:00,21,0.347,0.344,0.089 +2026-07-27 18:00:00,2026-07-28 16:00:00,22,0.145,0.061,-0.152 +2026-07-27 18:00:00,2026-07-28 17:00:00,23,-0.078,-0.151,-0.377 +2026-07-27 18:00:00,2026-07-28 18:00:00,24,-0.248,-0.303,-0.504 +2026-07-27 18:00:00,2026-07-28 19:00:00,25,-0.269,-0.274,-0.488 +2026-07-27 18:00:00,2026-07-28 20:00:00,26,-0.181,-0.139,-0.342 +2026-07-27 18:00:00,2026-07-28 21:00:00,27,0.029,0.135,-0.091 +2026-07-27 18:00:00,2026-07-28 22:00:00,28,0.31,0.451,0.222 +2026-07-27 18:00:00,2026-07-28 23:00:00,29,0.587,0.771,0.515 +2026-07-27 18:00:00,2026-07-29 00:00:00,30,0.798,1.014,0.715 +2026-07-27 18:00:00,2026-07-29 01:00:00,31,0.878,1.121,0.785 +2026-07-27 18:00:00,2026-07-29 02:00:00,32,0.775,1.0,0.709 +2026-07-27 18:00:00,2026-07-29 03:00:00,33,0.583,0.777,0.499 +2026-07-27 18:00:00,2026-07-29 04:00:00,34,0.275,0.407,0.199 +2026-07-27 18:00:00,2026-07-29 05:00:00,35,0.028,0.039,-0.125 +2026-07-27 18:00:00,2026-07-29 06:00:00,36,-0.254,-0.117,-0.385 +2026-07-27 18:00:00,2026-07-29 07:00:00,37,-0.384,-0.242,-0.513 +2026-07-27 18:00:00,2026-07-29 08:00:00,38,-0.413,-0.291,-0.496 +2026-07-27 18:00:00,2026-07-29 09:00:00,39,-0.304,-0.125,-0.361 +2026-07-27 18:00:00,2026-07-29 10:00:00,40,-0.097,0.111,-0.136 +2026-07-27 18:00:00,2026-07-29 11:00:00,41,0.165,0.364,0.114 +2026-07-27 18:00:00,2026-07-29 12:00:00,42,0.382,0.565,0.313 +2026-07-27 18:00:00,2026-07-29 13:00:00,43,0.498,0.662,0.415 +2026-07-27 18:00:00,2026-07-29 14:00:00,44,0.508,0.664,0.396 +2026-07-27 18:00:00,2026-07-29 15:00:00,45,0.42,0.554,0.254 +2026-07-27 18:00:00,2026-07-29 16:00:00,46,0.238,0.349,0.024 +2026-07-27 18:00:00,2026-07-29 17:00:00,47,0.004,0.048,-0.237 +2026-07-27 18:00:00,2026-07-29 18:00:00,48,-0.201,-0.178,-0.453 +2026-07-28 00:00:00,2026-07-28 00:00:00,0,0.822,1.016,0.75 +2026-07-28 00:00:00,2026-07-28 01:00:00,1,0.838,0.968,0.724 +2026-07-28 00:00:00,2026-07-28 02:00:00,2,0.704,0.804,0.565 +2026-07-28 00:00:00,2026-07-28 03:00:00,3,0.485,0.506,0.305 +2026-07-28 00:00:00,2026-07-28 04:00:00,4,0.174,0.188,-0.002 +2026-07-28 00:00:00,2026-07-28 05:00:00,5,-0.122,-0.074,-0.279 +2026-07-28 00:00:00,2026-07-28 06:00:00,6,-0.309,-0.239,-0.448 +2026-07-28 00:00:00,2026-07-28 07:00:00,7,-0.359,-0.292,-0.486 +2026-07-28 00:00:00,2026-07-28 08:00:00,8,-0.297,-0.193,-0.405 +2026-07-28 00:00:00,2026-07-28 09:00:00,9,-0.156,-0.037,-0.221 +2026-07-28 00:00:00,2026-07-28 10:00:00,10,0.071,0.187,0.016 +2026-07-28 00:00:00,2026-07-28 11:00:00,11,0.298,0.431,0.225 +2026-07-28 00:00:00,2026-07-28 12:00:00,12,0.455,0.561,0.353 +2026-07-28 00:00:00,2026-07-28 13:00:00,13,0.531,0.59,0.374 +2026-07-28 00:00:00,2026-07-28 14:00:00,14,0.49,0.491,0.28 +2026-07-28 00:00:00,2026-07-28 15:00:00,15,0.355,0.344,0.089 +2026-07-28 00:00:00,2026-07-28 16:00:00,16,0.137,0.061,-0.152 +2026-07-28 00:00:00,2026-07-28 17:00:00,17,-0.092,-0.151,-0.377 +2026-07-28 00:00:00,2026-07-28 18:00:00,18,-0.252,-0.303,-0.504 +2026-07-28 00:00:00,2026-07-28 19:00:00,19,-0.273,-0.274,-0.488 +2026-07-28 00:00:00,2026-07-28 20:00:00,20,-0.207,-0.139,-0.342 +2026-07-28 00:00:00,2026-07-28 21:00:00,21,0.02,0.135,-0.091 +2026-07-28 00:00:00,2026-07-28 22:00:00,22,0.323,0.451,0.222 +2026-07-28 00:00:00,2026-07-28 23:00:00,23,0.618,0.771,0.515 +2026-07-28 00:00:00,2026-07-29 00:00:00,24,0.84,1.014,0.715 +2026-07-28 00:00:00,2026-07-29 01:00:00,25,0.927,1.121,0.785 +2026-07-28 00:00:00,2026-07-29 02:00:00,26,0.846,1.0,0.709 +2026-07-28 00:00:00,2026-07-29 03:00:00,27,0.648,0.777,0.499 +2026-07-28 00:00:00,2026-07-29 04:00:00,28,0.278,0.407,0.199 +2026-07-28 00:00:00,2026-07-29 05:00:00,29,-0.074,0.039,-0.125 +2026-07-28 00:00:00,2026-07-29 06:00:00,30,-0.303,-0.117,-0.385 +2026-07-28 00:00:00,2026-07-29 07:00:00,31,-0.409,-0.242,-0.513 +2026-07-28 00:00:00,2026-07-29 08:00:00,32,-0.385,-0.291,-0.496 +2026-07-28 00:00:00,2026-07-29 09:00:00,33,-0.281,-0.125,-0.361 +2026-07-28 00:00:00,2026-07-29 10:00:00,34,-0.077,0.111,-0.136 +2026-07-28 00:00:00,2026-07-29 11:00:00,35,0.203,0.364,0.114 +2026-07-28 00:00:00,2026-07-29 12:00:00,36,0.396,0.565,0.313 +2026-07-28 00:00:00,2026-07-29 13:00:00,37,0.508,0.662,0.415 +2026-07-28 00:00:00,2026-07-29 14:00:00,38,0.519,0.664,0.396 +2026-07-28 00:00:00,2026-07-29 15:00:00,39,0.411,0.554,0.254 +2026-07-28 00:00:00,2026-07-29 16:00:00,40,0.251,0.349,0.024 +2026-07-28 00:00:00,2026-07-29 17:00:00,41,0.027,0.048,-0.237 +2026-07-28 00:00:00,2026-07-29 18:00:00,42,-0.166,-0.178,-0.453 +2026-07-28 00:00:00,2026-07-29 19:00:00,43,-0.249,-0.277,-0.542 +2026-07-28 00:00:00,2026-07-29 20:00:00,44,-0.207,-0.2,-0.474 +2026-07-28 00:00:00,2026-07-29 21:00:00,45,-0.072,0.016,-0.278 +2026-07-28 00:00:00,2026-07-29 22:00:00,46,0.158,0.331,0.009 +2026-07-28 00:00:00,2026-07-29 23:00:00,47,0.443,0.647,0.33 +2026-07-28 00:00:00,2026-07-30 00:00:00,48,0.677,0.916,0.604 +2026-07-28 06:00:00,2026-07-28 06:00:00,0,-0.311,-0.239,-0.448 +2026-07-28 06:00:00,2026-07-28 07:00:00,1,-0.357,-0.292,-0.486 +2026-07-28 06:00:00,2026-07-28 08:00:00,2,-0.302,-0.193,-0.405 +2026-07-28 06:00:00,2026-07-28 09:00:00,3,-0.172,-0.037,-0.221 +2026-07-28 06:00:00,2026-07-28 10:00:00,4,0.064,0.187,0.016 +2026-07-28 06:00:00,2026-07-28 11:00:00,5,0.291,0.431,0.225 +2026-07-28 06:00:00,2026-07-28 12:00:00,6,0.448,0.561,0.353 +2026-07-28 06:00:00,2026-07-28 13:00:00,7,0.523,0.59,0.374 +2026-07-28 06:00:00,2026-07-28 14:00:00,8,0.478,0.491,0.28 +2026-07-28 06:00:00,2026-07-28 15:00:00,9,0.34,0.344,0.089 +2026-07-28 06:00:00,2026-07-28 16:00:00,10,0.121,0.061,-0.152 +2026-07-28 06:00:00,2026-07-28 17:00:00,11,-0.097,-0.151,-0.377 +2026-07-28 06:00:00,2026-07-28 18:00:00,12,-0.251,-0.303,-0.504 +2026-07-28 06:00:00,2026-07-28 19:00:00,13,-0.287,-0.274,-0.488 +2026-07-28 06:00:00,2026-07-28 20:00:00,14,-0.205,-0.139,-0.342 +2026-07-28 06:00:00,2026-07-28 21:00:00,15,-0.008,0.135,-0.091 +2026-07-28 06:00:00,2026-07-28 22:00:00,16,0.286,0.451,0.222 +2026-07-28 06:00:00,2026-07-28 23:00:00,17,0.568,0.771,0.515 +2026-07-28 06:00:00,2026-07-29 00:00:00,18,0.754,1.014,0.715 +2026-07-28 06:00:00,2026-07-29 01:00:00,19,0.854,1.121,0.785 +2026-07-28 06:00:00,2026-07-29 02:00:00,20,0.83,1.0,0.709 +2026-07-28 06:00:00,2026-07-29 03:00:00,21,0.68,0.777,0.499 +2026-07-28 06:00:00,2026-07-29 04:00:00,22,0.4,0.407,0.199 +2026-07-28 06:00:00,2026-07-29 05:00:00,23,0.046,0.039,-0.125 +2026-07-28 06:00:00,2026-07-29 06:00:00,24,-0.231,-0.117,-0.385 +2026-07-28 06:00:00,2026-07-29 07:00:00,25,-0.394,-0.242,-0.513 +2026-07-28 06:00:00,2026-07-29 08:00:00,26,-0.393,-0.291,-0.496 +2026-07-28 06:00:00,2026-07-29 09:00:00,27,-0.28,-0.125,-0.361 +2026-07-28 06:00:00,2026-07-29 10:00:00,28,-0.13,0.111,-0.136 +2026-07-28 06:00:00,2026-07-29 11:00:00,29,0.092,0.364,0.114 +2026-07-28 06:00:00,2026-07-29 12:00:00,30,0.308,0.565,0.313 +2026-07-28 06:00:00,2026-07-29 13:00:00,31,0.439,0.662,0.415 +2026-07-28 06:00:00,2026-07-29 14:00:00,32,0.481,0.664,0.396 +2026-07-28 06:00:00,2026-07-29 15:00:00,33,0.39,0.554,0.254 +2026-07-28 06:00:00,2026-07-29 16:00:00,34,0.221,0.349,0.024 +2026-07-28 06:00:00,2026-07-29 17:00:00,35,0.0,0.048,-0.237 +2026-07-28 06:00:00,2026-07-29 18:00:00,36,-0.191,-0.178,-0.453 +2026-07-28 06:00:00,2026-07-29 19:00:00,37,-0.266,-0.277,-0.542 +2026-07-28 06:00:00,2026-07-29 20:00:00,38,-0.215,-0.2,-0.474 +2026-07-28 06:00:00,2026-07-29 21:00:00,39,-0.075,0.016,-0.278 +2026-07-28 06:00:00,2026-07-29 22:00:00,40,0.162,0.331,0.009 +2026-07-28 06:00:00,2026-07-29 23:00:00,41,0.449,0.647,0.33 +2026-07-28 06:00:00,2026-07-30 00:00:00,42,0.686,0.916,0.604 +2026-07-28 06:00:00,2026-07-30 01:00:00,43,0.825,1.058,0.769 +2026-07-28 06:00:00,2026-07-30 02:00:00,44,0.806,1.1,0.789 +2026-07-28 06:00:00,2026-07-30 03:00:00,45,0.668,0.97,0.655 +2026-07-28 06:00:00,2026-07-30 04:00:00,46,0.433,0.702,0.393 +2026-07-28 06:00:00,2026-07-30 05:00:00,47,0.13,0.341,0.063 +2026-07-28 06:00:00,2026-07-30 06:00:00,48,-0.144,0.041,-0.259 +2026-07-28 12:00:00,2026-07-28 12:00:00,0,0.437,0.561,0.353 +2026-07-28 12:00:00,2026-07-28 13:00:00,1,0.509,0.59,0.374 +2026-07-28 12:00:00,2026-07-28 14:00:00,2,0.487,0.491,0.28 +2026-07-28 12:00:00,2026-07-28 15:00:00,3,0.347,0.344,0.089 +2026-07-28 12:00:00,2026-07-28 16:00:00,4,0.128,0.061,-0.152 +2026-07-28 12:00:00,2026-07-28 17:00:00,5,-0.112,-0.151,-0.377 +2026-07-28 12:00:00,2026-07-28 18:00:00,6,-0.269,-0.303,-0.504 +2026-07-28 12:00:00,2026-07-28 19:00:00,7,-0.307,-0.274,-0.488 +2026-07-28 12:00:00,2026-07-28 20:00:00,8,-0.222,-0.139,-0.342 +2026-07-28 12:00:00,2026-07-28 21:00:00,9,-0.011,0.135,-0.091 +2026-07-28 12:00:00,2026-07-28 22:00:00,10,0.257,0.451,0.222 +2026-07-28 12:00:00,2026-07-28 23:00:00,11,0.533,0.771,0.515 +2026-07-28 12:00:00,2026-07-29 00:00:00,12,0.754,1.014,0.715 +2026-07-28 12:00:00,2026-07-29 01:00:00,13,0.85,1.121,0.785 +2026-07-28 12:00:00,2026-07-29 02:00:00,14,0.826,1.0,0.709 +2026-07-28 12:00:00,2026-07-29 03:00:00,15,0.632,0.777,0.499 +2026-07-28 12:00:00,2026-07-29 04:00:00,16,0.364,0.407,0.199 +2026-07-28 12:00:00,2026-07-29 05:00:00,17,-0.012,0.039,-0.125 +2026-07-28 12:00:00,2026-07-29 06:00:00,18,-0.28,-0.117,-0.385 +2026-07-28 12:00:00,2026-07-29 07:00:00,19,-0.407,-0.242,-0.513 +2026-07-28 12:00:00,2026-07-29 08:00:00,20,-0.39,-0.291,-0.496 +2026-07-28 12:00:00,2026-07-29 09:00:00,21,-0.276,-0.125,-0.361 +2026-07-28 12:00:00,2026-07-29 10:00:00,22,-0.092,0.111,-0.136 +2026-07-28 12:00:00,2026-07-29 11:00:00,23,0.162,0.364,0.114 +2026-07-28 12:00:00,2026-07-29 12:00:00,24,0.371,0.565,0.313 +2026-07-28 12:00:00,2026-07-29 13:00:00,25,0.483,0.662,0.415 +2026-07-28 12:00:00,2026-07-29 14:00:00,26,0.502,0.664,0.396 +2026-07-28 12:00:00,2026-07-29 15:00:00,27,0.412,0.554,0.254 +2026-07-28 12:00:00,2026-07-29 16:00:00,28,0.229,0.349,0.024 +2026-07-28 12:00:00,2026-07-29 17:00:00,29,0.002,0.048,-0.237 +2026-07-28 12:00:00,2026-07-29 18:00:00,30,-0.189,-0.178,-0.453 +2026-07-28 12:00:00,2026-07-29 19:00:00,31,-0.267,-0.277,-0.542 +2026-07-28 12:00:00,2026-07-29 20:00:00,32,-0.211,-0.2,-0.474 +2026-07-28 12:00:00,2026-07-29 21:00:00,33,-0.063,0.016,-0.278 +2026-07-28 12:00:00,2026-07-29 22:00:00,34,0.17,0.331,0.009 +2026-07-28 12:00:00,2026-07-29 23:00:00,35,0.46,0.647,0.33 +2026-07-28 12:00:00,2026-07-30 00:00:00,36,0.703,0.916,0.604 +2026-07-28 12:00:00,2026-07-30 01:00:00,37,0.84,1.058,0.769 +2026-07-28 12:00:00,2026-07-30 02:00:00,38,0.831,1.1,0.789 +2026-07-28 12:00:00,2026-07-30 03:00:00,39,0.712,0.97,0.655 +2026-07-28 12:00:00,2026-07-30 04:00:00,40,0.461,0.702,0.393 +2026-07-28 12:00:00,2026-07-30 05:00:00,41,0.146,0.341,0.063 +2026-07-28 12:00:00,2026-07-30 06:00:00,42,-0.144,0.041,-0.259 +2026-07-28 12:00:00,2026-07-30 07:00:00,43,-0.329,-0.233,-0.484 +2026-07-28 12:00:00,2026-07-30 08:00:00,44,-0.343,-0.31,-0.55 +2026-07-28 12:00:00,2026-07-30 09:00:00,45,-0.244,-0.207,-0.468 +2026-07-28 12:00:00,2026-07-30 10:00:00,46,-0.071,-0.022,-0.28 +2026-07-28 12:00:00,2026-07-30 11:00:00,47,0.177,0.253,-0.028 +2026-07-28 12:00:00,2026-07-30 12:00:00,48,0.421,0.515,0.224 +2026-07-28 18:00:00,2026-07-28 18:00:00,0,-0.259,-0.303,-0.504 +2026-07-28 18:00:00,2026-07-28 19:00:00,1,-0.274,-0.274,-0.488 +2026-07-28 18:00:00,2026-07-28 20:00:00,2,-0.195,-0.139,-0.342 +2026-07-28 18:00:00,2026-07-28 21:00:00,3,-0.005,0.135,-0.091 +2026-07-28 18:00:00,2026-07-28 22:00:00,4,0.297,0.451,0.222 +2026-07-28 18:00:00,2026-07-28 23:00:00,5,0.585,0.771,0.515 +2026-07-28 18:00:00,2026-07-29 00:00:00,6,0.785,1.014,0.715 +2026-07-28 18:00:00,2026-07-29 01:00:00,7,0.877,1.121,0.785 +2026-07-28 18:00:00,2026-07-29 02:00:00,8,0.776,1.0,0.709 +2026-07-28 18:00:00,2026-07-29 03:00:00,9,0.617,0.777,0.499 +2026-07-28 18:00:00,2026-07-29 04:00:00,10,0.33,0.407,0.199 +2026-07-28 18:00:00,2026-07-29 05:00:00,11,-0.037,0.039,-0.125 +2026-07-28 18:00:00,2026-07-29 06:00:00,12,-0.289,-0.117,-0.385 +2026-07-28 18:00:00,2026-07-29 07:00:00,13,-0.409,-0.242,-0.513 +2026-07-28 18:00:00,2026-07-29 08:00:00,14,-0.365,-0.291,-0.496 +2026-07-28 18:00:00,2026-07-29 09:00:00,15,-0.239,-0.125,-0.361 +2026-07-28 18:00:00,2026-07-29 10:00:00,16,-0.076,0.111,-0.136 +2026-07-28 18:00:00,2026-07-29 11:00:00,17,0.175,0.364,0.114 +2026-07-28 18:00:00,2026-07-29 12:00:00,18,0.401,0.565,0.313 +2026-07-28 18:00:00,2026-07-29 13:00:00,19,0.502,0.662,0.415 +2026-07-28 18:00:00,2026-07-29 14:00:00,20,0.516,0.664,0.396 +2026-07-28 18:00:00,2026-07-29 15:00:00,21,0.425,0.554,0.254 +2026-07-28 18:00:00,2026-07-29 16:00:00,22,0.246,0.349,0.024 +2026-07-28 18:00:00,2026-07-29 17:00:00,23,0.024,0.048,-0.237 +2026-07-28 18:00:00,2026-07-29 18:00:00,24,-0.174,-0.178,-0.453 +2026-07-28 18:00:00,2026-07-29 19:00:00,25,-0.26,-0.277,-0.542 +2026-07-28 18:00:00,2026-07-29 20:00:00,26,-0.204,-0.2,-0.474 +2026-07-28 18:00:00,2026-07-29 21:00:00,27,-0.064,0.016,-0.278 +2026-07-28 18:00:00,2026-07-29 22:00:00,28,0.171,0.331,0.009 +2026-07-28 18:00:00,2026-07-29 23:00:00,29,0.456,0.647,0.33 +2026-07-28 18:00:00,2026-07-30 00:00:00,30,0.688,0.916,0.604 +2026-07-28 18:00:00,2026-07-30 01:00:00,31,0.826,1.058,0.769 +2026-07-28 18:00:00,2026-07-30 02:00:00,32,0.826,1.1,0.789 +2026-07-28 18:00:00,2026-07-30 03:00:00,33,0.699,0.97,0.655 +2026-07-28 18:00:00,2026-07-30 04:00:00,34,0.435,0.702,0.393 +2026-07-28 18:00:00,2026-07-30 05:00:00,35,0.1,0.341,0.063 +2026-07-28 18:00:00,2026-07-30 06:00:00,36,-0.199,0.041,-0.259 +2026-07-28 18:00:00,2026-07-30 07:00:00,37,-0.371,-0.233,-0.484 +2026-07-28 18:00:00,2026-07-30 08:00:00,38,-0.387,-0.31,-0.55 +2026-07-28 18:00:00,2026-07-30 09:00:00,39,-0.288,-0.207,-0.468 +2026-07-28 18:00:00,2026-07-30 10:00:00,40,-0.121,-0.022,-0.28 +2026-07-28 18:00:00,2026-07-30 11:00:00,41,0.125,0.253,-0.028 +2026-07-28 18:00:00,2026-07-30 12:00:00,42,0.375,0.515,0.224 +2026-07-28 18:00:00,2026-07-30 13:00:00,43,0.54,0.682,0.403 +2026-07-28 18:00:00,2026-07-30 14:00:00,44,0.596,0.744,0.467 +2026-07-28 18:00:00,2026-07-30 15:00:00,45,0.511,0.687,0.398 +2026-07-28 18:00:00,2026-07-30 16:00:00,46,0.343,0.494,0.207 +2026-07-28 18:00:00,2026-07-30 17:00:00,47,0.089,0.23,-0.057 +2026-07-28 18:00:00,2026-07-30 18:00:00,48,-0.175,-0.059,-0.325 +2026-07-29 00:00:00,2026-07-29 00:00:00,0,0.837,1.014,0.715 +2026-07-29 00:00:00,2026-07-29 01:00:00,1,0.929,1.121,0.785 +2026-07-29 00:00:00,2026-07-29 02:00:00,2,0.879,1.0,0.709 +2026-07-29 00:00:00,2026-07-29 03:00:00,3,0.726,0.777,0.499 +2026-07-29 00:00:00,2026-07-29 04:00:00,4,0.42,0.407,0.199 +2026-07-29 00:00:00,2026-07-29 05:00:00,5,0.093,0.039,-0.125 +2026-07-29 00:00:00,2026-07-29 06:00:00,6,-0.207,-0.117,-0.385 +2026-07-29 00:00:00,2026-07-29 07:00:00,7,-0.325,-0.242,-0.513 +2026-07-29 00:00:00,2026-07-29 08:00:00,8,-0.287,-0.291,-0.496 +2026-07-29 00:00:00,2026-07-29 09:00:00,9,-0.165,-0.125,-0.361 +2026-07-29 00:00:00,2026-07-29 10:00:00,10,0.038,0.111,-0.136 +2026-07-29 00:00:00,2026-07-29 11:00:00,11,0.283,0.364,0.114 +2026-07-29 00:00:00,2026-07-29 12:00:00,12,0.474,0.565,0.313 +2026-07-29 00:00:00,2026-07-29 13:00:00,13,0.595,0.662,0.415 +2026-07-29 00:00:00,2026-07-29 14:00:00,14,0.606,0.664,0.396 +2026-07-29 00:00:00,2026-07-29 15:00:00,15,0.506,0.554,0.254 +2026-07-29 00:00:00,2026-07-29 16:00:00,16,0.337,0.349,0.024 +2026-07-29 00:00:00,2026-07-29 17:00:00,17,0.093,0.048,-0.237 +2026-07-29 00:00:00,2026-07-29 18:00:00,18,-0.097,-0.178,-0.453 +2026-07-29 00:00:00,2026-07-29 19:00:00,19,-0.181,-0.277,-0.542 +2026-07-29 00:00:00,2026-07-29 20:00:00,20,-0.139,-0.2,-0.474 +2026-07-29 00:00:00,2026-07-29 21:00:00,21,0.004,0.016,-0.278 +2026-07-29 00:00:00,2026-07-29 22:00:00,22,0.239,0.331,0.009 +2026-07-29 00:00:00,2026-07-29 23:00:00,23,0.528,0.647,0.33 +2026-07-29 00:00:00,2026-07-30 00:00:00,24,0.759,0.916,0.604 +2026-07-29 00:00:00,2026-07-30 01:00:00,25,0.883,1.058,0.769 +2026-07-29 00:00:00,2026-07-30 02:00:00,26,0.877,1.1,0.789 +2026-07-29 00:00:00,2026-07-30 03:00:00,27,0.769,0.97,0.655 +2026-07-29 00:00:00,2026-07-30 04:00:00,28,0.506,0.702,0.393 +2026-07-29 00:00:00,2026-07-30 05:00:00,29,0.19,0.341,0.063 +2026-07-29 00:00:00,2026-07-30 06:00:00,30,-0.114,0.041,-0.259 +2026-07-29 00:00:00,2026-07-30 07:00:00,31,-0.306,-0.233,-0.484 +2026-07-29 00:00:00,2026-07-30 08:00:00,32,-0.322,-0.31,-0.55 +2026-07-29 00:00:00,2026-07-30 09:00:00,33,-0.224,-0.207,-0.468 +2026-07-29 00:00:00,2026-07-30 10:00:00,34,-0.046,-0.022,-0.28 +2026-07-29 00:00:00,2026-07-30 11:00:00,35,0.213,0.253,-0.028 +2026-07-29 00:00:00,2026-07-30 12:00:00,36,0.466,0.515,0.224 +2026-07-29 00:00:00,2026-07-30 13:00:00,37,0.635,0.682,0.403 +2026-07-29 00:00:00,2026-07-30 14:00:00,38,0.686,0.744,0.467 +2026-07-29 00:00:00,2026-07-30 15:00:00,39,0.6,0.687,0.398 +2026-07-29 00:00:00,2026-07-30 16:00:00,40,0.431,0.494,0.207 +2026-07-29 00:00:00,2026-07-30 17:00:00,41,0.173,0.23,-0.057 +2026-07-29 00:00:00,2026-07-30 18:00:00,42,-0.101,-0.059,-0.325 +2026-07-29 00:00:00,2026-07-30 19:00:00,43,-0.289,-0.245,-0.516 +2026-07-29 00:00:00,2026-07-30 20:00:00,44,-0.326,-0.293,-0.552 +2026-07-29 00:00:00,2026-07-30 21:00:00,45,-0.206,-0.157,-0.426 +2026-07-29 00:00:00,2026-07-30 22:00:00,46,-0.01,0.097,-0.187 +2026-07-29 00:00:00,2026-07-30 23:00:00,47,0.285,0.417,0.118 +2026-07-29 00:00:00,2026-07-31 00:00:00,48,0.59,0.742,0.431 +2026-07-29 06:00:00,2026-07-29 06:00:00,0,-0.237,-0.117,-0.385 +2026-07-29 06:00:00,2026-07-29 07:00:00,1,-0.367,-0.242,-0.513 +2026-07-29 06:00:00,2026-07-29 08:00:00,2,-0.346,-0.291,-0.496 +2026-07-29 06:00:00,2026-07-29 09:00:00,3,-0.226,-0.125,-0.361 +2026-07-29 06:00:00,2026-07-29 10:00:00,4,-0.034,0.111,-0.136 +2026-07-29 06:00:00,2026-07-29 11:00:00,5,0.221,0.364,0.114 +2026-07-29 06:00:00,2026-07-29 12:00:00,6,0.436,0.565,0.313 +2026-07-29 06:00:00,2026-07-29 13:00:00,7,0.541,0.662,0.415 +2026-07-29 06:00:00,2026-07-29 14:00:00,8,0.558,0.664,0.396 +2026-07-29 06:00:00,2026-07-29 15:00:00,9,0.455,0.554,0.254 +2026-07-29 06:00:00,2026-07-29 16:00:00,10,0.281,0.349,0.024 +2026-07-29 06:00:00,2026-07-29 17:00:00,11,0.042,0.048,-0.237 +2026-07-29 06:00:00,2026-07-29 18:00:00,12,-0.145,-0.178,-0.453 +2026-07-29 06:00:00,2026-07-29 19:00:00,13,-0.228,-0.277,-0.542 +2026-07-29 06:00:00,2026-07-29 20:00:00,14,-0.179,-0.2,-0.474 +2026-07-29 06:00:00,2026-07-29 21:00:00,15,-0.039,0.016,-0.278 +2026-07-29 06:00:00,2026-07-29 22:00:00,16,0.194,0.331,0.009 +2026-07-29 06:00:00,2026-07-29 23:00:00,17,0.485,0.647,0.33 +2026-07-29 06:00:00,2026-07-30 00:00:00,18,0.711,0.916,0.604 +2026-07-29 06:00:00,2026-07-30 01:00:00,19,0.827,1.058,0.769 +2026-07-29 06:00:00,2026-07-30 02:00:00,20,0.823,1.1,0.789 +2026-07-29 06:00:00,2026-07-30 03:00:00,21,0.721,0.97,0.655 +2026-07-29 06:00:00,2026-07-30 04:00:00,22,0.474,0.702,0.393 +2026-07-29 06:00:00,2026-07-30 05:00:00,23,0.155,0.341,0.063 +2026-07-29 06:00:00,2026-07-30 06:00:00,24,-0.159,0.041,-0.259 +2026-07-29 06:00:00,2026-07-30 07:00:00,25,-0.36,-0.233,-0.484 +2026-07-29 06:00:00,2026-07-30 08:00:00,26,-0.379,-0.31,-0.55 +2026-07-29 06:00:00,2026-07-30 09:00:00,27,-0.268,-0.207,-0.468 +2026-07-29 06:00:00,2026-07-30 10:00:00,28,-0.094,-0.022,-0.28 +2026-07-29 06:00:00,2026-07-30 11:00:00,29,0.155,0.253,-0.028 +2026-07-29 06:00:00,2026-07-30 12:00:00,30,0.407,0.515,0.224 +2026-07-29 06:00:00,2026-07-30 13:00:00,31,0.572,0.682,0.403 +2026-07-29 06:00:00,2026-07-30 14:00:00,32,0.626,0.744,0.467 +2026-07-29 06:00:00,2026-07-30 15:00:00,33,0.533,0.687,0.398 +2026-07-29 06:00:00,2026-07-30 16:00:00,34,0.356,0.494,0.207 +2026-07-29 06:00:00,2026-07-30 17:00:00,35,0.105,0.23,-0.057 +2026-07-29 06:00:00,2026-07-30 18:00:00,36,-0.156,-0.059,-0.325 +2026-07-29 06:00:00,2026-07-30 19:00:00,37,-0.336,-0.245,-0.516 +2026-07-29 06:00:00,2026-07-30 20:00:00,38,-0.37,-0.293,-0.552 +2026-07-29 06:00:00,2026-07-30 21:00:00,39,-0.251,-0.157,-0.426 +2026-07-29 06:00:00,2026-07-30 22:00:00,40,-0.036,0.097,-0.187 +2026-07-29 06:00:00,2026-07-30 23:00:00,41,0.256,0.417,0.118 +2026-07-29 06:00:00,2026-07-31 00:00:00,42,0.554,0.742,0.431 +2026-07-29 06:00:00,2026-07-31 01:00:00,43,0.764,0.989,0.675 +2026-07-29 06:00:00,2026-07-31 02:00:00,44,0.847,1.115,0.79 +2026-07-29 06:00:00,2026-07-31 03:00:00,45,0.79,1.096,0.75 +2026-07-29 06:00:00,2026-07-31 04:00:00,46,0.617,0.893,0.558 +2026-07-29 06:00:00,2026-07-31 05:00:00,47,0.325,0.587,0.254 +2026-07-29 06:00:00,2026-07-31 06:00:00,48,0.002,0.26,-0.09 +2026-07-29 12:00:00,2026-07-29 12:00:00,0,0.507,0.565,0.313 +2026-07-29 12:00:00,2026-07-29 13:00:00,1,0.589,0.662,0.415 +2026-07-29 12:00:00,2026-07-29 14:00:00,2,0.605,0.664,0.396 +2026-07-29 12:00:00,2026-07-29 15:00:00,3,0.503,0.554,0.254 +2026-07-29 12:00:00,2026-07-29 16:00:00,4,0.317,0.349,0.024 +2026-07-29 12:00:00,2026-07-29 17:00:00,5,0.097,0.048,-0.237 +2026-07-29 12:00:00,2026-07-29 18:00:00,6,-0.108,-0.178,-0.453 +2026-07-29 12:00:00,2026-07-29 19:00:00,7,-0.187,-0.277,-0.542 +2026-07-29 12:00:00,2026-07-29 20:00:00,8,-0.138,-0.2,-0.474 +2026-07-29 12:00:00,2026-07-29 21:00:00,9,-0.002,0.016,-0.278 +2026-07-29 12:00:00,2026-07-29 22:00:00,10,0.237,0.331,0.009 +2026-07-29 12:00:00,2026-07-29 23:00:00,11,0.513,0.647,0.33 +2026-07-29 12:00:00,2026-07-30 00:00:00,12,0.733,0.916,0.604 +2026-07-29 12:00:00,2026-07-30 01:00:00,13,0.873,1.058,0.769 +2026-07-29 12:00:00,2026-07-30 02:00:00,14,0.862,1.1,0.789 +2026-07-29 12:00:00,2026-07-30 03:00:00,15,0.747,0.97,0.655 +2026-07-29 12:00:00,2026-07-30 04:00:00,16,0.504,0.702,0.393 +2026-07-29 12:00:00,2026-07-30 05:00:00,17,0.184,0.341,0.063 +2026-07-29 12:00:00,2026-07-30 06:00:00,18,-0.113,0.041,-0.259 +2026-07-29 12:00:00,2026-07-30 07:00:00,19,-0.313,-0.233,-0.484 +2026-07-29 12:00:00,2026-07-30 08:00:00,20,-0.334,-0.31,-0.55 +2026-07-29 12:00:00,2026-07-30 09:00:00,21,-0.23,-0.207,-0.468 +2026-07-29 12:00:00,2026-07-30 10:00:00,22,-0.061,-0.022,-0.28 +2026-07-29 12:00:00,2026-07-30 11:00:00,23,0.185,0.253,-0.028 +2026-07-29 12:00:00,2026-07-30 12:00:00,24,0.438,0.515,0.224 +2026-07-29 12:00:00,2026-07-30 13:00:00,25,0.608,0.682,0.403 +2026-07-29 12:00:00,2026-07-30 14:00:00,26,0.655,0.744,0.467 +2026-07-29 12:00:00,2026-07-30 15:00:00,27,0.569,0.687,0.398 +2026-07-29 12:00:00,2026-07-30 16:00:00,28,0.401,0.494,0.207 +2026-07-29 12:00:00,2026-07-30 17:00:00,29,0.136,0.23,-0.057 +2026-07-29 12:00:00,2026-07-30 18:00:00,30,-0.129,-0.059,-0.325 +2026-07-29 12:00:00,2026-07-30 19:00:00,31,-0.318,-0.245,-0.516 +2026-07-29 12:00:00,2026-07-30 20:00:00,32,-0.347,-0.293,-0.552 +2026-07-29 12:00:00,2026-07-30 21:00:00,33,-0.225,-0.157,-0.426 +2026-07-29 12:00:00,2026-07-30 22:00:00,34,-0.004,0.097,-0.187 +2026-07-29 12:00:00,2026-07-30 23:00:00,35,0.297,0.417,0.118 +2026-07-29 12:00:00,2026-07-31 00:00:00,36,0.591,0.742,0.431 +2026-07-29 12:00:00,2026-07-31 01:00:00,37,0.81,0.989,0.675 +2026-07-29 12:00:00,2026-07-31 02:00:00,38,0.891,1.115,0.79 +2026-07-29 12:00:00,2026-07-31 03:00:00,39,0.827,1.096,0.75 +2026-07-29 12:00:00,2026-07-31 04:00:00,40,0.644,0.893,0.558 +2026-07-29 12:00:00,2026-07-31 05:00:00,41,0.349,0.587,0.254 +2026-07-29 12:00:00,2026-07-31 06:00:00,42,0.021,0.26,-0.09 +2026-07-29 12:00:00,2026-07-31 07:00:00,43,-0.247,-0.062,-0.39 +2026-07-29 12:00:00,2026-07-31 08:00:00,44,-0.37,-0.226,-0.555 +2026-07-29 12:00:00,2026-07-31 09:00:00,45,-0.324,-0.24,-0.547 +2026-07-29 12:00:00,2026-07-31 10:00:00,46,-0.176,-0.102,-0.402 +2026-07-29 12:00:00,2026-07-31 11:00:00,47,0.053,0.105,-0.173 +2026-07-29 12:00:00,2026-07-31 12:00:00,48,0.333,0.371,0.096 +2026-07-29 18:00:00,2026-07-29 18:00:00,0,-0.003,-0.178,-0.453 +2026-07-29 18:00:00,2026-07-29 19:00:00,1,-0.094,-0.277,-0.542 +2026-07-29 18:00:00,2026-07-29 20:00:00,2,-0.06,-0.2,-0.474 +2026-07-29 18:00:00,2026-07-29 21:00:00,3,0.07,0.016,-0.278 +2026-07-29 18:00:00,2026-07-29 22:00:00,4,0.293,0.331,0.009 +2026-07-29 18:00:00,2026-07-29 23:00:00,5,0.572,0.647,0.33 +2026-07-29 18:00:00,2026-07-30 00:00:00,6,0.801,0.916,0.604 +2026-07-29 18:00:00,2026-07-30 01:00:00,7,0.931,1.058,0.769 +2026-07-29 18:00:00,2026-07-30 02:00:00,8,0.933,1.1,0.789 +2026-07-29 18:00:00,2026-07-30 03:00:00,9,0.808,0.97,0.655 +2026-07-29 18:00:00,2026-07-30 04:00:00,10,0.562,0.702,0.393 +2026-07-29 18:00:00,2026-07-30 05:00:00,11,0.248,0.341,0.063 +2026-07-29 18:00:00,2026-07-30 06:00:00,12,-0.058,0.041,-0.259 +2026-07-29 18:00:00,2026-07-30 07:00:00,13,-0.253,-0.233,-0.484 +2026-07-29 18:00:00,2026-07-30 08:00:00,14,-0.282,-0.31,-0.55 +2026-07-29 18:00:00,2026-07-30 09:00:00,15,-0.191,-0.207,-0.468 +2026-07-29 18:00:00,2026-07-30 10:00:00,16,-0.028,-0.022,-0.28 +2026-07-29 18:00:00,2026-07-30 11:00:00,17,0.221,0.253,-0.028 +2026-07-29 18:00:00,2026-07-30 12:00:00,18,0.476,0.515,0.224 +2026-07-29 18:00:00,2026-07-30 13:00:00,19,0.635,0.682,0.403 +2026-07-29 18:00:00,2026-07-30 14:00:00,20,0.689,0.744,0.467 +2026-07-29 18:00:00,2026-07-30 15:00:00,21,0.613,0.687,0.398 +2026-07-29 18:00:00,2026-07-30 16:00:00,22,0.451,0.494,0.207 +2026-07-29 18:00:00,2026-07-30 17:00:00,23,0.205,0.23,-0.057 +2026-07-29 18:00:00,2026-07-30 18:00:00,24,-0.064,-0.059,-0.325 +2026-07-29 18:00:00,2026-07-30 19:00:00,25,-0.242,-0.245,-0.516 +2026-07-29 18:00:00,2026-07-30 20:00:00,26,-0.28,-0.293,-0.552 +2026-07-29 18:00:00,2026-07-30 21:00:00,27,-0.158,-0.157,-0.426 +2026-07-29 18:00:00,2026-07-30 22:00:00,28,0.055,0.097,-0.187 +2026-07-29 18:00:00,2026-07-30 23:00:00,29,0.352,0.417,0.118 +2026-07-29 18:00:00,2026-07-31 00:00:00,30,0.647,0.742,0.431 +2026-07-29 18:00:00,2026-07-31 01:00:00,31,0.86,0.989,0.675 +2026-07-29 18:00:00,2026-07-31 02:00:00,32,0.95,1.115,0.79 +2026-07-29 18:00:00,2026-07-31 03:00:00,33,0.878,1.096,0.75 +2026-07-29 18:00:00,2026-07-31 04:00:00,34,0.703,0.893,0.558 +2026-07-29 18:00:00,2026-07-31 05:00:00,35,0.411,0.587,0.254 +2026-07-29 18:00:00,2026-07-31 06:00:00,36,0.085,0.26,-0.09 +2026-07-29 18:00:00,2026-07-31 07:00:00,37,-0.179,-0.062,-0.39 +2026-07-29 18:00:00,2026-07-31 08:00:00,38,-0.291,-0.226,-0.555 +2026-07-29 18:00:00,2026-07-31 09:00:00,39,-0.239,-0.24,-0.547 +2026-07-29 18:00:00,2026-07-31 10:00:00,40,-0.098,-0.102,-0.402 +2026-07-29 18:00:00,2026-07-31 11:00:00,41,0.133,0.105,-0.173 +2026-07-29 18:00:00,2026-07-31 12:00:00,42,0.411,0.371,0.096 +2026-07-29 18:00:00,2026-07-31 13:00:00,43,0.638,0.612,0.338 +2026-07-29 18:00:00,2026-07-31 14:00:00,44,0.761,0.74,0.485 +2026-07-29 18:00:00,2026-07-31 15:00:00,45,0.753,0.771,0.5 +2026-07-29 18:00:00,2026-07-31 16:00:00,46,0.635,0.616,0.378 +2026-07-29 18:00:00,2026-07-31 17:00:00,47,0.415,0.395,0.143 +2026-07-29 18:00:00,2026-07-31 18:00:00,48,0.136,0.078,-0.142 +2026-07-30 00:00:00,2026-07-30 00:00:00,0,0.75,0.916,0.604 +2026-07-30 00:00:00,2026-07-30 01:00:00,1,0.893,1.058,0.769 +2026-07-30 00:00:00,2026-07-30 02:00:00,2,0.88,1.1,0.789 +2026-07-30 00:00:00,2026-07-30 03:00:00,3,0.763,0.97,0.655 +2026-07-30 00:00:00,2026-07-30 04:00:00,4,0.515,0.702,0.393 +2026-07-30 00:00:00,2026-07-30 05:00:00,5,0.203,0.341,0.063 +2026-07-30 00:00:00,2026-07-30 06:00:00,6,-0.087,0.041,-0.259 +2026-07-30 00:00:00,2026-07-30 07:00:00,7,-0.28,-0.233,-0.484 +2026-07-30 00:00:00,2026-07-30 08:00:00,8,-0.298,-0.31,-0.55 +2026-07-30 00:00:00,2026-07-30 09:00:00,9,-0.211,-0.207,-0.468 +2026-07-30 00:00:00,2026-07-30 10:00:00,10,-0.047,-0.022,-0.28 +2026-07-30 00:00:00,2026-07-30 11:00:00,11,0.207,0.253,-0.028 +2026-07-30 00:00:00,2026-07-30 12:00:00,12,0.455,0.515,0.224 +2026-07-30 00:00:00,2026-07-30 13:00:00,13,0.617,0.682,0.403 +2026-07-30 00:00:00,2026-07-30 14:00:00,14,0.666,0.744,0.467 +2026-07-30 00:00:00,2026-07-30 15:00:00,15,0.588,0.687,0.398 +2026-07-30 00:00:00,2026-07-30 16:00:00,16,0.417,0.494,0.207 +2026-07-30 00:00:00,2026-07-30 17:00:00,17,0.165,0.23,-0.057 +2026-07-30 00:00:00,2026-07-30 18:00:00,18,-0.1,-0.059,-0.325 +2026-07-30 00:00:00,2026-07-30 19:00:00,19,-0.289,-0.245,-0.516 +2026-07-30 00:00:00,2026-07-30 20:00:00,20,-0.327,-0.293,-0.552 +2026-07-30 00:00:00,2026-07-30 21:00:00,21,-0.207,-0.157,-0.426 +2026-07-30 00:00:00,2026-07-30 22:00:00,22,0.011,0.097,-0.187 +2026-07-30 00:00:00,2026-07-30 23:00:00,23,0.317,0.417,0.118 +2026-07-30 00:00:00,2026-07-31 00:00:00,24,0.617,0.742,0.431 +2026-07-30 00:00:00,2026-07-31 01:00:00,25,0.837,0.989,0.675 +2026-07-30 00:00:00,2026-07-31 02:00:00,26,0.924,1.115,0.79 +2026-07-30 00:00:00,2026-07-31 03:00:00,27,0.857,1.096,0.75 +2026-07-30 00:00:00,2026-07-31 04:00:00,28,0.681,0.893,0.558 +2026-07-30 00:00:00,2026-07-31 05:00:00,29,0.389,0.587,0.254 +2026-07-30 00:00:00,2026-07-31 06:00:00,30,0.068,0.26,-0.09 +2026-07-30 00:00:00,2026-07-31 07:00:00,31,-0.196,-0.062,-0.39 +2026-07-30 00:00:00,2026-07-31 08:00:00,32,-0.312,-0.226,-0.555 +2026-07-30 00:00:00,2026-07-31 09:00:00,33,-0.269,-0.24,-0.547 +2026-07-30 00:00:00,2026-07-31 10:00:00,34,-0.127,-0.102,-0.402 +2026-07-30 00:00:00,2026-07-31 11:00:00,35,0.099,0.105,-0.173 +2026-07-30 00:00:00,2026-07-31 12:00:00,36,0.372,0.371,0.096 +2026-07-30 00:00:00,2026-07-31 13:00:00,37,0.597,0.612,0.338 +2026-07-30 00:00:00,2026-07-31 14:00:00,38,0.711,0.74,0.485 +2026-07-30 00:00:00,2026-07-31 15:00:00,39,0.708,0.771,0.5 +2026-07-30 00:00:00,2026-07-31 16:00:00,40,0.584,0.616,0.378 +2026-07-30 00:00:00,2026-07-31 17:00:00,41,0.367,0.395,0.143 +2026-07-30 00:00:00,2026-07-31 18:00:00,42,0.086,0.078,-0.142 +2026-07-30 00:00:00,2026-07-31 19:00:00,43,-0.165,-0.178,-0.403 +2026-07-30 00:00:00,2026-07-31 20:00:00,44,-0.304,-0.382,-0.551 +2026-07-30 00:00:00,2026-07-31 21:00:00,45,-0.278,-0.323,-0.527 +2026-07-30 00:00:00,2026-07-31 22:00:00,46,-0.136,-0.165,-0.352 +2026-07-30 00:00:00,2026-07-31 23:00:00,47,0.096,0.113,-0.087 +2026-07-30 00:00:00,2026-08-01 00:00:00,48,0.391,0.437,0.221 +2026-07-30 06:00:00,2026-07-30 06:00:00,0,-0.086,0.041,-0.259 +2026-07-30 06:00:00,2026-07-30 07:00:00,1,-0.289,-0.233,-0.484 +2026-07-30 06:00:00,2026-07-30 08:00:00,2,-0.313,-0.31,-0.55 +2026-07-30 06:00:00,2026-07-30 09:00:00,3,-0.215,-0.207,-0.468 +2026-07-30 06:00:00,2026-07-30 10:00:00,4,-0.049,-0.022,-0.28 +2026-07-30 06:00:00,2026-07-30 11:00:00,5,0.201,0.253,-0.028 +2026-07-30 06:00:00,2026-07-30 12:00:00,6,0.455,0.515,0.224 +2026-07-30 06:00:00,2026-07-30 13:00:00,7,0.619,0.682,0.403 +2026-07-30 06:00:00,2026-07-30 14:00:00,8,0.666,0.744,0.467 +2026-07-30 06:00:00,2026-07-30 15:00:00,9,0.591,0.687,0.398 +2026-07-30 06:00:00,2026-07-30 16:00:00,10,0.426,0.494,0.207 +2026-07-30 06:00:00,2026-07-30 17:00:00,11,0.175,0.23,-0.057 +2026-07-30 06:00:00,2026-07-30 18:00:00,12,-0.087,-0.059,-0.325 +2026-07-30 06:00:00,2026-07-30 19:00:00,13,-0.269,-0.245,-0.516 +2026-07-30 06:00:00,2026-07-30 20:00:00,14,-0.31,-0.293,-0.552 +2026-07-30 06:00:00,2026-07-30 21:00:00,15,-0.196,-0.157,-0.426 +2026-07-30 06:00:00,2026-07-30 22:00:00,16,0.012,0.097,-0.187 +2026-07-30 06:00:00,2026-07-30 23:00:00,17,0.315,0.417,0.118 +2026-07-30 06:00:00,2026-07-31 00:00:00,18,0.622,0.742,0.431 +2026-07-30 06:00:00,2026-07-31 01:00:00,19,0.842,0.989,0.675 +2026-07-30 06:00:00,2026-07-31 02:00:00,20,0.916,1.115,0.79 +2026-07-30 06:00:00,2026-07-31 03:00:00,21,0.859,1.096,0.75 +2026-07-30 06:00:00,2026-07-31 04:00:00,22,0.683,0.893,0.558 +2026-07-30 06:00:00,2026-07-31 05:00:00,23,0.387,0.587,0.254 +2026-07-30 06:00:00,2026-07-31 06:00:00,24,0.063,0.26,-0.09 +2026-07-30 06:00:00,2026-07-31 07:00:00,25,-0.196,-0.062,-0.39 +2026-07-30 06:00:00,2026-07-31 08:00:00,26,-0.313,-0.226,-0.555 +2026-07-30 06:00:00,2026-07-31 09:00:00,27,-0.266,-0.24,-0.547 +2026-07-30 06:00:00,2026-07-31 10:00:00,28,-0.125,-0.102,-0.402 +2026-07-30 06:00:00,2026-07-31 11:00:00,29,0.099,0.105,-0.173 +2026-07-30 06:00:00,2026-07-31 12:00:00,30,0.372,0.371,0.096 +2026-07-30 06:00:00,2026-07-31 13:00:00,31,0.592,0.612,0.338 +2026-07-30 06:00:00,2026-07-31 14:00:00,32,0.707,0.74,0.485 +2026-07-30 06:00:00,2026-07-31 15:00:00,33,0.704,0.771,0.5 +2026-07-30 06:00:00,2026-07-31 16:00:00,34,0.579,0.616,0.378 +2026-07-30 06:00:00,2026-07-31 17:00:00,35,0.359,0.395,0.143 +2026-07-30 06:00:00,2026-07-31 18:00:00,36,0.074,0.078,-0.142 +2026-07-30 06:00:00,2026-07-31 19:00:00,37,-0.175,-0.178,-0.403 +2026-07-30 06:00:00,2026-07-31 20:00:00,38,-0.312,-0.382,-0.551 +2026-07-30 06:00:00,2026-07-31 21:00:00,39,-0.286,-0.323,-0.527 +2026-07-30 06:00:00,2026-07-31 22:00:00,40,-0.146,-0.165,-0.352 +2026-07-30 06:00:00,2026-07-31 23:00:00,41,0.083,0.113,-0.087 +2026-07-30 06:00:00,2026-08-01 00:00:00,42,0.383,0.437,0.221 +2026-07-30 06:00:00,2026-08-01 01:00:00,43,0.648,0.746,0.513 +2026-07-30 06:00:00,2026-08-01 02:00:00,44,0.803,0.964,0.714 +2026-07-30 06:00:00,2026-08-01 03:00:00,45,0.823,1.033,0.771 +2026-07-30 06:00:00,2026-08-01 04:00:00,46,0.698,0.908,0.67 +2026-07-30 06:00:00,2026-08-01 05:00:00,47,0.461,0.658,0.427 +2026-07-30 06:00:00,2026-08-01 06:00:00,48,0.147,0.329,0.096 +2026-07-30 12:00:00,2026-07-30 12:00:00,0,0.497,0.515,0.224 +2026-07-30 12:00:00,2026-07-30 13:00:00,1,0.662,0.682,0.403 +2026-07-30 12:00:00,2026-07-30 14:00:00,2,0.719,0.744,0.467 +2026-07-30 12:00:00,2026-07-30 15:00:00,3,0.652,0.687,0.398 +2026-07-30 12:00:00,2026-07-30 16:00:00,4,0.471,0.494,0.207 +2026-07-30 12:00:00,2026-07-30 17:00:00,5,0.22,0.23,-0.057 +2026-07-30 12:00:00,2026-07-30 18:00:00,6,-0.038,-0.059,-0.325 +2026-07-30 12:00:00,2026-07-30 19:00:00,7,-0.218,-0.245,-0.516 +2026-07-30 12:00:00,2026-07-30 20:00:00,8,-0.248,-0.293,-0.552 +2026-07-30 12:00:00,2026-07-30 21:00:00,9,-0.125,-0.157,-0.426 +2026-07-30 12:00:00,2026-07-30 22:00:00,10,0.088,0.097,-0.187 +2026-07-30 12:00:00,2026-07-30 23:00:00,11,0.379,0.417,0.118 +2026-07-30 12:00:00,2026-07-31 00:00:00,12,0.68,0.742,0.431 +2026-07-30 12:00:00,2026-07-31 01:00:00,13,0.904,0.989,0.675 +2026-07-30 12:00:00,2026-07-31 02:00:00,14,0.993,1.115,0.79 +2026-07-30 12:00:00,2026-07-31 03:00:00,15,0.926,1.096,0.75 +2026-07-30 12:00:00,2026-07-31 04:00:00,16,0.75,0.893,0.558 +2026-07-30 12:00:00,2026-07-31 05:00:00,17,0.456,0.587,0.254 +2026-07-30 12:00:00,2026-07-31 06:00:00,18,0.134,0.26,-0.09 +2026-07-30 12:00:00,2026-07-31 07:00:00,19,-0.132,-0.062,-0.39 +2026-07-30 12:00:00,2026-07-31 08:00:00,20,-0.253,-0.226,-0.555 +2026-07-30 12:00:00,2026-07-31 09:00:00,21,-0.216,-0.24,-0.547 +2026-07-30 12:00:00,2026-07-31 10:00:00,22,-0.08,-0.102,-0.402 +2026-07-30 12:00:00,2026-07-31 11:00:00,23,0.139,0.105,-0.173 +2026-07-30 12:00:00,2026-07-31 12:00:00,24,0.404,0.371,0.096 +2026-07-30 12:00:00,2026-07-31 13:00:00,25,0.618,0.612,0.338 +2026-07-30 12:00:00,2026-07-31 14:00:00,26,0.726,0.74,0.485 +2026-07-30 12:00:00,2026-07-31 15:00:00,27,0.718,0.771,0.5 +2026-07-30 12:00:00,2026-07-31 16:00:00,28,0.59,0.616,0.378 +2026-07-30 12:00:00,2026-07-31 17:00:00,29,0.366,0.395,0.143 +2026-07-30 12:00:00,2026-07-31 18:00:00,30,0.088,0.078,-0.142 +2026-07-30 12:00:00,2026-07-31 19:00:00,31,-0.161,-0.178,-0.403 +2026-07-30 12:00:00,2026-07-31 20:00:00,32,-0.292,-0.382,-0.551 +2026-07-30 12:00:00,2026-07-31 21:00:00,33,-0.273,-0.323,-0.527 +2026-07-30 12:00:00,2026-07-31 22:00:00,34,-0.131,-0.165,-0.352 +2026-07-30 12:00:00,2026-07-31 23:00:00,35,0.108,0.113,-0.087 +2026-07-30 12:00:00,2026-08-01 00:00:00,36,0.405,0.437,0.221 +2026-07-30 12:00:00,2026-08-01 01:00:00,37,0.672,0.746,0.513 +2026-07-30 12:00:00,2026-08-01 02:00:00,38,0.829,0.964,0.714 +2026-07-30 12:00:00,2026-08-01 03:00:00,39,0.844,1.033,0.771 +2026-07-30 12:00:00,2026-08-01 04:00:00,40,0.718,0.908,0.67 +2026-07-30 12:00:00,2026-08-01 05:00:00,41,0.479,0.658,0.427 +2026-07-30 12:00:00,2026-08-01 06:00:00,42,0.164,0.329,0.096 +2026-07-30 12:00:00,2026-08-01 07:00:00,43,-0.146,-0.006,-0.241 +2026-07-30 12:00:00,2026-08-01 08:00:00,44,-0.349,-0.266,-0.496 +2026-07-30 12:00:00,2026-08-01 09:00:00,45,-0.384,-0.37,-0.587 +2026-07-30 12:00:00,2026-08-01 10:00:00,46,-0.279,-0.322,-0.506 +2026-07-30 12:00:00,2026-08-01 11:00:00,47,-0.088,-0.144,-0.31 +2026-07-30 12:00:00,2026-08-01 12:00:00,48,0.189,0.121,-0.05 +2026-07-30 18:00:00,2026-07-30 18:00:00,0,-0.047,-0.059,-0.325 +2026-07-30 18:00:00,2026-07-30 19:00:00,1,-0.228,-0.245,-0.516 +2026-07-30 18:00:00,2026-07-30 20:00:00,2,-0.272,-0.293,-0.552 +2026-07-30 18:00:00,2026-07-30 21:00:00,3,-0.141,-0.157,-0.426 +2026-07-30 18:00:00,2026-07-30 22:00:00,4,0.086,0.097,-0.187 +2026-07-30 18:00:00,2026-07-30 23:00:00,5,0.383,0.417,0.118 +2026-07-30 18:00:00,2026-07-31 00:00:00,6,0.679,0.742,0.431 +2026-07-30 18:00:00,2026-07-31 01:00:00,7,0.898,0.989,0.675 +2026-07-30 18:00:00,2026-07-31 02:00:00,8,0.989,1.115,0.79 +2026-07-30 18:00:00,2026-07-31 03:00:00,9,0.925,1.096,0.75 +2026-07-30 18:00:00,2026-07-31 04:00:00,10,0.746,0.893,0.558 +2026-07-30 18:00:00,2026-07-31 05:00:00,11,0.452,0.587,0.254 +2026-07-30 18:00:00,2026-07-31 06:00:00,12,0.125,0.26,-0.09 +2026-07-30 18:00:00,2026-07-31 07:00:00,13,-0.137,-0.062,-0.39 +2026-07-30 18:00:00,2026-07-31 08:00:00,14,-0.255,-0.226,-0.555 +2026-07-30 18:00:00,2026-07-31 09:00:00,15,-0.218,-0.24,-0.547 +2026-07-30 18:00:00,2026-07-31 10:00:00,16,-0.083,-0.102,-0.402 +2026-07-30 18:00:00,2026-07-31 11:00:00,17,0.135,0.105,-0.173 +2026-07-30 18:00:00,2026-07-31 12:00:00,18,0.398,0.371,0.096 +2026-07-30 18:00:00,2026-07-31 13:00:00,19,0.616,0.612,0.338 +2026-07-30 18:00:00,2026-07-31 14:00:00,20,0.724,0.74,0.485 +2026-07-30 18:00:00,2026-07-31 15:00:00,21,0.716,0.771,0.5 +2026-07-30 18:00:00,2026-07-31 16:00:00,22,0.592,0.616,0.378 +2026-07-30 18:00:00,2026-07-31 17:00:00,23,0.366,0.395,0.143 +2026-07-30 18:00:00,2026-07-31 18:00:00,24,0.089,0.078,-0.142 +2026-07-30 18:00:00,2026-07-31 19:00:00,25,-0.159,-0.178,-0.403 +2026-07-30 18:00:00,2026-07-31 20:00:00,26,-0.297,-0.382,-0.551 +2026-07-30 18:00:00,2026-07-31 21:00:00,27,-0.279,-0.323,-0.527 +2026-07-30 18:00:00,2026-07-31 22:00:00,28,-0.132,-0.165,-0.352 +2026-07-30 18:00:00,2026-07-31 23:00:00,29,0.107,0.113,-0.087 +2026-07-30 18:00:00,2026-08-01 00:00:00,30,0.394,0.437,0.221 +2026-07-30 18:00:00,2026-08-01 01:00:00,31,0.661,0.746,0.513 +2026-07-30 18:00:00,2026-08-01 02:00:00,32,0.816,0.964,0.714 +2026-07-30 18:00:00,2026-08-01 03:00:00,33,0.834,1.033,0.771 +2026-07-30 18:00:00,2026-08-01 04:00:00,34,0.718,0.908,0.67 +2026-07-30 18:00:00,2026-08-01 05:00:00,35,0.479,0.658,0.427 +2026-07-30 18:00:00,2026-08-01 06:00:00,36,0.165,0.329,0.096 +2026-07-30 18:00:00,2026-08-01 07:00:00,37,-0.139,-0.006,-0.241 +2026-07-30 18:00:00,2026-08-01 08:00:00,38,-0.343,-0.266,-0.496 +2026-07-30 18:00:00,2026-08-01 09:00:00,39,-0.38,-0.37,-0.587 +2026-07-30 18:00:00,2026-08-01 10:00:00,40,-0.278,-0.322,-0.506 +2026-07-30 18:00:00,2026-08-01 11:00:00,41,-0.088,-0.144,-0.31 +2026-07-30 18:00:00,2026-08-01 12:00:00,42,0.188,0.121,-0.05 +2026-07-30 18:00:00,2026-08-01 13:00:00,43,0.468,0.428,0.226 +2026-07-30 18:00:00,2026-08-01 14:00:00,44,0.665,0.615,0.447 +2026-07-30 18:00:00,2026-08-01 15:00:00,45,0.739,0.726,0.551 +2026-07-30 18:00:00,2026-08-01 16:00:00,46,0.666,0.686,0.514 +2026-07-30 18:00:00,2026-08-01 17:00:00,47,0.494,0.512,0.342 +2026-07-30 18:00:00,2026-08-01 18:00:00,48,0.215,0.256,0.073 +2026-07-31 00:00:00,2026-07-31 00:00:00,0,0.683,0.742,0.431 +2026-07-31 00:00:00,2026-07-31 01:00:00,1,0.885,0.989,0.675 +2026-07-31 00:00:00,2026-07-31 02:00:00,2,0.982,1.115,0.79 +2026-07-31 00:00:00,2026-07-31 03:00:00,3,0.923,1.096,0.75 +2026-07-31 00:00:00,2026-07-31 04:00:00,4,0.745,0.893,0.558 +2026-07-31 00:00:00,2026-07-31 05:00:00,5,0.46,0.587,0.254 +2026-07-31 00:00:00,2026-07-31 06:00:00,6,0.134,0.26,-0.09 +2026-07-31 00:00:00,2026-07-31 07:00:00,7,-0.131,-0.062,-0.39 +2026-07-31 00:00:00,2026-07-31 08:00:00,8,-0.25,-0.226,-0.555 +2026-07-31 00:00:00,2026-07-31 09:00:00,9,-0.216,-0.24,-0.547 +2026-07-31 00:00:00,2026-07-31 10:00:00,10,-0.079,-0.102,-0.402 +2026-07-31 00:00:00,2026-07-31 11:00:00,11,0.136,0.105,-0.173 +2026-07-31 00:00:00,2026-07-31 12:00:00,12,0.401,0.371,0.096 +2026-07-31 00:00:00,2026-07-31 13:00:00,13,0.614,0.612,0.338 +2026-07-31 00:00:00,2026-07-31 14:00:00,14,0.724,0.74,0.485 +2026-07-31 00:00:00,2026-07-31 15:00:00,15,0.717,0.771,0.5 +2026-07-31 00:00:00,2026-07-31 16:00:00,16,0.59,0.616,0.378 +2026-07-31 00:00:00,2026-07-31 17:00:00,17,0.373,0.395,0.143 +2026-07-31 00:00:00,2026-07-31 18:00:00,18,0.096,0.078,-0.142 +2026-07-31 00:00:00,2026-07-31 19:00:00,19,-0.151,-0.178,-0.403 +2026-07-31 00:00:00,2026-07-31 20:00:00,20,-0.285,-0.382,-0.551 +2026-07-31 00:00:00,2026-07-31 21:00:00,21,-0.261,-0.323,-0.527 +2026-07-31 00:00:00,2026-07-31 22:00:00,22,-0.118,-0.165,-0.352 +2026-07-31 00:00:00,2026-07-31 23:00:00,23,0.113,0.113,-0.087 +2026-07-31 00:00:00,2026-08-01 00:00:00,24,0.407,0.437,0.221 +2026-07-31 00:00:00,2026-08-01 01:00:00,25,0.673,0.746,0.513 +2026-07-31 00:00:00,2026-08-01 02:00:00,26,0.832,0.964,0.714 +2026-07-31 00:00:00,2026-08-01 03:00:00,27,0.849,1.033,0.771 +2026-07-31 00:00:00,2026-08-01 04:00:00,28,0.726,0.908,0.67 +2026-07-31 00:00:00,2026-08-01 05:00:00,29,0.484,0.658,0.427 +2026-07-31 00:00:00,2026-08-01 06:00:00,30,0.163,0.329,0.096 +2026-07-31 00:00:00,2026-08-01 07:00:00,31,-0.143,-0.006,-0.241 +2026-07-31 00:00:00,2026-08-01 08:00:00,32,-0.344,-0.266,-0.496 +2026-07-31 00:00:00,2026-08-01 09:00:00,33,-0.381,-0.37,-0.587 +2026-07-31 00:00:00,2026-08-01 10:00:00,34,-0.274,-0.322,-0.506 +2026-07-31 00:00:00,2026-08-01 11:00:00,35,-0.082,-0.144,-0.31 +2026-07-31 00:00:00,2026-08-01 12:00:00,36,0.191,0.121,-0.05 +2026-07-31 00:00:00,2026-08-01 13:00:00,37,0.472,0.428,0.226 +2026-07-31 00:00:00,2026-08-01 14:00:00,38,0.671,0.615,0.447 +2026-07-31 00:00:00,2026-08-01 15:00:00,39,0.747,0.726,0.551 +2026-07-31 00:00:00,2026-08-01 16:00:00,40,0.675,0.686,0.514 +2026-07-31 00:00:00,2026-08-01 17:00:00,41,0.499,0.512,0.342 +2026-07-31 00:00:00,2026-08-01 18:00:00,42,0.223,0.256,0.073 +2026-07-31 00:00:00,2026-08-01 19:00:00,43,-0.073,-0.052,-0.221 +2026-07-31 00:00:00,2026-08-01 20:00:00,44,-0.296,-0.314,-0.457 +2026-07-31 00:00:00,2026-08-01 21:00:00,45,-0.391,-0.382,-0.553 +2026-07-31 00:00:00,2026-08-01 22:00:00,46,-0.304,-0.302,-0.476 +2026-07-31 00:00:00,2026-08-01 23:00:00,47,-0.121,-0.096,-0.269 +2026-07-31 00:00:00,2026-08-02 00:00:00,48,0.149,0.196,0.006 +2026-07-31 06:00:00,2026-07-31 06:00:00,0,0.146,0.26,-0.09 +2026-07-31 06:00:00,2026-07-31 07:00:00,1,-0.122,-0.062,-0.39 +2026-07-31 06:00:00,2026-07-31 08:00:00,2,-0.232,-0.226,-0.555 +2026-07-31 06:00:00,2026-07-31 09:00:00,3,-0.189,-0.24,-0.547 +2026-07-31 06:00:00,2026-07-31 10:00:00,4,-0.054,-0.102,-0.402 +2026-07-31 06:00:00,2026-07-31 11:00:00,5,0.16,0.105,-0.173 +2026-07-31 06:00:00,2026-07-31 12:00:00,6,0.422,0.371,0.096 +2026-07-31 06:00:00,2026-07-31 13:00:00,7,0.635,0.612,0.338 +2026-07-31 06:00:00,2026-07-31 14:00:00,8,0.738,0.74,0.485 +2026-07-31 06:00:00,2026-07-31 15:00:00,9,0.728,0.771,0.5 +2026-07-31 06:00:00,2026-07-31 16:00:00,10,0.608,0.616,0.378 +2026-07-31 06:00:00,2026-07-31 17:00:00,11,0.384,0.395,0.143 +2026-07-31 06:00:00,2026-07-31 18:00:00,12,0.099,0.078,-0.142 +2026-07-31 06:00:00,2026-07-31 19:00:00,13,-0.15,-0.178,-0.403 +2026-07-31 06:00:00,2026-07-31 20:00:00,14,-0.277,-0.382,-0.551 +2026-07-31 06:00:00,2026-07-31 21:00:00,15,-0.247,-0.323,-0.527 +2026-07-31 06:00:00,2026-07-31 22:00:00,16,-0.107,-0.165,-0.352 +2026-07-31 06:00:00,2026-07-31 23:00:00,17,0.133,0.113,-0.087 +2026-07-31 06:00:00,2026-08-01 00:00:00,18,0.421,0.437,0.221 +2026-07-31 06:00:00,2026-08-01 01:00:00,19,0.684,0.746,0.513 +2026-07-31 06:00:00,2026-08-01 02:00:00,20,0.845,0.964,0.714 +2026-07-31 06:00:00,2026-08-01 03:00:00,21,0.859,1.033,0.771 +2026-07-31 06:00:00,2026-08-01 04:00:00,22,0.738,0.908,0.67 +2026-07-31 06:00:00,2026-08-01 05:00:00,23,0.499,0.658,0.427 +2026-07-31 06:00:00,2026-08-01 06:00:00,24,0.19,0.329,0.096 +2026-07-31 06:00:00,2026-08-01 07:00:00,25,-0.12,-0.006,-0.241 +2026-07-31 06:00:00,2026-08-01 08:00:00,26,-0.32,-0.266,-0.496 +2026-07-31 06:00:00,2026-08-01 09:00:00,27,-0.353,-0.37,-0.587 +2026-07-31 06:00:00,2026-08-01 10:00:00,28,-0.252,-0.322,-0.506 +2026-07-31 06:00:00,2026-08-01 11:00:00,29,-0.06,-0.144,-0.31 +2026-07-31 06:00:00,2026-08-01 12:00:00,30,0.211,0.121,-0.05 +2026-07-31 06:00:00,2026-08-01 13:00:00,31,0.484,0.428,0.226 +2026-07-31 06:00:00,2026-08-01 14:00:00,32,0.68,0.615,0.447 +2026-07-31 06:00:00,2026-08-01 15:00:00,33,0.756,0.726,0.551 +2026-07-31 06:00:00,2026-08-01 16:00:00,34,0.687,0.686,0.514 +2026-07-31 06:00:00,2026-08-01 17:00:00,35,0.513,0.512,0.342 +2026-07-31 06:00:00,2026-08-01 18:00:00,36,0.24,0.256,0.073 +2026-07-31 06:00:00,2026-08-01 19:00:00,37,-0.06,-0.052,-0.221 +2026-07-31 06:00:00,2026-08-01 20:00:00,38,-0.288,-0.314,-0.457 +2026-07-31 06:00:00,2026-08-01 21:00:00,39,-0.376,-0.382,-0.553 +2026-07-31 06:00:00,2026-08-01 22:00:00,40,-0.288,-0.302,-0.476 +2026-07-31 06:00:00,2026-08-01 23:00:00,41,-0.109,-0.096,-0.269 +2026-07-31 06:00:00,2026-08-02 00:00:00,42,0.157,0.196,0.006 +2026-07-31 06:00:00,2026-08-02 01:00:00,43,0.465,0.514,0.306 +2026-07-31 06:00:00,2026-08-02 02:00:00,44,0.693,0.784,0.566 +2026-07-31 06:00:00,2026-08-02 03:00:00,45,0.809,0.932,0.714 +2026-07-31 06:00:00,2026-08-02 04:00:00,46,0.767,0.908,0.712 +2026-07-31 06:00:00,2026-08-02 05:00:00,47,0.602,0.716,0.557 +2026-07-31 06:00:00,2026-08-02 06:00:00,48,0.334,0.458,0.276 +2026-07-31 12:00:00,2026-07-31 12:00:00,0,0.397,0.371,0.096 +2026-07-31 12:00:00,2026-07-31 13:00:00,1,0.614,0.612,0.338 +2026-07-31 12:00:00,2026-07-31 14:00:00,2,0.714,0.74,0.485 +2026-07-31 12:00:00,2026-07-31 15:00:00,3,0.723,0.771,0.5 +2026-07-31 12:00:00,2026-07-31 16:00:00,4,0.595,0.616,0.378 +2026-07-31 12:00:00,2026-07-31 17:00:00,5,0.375,0.395,0.143 +2026-07-31 12:00:00,2026-07-31 18:00:00,6,0.096,0.078,-0.142 +2026-07-31 12:00:00,2026-07-31 19:00:00,7,-0.154,-0.178,-0.403 +2026-07-31 12:00:00,2026-07-31 20:00:00,8,-0.281,-0.382,-0.551 +2026-07-31 12:00:00,2026-07-31 21:00:00,9,-0.259,-0.323,-0.527 +2026-07-31 12:00:00,2026-07-31 22:00:00,10,-0.111,-0.165,-0.352 +2026-07-31 12:00:00,2026-07-31 23:00:00,11,0.12,0.113,-0.087 +2026-07-31 12:00:00,2026-08-01 00:00:00,12,0.41,0.437,0.221 +2026-07-31 12:00:00,2026-08-01 01:00:00,13,0.673,0.746,0.513 +2026-07-31 12:00:00,2026-08-01 02:00:00,14,0.827,0.964,0.714 +2026-07-31 12:00:00,2026-08-01 03:00:00,15,0.847,1.033,0.771 +2026-07-31 12:00:00,2026-08-01 04:00:00,16,0.729,0.908,0.67 +2026-07-31 12:00:00,2026-08-01 05:00:00,17,0.494,0.658,0.427 +2026-07-31 12:00:00,2026-08-01 06:00:00,18,0.18,0.329,0.096 +2026-07-31 12:00:00,2026-08-01 07:00:00,19,-0.126,-0.006,-0.241 +2026-07-31 12:00:00,2026-08-01 08:00:00,20,-0.328,-0.266,-0.496 +2026-07-31 12:00:00,2026-08-01 09:00:00,21,-0.366,-0.37,-0.587 +2026-07-31 12:00:00,2026-08-01 10:00:00,22,-0.262,-0.322,-0.506 +2026-07-31 12:00:00,2026-08-01 11:00:00,23,-0.073,-0.144,-0.31 +2026-07-31 12:00:00,2026-08-01 12:00:00,24,0.197,0.121,-0.05 +2026-07-31 12:00:00,2026-08-01 13:00:00,25,0.466,0.428,0.226 +2026-07-31 12:00:00,2026-08-01 14:00:00,26,0.662,0.615,0.447 +2026-07-31 12:00:00,2026-08-01 15:00:00,27,0.737,0.726,0.551 +2026-07-31 12:00:00,2026-08-01 16:00:00,28,0.669,0.686,0.514 +2026-07-31 12:00:00,2026-08-01 17:00:00,29,0.488,0.512,0.342 +2026-07-31 12:00:00,2026-08-01 18:00:00,30,0.214,0.256,0.073 +2026-07-31 12:00:00,2026-08-01 19:00:00,31,-0.076,-0.052,-0.221 +2026-07-31 12:00:00,2026-08-01 20:00:00,32,-0.3,-0.314,-0.457 +2026-07-31 12:00:00,2026-08-01 21:00:00,33,-0.384,-0.382,-0.553 +2026-07-31 12:00:00,2026-08-01 22:00:00,34,-0.3,-0.302,-0.476 +2026-07-31 12:00:00,2026-08-01 23:00:00,35,-0.115,-0.096,-0.269 +2026-07-31 12:00:00,2026-08-02 00:00:00,36,0.154,0.196,0.006 +2026-07-31 12:00:00,2026-08-02 01:00:00,37,0.462,0.514,0.306 +2026-07-31 12:00:00,2026-08-02 02:00:00,38,0.693,0.784,0.566 +2026-07-31 12:00:00,2026-08-02 03:00:00,39,0.808,0.932,0.714 +2026-07-31 12:00:00,2026-08-02 04:00:00,40,0.764,0.908,0.712 +2026-07-31 12:00:00,2026-08-02 05:00:00,41,0.599,0.716,0.557 +2026-07-31 12:00:00,2026-08-02 06:00:00,42,0.326,0.458,0.276 +2026-07-31 12:00:00,2026-08-02 07:00:00,43,0.001,0.121,-0.062 +2026-07-31 12:00:00,2026-08-02 08:00:00,44,-0.271,-0.193,-0.371 +2026-07-31 12:00:00,2026-08-02 09:00:00,45,-0.409,-0.383,-0.563 +2026-07-31 12:00:00,2026-08-02 10:00:00,46,-0.384,-0.411,-0.581 +2026-07-31 12:00:00,2026-08-02 11:00:00,47,-0.231,-0.257,-0.439 +2026-07-31 12:00:00,2026-08-02 12:00:00,48,0.006,-0.021,-0.203 +2026-07-31 18:00:00,2026-07-31 18:00:00,0,0.105,0.078,-0.142 +2026-07-31 18:00:00,2026-07-31 19:00:00,1,-0.129,-0.178,-0.403 +2026-07-31 18:00:00,2026-07-31 20:00:00,2,-0.268,-0.382,-0.551 +2026-07-31 18:00:00,2026-07-31 21:00:00,3,-0.248,-0.323,-0.527 +2026-07-31 18:00:00,2026-07-31 22:00:00,4,-0.109,-0.165,-0.352 +2026-07-31 18:00:00,2026-07-31 23:00:00,5,0.124,0.113,-0.087 +2026-07-31 18:00:00,2026-08-01 00:00:00,6,0.417,0.437,0.221 +2026-07-31 18:00:00,2026-08-01 01:00:00,7,0.684,0.746,0.513 +2026-07-31 18:00:00,2026-08-01 02:00:00,8,0.838,0.964,0.714 +2026-07-31 18:00:00,2026-08-01 03:00:00,9,0.857,1.033,0.771 +2026-07-31 18:00:00,2026-08-01 04:00:00,10,0.735,0.908,0.67 +2026-07-31 18:00:00,2026-08-01 05:00:00,11,0.494,0.658,0.427 +2026-07-31 18:00:00,2026-08-01 06:00:00,12,0.182,0.329,0.096 +2026-07-31 18:00:00,2026-08-01 07:00:00,13,-0.122,-0.006,-0.241 +2026-07-31 18:00:00,2026-08-01 08:00:00,14,-0.324,-0.266,-0.496 +2026-07-31 18:00:00,2026-08-01 09:00:00,15,-0.361,-0.37,-0.587 +2026-07-31 18:00:00,2026-08-01 10:00:00,16,-0.257,-0.322,-0.506 +2026-07-31 18:00:00,2026-08-01 11:00:00,17,-0.063,-0.144,-0.31 +2026-07-31 18:00:00,2026-08-01 12:00:00,18,0.211,0.121,-0.05 +2026-07-31 18:00:00,2026-08-01 13:00:00,19,0.482,0.428,0.226 +2026-07-31 18:00:00,2026-08-01 14:00:00,20,0.679,0.615,0.447 +2026-07-31 18:00:00,2026-08-01 15:00:00,21,0.749,0.726,0.551 +2026-07-31 18:00:00,2026-08-01 16:00:00,22,0.676,0.686,0.514 +2026-07-31 18:00:00,2026-08-01 17:00:00,23,0.503,0.512,0.342 +2026-07-31 18:00:00,2026-08-01 18:00:00,24,0.226,0.256,0.073 +2026-07-31 18:00:00,2026-08-01 19:00:00,25,-0.068,-0.052,-0.221 +2026-07-31 18:00:00,2026-08-01 20:00:00,26,-0.293,-0.314,-0.457 +2026-07-31 18:00:00,2026-08-01 21:00:00,27,-0.379,-0.382,-0.553 +2026-07-31 18:00:00,2026-08-01 22:00:00,28,-0.294,-0.302,-0.476 +2026-07-31 18:00:00,2026-08-01 23:00:00,29,-0.106,-0.096,-0.269 +2026-07-31 18:00:00,2026-08-02 00:00:00,30,0.171,0.196,0.006 +2026-07-31 18:00:00,2026-08-02 01:00:00,31,0.475,0.514,0.306 +2026-07-31 18:00:00,2026-08-02 02:00:00,32,0.7,0.784,0.566 +2026-07-31 18:00:00,2026-08-02 03:00:00,33,0.809,0.932,0.714 +2026-07-31 18:00:00,2026-08-02 04:00:00,34,0.765,0.908,0.712 +2026-07-31 18:00:00,2026-08-02 05:00:00,35,0.601,0.716,0.557 +2026-07-31 18:00:00,2026-08-02 06:00:00,36,0.328,0.458,0.276 +2026-07-31 18:00:00,2026-08-02 07:00:00,37,0.003,0.121,-0.062 +2026-07-31 18:00:00,2026-08-02 08:00:00,38,-0.266,-0.193,-0.371 +2026-07-31 18:00:00,2026-08-02 09:00:00,39,-0.408,-0.383,-0.563 +2026-07-31 18:00:00,2026-08-02 10:00:00,40,-0.378,-0.411,-0.581 +2026-07-31 18:00:00,2026-08-02 11:00:00,41,-0.22,-0.257,-0.439 +2026-07-31 18:00:00,2026-08-02 12:00:00,42,0.021,-0.021,-0.203 +2026-07-31 18:00:00,2026-08-02 13:00:00,43,0.325,0.299,0.079 +2026-07-31 18:00:00,2026-08-02 14:00:00,44,0.589,0.556,0.352 +2026-07-31 18:00:00,2026-08-02 15:00:00,45,0.761,0.75,0.542 +2026-07-31 18:00:00,2026-08-02 16:00:00,46,0.797,0.778,0.6 +2026-07-31 18:00:00,2026-08-02 17:00:00,47,0.682,0.721,0.514 +2026-07-31 18:00:00,2026-08-02 18:00:00,48,0.472,0.508,0.3 +2026-08-01 00:00:00,2026-08-01 00:00:00,0,0.383,0.437,0.221 +2026-08-01 00:00:00,2026-08-01 01:00:00,1,0.657,0.746,0.513 +2026-08-01 00:00:00,2026-08-01 02:00:00,2,0.805,0.964,0.714 +2026-08-01 00:00:00,2026-08-01 03:00:00,3,0.839,1.033,0.771 +2026-08-01 00:00:00,2026-08-01 04:00:00,4,0.712,0.908,0.67 +2026-08-01 00:00:00,2026-08-01 05:00:00,5,0.48,0.658,0.427 +2026-08-01 00:00:00,2026-08-01 06:00:00,6,0.168,0.329,0.096 +2026-08-01 00:00:00,2026-08-01 07:00:00,7,-0.142,-0.006,-0.241 +2026-08-01 00:00:00,2026-08-01 08:00:00,8,-0.344,-0.266,-0.496 +2026-08-01 00:00:00,2026-08-01 09:00:00,9,-0.381,-0.37,-0.587 +2026-08-01 00:00:00,2026-08-01 10:00:00,10,-0.28,-0.322,-0.506 +2026-08-01 00:00:00,2026-08-01 11:00:00,11,-0.089,-0.144,-0.31 +2026-08-01 00:00:00,2026-08-01 12:00:00,12,0.184,0.121,-0.05 +2026-08-01 00:00:00,2026-08-01 13:00:00,13,0.456,0.428,0.226 +2026-08-01 00:00:00,2026-08-01 14:00:00,14,0.647,0.615,0.447 +2026-08-01 00:00:00,2026-08-01 15:00:00,15,0.723,0.726,0.551 +2026-08-01 00:00:00,2026-08-01 16:00:00,16,0.651,0.686,0.514 +2026-08-01 00:00:00,2026-08-01 17:00:00,17,0.48,0.512,0.342 +2026-08-01 00:00:00,2026-08-01 18:00:00,18,0.201,0.256,0.073 +2026-08-01 00:00:00,2026-08-01 19:00:00,19,-0.094,-0.052,-0.221 +2026-08-01 00:00:00,2026-08-01 20:00:00,20,-0.324,-0.314,-0.457 +2026-08-01 00:00:00,2026-08-01 21:00:00,21,-0.408,-0.382,-0.553 +2026-08-01 00:00:00,2026-08-01 22:00:00,22,-0.321,-0.302,-0.476 +2026-08-01 00:00:00,2026-08-01 23:00:00,23,-0.13,-0.096,-0.269 +2026-08-01 00:00:00,2026-08-02 00:00:00,24,0.135,0.196,0.006 +2026-08-01 00:00:00,2026-08-02 01:00:00,25,0.444,0.514,0.306 +2026-08-01 00:00:00,2026-08-02 02:00:00,26,0.674,0.784,0.566 +2026-08-01 00:00:00,2026-08-02 03:00:00,27,0.785,0.932,0.714 +2026-08-01 00:00:00,2026-08-02 04:00:00,28,0.743,0.908,0.712 +2026-08-01 00:00:00,2026-08-02 05:00:00,29,0.578,0.716,0.557 +2026-08-01 00:00:00,2026-08-02 06:00:00,30,0.305,0.458,0.276 +2026-08-01 00:00:00,2026-08-02 07:00:00,31,-0.022,0.121,-0.062 +2026-08-01 00:00:00,2026-08-02 08:00:00,32,-0.292,-0.193,-0.371 +2026-08-01 00:00:00,2026-08-02 09:00:00,33,-0.436,-0.383,-0.563 +2026-08-01 00:00:00,2026-08-02 10:00:00,34,-0.406,-0.411,-0.581 +2026-08-01 00:00:00,2026-08-02 11:00:00,35,-0.249,-0.257,-0.439 +2026-08-01 00:00:00,2026-08-02 12:00:00,36,-0.006,-0.021,-0.203 +2026-08-01 00:00:00,2026-08-02 13:00:00,37,0.3,0.299,0.079 +2026-08-01 00:00:00,2026-08-02 14:00:00,38,0.567,0.556,0.352 +2026-08-01 00:00:00,2026-08-02 15:00:00,39,0.736,0.75,0.542 +2026-08-01 00:00:00,2026-08-02 16:00:00,40,0.769,0.778,0.6 +2026-08-01 00:00:00,2026-08-02 17:00:00,41,0.663,0.721,0.514 +2026-08-01 00:00:00,2026-08-02 18:00:00,42,0.453,0.508,0.3 +2026-08-01 00:00:00,2026-08-02 19:00:00,43,0.158,0.211,0.009 +2026-08-01 00:00:00,2026-08-02 20:00:00,44,-0.128,-0.124,-0.277 +2026-08-01 00:00:00,2026-08-02 21:00:00,45,-0.328,-0.322,-0.479 +2026-08-01 00:00:00,2026-08-02 22:00:00,46,-0.364,-0.338,-0.53 +2026-08-01 00:00:00,2026-08-02 23:00:00,47,-0.251,-0.186,-0.417 +2026-08-01 00:00:00,2026-08-03 00:00:00,48,-0.053,0.028,-0.194 +2026-08-01 06:00:00,2026-08-01 06:00:00,0,0.196,0.329,0.096 +2026-08-01 06:00:00,2026-08-01 07:00:00,1,-0.124,-0.006,-0.241 +2026-08-01 06:00:00,2026-08-01 08:00:00,2,-0.304,-0.266,-0.496 +2026-08-01 06:00:00,2026-08-01 09:00:00,3,-0.359,-0.37,-0.587 +2026-08-01 06:00:00,2026-08-01 10:00:00,4,-0.261,-0.322,-0.506 +2026-08-01 06:00:00,2026-08-01 11:00:00,5,-0.065,-0.144,-0.31 +2026-08-01 06:00:00,2026-08-01 12:00:00,6,0.196,0.121,-0.05 +2026-08-01 06:00:00,2026-08-01 13:00:00,7,0.465,0.428,0.226 +2026-08-01 06:00:00,2026-08-01 14:00:00,8,0.657,0.615,0.447 +2026-08-01 06:00:00,2026-08-01 15:00:00,9,0.733,0.726,0.551 +2026-08-01 06:00:00,2026-08-01 16:00:00,10,0.666,0.686,0.514 +2026-08-01 06:00:00,2026-08-01 17:00:00,11,0.488,0.512,0.342 +2026-08-01 06:00:00,2026-08-01 18:00:00,12,0.213,0.256,0.073 +2026-08-01 06:00:00,2026-08-01 19:00:00,13,-0.073,-0.052,-0.221 +2026-08-01 06:00:00,2026-08-01 20:00:00,14,-0.303,-0.314,-0.457 +2026-08-01 06:00:00,2026-08-01 21:00:00,15,-0.391,-0.382,-0.553 +2026-08-01 06:00:00,2026-08-01 22:00:00,16,-0.314,-0.302,-0.476 +2026-08-01 06:00:00,2026-08-01 23:00:00,17,-0.127,-0.096,-0.269 +2026-08-01 06:00:00,2026-08-02 00:00:00,18,0.145,0.196,0.006 +2026-08-01 06:00:00,2026-08-02 01:00:00,19,0.452,0.514,0.306 +2026-08-01 06:00:00,2026-08-02 02:00:00,20,0.682,0.784,0.566 +2026-08-01 06:00:00,2026-08-02 03:00:00,21,0.796,0.932,0.714 +2026-08-01 06:00:00,2026-08-02 04:00:00,22,0.749,0.908,0.712 +2026-08-01 06:00:00,2026-08-02 05:00:00,23,0.583,0.716,0.557 +2026-08-01 06:00:00,2026-08-02 06:00:00,24,0.309,0.458,0.276 +2026-08-01 06:00:00,2026-08-02 07:00:00,25,-0.012,0.121,-0.062 +2026-08-01 06:00:00,2026-08-02 08:00:00,26,-0.285,-0.193,-0.371 +2026-08-01 06:00:00,2026-08-02 09:00:00,27,-0.437,-0.383,-0.563 +2026-08-01 06:00:00,2026-08-02 10:00:00,28,-0.407,-0.411,-0.581 +2026-08-01 06:00:00,2026-08-02 11:00:00,29,-0.246,-0.257,-0.439 +2026-08-01 06:00:00,2026-08-02 12:00:00,30,-0.008,-0.021,-0.203 +2026-08-01 06:00:00,2026-08-02 13:00:00,31,0.305,0.299,0.079 +2026-08-01 06:00:00,2026-08-02 14:00:00,32,0.573,0.556,0.352 +2026-08-01 06:00:00,2026-08-02 15:00:00,33,0.74,0.75,0.542 +2026-08-01 06:00:00,2026-08-02 16:00:00,34,0.773,0.778,0.6 +2026-08-01 06:00:00,2026-08-02 17:00:00,35,0.666,0.721,0.514 +2026-08-01 06:00:00,2026-08-02 18:00:00,36,0.456,0.508,0.3 +2026-08-01 06:00:00,2026-08-02 19:00:00,37,0.155,0.211,0.009 +2026-08-01 06:00:00,2026-08-02 20:00:00,38,-0.133,-0.124,-0.277 +2026-08-01 06:00:00,2026-08-02 21:00:00,39,-0.328,-0.322,-0.479 +2026-08-01 06:00:00,2026-08-02 22:00:00,40,-0.369,-0.338,-0.53 +2026-08-01 06:00:00,2026-08-02 23:00:00,41,-0.257,-0.186,-0.417 +2026-08-01 06:00:00,2026-08-03 00:00:00,42,-0.057,0.028,-0.194 +2026-08-01 06:00:00,2026-08-03 01:00:00,43,0.22,0.317,0.082 +2026-08-01 06:00:00,2026-08-03 02:00:00,44,0.5,0.612,0.363 +2026-08-01 06:00:00,2026-08-03 03:00:00,45,0.695,0.838,0.582 +2026-08-01 06:00:00,2026-08-03 04:00:00,46,0.749,0.942,0.677 +2026-08-01 06:00:00,2026-08-03 05:00:00,47,0.66,0.832,0.623 +2026-08-01 06:00:00,2026-08-03 06:00:00,48,0.468,0.647,0.426 +2026-08-01 12:00:00,2026-08-01 12:00:00,0,0.16,0.121,-0.05 +2026-08-01 12:00:00,2026-08-01 13:00:00,1,0.438,0.428,0.226 +2026-08-01 12:00:00,2026-08-01 14:00:00,2,0.632,0.615,0.447 +2026-08-01 12:00:00,2026-08-01 15:00:00,3,0.709,0.726,0.551 +2026-08-01 12:00:00,2026-08-01 16:00:00,4,0.649,0.686,0.514 +2026-08-01 12:00:00,2026-08-01 17:00:00,5,0.473,0.512,0.342 +2026-08-01 12:00:00,2026-08-01 18:00:00,6,0.202,0.256,0.073 +2026-08-01 12:00:00,2026-08-01 19:00:00,7,-0.091,-0.052,-0.221 +2026-08-01 12:00:00,2026-08-01 20:00:00,8,-0.32,-0.314,-0.457 +2026-08-01 12:00:00,2026-08-01 21:00:00,9,-0.406,-0.382,-0.553 +2026-08-01 12:00:00,2026-08-01 22:00:00,10,-0.33,-0.302,-0.476 +2026-08-01 12:00:00,2026-08-01 23:00:00,11,-0.143,-0.096,-0.269 +2026-08-01 12:00:00,2026-08-02 00:00:00,12,0.124,0.196,0.006 +2026-08-01 12:00:00,2026-08-02 01:00:00,13,0.426,0.514,0.306 +2026-08-01 12:00:00,2026-08-02 02:00:00,14,0.657,0.784,0.566 +2026-08-01 12:00:00,2026-08-02 03:00:00,15,0.77,0.932,0.714 +2026-08-01 12:00:00,2026-08-02 04:00:00,16,0.73,0.908,0.712 +2026-08-01 12:00:00,2026-08-02 05:00:00,17,0.565,0.716,0.557 +2026-08-01 12:00:00,2026-08-02 06:00:00,18,0.292,0.458,0.276 +2026-08-01 12:00:00,2026-08-02 07:00:00,19,-0.03,0.121,-0.062 +2026-08-01 12:00:00,2026-08-02 08:00:00,20,-0.301,-0.193,-0.371 +2026-08-01 12:00:00,2026-08-02 09:00:00,21,-0.449,-0.383,-0.563 +2026-08-01 12:00:00,2026-08-02 10:00:00,22,-0.421,-0.411,-0.581 +2026-08-01 12:00:00,2026-08-02 11:00:00,23,-0.264,-0.257,-0.439 +2026-08-01 12:00:00,2026-08-02 12:00:00,24,-0.025,-0.021,-0.203 +2026-08-01 12:00:00,2026-08-02 13:00:00,25,0.276,0.299,0.079 +2026-08-01 12:00:00,2026-08-02 14:00:00,26,0.546,0.556,0.352 +2026-08-01 12:00:00,2026-08-02 15:00:00,27,0.715,0.75,0.542 +2026-08-01 12:00:00,2026-08-02 16:00:00,28,0.748,0.778,0.6 +2026-08-01 12:00:00,2026-08-02 17:00:00,29,0.644,0.721,0.514 +2026-08-01 12:00:00,2026-08-02 18:00:00,30,0.434,0.508,0.3 +2026-08-01 12:00:00,2026-08-02 19:00:00,31,0.132,0.211,0.009 +2026-08-01 12:00:00,2026-08-02 20:00:00,32,-0.154,-0.124,-0.277 +2026-08-01 12:00:00,2026-08-02 21:00:00,33,-0.351,-0.322,-0.479 +2026-08-01 12:00:00,2026-08-02 22:00:00,34,-0.396,-0.338,-0.53 +2026-08-01 12:00:00,2026-08-02 23:00:00,35,-0.293,-0.186,-0.417 +2026-08-01 12:00:00,2026-08-03 00:00:00,36,-0.097,0.028,-0.194 +2026-08-01 12:00:00,2026-08-03 01:00:00,37,0.18,0.317,0.082 +2026-08-01 12:00:00,2026-08-03 02:00:00,38,0.463,0.612,0.363 +2026-08-01 12:00:00,2026-08-03 03:00:00,39,0.643,0.838,0.582 +2026-08-01 12:00:00,2026-08-03 04:00:00,40,0.698,0.942,0.677 +2026-08-01 12:00:00,2026-08-03 05:00:00,41,0.613,0.832,0.623 +2026-08-01 12:00:00,2026-08-03 06:00:00,42,0.421,0.647,0.426 +2026-08-01 12:00:00,2026-08-03 07:00:00,43,0.12,0.3,0.126 +2026-08-01 12:00:00,2026-08-03 08:00:00,44,-0.196,-0.046,-0.198 +2026-08-01 12:00:00,2026-08-03 09:00:00,45,-0.444,-0.309,-0.462 +2026-08-01 12:00:00,2026-08-03 10:00:00,46,-0.534,-0.481,-0.593 +2026-08-01 12:00:00,2026-08-03 11:00:00,47,-0.463,-0.468,-0.549 +2026-08-01 12:00:00,2026-08-03 12:00:00,48,-0.277,-0.312,-0.359 +2026-08-01 18:00:00,2026-08-01 18:00:00,0,0.214,0.256,0.073 +2026-08-01 18:00:00,2026-08-01 19:00:00,1,-0.089,-0.052,-0.221 +2026-08-01 18:00:00,2026-08-01 20:00:00,2,-0.314,-0.314,-0.457 +2026-08-01 18:00:00,2026-08-01 21:00:00,3,-0.398,-0.382,-0.553 +2026-08-01 18:00:00,2026-08-01 22:00:00,4,-0.323,-0.302,-0.476 +2026-08-01 18:00:00,2026-08-01 23:00:00,5,-0.133,-0.096,-0.269 +2026-08-01 18:00:00,2026-08-02 00:00:00,6,0.135,0.196,0.006 +2026-08-01 18:00:00,2026-08-02 01:00:00,7,0.439,0.514,0.306 +2026-08-01 18:00:00,2026-08-02 02:00:00,8,0.667,0.784,0.566 +2026-08-01 18:00:00,2026-08-02 03:00:00,9,0.78,0.932,0.714 +2026-08-01 18:00:00,2026-08-02 04:00:00,10,0.737,0.908,0.712 +2026-08-01 18:00:00,2026-08-02 05:00:00,11,0.571,0.716,0.557 +2026-08-01 18:00:00,2026-08-02 06:00:00,12,0.304,0.458,0.276 +2026-08-01 18:00:00,2026-08-02 07:00:00,13,-0.023,0.121,-0.062 +2026-08-01 18:00:00,2026-08-02 08:00:00,14,-0.297,-0.193,-0.371 +2026-08-01 18:00:00,2026-08-02 09:00:00,15,-0.44,-0.383,-0.563 +2026-08-01 18:00:00,2026-08-02 10:00:00,16,-0.407,-0.411,-0.581 +2026-08-01 18:00:00,2026-08-02 11:00:00,17,-0.253,-0.257,-0.439 +2026-08-01 18:00:00,2026-08-02 12:00:00,18,-0.01,-0.021,-0.203 +2026-08-01 18:00:00,2026-08-02 13:00:00,19,0.301,0.299,0.079 +2026-08-01 18:00:00,2026-08-02 14:00:00,20,0.569,0.556,0.352 +2026-08-01 18:00:00,2026-08-02 15:00:00,21,0.738,0.75,0.542 +2026-08-01 18:00:00,2026-08-02 16:00:00,22,0.768,0.778,0.6 +2026-08-01 18:00:00,2026-08-02 17:00:00,23,0.668,0.721,0.514 +2026-08-01 18:00:00,2026-08-02 18:00:00,24,0.444,0.508,0.3 +2026-08-01 18:00:00,2026-08-02 19:00:00,25,0.136,0.211,0.009 +2026-08-01 18:00:00,2026-08-02 20:00:00,26,-0.165,-0.124,-0.277 +2026-08-01 18:00:00,2026-08-02 21:00:00,27,-0.371,-0.322,-0.479 +2026-08-01 18:00:00,2026-08-02 22:00:00,28,-0.409,-0.338,-0.53 +2026-08-01 18:00:00,2026-08-02 23:00:00,29,-0.298,-0.186,-0.417 +2026-08-01 18:00:00,2026-08-03 00:00:00,30,-0.104,0.028,-0.194 +2026-08-01 18:00:00,2026-08-03 01:00:00,31,0.193,0.317,0.082 +2026-08-01 18:00:00,2026-08-03 02:00:00,32,0.469,0.612,0.363 +2026-08-01 18:00:00,2026-08-03 03:00:00,33,0.638,0.838,0.582 +2026-08-01 18:00:00,2026-08-03 04:00:00,34,0.7,0.942,0.677 +2026-08-01 18:00:00,2026-08-03 05:00:00,35,0.619,0.832,0.623 +2026-08-01 18:00:00,2026-08-03 06:00:00,36,0.443,0.647,0.426 +2026-08-01 18:00:00,2026-08-03 07:00:00,37,0.143,0.3,0.126 +2026-08-01 18:00:00,2026-08-03 08:00:00,38,-0.2,-0.046,-0.198 +2026-08-01 18:00:00,2026-08-03 09:00:00,39,-0.445,-0.309,-0.462 +2026-08-01 18:00:00,2026-08-03 10:00:00,40,-0.534,-0.481,-0.593 +2026-08-01 18:00:00,2026-08-03 11:00:00,41,-0.459,-0.468,-0.549 +2026-08-01 18:00:00,2026-08-03 12:00:00,42,-0.295,-0.312,-0.359 +2026-08-01 18:00:00,2026-08-03 13:00:00,43,-0.035,-0.004,-0.091 +2026-08-01 18:00:00,2026-08-03 14:00:00,44,0.254,0.33,0.203 +2026-08-01 18:00:00,2026-08-03 15:00:00,45,0.479,0.574,0.462 +2026-08-01 18:00:00,2026-08-03 16:00:00,46,0.62,0.717,0.618 +2026-08-01 18:00:00,2026-08-03 17:00:00,47,0.611,0.739,0.634 +2026-08-01 18:00:00,2026-08-03 18:00:00,48,0.48,0.631,0.506 From 0abaeae6f7b167e7ff0b118fd93a57d1bb305fc4 Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Tue, 4 Aug 2026 22:53:59 +0200 Subject: [PATCH 2/3] Thin lead-time ticks in forecast example sk.rmse.plot.line() plots the lead time as a category, so all 49 tick labels were rendered and overlapped into an unreadable band. --- docs/examples/Forecast_lead_time.qmd | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/examples/Forecast_lead_time.qmd b/docs/examples/Forecast_lead_time.qmd index bf0bc8f62..afb5a0df3 100644 --- a/docs/examples/Forecast_lead_time.qmd +++ b/docs/examples/Forecast_lead_time.qmd @@ -67,6 +67,7 @@ import matplotlib.pyplot as plt _, ax = plt.subplots() sk.rmse.plot.line(ax=ax) +ax.set_xticks(range(0, 49, 6)) # lead time is plotted as a category, so thin the ticks ax.set_xlabel("Lead time [hours]") ax.set_ylabel("RMSE [m]") ax.set_title("Water level forecast skill by lead time, Lewes DE"); From 80d802931c53a61dd0a645eb5a164658032623fa Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Tue, 4 Aug 2026 23:02:56 +0200 Subject: [PATCH 3/3] Align verification times and remove datum offsets in forecast example The tide-only reference appeared to improve with lead time, which is impossible for a harmonic prediction and revealed two problems. Each lead time is naturally scored over a different period, because a 48 h forecast can only verify against times at least 48 h after the first model run. The window slides with lead time, and the later days in this record happen to be easier, so the reference looked better at long lead times. Restricting to valid times shared by all lead times makes the tide exactly flat at 0.260 m and shows the forecast degrading more steeply than before, 0.106 to 0.132 m. Both series also carry a constant datum offset, -0.08 m for the forecast and -0.26 m for the tide. remove_bias() removes it, and this reverses the ranking: the tide sits at 0.047 m against the forecast's 0.092-0.104 m. Lewes is tide-dominated and this week has no surge, so harmonic prediction is hard to beat -- the earlier impression that the forecast won was the tide's datum offset, not skill. The lead-time signal survives and is cleaner. The reference forecast is what made both faults visible, which is the main lesson of the example. --- docs/examples/Forecast_lead_time.qmd | 136 ++++++++++++++---------- tests/testdata/forecast_lewes/README.md | 8 +- 2 files changed, 84 insertions(+), 60 deletions(-) diff --git a/docs/examples/Forecast_lead_time.qmd b/docs/examples/Forecast_lead_time.qmd index afb5a0df3..093fa0e1a 100644 --- a/docs/examples/Forecast_lead_time.qmd +++ b/docs/examples/Forecast_lead_time.qmd @@ -4,15 +4,15 @@ jupyter: python3 --- A forecast issued 6 hours ahead is usually better than one issued 48 hours ahead. This example -shows how to quantify that degradation, using real water level forecasts from the NOAA Delaware -Bay Operational Forecast System (DBOFS) compared against observations at Lewes, Delaware. +quantifies that degradation using real water level forecasts from the NOAA Delaware Bay +Operational Forecast System (DBOFS) at Lewes, Delaware. -The key idea is that a forecast dataset needs **two** time dimensions: the time the forecast is -*for* (the valid time) and how far ahead it was issued (the lead time). ModelSkill handles this -by carrying the lead time as an auxiliary variable, which can then be used to group the skill -assessment. +A forecast dataset needs **two** time dimensions: the time the forecast is *for* (the valid time) +and how far ahead it was issued (the lead time). ModelSkill carries the lead time as an auxiliary +variable, which can then be used for grouping. ```{python} +import matplotlib.pyplot as plt import pandas as pd import modelskill as ms ``` @@ -20,8 +20,8 @@ import modelskill as ms ## The data Each row is one forecast: issued at `reference_time`, valid at `valid_time`, at a horizon of -`lead_time` hours. The forecast model runs four times a day out to 48 hours, so successive runs -overlap — the same valid time is forecast repeatedly, at a shorter lead time each run. +`lead_time` hours. The model runs four times a day out to 48 hours, so successive runs overlap — +the same valid time is forecast repeatedly, at a shorter lead time each run. ```{python} df = pd.read_csv( @@ -31,15 +31,12 @@ df = pd.read_csv( df.head() ``` -Alongside the model there is a `tide` column: the harmonic tide prediction for the same station. -It is a useful reference because it is *not* initialised from recent conditions, so unlike the -forecast its error should not grow with lead time. +The `tide` column is the harmonic tide prediction for the same station. It is not initialised from +recent conditions, so its error *must* be independent of lead time. That makes it a control: if +the tide curve is not flat, the verification is at fault, not the tide. ## Matching -The data is already matched, so `from_matched()` takes it directly. The index is the valid time, -and `lead_time` is passed as an auxiliary item so it can be used for grouping. - ```{python} cmp = ms.from_matched( df.set_index("valid_time").drop(columns="reference_time"), @@ -51,75 +48,100 @@ cmp = ms.from_matched( cmp ``` -## Skill as a function of lead time - -Grouping by both model and lead time gives one skill score per horizon. +## A first look ```{python} sk = cmp.skill(by=["model", "lead_time"], metrics=["bias", "rmse"]) -sk.to_dataframe().head() -``` - -Plotting the RMSE against lead time shows the degradation directly. - -```{python} -import matplotlib.pyplot as plt _, ax = plt.subplots() sk.rmse.plot.line(ax=ax) ax.set_xticks(range(0, 49, 6)) # lead time is plotted as a category, so thin the ticks ax.set_xlabel("Lead time [hours]") ax.set_ylabel("RMSE [m]") -ax.set_title("Water level forecast skill by lead time, Lewes DE"); +ax.set_title("Skill by lead time — before aligning verification times"); ``` -Two things are visible. The forecast error grows with the horizon, as expected — the further -ahead you predict, the less the recent observations constrain the model. The tide-only prediction -is flat, since it depends only on astronomy and not on how long ago the forecast was made. The -forecast beats the tide-only reference at every lead time here, but its margin narrows as the -horizon extends. +The forecast error grows with the horizon, as expected. But the tide reference *falls* from 0.26 m +to 0.24 m, which is impossible — so the verification needs fixing first. -## Aggregating into horizon bins +## The verification window slides -Per-hour scores are noisy, particularly at the longest lead times where fewer forecasts are -available. Grouping into coarser bins is often more readable for reporting. +A forecast at lead time 48 h can only verify against times at least 48 h after the first model +run, so each lead time is scored over a different period: ```{python} -binned = df.assign( - horizon=pd.cut( - df.lead_time, [-1, 12, 24, 36, 48], labels=["0-12h", "12-24h", "24-36h", "36-48h"] - ) -) -cmp_binned = ms.from_matched( - binned.set_index("valid_time").drop(columns=["reference_time", "lead_time"]), +for lead in [0, 24, 48]: + d = df[df.lead_time == lead] + print(f"lead {lead:2d} h: {d.valid_time.min().date()} to {d.valid_time.max().date()}") +``` + +And the days are not equally easy — the tide alone fits better late in this record: + +```{python} +unique_times = df.drop_duplicates("valid_time") +unique_times.assign(day=unique_times.valid_time.dt.date).groupby("day").apply( + lambda d: ((d.tide - d["observed"]) ** 2).mean() ** 0.5, include_groups=False +).round(3) +``` + +Longer lead times slide into the easier days, so skill differences between horizons are confounded +with differences between periods. + +## Holding the verification times fixed + +Keep lead times on the model's 6-hourly cycle spacing so all of them sample the same hours of the +day, then restrict to the valid times they share. + +```{python} +on_cycle = df[df.lead_time % 6 == 0] +shared = set.intersection(*[set(g.valid_time) for _, g in on_cycle.groupby("lead_time")]) +aligned = on_cycle[on_cycle.valid_time.isin(shared)] + +cmp_aligned = ms.from_matched( + aligned.set_index("valid_time").drop(columns="reference_time"), obs_item="observed", mod_items=["dbofs", "tide"], - aux_items=["horizon"], + aux_items=["lead_time"], quantity=ms.Quantity("Water Level", "m"), ) -cmp_binned.skill(by=["model", "horizon"], metrics=["bias", "rmse"]).round(3) +cmp_aligned.skill(by=["model", "lead_time"], metrics=["bias", "rmse"]).round(3) ``` -## Selecting a single horizon +The tide is now flat at 0.260 m, and the forecast rises 0.106 → 0.132 m — a steeper degradation +than the first plot showed. The cost is sample size: 20 verification times per lead instead of 28. -Because the lead time is an ordinary auxiliary variable, `where()` can isolate one horizon, and -the rest of ModelSkill behaves normally on the result. +## Removing the datum offset + +Both series carry a large constant bias, about -0.08 m for the forecast and -0.26 m for the tide. +Errors that size at lead time 0 indicate reference levels, not forecast quality. `remove_bias()` +subtracts each model's mean residual, leaving the time-varying error untouched. ```{python} -day2 = cmp.where(cmp.data["lead_time"] == 48) -day2.plot.scatter(); +unbiased = cmp_aligned.remove_bias() +sk_unbiased = unbiased.skill(by=["model", "lead_time"], metrics=["bias", "rmse"]) + +_, ax = plt.subplots() +sk_unbiased.rmse.plot.line(ax=ax) +ax.set_xlabel("Lead time [hours]") +ax.set_ylabel("RMSE [m]") +ax.set_title("Skill by lead time — datum offsets removed"); ``` -## Interpreting these numbers +This reverses the ranking. The tide sits flat at 0.047 m, well below the forecast's 0.092–0.104 m; +the earlier impression that the forecast beat the tide table was the tide's datum offset, not +skill. Lewes is strongly tide-dominated and this week has no storm surge, which is exactly when +harmonic prediction is hard to beat. + +The lead-time signal survives and is cleaner: error grows 0.092 → 0.104 m, and residual bias +drifts from +0.020 m to -0.005 m, while the reference stays flat. -The bias is around -0.05 m even at lead time 0, where the forecast has barely diverged from its -initial state. Part of that is likely a datum offset rather than forecast error: the model's free -surface and the observed water level are referenced to different levels. This is worth resolving -before quoting bias figures in a report, and illustrates why bias and RMSE should be read -together. +## Selecting a single horizon + +Lead time is an ordinary auxiliary variable, so `where()` isolates one horizon and everything else +behaves normally. -The dataset also covers a week of ordinary tidal conditions with no storm surge, which is exactly -when an operational forecast earns its keep relative to a tide table — so the margin over the -tide-only reference shown here is a conservative one. +```{python} +unbiased.where(unbiased.data["lead_time"] == 48).plot.scatter(); +``` -See `data/forecast_lewes/README.md` for full provenance and known limitations of this dataset. +See `data/forecast_lewes/README.md` for provenance and known limitations. diff --git a/tests/testdata/forecast_lewes/README.md b/tests/testdata/forecast_lewes/README.md index f976b682d..10b676a66 100644 --- a/tests/testdata/forecast_lewes/README.md +++ b/tests/testdata/forecast_lewes/README.md @@ -41,9 +41,11 @@ acknowledge them rather than paper over them. `lon_rho`/`lat_rho`, with no station identifiers. Station index 5 was selected as the nearest to the Lewes gauge, about 1.4 km away. This has not been verified against a published DBOFS station list. -- **Datums are not reconciled.** Model `zeta` is free-surface relative to the model's own - reference level; observations are relative to the station MSL datum. Part of the roughly - -0.05 m bias at lead time 0 is likely a datum offset rather than forecast error. +- **Datums are not reconciled in the data.** Model `zeta` is free-surface relative to the model's + own reference level; observations are relative to the station MSL datum. Both model columns + carry a large constant bias as a result — about -0.08 m for `dbofs` and -0.26 m for `tide`. The + example corrects this with `remove_bias()`, which matters: with the offsets left in, the + tide-only prediction looks worse than the forecast, and with them removed it is clearly better. - **No storm event.** Observed water level spans -0.48 to 1.12 m over this week — ordinary tidal conditions. A surge event would show the value of the forecast over the tide-only reference far more clearly.