diff --git a/M04N01_timeseries_wrangling.ipynb b/M04N01_timeseries_wrangling.ipynb index 02a912f..80ab212 100644 --- a/M04N01_timeseries_wrangling.ipynb +++ b/M04N01_timeseries_wrangling.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 102, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -36,7 +36,7 @@ "source": [ "import pandas as pd\n", "import datetime\n", - "\n", + "import matplotlib.pyplot as plt\n", "enso = pd.read_csv('https://www.atmos.illinois.edu/~snesbitt/soi.dat',sep=r'\\s+',header=None,skiprows=4,skipfooter=0, engine='python')\n", "pdo = pd.read_csv('https://www.ncei.noaa.gov/pub/data/cmb/ersst/v5/index/ersst.v5.pdo.dat',sep=r'\\s+',header=None,skiprows=2, engine='python')\n", "nao = pd.read_csv('https://www.cpc.ncep.noaa.gov/products/precip/CWlink/pna/norm.nao.monthly.b5001.current.ascii.table',sep=r'\\s+',header=None,skiprows=1, engine='python')\n", @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 103, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -63,7 +63,247 @@ "id": "qlFHyzxM08aZ", "outputId": "a834e2d7-8227-4a2b-87b4-fe2722b4f137" }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
| \n", + " | 0 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "6 | \n", + "7 | \n", + "8 | \n", + "9 | \n", + "10 | \n", + "11 | \n", + "12 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1951 | \n", + "1.5 | \n", + "0.9 | \n", + "-0.1 | \n", + "-0.3 | \n", + "-0.7 | \n", + "0.2 | \n", + "-1.0 | \n", + "-0.2 | \n", + "-1.1 | \n", + "-1.0 | \n", + "-0.8 | \n", + "-0.7 | \n", + "
| 1 | \n", + "1952 | \n", + "-0.9 | \n", + "-0.6 | \n", + "0.5 | \n", + "-0.2 | \n", + "0.8 | \n", + "0.7 | \n", + "0.5 | \n", + "0.1 | \n", + "-0.2 | \n", + "0.4 | \n", + "0.0 | \n", + "-1.2 | \n", + "
| 2 | \n", + "1953 | \n", + "0.3 | \n", + "-0.5 | \n", + "-0.2 | \n", + "0.2 | \n", + "-1.7 | \n", + "0.1 | \n", + "-0.0 | \n", + "-1.2 | \n", + "-1.2 | \n", + "0.1 | \n", + "-0.3 | \n", + "-0.5 | \n", + "
| 3 | \n", + "1954 | \n", + "0.7 | \n", + "-0.3 | \n", + "0.3 | \n", + "0.6 | \n", + "0.5 | \n", + "0.1 | \n", + "0.4 | \n", + "1.1 | \n", + "0.2 | \n", + "0.3 | \n", + "0.1 | \n", + "1.4 | \n", + "
| 4 | \n", + "1955 | \n", + "-0.5 | \n", + "1.9 | \n", + "0.6 | \n", + "-0.1 | \n", + "1.0 | \n", + "1.3 | \n", + "1.6 | \n", + "1.5 | \n", + "1.3 | \n", + "1.5 | \n", + "1.2 | \n", + "1.0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 70 | \n", + "2021 | \n", + "1.9 | \n", + "1.5 | \n", + "0.4 | \n", + "0.3 | \n", + "0.5 | \n", + "0.4 | \n", + "1.4 | \n", + "0.6 | \n", + "0.8 | \n", + "0.7 | \n", + "1.0 | \n", + "1.5 | \n", + "
| 71 | \n", + "2022 | \n", + "0.5 | \n", + "1.1 | \n", + "1.8 | \n", + "1.7 | \n", + "1.4 | \n", + "1.7 | \n", + "0.8 | \n", + "1.0 | \n", + "1.6 | \n", + "1.7 | \n", + "0.3 | \n", + "2.1 | \n", + "
| 72 | \n", + "2023 | \n", + "1.4 | \n", + "1.4 | \n", + "0.2 | \n", + "0.2 | \n", + "-1.0 | \n", + "0.3 | \n", + "-0.3 | \n", + "-0.8 | \n", + "-1.3 | \n", + "-0.5 | \n", + "-0.8 | \n", + "-0.2 | \n", + "
| 73 | \n", + "2024 | \n", + "0.5 | \n", + "-1.4 | \n", + "0.4 | \n", + "-0.2 | \n", + "0.5 | \n", + "0.0 | \n", + "-0.7 | \n", + "0.9 | \n", + "-0.1 | \n", + "0.5 | \n", + "0.5 | \n", + "1.2 | \n", + "
| 74 | \n", + "2025 | \n", + "0.2 | \n", + "0.5 | \n", + "1.7 | \n", + "0.5 | \n", + "0.4 | \n", + "0.3 | \n", + "0.6 | \n", + "0.4 | \n", + "0.0 | \n", + "-99.9 | \n", + "-99.9 | \n", + "-99.9 | \n", + "
75 rows × 13 columns
\n", + "| \n", + " |
|---|
| \n", + " |
|---|
| Date | \n", + "
| 1951-01-01 | \n", + "
| 1951-02-01 | \n", + "
| 1951-03-01 | \n", + "
| 1951-04-01 | \n", + "
| 1951-05-01 | \n", + "
| ... | \n", + "
| 2025-08-01 | \n", + "
| 2025-09-01 | \n", + "
| 2025-10-01 | \n", + "
| 2025-11-01 | \n", + "
| 2025-12-01 | \n", + "
900 rows × 0 columns
\n", + "| \n", + " | ENSO | \n", + "
|---|---|
| Date | \n", + "\n", + " |
| 1951-01-01 | \n", + "1.5 | \n", + "
| 1951-02-01 | \n", + "0.9 | \n", + "
| 1951-03-01 | \n", + "-0.1 | \n", + "
| 1951-04-01 | \n", + "-0.3 | \n", + "
| 1951-05-01 | \n", + "-0.7 | \n", + "
| ... | \n", + "... | \n", + "
| 2025-08-01 | \n", + "0.4 | \n", + "
| 2025-09-01 | \n", + "0.0 | \n", + "
| 2025-10-01 | \n", + "-99.9 | \n", + "
| 2025-11-01 | \n", + "-99.9 | \n", + "
| 2025-12-01 | \n", + "-99.9 | \n", + "
900 rows × 1 columns
\n", + "| \n", + " | ENSO | \n", + "PDO | \n", + "
|---|---|---|
| Date | \n", + "\n", + " | \n", + " |
| 1951-01-01 | \n", + "1.5 | \n", + "-1.19 | \n", + "
| 1951-02-01 | \n", + "0.9 | \n", + "-1.52 | \n", + "
| 1951-03-01 | \n", + "-0.1 | \n", + "-1.72 | \n", + "
| 1951-04-01 | \n", + "-0.3 | \n", + "-1.35 | \n", + "
| 1951-05-01 | \n", + "-0.7 | \n", + "-1.29 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "
| 2025-08-01 | \n", + "0.4 | \n", + "-3.18 | \n", + "
| 2025-09-01 | \n", + "0.0 | \n", + "-2.38 | \n", + "
| 2025-10-01 | \n", + "-99.9 | \n", + "99.99 | \n", + "
| 2025-11-01 | \n", + "-99.9 | \n", + "99.99 | \n", + "
| 2025-12-01 | \n", + "-99.9 | \n", + "99.99 | \n", + "
900 rows × 2 columns
\n", + "| \n", + " | ENSO | \n", + "PDO | \n", + "NAO | \n", + "AO | \n", + "
|---|---|---|---|---|
| Date | \n", + "\n", + " | \n", + " | \n", + " | \n", + " |
| 1951-01-01 | \n", + "1.5 | \n", + "-1.19 | \n", + "0.08 | \n", + "-0.085 | \n", + "
| 1951-02-01 | \n", + "0.9 | \n", + "-1.52 | \n", + "0.70 | \n", + "-0.400 | \n", + "
| 1951-03-01 | \n", + "-0.1 | \n", + "-1.72 | \n", + "-1.02 | \n", + "-1.934 | \n", + "
| 1951-04-01 | \n", + "-0.3 | \n", + "-1.35 | \n", + "-0.22 | \n", + "-0.776 | \n", + "
| 1951-05-01 | \n", + "-0.7 | \n", + "-1.29 | \n", + "-0.59 | \n", + "-0.863 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 2025-08-01 | \n", + "0.4 | \n", + "-3.18 | \n", + "0.26 | \n", + "0.036 | \n", + "
| 2025-09-01 | \n", + "0.0 | \n", + "-2.38 | \n", + "-0.80 | \n", + "0.048 | \n", + "
| 2025-10-01 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2025-11-01 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2025-12-01 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
900 rows × 4 columns
\n", + "<xarray.Dataset> Size: 113MB\n", + "Dimensions: (time: 1748, nv: 2, lat: 90, lon: 180)\n", + "Coordinates:\n", + " * lat (lat) float32 360B -89.0 -87.0 -85.0 -83.0 ... 85.0 87.0 89.0\n", + " * lon (lon) float32 720B -179.0 -177.0 -175.0 ... 175.0 177.0 179.0\n", + " * time (time) datetime64[ns] 14kB 1880-01-15 1880-02-15 ... 2025-08-15\n", + "Dimensions without coordinates: nv\n", + "Data variables:\n", + " time_bnds (time, nv) datetime64[ns] 28kB ...\n", + " tempanomaly (time, lat, lon) float32 113MB ...\n", + "Attributes:\n", + " title: GISTEMP Surface Temperature Analysis\n", + " institution: NASA Goddard Institute for Space Studies\n", + " source: http://data.giss.nasa.gov/gistemp/\n", + " Conventions: CF-1.6\n", + " history: Created 2025-09-10 02:53:53 by SBBX_to_nc 2.0 - ILAND=250, ...
| \n", + " | obsT | \n", + "
|---|---|
| 1880-01-01 | \n", + "9.24 | \n", + "
| 1880-02-01 | \n", + "4.13 | \n", + "
| 1880-03-01 | \n", + "0.34 | \n", + "
| 1880-04-01 | \n", + "0.34 | \n", + "
| 1880-05-01 | \n", + "3.48 | \n", + "
| ... | \n", + "... | \n", + "
| 2025-04-01 | \n", + "0.93 | \n", + "
| 2025-05-01 | \n", + "-0.28 | \n", + "
| 2025-06-01 | \n", + "1.92 | \n", + "
| 2025-07-01 | \n", + "1.99 | \n", + "
| 2025-08-01 | \n", + "-0.04 | \n", + "
1748 rows × 1 columns
\n", + "| \n", + " | ENSO | \n", + "PDO | \n", + "NAO | \n", + "AO | \n", + "obsT | \n", + "
|---|---|---|---|---|---|
| 1951-01-01 | \n", + "1.5 | \n", + "-1.19 | \n", + "0.08 | \n", + "-0.085 | \n", + "1.76 | \n", + "
| 1951-02-01 | \n", + "0.9 | \n", + "-1.52 | \n", + "0.70 | \n", + "-0.400 | \n", + "0.47 | \n", + "
| 1951-03-01 | \n", + "-0.1 | \n", + "-1.72 | \n", + "-1.02 | \n", + "-1.934 | \n", + "-0.55 | \n", + "
| 1951-04-01 | \n", + "-0.3 | \n", + "-1.35 | \n", + "-0.22 | \n", + "-0.776 | \n", + "-1.72 | \n", + "
| 1951-05-01 | \n", + "-0.7 | \n", + "-1.29 | \n", + "-0.59 | \n", + "-0.863 | \n", + "0.85 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 2025-04-01 | \n", + "0.5 | \n", + "-1.15 | \n", + "0.18 | \n", + "0.268 | \n", + "0.93 | \n", + "
| 2025-05-01 | \n", + "0.4 | \n", + "-1.66 | \n", + "0.49 | \n", + "0.904 | \n", + "-0.28 | \n", + "
| 2025-06-01 | \n", + "0.3 | \n", + "-2.62 | \n", + "0.70 | \n", + "1.134 | \n", + "1.92 | \n", + "
| 2025-07-01 | \n", + "0.6 | \n", + "-4.15 | \n", + "0.48 | \n", + "0.500 | \n", + "1.99 | \n", + "
| 2025-08-01 | \n", + "0.4 | \n", + "-3.18 | \n", + "0.26 | \n", + "0.036 | \n", + "-0.04 | \n", + "
896 rows × 5 columns
\n", + "| \n", + " | maxTemp | \n", + "minTemp | \n", + "precip | \n", + "
|---|---|---|---|
| date | \n", + "\n", + " | \n", + " | \n", + " |
| 1905-01-01 | \n", + "14.4 | \n", + "1.7 | \n", + "0.0 | \n", + "
| 1905-01-02 | \n", + "8.3 | \n", + "-5.0 | \n", + "4.8 | \n", + "
| 1905-01-03 | \n", + "-3.9 | \n", + "-9.4 | \n", + "0.0 | \n", + "
| 1905-01-04 | \n", + "-3.9 | \n", + "-14.4 | \n", + "0.0 | \n", + "
| 1905-01-05 | \n", + "1.1 | \n", + "-14.4 | \n", + "0.0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 2022-07-28 | \n", + "0.0 | \n", + "0.6 | \n", + "0.5 | \n", + "
| 2022-07-29 | \n", + "2.8 | \n", + "-5.0 | \n", + "0.0 | \n", + "
| 2022-07-30 | \n", + "11.1 | \n", + "-2.8 | \n", + "0.0 | \n", + "
| 2022-07-31 | \n", + "14.4 | \n", + "3.9 | \n", + "0.0 | \n", + "
| 2022-08-01 | \n", + "16.7 | \n", + "1.7 | \n", + "6.9 | \n", + "
39291 rows × 3 columns
\n", + "| \n", + " | pollution_today | \n", + "dew | \n", + "temp | \n", + "press | \n", + "wnd_spd | \n", + "snow | \n", + "rain | \n", + "pollution_yesterday | \n", + "
|---|---|---|---|---|---|---|---|---|
| date | \n", + "\n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " | \n", + " |
| 2010-01-02 | \n", + "145.958333 | \n", + "-8.500000 | \n", + "-5.125000 | \n", + "1024.750000 | \n", + "24.860000 | \n", + "0.708333 | \n", + "0.0 | \n", + "10.041667 | \n", + "
| 2010-01-03 | \n", + "78.833333 | \n", + "-10.125000 | \n", + "-8.541667 | \n", + "1022.791667 | \n", + "70.937917 | \n", + "14.166667 | \n", + "0.0 | \n", + "145.958333 | \n", + "
| 2010-01-04 | \n", + "31.333333 | \n", + "-20.875000 | \n", + "-11.500000 | \n", + "1029.291667 | \n", + "111.160833 | \n", + "0.000000 | \n", + "0.0 | \n", + "78.833333 | \n", + "
| 2010-01-05 | \n", + "42.458333 | \n", + "-24.583333 | \n", + "-14.458333 | \n", + "1033.625000 | \n", + "56.920000 | \n", + "0.000000 | \n", + "0.0 | \n", + "31.333333 | \n", + "
| 2010-01-06 | \n", + "56.416667 | \n", + "-23.708333 | \n", + "-12.541667 | \n", + "1033.750000 | \n", + "18.511667 | \n", + "0.000000 | \n", + "0.0 | \n", + "42.458333 | \n", + "
| \n", + " | pollution_today | \n", + "dew | \n", + "temp | \n", + "press | \n", + "wnd_spd | \n", + "snow | \n", + "rain | \n", + "pollution_yesterday | \n", + "
|---|---|---|---|---|---|---|---|---|
| count | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "1825.000000 | \n", + "
| mean | \n", + "98.245080 | \n", + "1.828516 | \n", + "12.459041 | \n", + "1016.447306 | \n", + "23.894307 | \n", + "0.052763 | \n", + "0.195023 | \n", + "98.245080 | \n", + "
| std | \n", + "76.807697 | \n", + "14.163508 | \n", + "11.552997 | \n", + "10.076053 | \n", + "41.373161 | \n", + "0.546072 | \n", + "0.993917 | \n", + "76.807697 | \n", + "
| min | \n", + "3.166667 | \n", + "-33.333333 | \n", + "-14.458333 | \n", + "994.041667 | \n", + "1.412500 | \n", + "0.000000 | \n", + "0.000000 | \n", + "3.166667 | \n", + "
| 25% | \n", + "42.333333 | \n", + "-10.083333 | \n", + "1.541667 | \n", + "1007.916667 | \n", + "5.904167 | \n", + "0.000000 | \n", + "0.000000 | \n", + "42.333333 | \n", + "
| 50% | \n", + "79.166667 | \n", + "2.041667 | \n", + "13.916667 | \n", + "1016.208333 | \n", + "10.953750 | \n", + "0.000000 | \n", + "0.000000 | \n", + "79.166667 | \n", + "
| 75% | \n", + "131.166667 | \n", + "15.083333 | \n", + "23.166667 | \n", + "1024.541667 | \n", + "22.235000 | \n", + "0.000000 | \n", + "0.000000 | \n", + "131.166667 | \n", + "
| max | \n", + "541.895833 | \n", + "26.208333 | \n", + "32.875000 | \n", + "1043.458333 | \n", + "463.187917 | \n", + "14.166667 | \n", + "17.583333 | \n", + "541.895833 | \n", + "
PCA(n_components=2)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
| \n", + " | n_components | \n", + "2 | \n", + "
| \n", + " | copy | \n", + "True | \n", + "
| \n", + " | whiten | \n", + "False | \n", + "
| \n", + " | svd_solver | \n", + "'auto' | \n", + "
| \n", + " | tol | \n", + "0.0 | \n", + "
| \n", + " | iterated_power | \n", + "'auto' | \n", + "
| \n", + " | n_oversamples | \n", + "10 | \n", + "
| \n", + " | power_iteration_normalizer | \n", + "'auto' | \n", + "
| \n", + " | random_state | \n", + "None | \n", + "
PCA(n_components=150)In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
| \n", + " | n_components | \n", + "150 | \n", + "
| \n", + " | copy | \n", + "True | \n", + "
| \n", + " | whiten | \n", + "False | \n", + "
| \n", + " | svd_solver | \n", + "'auto' | \n", + "
| \n", + " | tol | \n", + "0.0 | \n", + "
| \n", + " | iterated_power | \n", + "'auto' | \n", + "
| \n", + " | n_oversamples | \n", + "10 | \n", + "
| \n", + " | power_iteration_normalizer | \n", + "'auto' | \n", + "
| \n", + " | random_state | \n", + "None | \n", + "
<xarray.DataArray 'sst' (time: 50, latitude: 18, longitude: 30)> Size: 216kB\n", + "[27000 values with dtype=float64]\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 400B 1963-01-15T12:00:00 ... 2012-01-16\n", + " * latitude (latitude) float32 72B -22.5 -17.5 -12.5 -7.5 ... 52.5 57.5 62.5\n", + " * longitude (longitude) float32 120B 117.5 122.5 127.5 ... 252.5 257.5 262.5\n", + "Attributes:\n", + " standard_name: sea_surface_temperature\n", + " long_name: NDJFM mean SST anomalies
<xarray.DataArray 'sst' (time: 50, latitude: 18, longitude: 30)> Size: 216kB\n", + "array([[[-0.05950652, nan, nan, ..., -0.23071032,\n", + " 0.03503846, 0.14340296],\n", + " [-0.22258278, -0.28721691, nan, ..., -0.37985621,\n", + " -0.30987766, -0.18183487],\n", + " [-0.413226 , -0.42128928, -0.678875 , ..., -0.47484503,\n", + " -0.48180422, -0.43104703],\n", + " ...,\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan]],\n", + "\n", + " [[ 0.02162765, nan, nan, ..., -0.033013 ,\n", + " 0.18836024, 0.17154799],\n", + " [-0.04833778, -0.14847819, nan, ..., -0.13813334,\n", + " -0.07328408, -0.04922715],\n", + " [-0.12562519, -0.2071782 , -0.36894412, ..., -0.17116069,\n", + " -0.20027528, -0.18959329],\n", + "...\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan]],\n", + "\n", + " [[ 0.32965957, nan, nan, ..., -0.0870122 ,\n", + " -0.30529288, -0.40124533],\n", + " [ 0.25373657, 0.13674853, nan, ..., -0.10523435,\n", + " -0.14471878, -0.23232313],\n", + " [ 0.20845364, 0.13267484, 0.27797912, ..., -0.06098953,\n", + " -0.00654443, -0.02111602],\n", + " ...,\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan],\n", + " [ nan, nan, nan, ..., nan,\n", + " nan, nan]]], shape=(50, 18, 30))\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 400B 1963-01-15T12:00:00 ... 2012-01-16\n", + " * latitude (latitude) float32 72B -22.5 -17.5 -12.5 -7.5 ... 52.5 57.5 62.5\n", + " * longitude (longitude) float32 120B 117.5 122.5 127.5 ... 252.5 257.5 262.5\n", + "Attributes:\n", + " long_name: sst_reconstructed_with_4_EOFs
<xarray.Dataset> Size: 2GB\n", + "Dimensions: (time: 552, latitude: 521, longitude: 721)\n", + "Coordinates:\n", + " number int64 8B ...\n", + " * time (time) datetime64[ns] 4kB 1979-01-01 1979-02-01 ... 2024-12-01\n", + " step timedelta64[ns] 8B ...\n", + " surface float64 8B ...\n", + " * latitude (latitude) float64 4kB 65.0 64.75 64.5 ... -64.5 -64.75 -65.0\n", + " * longitude (longitude) float64 6kB 120.0 120.2 120.5 ... 299.5 299.8 300.0\n", + " valid_time (time) datetime64[ns] 4kB ...\n", + "Data variables:\n", + " sst (time, latitude, longitude) float32 829MB ...\n", + " tcwv (time, latitude, longitude) float32 829MB ...\n", + "Attributes:\n", + " GRIB_edition: 1\n", + " GRIB_centre: ecmf\n", + " GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts\n", + " GRIB_subCentre: 0\n", + " Conventions: CF-1.7\n", + " institution: European Centre for Medium-Range Weather Forecasts\n", + " history: 2025-10-24T23:58 GRIB to CDM+CF via cfgrib-0.9.1...