{
"cells": [
{
"attachments": {
"image.png": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA1AAAAKECAMAAAA+HSuOAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHvUExURQAAAP///////////////////////////////////////////////////////////////////////////////wAAAAQGBwUGBwcEAgcHBwgICAgNDggNDwwTFg4HAw4ODw8HAw8ODhAZHRUgJRYLBRYWFhYcHhcXFxkmLB0OBh0dHh0tNCEzOyQlJSUSCCU5QilASiwVCS1GUTFMWDMZCzMzNDVTYDocDTpZZz5gb0FCQ0FldUIgDkVrfEhJSkkjEElyhE5ia054i1AnEVBRUlJ/k1aFmldYWVgrE1qLoV5fYV6SqV8uFGKYsGVnaGYyFmaet2qlv21ucG41GG6rxnN1dnOyznQ4GXR0dXe41Xp8fXs8Gnu+3H/F5IM/HIPL64mLjIpDHo+Pj5CSlJFGH5PS7plKIZ+ho6BOIqLY8KaoqqdRJK7d8q9VJbLf87S3ubZYJ7y+wL1cKcHl9cPFyMRfKsXn9snp98rNz8xjLNDr99HU19NmLdnb3tnv+dpqL9zw+eDj5uDy+uJtMOT0++fn5+fq7elxMurt7+z3/O3v8u7v8O/y8+/4/PDy9PLz9fP19vP6/fT19/X29/b3+Pb3+fj5+fj5+vn6+vr6+/r7/Pv7+/v7/Pv8/Pz8/fz9/f39/f39/v3+/v7+/v///5sNM/UAAAAVdFJOUwBgb3x+jZyfrri9v8XLzNHb3ePp72RxRU0AAAAJcEhZcwAAFxEAABcRAcom8z8AABf0SURBVHhe7d37m9T3XYbxNbWY2hNt8143CohAFGTLIZty6CaCYFIiIMSmIAbYxtJIi1RE0aKrGFHRGI3GQ9LE1qaZP9TZ3U/ChuwOXM89810H79cv3aTzy3PlfV+7s4eZiU899vlPd+Izj32pfTRqX3BSrLtJX+xq0mc7nPSJiYn1PUnDsW5i4tHem6914vXee+2jUXvLSbHuJr3b1aQ3Opz0yMTEz/T+5e878Q+9H7WPRu0/nBTrbtLbXU16rcNJP2VQhJMAg4K8PsCgcgZFGVTOoACDgpwEGBTk9QEGlTMoyqByBgUYFOQkwKAgrw8wqJxBUQaVMyjAoCAnAQYFeX2AQeUMijKonEEBBgU5CTAo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"
}
},
"cell_type": "markdown",
"metadata": {},
"source": [
"# 📍 Pick Points\n",
"\n",
"Herbie's `pick_points` xarray accessor picks data from a model grid nearest locations of interest. Think of it like picking apples from a tree. Herbie's implementation uses the **scikit-learn** BallTree algorithm with the haversine formula to get nearest-neighbor values. The haversine formula is important when working with latitude and longitude coordinates.\n",
"\n",
"\n",
"\n",
"For regular latitude-longitude grids (e.g., GFS, IFS), you could use xarray's [advanced indexing](https://docs.xarray.dev/en/stable/user-guide/indexing.html#more-advanced-indexing) instead to easily select your points of interest, but that solution doesn't work in the following cases:\n",
"\n",
"- Models with curvilinear grids (i.e. not a regular latitude-longitude grid);\n",
"- Longitude units, `[0, 360)` vs `[-180, 180)`, differ between model and requested point.\n",
"- The distance to the nearest neighbor needs to be known.\n",
"- Picking more than one nearest neighbor points.\n",
"\n",
"
\n",
"\n",
"
\n",
"\n",
"Let's get started...\n",
"\n",
"To use Herbie's xarray accessors, you just need to import anything from Herbie.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import xarray as xr\n",
"\n",
"import warnings\n",
"\n",
"import herbie\n",
"from herbie import Herbie, FastHerbie"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## A Very Simple Demonstration\n",
"\n",
"First, I'll show how Herbie extracts nearest points from a simple grid. Let's make a 3x3 xarray Dataset with latitude/longitude coordinates and then extract data nearest two points of interest.\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
<xarray.Dataset> Size: 120B\n",
"Dimensions: (latitude: 3, longitude: 3)\n",
"Coordinates:\n",
" * latitude (latitude) int64 24B 44 45 46\n",
" * longitude (longitude) int64 24B -99 -100 -101\n",
"Data variables:\n",
" a (latitude, longitude) int64 72B 0 1 2 0 1 0 0 0 0| \n", " | longitude | \n", "latitude | \n", "
|---|---|---|
| 0 | \n", "-100.25 | \n", "44.25 | \n", "
| 1 | \n", "-99.40 | \n", "45.40 | \n", "
<xarray.Dataset> Size: 96B\n",
"Dimensions: (point: 2)\n",
"Coordinates:\n",
" latitude (point) int64 16B 44 45\n",
" longitude (point) int64 16B -100 -99\n",
" point_grid_distance (point) float64 16B 34.22 54.41\n",
" point_longitude (point) float64 16B -100.2 -99.4\n",
" point_latitude (point) float64 16B 44.25 45.4\n",
"Dimensions without coordinates: point\n",
"Data variables:\n",
" a (point) int64 16B 1 0<xarray.Dataset> Size: 240B\n",
"Dimensions: (point: 2, k: 4)\n",
"Coordinates:\n",
" point_longitude (point) float64 16B -100.2 -99.4\n",
" point_latitude (point) float64 16B 44.25 45.4\n",
" latitude (k, point) int64 64B 44 45 44 45 45 46 45 46\n",
" longitude (k, point) int64 64B -100 -99 -101 ... -99 -101 -100\n",
" point_grid_distance (k, point) float64 64B 34.22 54.41 66.0 ... 102.4 81.38\n",
"Dimensions without coordinates: point, k\n",
"Data variables:\n",
" a (point) float64 16B 1.082 0.2588<xarray.Dataset> Size: 46MB\n",
"Dimensions: (y: 1059, x: 1799)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" heightAboveGround float64 8B 2.0\n",
" latitude (y, x) float64 15MB 21.14 21.15 21.15 ... 47.85 47.84\n",
" longitude (y, x) float64 15MB 237.3 237.3 237.3 ... 299.0 299.1\n",
" valid_time datetime64[ns] 8B 2024-03-01\n",
" gribfile_projection object 8B None\n",
"Dimensions without coordinates: y, x\n",
"Data variables:\n",
" t2m (y, x) float32 8MB 292.5 292.5 292.4 ... 266.8 266.8\n",
" d2m (y, x) float32 8MB 287.3 287.2 287.2 ... 262.2 262.2\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240301/subset_e0ef89f...\n",
" search: :(?:TMP|DPT):2 m| \n", " | latitude | \n", "longitude | \n", "stid | \n", "
|---|---|---|---|
| 0 | \n", "44.000 | \n", "-100.00 | \n", "McIntosh | \n", "
| 1 | \n", "44.375 | \n", "-100.25 | \n", "Golden | \n", "
| 2 | \n", "44.750 | \n", "-100.50 | \n", "Fuji | \n", "
| 3 | \n", "45.125 | \n", "-100.75 | \n", "Gala | \n", "
| 4 | \n", "45.500 | \n", "-101.00 | \n", "Honeycrisp | \n", "
<xarray.Dataset> Size: 320B\n",
"Dimensions: (point: 5)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" heightAboveGround float64 8B 2.0\n",
" latitude (point) float64 40B 43.99 44.37 44.76 45.13 45.5\n",
" longitude (point) float64 40B 260.0 259.8 259.5 259.3 259.0\n",
" valid_time datetime64[ns] 8B 2024-03-01\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (point) float64 40B 0.8515 1.07 1.611 1.41 1.318\n",
" point_latitude (point) float64 40B 44.0 44.38 44.75 45.12 45.5\n",
" point_longitude (point) float64 40B -100.0 -100.2 -100.5 -100.8 -101.0\n",
" point_stid (point) object 40B 'McIntosh' 'Golden' ... 'Honeycrisp'\n",
"Dimensions without coordinates: point\n",
"Data variables:\n",
" t2m (point) float32 20B 288.0 286.7 286.1 282.3 284.8\n",
" d2m (point) float32 20B 268.8 271.8 270.5 274.1 270.5\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240301/subset_e0ef89f...\n",
" search: :(?:TMP|DPT):2 m<xarray.Dataset> Size: 320B\n",
"Dimensions: (point: 5)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" heightAboveGround float64 8B 2.0\n",
" latitude (point) float64 40B 43.99 44.37 44.76 45.13 45.5\n",
" longitude (point) float64 40B 260.0 259.8 259.5 259.3 259.0\n",
" valid_time datetime64[ns] 8B 2024-03-01\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (point) float64 40B 0.8515 1.07 1.611 1.41 1.318\n",
" point_latitude (point) float64 40B 44.0 44.38 44.75 45.12 45.5\n",
" point_longitude (point) float64 40B -100.0 -100.2 -100.5 -100.8 -101.0\n",
" point_stid (point) object 40B 'McIntosh' 'Golden' ... 'Honeycrisp'\n",
"Dimensions without coordinates: point\n",
"Data variables:\n",
" t2m (point) float32 20B 288.0 286.7 286.1 282.3 284.8\n",
" d2m (point) float32 20B 268.8 271.8 270.5 274.1 270.5\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240301/subset_e0ef89f...\n",
" search: :(?:TMP|DPT):2 m<xarray.Dataset> Size: 128B\n",
"Dimensions: ()\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" heightAboveGround float64 8B 2.0\n",
" latitude float64 8B 45.5\n",
" longitude float64 8B 259.0\n",
" valid_time datetime64[ns] 8B 2024-03-01\n",
" gribfile_projection object 8B None\n",
" point_grid_distance float64 8B 1.318\n",
" point_latitude float64 8B 45.5\n",
" point_longitude float64 8B -101.0\n",
" point_stid <U10 40B 'Honeycrisp'\n",
"Data variables:\n",
" t2m float32 4B 284.8\n",
" d2m float32 4B 270.5\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240301/subset_e0ef89f...\n",
" search: :(?:TMP|DPT):2 m<xarray.Dataset> Size: 696B\n",
"Dimensions: (isobaricInhPa: 39, point: 1)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-28\n",
" step timedelta64[ns] 8B 00:00:00\n",
" * isobaricInhPa (isobaricInhPa) float64 312B 1e+03 975.0 ... 75.0 50.0\n",
" latitude (point) float64 8B 40.75\n",
" longitude (point) float64 8B 248.1\n",
" valid_time datetime64[ns] 8B 2024-03-28\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (point) float64 8B 1.193\n",
" point_latitude (point) float64 8B 40.76\n",
" point_longitude (point) float64 8B -111.9\n",
"Dimensions without coordinates: point\n",
"Data variables:\n",
" t (isobaricInhPa, point) float32 156B ...\n",
" dpt (isobaricInhPa, point) float32 156B ...\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: prs\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240328/subset_0befd2f...\n",
" search: (?:DPT|TMP):[0-9]* mb| \n", " | latitude | \n", "longitude | \n", "stid | \n", "
|---|---|---|---|
| 0 | \n", "28.118041 | \n", "251.508694 | \n", "A4Bt4ArI | \n", "
| 1 | \n", "45.433523 | \n", "236.549102 | \n", "M8TVLmnW | \n", "
| 2 | \n", "29.326794 | \n", "290.301011 | \n", "EFnRTuds | \n", "
| 3 | \n", "48.066147 | \n", "293.088237 | \n", "LGzLiHaU | \n", "
| 4 | \n", "32.020415 | \n", "247.694797 | \n", "tzABimIV | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "
| 95 | \n", "44.124212 | \n", "279.341471 | \n", "zA7MhOEm | \n", "
| 96 | \n", "44.208684 | \n", "270.780126 | \n", "OSrB5uVX | \n", "
| 97 | \n", "30.286338 | \n", "254.814174 | \n", "e5xYHMth | \n", "
| 98 | \n", "38.231154 | \n", "256.410611 | \n", "ZwVijXzk | \n", "
| 99 | \n", "42.481527 | \n", "268.409357 | \n", "PsiEP6f0 | \n", "
100 rows × 3 columns
\n", "<xarray.Dataset> Size: 5kB\n",
"Dimensions: (point: 100)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-01-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" heightAboveGround float64 8B 2.0\n",
" latitude (point) float64 800B 28.0 45.5 29.25 ... 38.25 42.5\n",
" longitude (point) float64 800B 251.5 236.5 290.2 ... 256.5 268.5\n",
" valid_time datetime64[ns] 8B 2024-01-01\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (point) float64 800B 13.15 8.325 9.869 ... 8.083 7.711\n",
" point_latitude (point) float64 800B 28.12 45.43 29.33 ... 38.23 42.48\n",
" point_longitude (point) float64 800B 251.5 236.5 290.3 ... 256.4 268.4\n",
" point_stid (point) object 800B 'A4Bt4ArI' ... 'PsiEP6f0'\n",
"Dimensions without coordinates: point\n",
"Data variables:\n",
" t2m (point) float32 400B 287.8 277.5 293.1 ... 276.3 270.4\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: gfs\n",
" product: pgrb2.0p25\n",
" description: Global Forecast System\n",
" remote_grib: https://noaa-gfs-bdp-pds.s3.amazonaws.com/gfs.20...\n",
" local_grib: /home/blaylock/data/gfs/20240101/subset_6bef22b0...\n",
" search: :TMP:2 m <xarray.Dataset> Size: 24kB\n",
"Dimensions: (k: 5, isobaricInhPa: 5, point: 100)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-28\n",
" step timedelta64[ns] 8B 00:00:00\n",
" * isobaricInhPa (isobaricInhPa) float64 40B 1e+03 925.0 ... 700.0 500.0\n",
" latitude (k, point) float64 4kB 28.12 45.43 ... 38.26 42.45\n",
" longitude (k, point) float64 4kB 251.5 236.5 ... 256.4 268.4\n",
" valid_time datetime64[ns] 8B 2024-03-28\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (k, point) float64 4kB 0.0 0.0 0.0 ... 2.97 3.0 2.993\n",
" point_latitude (point) float64 800B 28.12 45.43 29.33 ... 38.23 42.48\n",
" point_longitude (point) float64 800B 251.5 236.5 290.3 ... 256.4 268.4\n",
" point_stid (point) object 800B 'A4Bt4ArI' ... 'PsiEP6f0'\n",
"Dimensions without coordinates: k, point\n",
"Data variables:\n",
" t (k, isobaricInhPa, point) float32 10kB 304.9 ... 244.0\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240328/subset_0befe27...\n",
" search: TMP:\\d* mb<xarray.Dataset> Size: 28kB\n",
"Dimensions: (isobaricInhPa: 5, point: 100, k: 9)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-03-28\n",
" step timedelta64[ns] 8B 00:00:00\n",
" * isobaricInhPa (isobaricInhPa) float64 40B 1e+03 925.0 ... 700.0 500.0\n",
" valid_time datetime64[ns] 8B 2024-03-28\n",
" gribfile_projection object 8B None\n",
" point_latitude (point) float64 800B 28.12 45.43 29.33 ... 38.23 42.48\n",
" point_longitude (point) float64 800B 251.5 236.5 290.3 ... 256.4 268.4\n",
" point_stid (point) object 800B 'A4Bt4ArI' ... 'PsiEP6f0'\n",
" latitude (k, point) float64 7kB 28.12 45.43 ... 38.26 42.45\n",
" longitude (k, point) float64 7kB 251.5 236.5 ... 256.4 268.4\n",
" point_grid_distance (k, point) float64 7kB 0.0 0.0 0.0 ... 4.242 4.232\n",
"Dimensions without coordinates: point, k\n",
"Data variables:\n",
" t (isobaricInhPa, point) float64 4kB 304.9 ... 244.0<xarray.Dataset> Size: 282kB\n",
"Dimensions: (k: 100, point: 100)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-01-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" surface float64 8B 0.0\n",
" latitude (k, point) float64 80kB 28.12 45.43 ... 38.33 42.38\n",
" longitude (k, point) float64 80kB 251.5 236.5 ... 256.3 268.3\n",
" valid_time datetime64[ns] 8B 2024-01-01\n",
" gribfile_projection object 8B None\n",
" point_grid_distance (k, point) float64 80kB 0.0 0.0 0.0 ... 16.97 16.93\n",
" point_latitude (point) float64 800B 28.12 45.43 29.33 ... 38.23 42.48\n",
" point_longitude (point) float64 800B 251.5 236.5 290.3 ... 256.4 268.4\n",
" point_stid (point) object 800B 'A4Bt4ArI' ... 'PsiEP6f0'\n",
"Dimensions without coordinates: k, point\n",
"Data variables:\n",
" orog (k, point) float32 40kB 955.9 597.6 ... 1.361e+03 282.0\n",
"Attributes:\n",
" GRIB_edition: 2\n",
" GRIB_centre: kwbc\n",
" GRIB_centreDescription: US National Weather Service - NCEP\n",
" GRIB_subCentre: 0\n",
" Conventions: CF-1.7\n",
" institution: US National Weather Service - NCEP\n",
" model: hrrr\n",
" product: sfc\n",
" description: High-Resolution Rapid Refresh - CONUS\n",
" remote_grib: https://noaa-hrrr-bdp-pds.s3.amazonaws.com/hrrr....\n",
" local_grib: /home/blaylock/data/hrrr/20240101/subset_6bef832...\n",
" search: HGT:surface<xarray.DataArray 'orog' (point: 100)> Size: 400B\n",
"array([3.57974121e+02, 1.69752808e+02, 0.00000000e+00, 1.00506348e+02,\n",
" 6.67194519e+01, 1.44643211e+01, 1.72897491e+01, 4.49295654e+01,\n",
" 5.20242023e+00, 1.31510179e-02, 2.03198242e+01, 0.00000000e+00,\n",
" 5.40655518e+01, 2.79081287e+01, 0.00000000e+00, 0.00000000e+00,\n",
" 0.00000000e+00, 0.00000000e+00, 1.36973648e+01, 5.59680462e-02,\n",
" 2.10313797e+01, 6.57881317e+01, 0.00000000e+00, 1.84571640e+02,\n",
" 1.35059387e+02, 4.05825577e+01, 3.62122345e+01, 7.16302872e+01,\n",
" 1.69172256e+02, 0.00000000e+00, 2.00776978e+01, 0.00000000e+00,\n",
" 2.38120499e+01, 4.83460712e+00, 4.66342430e+01, 2.26004620e+01,\n",
" 6.58044434e+00, 2.43521683e+02, 5.29580927e+00, 9.35856552e+01,\n",
" 1.76103989e+02, 2.67501984e+01, 0.00000000e+00, 6.42464294e+01,\n",
" 7.21421127e+01, 2.53476772e+01, 1.55120902e-02, 1.96815292e+02,\n",
" 0.00000000e+00, 1.62173843e+01, 3.15807373e+02, 1.09912872e+01,\n",
" 9.66130905e+01, 1.96222886e-01, 0.00000000e+00, 9.15527344e-05,\n",
" 0.00000000e+00, 5.75467110e+01, 1.22795906e+02, 0.00000000e+00,\n",
" 1.90995293e+01, 9.26871872e+01, 0.00000000e+00, 4.46593895e+01,\n",
" 7.39437256e+01, 0.00000000e+00, 2.01596813e+01, 1.12923744e+02,\n",
" 2.73812828e+01, 0.00000000e+00, 4.54793930e+01, 1.94310131e+01,\n",
" 1.56630157e+02, 4.82573051e+01, 2.60957432e+01, 1.03776340e+01,\n",
" 3.65887360e+02, 0.00000000e+00, 4.98398705e+01, 3.41156349e+01,\n",
" 4.36897621e+01, 0.00000000e+00, 4.71860838e+00, 5.85202408e+01,\n",
" 0.00000000e+00, 2.07875748e+01, 0.00000000e+00, 0.00000000e+00,\n",
" 4.01632398e-01, 4.51303040e+02, 1.41894979e+01, 0.00000000e+00,\n",
" 2.05594254e+02, 1.38799706e+01, 0.00000000e+00, 4.10455780e+01,\n",
" 3.56380310e+01, 7.39399796e+01, 3.51430511e+01, 1.29698896e+01],\n",
" dtype=float32)\n",
"Coordinates:\n",
" time datetime64[ns] 8B 2024-01-01\n",
" step timedelta64[ns] 8B 00:00:00\n",
" surface float64 8B 0.0\n",
" valid_time datetime64[ns] 8B 2024-01-01\n",
" gribfile_projection object 8B None\n",
" point_latitude (point) float64 800B 28.12 45.43 29.33 ... 38.23 42.48\n",
" point_longitude (point) float64 800B 251.5 236.5 290.3 ... 256.4 268.4\n",
" point_stid (point) object 800B 'A4Bt4ArI' ... 'PsiEP6f0'\n",
"Dimensions without coordinates: point