Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added NCEI as GFS source older than Jan 1, 2021 #361

Merged
merged 1 commit into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading