Skip to content

Commit

Permalink
Added NCEI as GFS source older than Jan 1, 2021
Browse files Browse the repository at this point in the history
Fixes #325
  • Loading branch information
blaylockbk committed Aug 16, 2024
1 parent e47ecba commit 99d5525
Show file tree
Hide file tree
Showing 3 changed files with 1,694 additions and 1,090 deletions.
241 changes: 202 additions & 39 deletions docs/gallery/noaa_models/gfs.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,11 @@
"data": {
"text/plain": [
"{'aws': 'https://noaa-gfs-bdp-pds.s3.amazonaws.com/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000',\n",
" 'aws-old': 'https://noaa-gfs-bdp-pds.s3.amazonaws.com/gfs.20210711/00/gfs.t00z.pgrb2.0p25.f000',\n",
" 'ftpprd': 'https://ftpprd.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000',\n",
" 'nomads': 'https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000',\n",
" 'google': 'https://storage.googleapis.com/global-forecast-system/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000',\n",
" 'azure': 'https://noaagfs.blob.core.windows.net/gfs/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000'}"
" 'azure': 'https://noaagfs.blob.core.windows.net/gfs/gfs.20210711/00/atmos/gfs.t00z.pgrb2.0p25.f000',\n",
" 'ncar_rda': 'https://data.rda.ucar.edu/d084001/2021/20210711/gfs.0p25.2021071100.f000.grib2'}"
]
},
"execution_count": 3,
Expand Down Expand Up @@ -85,7 +85,9 @@
" 'pgrb2b.0p25': 'uncommon fields, 0.25 degree resolution',\n",
" 'pgrb2b.0p50': 'uncommon fields, 0.50 degree resolution',\n",
" 'pgrb2b.1p00': 'uncommon fields, 1.00 degree resolution',\n",
" 'pgrb2full.0p50': 'combined grids of 0.50 resolution'}"
" 'pgrb2full.0p50': 'combined grids of 0.50 resolution',\n",
" 'sfluxgrb': 'surface flux fields, T1534 Semi-Lagrangian grid',\n",
" 'goesimpgrb2.0p25': ', 0.50 degree resolution'}"
]
},
"execution_count": 4,
Expand All @@ -103,7 +105,15 @@
"execution_count": 5,
"id": "bcc060e8",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"👨🏻‍🏭 Created directory: [/home/blaylock/data/gfs/20210711]\n"
]
}
],
"source": [
"ds = H.xarray(\":TMP:2 m above\")"
]
Expand Down Expand Up @@ -220,7 +230,7 @@
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7ff150511700>"
"<matplotlib.colorbar.Colorbar at 0x7fb369862a20>"
]
},
"execution_count": 8,
Expand Down Expand Up @@ -260,6 +270,152 @@
")"
]
},
{
"cell_type": "markdown",
"id": "224fa625",
"metadata": {},
"source": [
"## GFS from [NCEI](https://www.ncei.noaa.gov/products/weather-climate-models/global-forecast)\n",
"\n",
"Depending on the date, Herbie might find old GFS data at NCEI or RDA for dates older than January 1, 2021."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ad208477",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"✅ Found ┊ model=gfs ┊ \u001b[3mproduct=0.5-degree\u001b[0m ┊ \u001b[38;2;41;130;13m2020-Jun-01 00:00 UTC\u001b[92m F00\u001b[0m ┊ \u001b[38;2;255;153;0m\u001b[3mGRIB2 @ ncei_analysis\u001b[0m ┊ \u001b[38;2;255;153;0m\u001b[3mIDX @ ncei_analysis\u001b[0m\n"
]
}
],
"source": [
"# Look for file in all available sources\n",
"H = Herbie(\"2020-06-01\", model=\"gfs\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "c23bb687",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"({'ncei_analysis': 'https://www.ncei.noaa.gov/data/global-forecast-system/access/grid-004-0.5-degree/analysis/202006/20200601/gfs_4_20200601_0000_000.grb2',\n",
" 'ncei_forecast': 'https://www.ncei.noaa.gov/data/global-forecast-system/access/grid-004-0.5-degree/forecast/202006/20200601/gfs_4_20200601_0000_000.grb2',\n",
" 'ncar_rda': 'https://data.rda.ucar.edu/d084001/2020/20200601/gfs.0p25.2020060100.f000.grib2'},\n",
" {'0.5-degree': '0.5 degree grid', '1.0-degree': '1.0 degree grid'})"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"H.SOURCES, H.PRODUCTS"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "116f4cee",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>grib_message</th>\n",
" <th>start_byte</th>\n",
" <th>end_byte</th>\n",
" <th>range</th>\n",
" <th>reference_time</th>\n",
" <th>valid_time</th>\n",
" <th>variable</th>\n",
" <th>level</th>\n",
" <th>forecast_time</th>\n",
" <th>search_this</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>465</th>\n",
" <td>466</td>\n",
" <td>80208994</td>\n",
" <td>80496003.0</td>\n",
" <td>80208994-80496003</td>\n",
" <td>2020-06-01</td>\n",
" <td>2020-06-01</td>\n",
" <td>UGRD</td>\n",
" <td>80 m above ground</td>\n",
" <td>anl</td>\n",
" <td>:UGRD:80 m above ground:anl</td>\n",
" </tr>\n",
" <tr>\n",
" <th>466</th>\n",
" <td>467</td>\n",
" <td>80496004</td>\n",
" <td>80780823.0</td>\n",
" <td>80496004-80780823</td>\n",
" <td>2020-06-01</td>\n",
" <td>2020-06-01</td>\n",
" <td>VGRD</td>\n",
" <td>80 m above ground</td>\n",
" <td>anl</td>\n",
" <td>:VGRD:80 m above ground:anl</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" grib_message start_byte end_byte range reference_time \\\n",
"465 466 80208994 80496003.0 80208994-80496003 2020-06-01 \n",
"466 467 80496004 80780823.0 80496004-80780823 2020-06-01 \n",
"\n",
" valid_time variable level forecast_time \\\n",
"465 2020-06-01 UGRD 80 m above ground anl \n",
"466 2020-06-01 VGRD 80 m above ground anl \n",
"\n",
" search_this \n",
"465 :UGRD:80 m above ground:anl \n",
"466 :VGRD:80 m above ground:anl "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"H.inventory(\"GRD:80 m above\")"
]
},
{
"cell_type": "markdown",
"id": "b4083106-415d-4d90-b4f4-b756981a2da5",
Expand All @@ -272,7 +428,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 22,
"id": "443e36ec-fd2a-4f99-8cc8-944bc3060ec7",
"metadata": {},
"outputs": [
Expand All @@ -282,10 +438,22 @@
"text": [
"✅ Found ┊ model=graphcast ┊ \u001b[3mproduct=pgrb2.0p25\u001b[0m ┊ \u001b[38;2;41;130;13m2024-May-10 12:00 UTC\u001b[92m F06\u001b[0m ┊ \u001b[38;2;255;153;0m\u001b[3mGRIB2 @ aws\u001b[0m ┊ \u001b[38;2;255;153;0m\u001b[3mIDX @ aws\u001b[0m\n"
]
},
{
"data": {
"text/plain": [
"({'aws': 'https://noaa-nws-graphcastgfs-pds.s3.amazonaws.com/graphcastgfs.20240510/12/forecasts_13_levels/graphcastgfs.t12z.pgrb2.0p25.f006'},\n",
" {'pgrb2.0p25': 'common fields, 0.25 degree resolution'})"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"H = Herbie(\"2024-05-10 12:00\", model=\"graphcast\", fxx=6)"
"H = Herbie(\"2024-05-10 12:00\", model=\"graphcast\", fxx=6)\n",
"H.SOURCES, H.PRODUCTS"
]
},
{
Expand All @@ -298,7 +466,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 23,
"id": "632e3173-f73c-4697-a9e1-33aadc1f77a0",
"metadata": {},
"outputs": [
Expand Down Expand Up @@ -527,7 +695,7 @@
"[84 rows x 10 columns]"
]
},
"execution_count": 10,
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
Expand All @@ -546,17 +714,25 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 24,
"id": "00534769-260c-401c-9e45-6290793c6404",
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"👨🏻‍🏭 Created directory: [/home/blaylock/data/graphcast/20240510]\n"
]
}
],
"source": [
"ds = H.xarray(\"TMP:2 m\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 25,
"id": "bc047d3d-3b7c-4db7-9dff-95d02da754f2",
"metadata": {},
"outputs": [
Expand All @@ -566,7 +742,7 @@
"Text(0.0, 1.0, 'GRAPHCAST: common fields, 0.25 degree resolution')"
]
},
"execution_count": 12,
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
},
Expand Down Expand Up @@ -612,7 +788,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 26,
"id": "462fced0",
"metadata": {},
"outputs": [
Expand All @@ -630,7 +806,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 27,
"id": "a6c899dc",
"metadata": {},
"outputs": [
Expand Down Expand Up @@ -963,7 +1139,7 @@
"18 2021-07-11 SWDIR 3 in sequence anl :SWDIR:3 in sequence:anl "
]
},
"execution_count": 14,
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
Expand All @@ -974,10 +1150,17 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 28,
"id": "acdf268b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"👨🏻‍🏭 Created directory: [/home/blaylock/data/gfs_wave/20210711]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
Expand All @@ -994,8 +1177,8 @@
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mGeocalculusError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[15], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mH\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxarray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mSWELL:1 in sequence\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_grib\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ds\n",
"File \u001b[0;32m~/GITHUB/Herbie/herbie/core.py:1121\u001b[0m, in \u001b[0;36mHerbie.xarray\u001b[0;34m(self, search, searchString, backend_kwargs, remove_grib, **download_kwargs)\u001b[0m\n\u001b[1;32m 1117\u001b[0m backend_kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merrors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraise\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1119\u001b[0m \u001b[38;5;66;03m# Use cfgrib.open_datasets, just in case there are multiple \"hypercubes\"\u001b[39;00m\n\u001b[1;32m 1120\u001b[0m \u001b[38;5;66;03m# for what we requested.\u001b[39;00m\n\u001b[0;32m-> 1121\u001b[0m Hxr \u001b[38;5;241m=\u001b[39m \u001b[43mcfgrib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_datasets\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1122\u001b[0m \u001b[43m \u001b[49m\u001b[43mlocal_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1123\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1124\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1126\u001b[0m \u001b[38;5;66;03m# Get CF grid projection information with pygrib and pyproj because\u001b[39;00m\n\u001b[1;32m 1127\u001b[0m \u001b[38;5;66;03m# this is something cfgrib doesn't do (https://github.com/ecmwf/cfgrib/issues/251)\u001b[39;00m\n\u001b[1;32m 1128\u001b[0m \u001b[38;5;66;03m# NOTE: Assumes the projection is the same for all variables\u001b[39;00m\n\u001b[1;32m 1129\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pygrib\u001b[38;5;241m.\u001b[39mopen(\u001b[38;5;28mstr\u001b[39m(local_file)) \u001b[38;5;28;01mas\u001b[39;00m grb:\n",
"Cell \u001b[0;32mIn[28], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mH\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxarray\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mSWELL:1 in sequence\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mremove_grib\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 2\u001b[0m ds\n",
"File \u001b[0;32m~/GITHUB/Herbie/herbie/core.py:1137\u001b[0m, in \u001b[0;36mHerbie.xarray\u001b[0;34m(self, search, searchString, backend_kwargs, remove_grib, **download_kwargs)\u001b[0m\n\u001b[1;32m 1133\u001b[0m backend_kwargs\u001b[38;5;241m.\u001b[39msetdefault(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124merrors\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mraise\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 1135\u001b[0m \u001b[38;5;66;03m# Use cfgrib.open_datasets, just in case there are multiple \"hypercubes\"\u001b[39;00m\n\u001b[1;32m 1136\u001b[0m \u001b[38;5;66;03m# for what we requested.\u001b[39;00m\n\u001b[0;32m-> 1137\u001b[0m Hxr \u001b[38;5;241m=\u001b[39m \u001b[43mcfgrib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mopen_datasets\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1138\u001b[0m \u001b[43m \u001b[49m\u001b[43mlocal_file\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1139\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1140\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1142\u001b[0m \u001b[38;5;66;03m# Get CF grid projection information with pygrib and pyproj because\u001b[39;00m\n\u001b[1;32m 1143\u001b[0m \u001b[38;5;66;03m# this is something cfgrib doesn't do (https://github.com/ecmwf/cfgrib/issues/251)\u001b[39;00m\n\u001b[1;32m 1144\u001b[0m \u001b[38;5;66;03m# NOTE: Assumes the projection is the same for all variables\u001b[39;00m\n\u001b[1;32m 1145\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pygrib\u001b[38;5;241m.\u001b[39mopen(\u001b[38;5;28mstr\u001b[39m(local_file)) \u001b[38;5;28;01mas\u001b[39;00m grb:\n",
"File \u001b[0;32m~/miniconda3/envs/herbie-dev/lib/python3.12/site-packages/cfgrib/xarray_store.py:105\u001b[0m, in \u001b[0;36mopen_datasets\u001b[0;34m(path, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 103\u001b[0m backend_kwargs \u001b[38;5;241m=\u001b[39m backend_kwargs\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[1;32m 104\u001b[0m backend_kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msqueeze\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m--> 105\u001b[0m datasets \u001b[38;5;241m=\u001b[39m \u001b[43mopen_variable_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 107\u001b[0m type_of_level_datasets \u001b[38;5;241m=\u001b[39m {} \u001b[38;5;66;03m# type: T.Dict[str, T.List[xr.Dataset]]\u001b[39;00m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ds \u001b[38;5;129;01min\u001b[39;00m datasets:\n",
"File \u001b[0;32m~/miniconda3/envs/herbie-dev/lib/python3.12/site-packages/cfgrib/xarray_store.py:93\u001b[0m, in \u001b[0;36mopen_variable_datasets\u001b[0;34m(path, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m bk[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfilter_by_keys\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m backend_kwargs\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfilter_by_keys\u001b[39m\u001b[38;5;124m\"\u001b[39m, {})\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[1;32m 92\u001b[0m bk[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfilter_by_keys\u001b[39m\u001b[38;5;124m\"\u001b[39m][\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mparamId\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m param_id\n\u001b[0;32m---> 93\u001b[0m datasets\u001b[38;5;241m.\u001b[39mextend(\u001b[43mraw_open_datasets\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m datasets\n",
"File \u001b[0;32m~/miniconda3/envs/herbie-dev/lib/python3.12/site-packages/cfgrib/xarray_store.py:66\u001b[0m, in \u001b[0;36mraw_open_datasets\u001b[0;34m(path, backend_kwargs, **kwargs)\u001b[0m\n\u001b[1;32m 64\u001b[0m datasets \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 66\u001b[0m datasets\u001b[38;5;241m.\u001b[39mappend(\u001b[43mopen_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend_kwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m DatasetBuildError \u001b[38;5;28;01mas\u001b[39;00m ex:\n\u001b[1;32m 68\u001b[0m fbks\u001b[38;5;241m.\u001b[39mextend(ex\u001b[38;5;241m.\u001b[39margs[\u001b[38;5;241m2\u001b[39m])\n",
Expand Down Expand Up @@ -1023,26 +1206,6 @@
"ds = H.xarray(\"SWELL:1 in sequence\", remove_grib=False)\n",
"ds"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3b489118",
"metadata": {},
"outputs": [],
"source": [
"ds.swell.plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c41c356b",
"metadata": {},
"outputs": [],
"source": [
"ds.herbie.crs"
]
}
],
"metadata": {
Expand Down
Loading

0 comments on commit 99d5525

Please sign in to comment.