{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Regrid xarray Dataset with multiple variables\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import xarray as xr\n", "import xesmf as xe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Starting v0.2.0, xESMF is able to take `xarray.Dataset` as input data, and\n", "automatically loop over all variables.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A simple example\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prepare input data\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
" ], "text/plain": [ "\n", "Dimensions: (lat: 25, lon: 53, time: 2920)\n", "Coordinates:\n", " * lat (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0\n", " * lon (lon) float32 200.0 202.5 205.0 207.5 ... 322.5 325.0 327.5 330.0\n", " * time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00\n", "Data variables:\n", " air (time, lat, lon) float32 ...\n", "Attributes:\n", " Conventions: COARDS\n", " title: 4x daily NMC reanalysis (1948)\n", " description: Data is from NMC initialized reanalysis\\n(4x/day). These a...\n", " platform: Model\n", " references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly..." ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds = xr.tutorial.open_dataset(\"air_temperature\")\n", "ds # air temperature in Kelvin" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • lat: 25
    • lon: 53
    • time: 2920
    • lat
      (lat)
      float32
      75.0 72.5 70.0 ... 20.0 17.5 15.0
      standard_name :
      latitude
      long_name :
      Latitude
      units :
      degrees_north
      axis :
      Y
      array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5,\n",
             "       45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5,\n",
             "       15. ], dtype=float32)
    • lon
      (lon)
      float32
      200.0 202.5 205.0 ... 327.5 330.0
      standard_name :
      longitude
      long_name :
      Longitude
      units :
      degrees_east
      axis :
      X
      array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5,\n",
             "       225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5,\n",
             "       250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5,\n",
             "       275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5,\n",
             "       300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5,\n",
             "       325. , 327.5, 330. ], dtype=float32)
    • time
      (time)
      datetime64[ns]
      2013-01-01 ... 2014-12-31T18:00:00
      standard_name :
      time
      long_name :
      Time
      array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000',\n",
             "       '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000',\n",
             "       '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • air
      (time, lat, lon)
      float32
      241.2 242.5 243.5 ... 296.19 295.69
      long_name :
      4xDaily Air temperature at sigma level 995
      units :
      degK
      precision :
      2
      GRIB_id :
      11
      GRIB_name :
      TMP
      var_desc :
      Air temperature
      dataset :
      NMC Reanalysis
      level_desc :
      Surface
      statistic :
      Individual Obs
      parent_stat :
      Other
      actual_range :
      [185.16 322.1 ]
      array([[[241.2    , 242.5    , ..., 235.5    , 238.59999],\n",
             "        [243.79999, 244.5    , ..., 235.29999, 239.29999],\n",
             "        ...,\n",
             "        [295.9    , 296.19998, ..., 295.9    , 295.19998],\n",
             "        [296.29   , 296.79   , ..., 296.79   , 296.6    ]],\n",
             "\n",
             "       [[242.09999, 242.7    , ..., 233.59999, 235.79999],\n",
             "        [243.59999, 244.09999, ..., 232.5    , 235.7    ],\n",
             "        ...,\n",
             "        [296.19998, 296.69998, ..., 295.5    , 295.1    ],\n",
             "        [296.29   , 297.19998, ..., 296.4    , 296.6    ]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[245.79   , 244.79   , ..., 243.98999, 244.79   ],\n",
             "        [249.89   , 249.29   , ..., 242.48999, 244.29   ],\n",
             "        ...,\n",
             "        [296.29   , 297.19   , ..., 295.09   , 294.38998],\n",
             "        [297.79   , 298.38998, ..., 295.49   , 295.19   ]],\n",
             "\n",
             "       [[245.09   , 244.29   , ..., 241.48999, 241.79   ],\n",
             "        [249.89   , 249.29   , ..., 240.29   , 241.68999],\n",
             "        ...,\n",
             "        [296.09   , 296.88998, ..., 295.69   , 295.19   ],\n",
             "        [297.69   , 298.09   , ..., 296.19   , 295.69   ]]], dtype=float32)
    • celsius
      (time, lat, lon)
      float32
      -31.949997 -30.649994 ... 22.540009
      array([[[-31.949997, -30.649994, -29.649994, ..., -40.350006,\n",
             "         -37.649994, -34.550003],\n",
             "        [-29.350006, -28.649994, -28.449997, ..., -40.350006,\n",
             "         -37.850006, -33.850006],\n",
             "        [-23.149994, -23.350006, -24.259995, ..., -39.949997,\n",
             "         -36.759995, -31.449997],\n",
             "        ...,\n",
             "        [ 23.450012,  23.049988,  23.25    , ...,  22.25    ,\n",
             "          21.950012,  21.549988],\n",
             "        [ 22.75    ,  23.049988,  23.640015, ...,  22.75    ,\n",
             "          22.75    ,  22.049988],\n",
             "        [ 23.140015,  23.640015,  23.950012, ...,  23.75    ,\n",
             "          23.640015,  23.450012]],\n",
             "\n",
             "       [[-31.050003, -30.449997, -30.050003, ..., -41.149994,\n",
             "         -39.550003, -37.350006],\n",
             "        [-29.550003, -29.050003, -28.949997, ..., -42.149994,\n",
             "         -40.649994, -37.449997],\n",
             "        [-19.949997, -20.259995, -21.050003, ..., -42.350006,\n",
             "         -39.759995, -34.649994],\n",
             "        ...,\n",
             "        [ 23.25    ,  22.75    ,  23.049988, ...,  22.25    ,\n",
             "          21.950012,  21.640015],\n",
             "        [ 23.049988,  23.549988,  23.640015, ...,  22.450012,\n",
             "          22.350006,  21.950012],\n",
             "        [ 23.140015,  24.049988,  24.25    , ...,  23.25    ,\n",
             "          23.25    ,  23.450012]],\n",
             "\n",
             "       [[-30.850006, -30.949997, -30.850006, ..., -38.850006,\n",
             "         -37.050003, -34.449997],\n",
             "        [-28.550003, -28.759995, -29.149994, ..., -42.850006,\n",
             "         -41.149994, -37.449997],\n",
             "        [-16.950012, -17.649994, -18.949997, ..., -41.949997,\n",
             "         -39.949997, -34.949997],\n",
             "        ...,\n",
             "        [ 22.450012,  22.25    ,  22.25    , ...,  23.140015,\n",
             "          22.140015,  21.850006],\n",
             "        [ 23.049988,  23.350006,  23.140015, ...,  23.25    ,\n",
             "          22.850006,  22.450012],\n",
             "        [ 23.25    ,  23.140015,  23.25    , ...,  23.850006,\n",
             "          23.850006,  23.640015]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[-29.660004, -30.160004, -31.059998, ..., -28.960007,\n",
             "         -28.660004, -28.259995],\n",
             "        [-24.059998, -24.160004, -24.559998, ..., -32.559998,\n",
             "         -31.86    , -30.460007],\n",
             "        [-10.459991, -10.959991, -11.459991, ..., -33.759995,\n",
             "         -31.460007, -27.960007],\n",
             "        ...,\n",
             "        [ 21.640015,  22.140015,  24.339996, ...,  22.339996,\n",
             "          22.23999 ,  21.540009],\n",
             "        [ 23.640015,  24.73999 ,  25.140015, ...,  22.339996,\n",
             "          22.339996,  21.640015],\n",
             "        [ 25.040009,  26.040009,  25.640015, ...,  22.940002,\n",
             "          22.640015,  22.640015]],\n",
             "\n",
             "       [[-27.36    , -28.36    , -29.660004, ..., -29.86    ,\n",
             "         -29.160004, -28.36    ],\n",
             "        [-23.259995, -23.86    , -24.660004, ..., -31.86    ,\n",
             "         -30.660004, -28.86    ],\n",
             "        [-10.76001 , -11.359985, -11.859985, ..., -32.660004,\n",
             "         -30.059998, -26.259995],\n",
             "        ...,\n",
             "        [ 20.540009,  20.73999 ,  22.23999 , ...,  21.940002,\n",
             "          21.540009,  21.140015],\n",
             "        [ 23.140015,  24.040009,  24.440002, ...,  22.140015,\n",
             "          21.940002,  21.23999 ],\n",
             "        [ 24.640015,  25.23999 ,  25.339996, ...,  22.540009,\n",
             "          22.339996,  22.040009]],\n",
             "\n",
             "       [[-28.059998, -28.86    , -29.86    , ..., -31.460007,\n",
             "         -31.660004, -31.36    ],\n",
             "        [-23.259995, -23.86    , -24.759995, ..., -33.559998,\n",
             "         -32.86    , -31.460007],\n",
             "        [-10.160004, -10.959991, -11.76001 , ..., -33.259995,\n",
             "         -30.559998, -26.86    ],\n",
             "        ...,\n",
             "        [ 20.640015,  20.540009,  21.940002, ...,  22.140015,\n",
             "          21.940002,  21.540009],\n",
             "        [ 22.940002,  23.73999 ,  24.040009, ...,  22.540009,\n",
             "          22.540009,  22.040009],\n",
             "        [ 24.540009,  24.940002,  24.940002, ...,  23.339996,\n",
             "          23.040009,  22.540009]]], dtype=float32)
    • slice
      (lat, lon)
      float32
      241.2 242.5 243.5 ... 296.79 296.6
      long_name :
      4xDaily Air temperature at sigma level 995
      units :
      degK
      precision :
      2
      GRIB_id :
      11
      GRIB_name :
      TMP
      var_desc :
      Air temperature
      dataset :
      NMC Reanalysis
      level_desc :
      Surface
      statistic :
      Individual Obs
      parent_stat :
      Other
      actual_range :
      [185.16 322.1 ]
      array([[241.2    , 242.5    , 243.5    , ..., 232.79999, 235.5    , 238.59999],\n",
             "       [243.79999, 244.5    , 244.7    , ..., 232.79999, 235.29999, 239.29999],\n",
             "       [250.     , 249.79999, 248.89   , ..., 233.2    , 236.39   , 241.7    ],\n",
             "       ...,\n",
             "       [296.6    , 296.19998, 296.4    , ..., 295.4    , 295.1    , 294.69998],\n",
             "       [295.9    , 296.19998, 296.79   , ..., 295.9    , 295.9    , 295.19998],\n",
             "       [296.29   , 296.79   , 297.1    , ..., 296.9    , 296.79   , 296.6    ]],\n",
             "      dtype=float32)
  • Conventions :
    COARDS
    title :
    4x daily NMC reanalysis (1948)
    description :
    Data is from NMC initialized reanalysis\n", "(4x/day). These are the 0.9950 sigma level values.
    platform :
    Model
    references :
    http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html
" ], "text/plain": [ "\n", "Dimensions: (lat: 25, lon: 53, time: 2920)\n", "Coordinates:\n", " * lat (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0\n", " * lon (lon) float32 200.0 202.5 205.0 207.5 ... 322.5 325.0 327.5 330.0\n", " * time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00\n", "Data variables:\n", " air (time, lat, lon) float32 241.2 242.5 243.5 ... 296.49 296.19 295.69\n", " celsius (time, lat, lon) float32 -31.949997 -30.649994 ... 22.540009\n", " slice (lat, lon) float32 241.2 242.5 243.5 244.0 ... 296.9 296.79 296.6\n", "Attributes:\n", " Conventions: COARDS\n", " title: 4x daily NMC reanalysis (1948)\n", " description: Data is from NMC initialized reanalysis\\n(4x/day). These a...\n", " platform: Model\n", " references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly..." ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# input dataset can contain variables of different shapes (e.g. 2D, 3D, 4D), as long as horizontal shapes are the same.\n", "ds[\"celsius\"] = ds[\"air\"] - 273.15 # Kelvin -> celsius\n", "ds[\"slice\"] = ds[\"air\"].isel(time=0)\n", "ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Build regridder\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "xESMF Regridder \n", "Regridding algorithm: bilinear \n", "Input grid shape: (25, 53) \n", "Output grid shape: (59, 87) \n", "Output grid dimension name: ('lat', 'lon') \n", "Periodic in longitude? False" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds_out = xr.Dataset(\n", " {\n", " \"lat\": ([\"lat\"], np.arange(16, 75, 1.0)),\n", " \"lon\": ([\"lon\"], np.arange(200, 330, 1.5)),\n", " }\n", ")\n", "\n", "regridder = xe.Regridder(ds, ds_out, \"bilinear\")\n", "regridder" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Apply to data\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "using dimensions ('lat', 'lon') from data variable air as the horizontal dimensions for this dataset.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • lat: 59
    • lon: 87
    • time: 2920
    • time
      (time)
      datetime64[ns]
      2013-01-01 ... 2014-12-31T18:00:00
      standard_name :
      time
      long_name :
      Time
      array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000',\n",
             "       '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000',\n",
             "       '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lon
      (lon)
      float64
      200.0 201.5 203.0 ... 327.5 329.0
      array([200. , 201.5, 203. , 204.5, 206. , 207.5, 209. , 210.5, 212. , 213.5,\n",
             "       215. , 216.5, 218. , 219.5, 221. , 222.5, 224. , 225.5, 227. , 228.5,\n",
             "       230. , 231.5, 233. , 234.5, 236. , 237.5, 239. , 240.5, 242. , 243.5,\n",
             "       245. , 246.5, 248. , 249.5, 251. , 252.5, 254. , 255.5, 257. , 258.5,\n",
             "       260. , 261.5, 263. , 264.5, 266. , 267.5, 269. , 270.5, 272. , 273.5,\n",
             "       275. , 276.5, 278. , 279.5, 281. , 282.5, 284. , 285.5, 287. , 288.5,\n",
             "       290. , 291.5, 293. , 294.5, 296. , 297.5, 299. , 300.5, 302. , 303.5,\n",
             "       305. , 306.5, 308. , 309.5, 311. , 312.5, 314. , 315.5, 317. , 318.5,\n",
             "       320. , 321.5, 323. , 324.5, 326. , 327.5, 329. ])
    • lat
      (lat)
      float64
      16.0 17.0 18.0 ... 72.0 73.0 74.0
      array([16., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26., 27., 28., 29.,\n",
             "       30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,\n",
             "       44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54., 55., 56., 57.,\n",
             "       58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., 70., 71.,\n",
             "       72., 73., 74.])
    • air
      (time, lat, lon)
      float64
      296.1 296.4 296.6 ... 241.0 241.5
      array([[[296.13399675, 296.38669304, 296.63889823, ..., 296.47490793,\n",
             "         296.43398913, 296.19924566],\n",
             "        [295.97800871, 296.18274797, 296.42534501, ..., 296.09262341,\n",
             "         296.07802394, 295.72098714],\n",
             "        [296.04001766, 296.13556275, 296.30247974, ..., 295.77692914,\n",
             "         295.73997197, 295.35693248],\n",
             "        ...,\n",
             "        [245.04017912, 245.36087049, 245.56096188, ..., 233.93629106,\n",
             "         235.51802332, 238.0780694 ],\n",
             "        [243.27991042, 243.77519503, 244.17375053, ..., 233.81591274,\n",
             "         235.33999633, 237.63241841],\n",
             "        [242.24003289, 242.87912303, 243.43775032, ..., 233.84791841,\n",
             "         235.41999207, 237.49641598]],\n",
             "\n",
             "       [[296.25399643, 296.70203773, 297.03166485, ..., 296.06514956,\n",
             "         296.03998263, 296.01773136],\n",
             "        [296.2179898 , 296.56767711, 296.82291528, ..., 295.7292558 ,\n",
             "         295.6800262 , 295.5138904 ],\n",
             "        [296.23999022, 296.42058286, 296.56714652, ..., 295.50442291,\n",
             "         295.41998903, 295.19133215],\n",
             "        ...,\n",
             "        [245.52028453, 245.73709231, 245.85148963, ..., 231.64759509,\n",
             "         232.67802699, 234.83033953],\n",
             "        [243.29994515, 243.61404829, 243.85326489, ..., 231.80653129,\n",
             "         232.72003168, 234.51923375],\n",
             "        [242.70001369, 243.03800427, 243.31726258, ..., 232.22256285,\n",
             "         233.15997775, 234.71925176]],\n",
             "\n",
             "       [[296.31998597, 296.35233477, 296.37027072, ..., 296.69703874,\n",
             "         296.59998477, 296.42993717],\n",
             "        [296.23999022, 296.37072264, 296.42865111, ..., 296.39312798,\n",
             "         296.20003046, 295.98447426],\n",
             "        [296.07996829, 296.20134835, 296.24744824, ..., 296.17051878,\n",
             "         295.85798008, 295.63218076],\n",
             "        ...,\n",
             "        [246.92034241, 246.75294557, 246.50912779, ..., 231.18562131,\n",
             "         232.24003595, 234.61904532],\n",
             "        [244.13992017, 244.03040136, 243.89556811, ..., 231.78222568,\n",
             "         232.82012307, 234.90301222],\n",
             "        [243.22002405, 243.13672999, 243.05876072, ..., 233.39835074,\n",
             "         234.45993206, 236.27912467]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[297.62998356, 298.25582152, 298.65503226, ..., 295.7786526 ,\n",
             "         295.66999665, 295.50299763],\n",
             "        [297.07004997, 297.7199817 , 298.19914665, ..., 295.58670885,\n",
             "         295.55000304, 295.2150872 ],\n",
             "        [296.38994762, 296.98154159, 297.52424514, ..., 295.48204978,\n",
             "         295.46998597, 295.05016151],\n",
             "        ...,\n",
             "        [251.81041188, 251.72296686, 251.55990593, ..., 240.75713161,\n",
             "         241.37000425, 242.46456685],\n",
             "        [247.96982451, 247.87036819, 247.69574495, ..., 241.55307104,\n",
             "         241.93009016, 242.64624471],\n",
             "        [245.73007797, 245.53418764, 245.25570503, ..., 242.92917313,\n",
             "         243.20994271, 243.68633428]],\n",
             "\n",
             "       [[297.1899857 , 297.6237982 , 297.95503528, ..., 295.4505457 ,\n",
             "         295.32998658, 295.05487915],\n",
             "        [296.59005424, 297.09596253, 297.49915579, ..., 295.29059716,\n",
             "         295.1700073 , 294.7989566 ],\n",
             "        [295.76992812, 296.23054587, 296.65708274, ..., 295.15442138,\n",
             "         295.00998537, 294.626334  ],\n",
             "        ...,\n",
             "        [252.39037715, 252.04962511, 251.65524335, ..., 241.72163807,\n",
             "         242.61000973, 243.93278497],\n",
             "        [249.06987326, 248.66822819, 248.21431545, ..., 242.12742803,\n",
             "         242.79003593, 243.74867727],\n",
             "        [247.43005818, 246.93209439, 246.37428385, ..., 242.84748108,\n",
             "         243.38996739, 244.10871142]],\n",
             "\n",
             "       [[297.04997563, 297.38785212, 297.63503348, ..., 296.09892817,\n",
             "         295.98999483, 295.690696  ],\n",
             "        [296.4100463 , 296.84401245, 297.17914422, ..., 295.82701626,\n",
             "         295.79001767, 295.49075727],\n",
             "        [295.62992871, 296.00626644, 296.35697279, ..., 295.59472609,\n",
             "         295.56998294, 295.28282378],\n",
             "        ...,\n",
             "        [252.51039665, 252.14637887, 251.70761893, ..., 240.09173906,\n",
             "         240.75006397, 241.87173824],\n",
             "        [248.92985255, 248.55305942, 248.11071361, ..., 240.21550695,\n",
             "         240.53002923, 241.23719787],\n",
             "        [247.01007067, 246.58490681, 246.10268406, ..., 240.91155301,\n",
             "         241.00997318, 241.45322238]]])
    • celsius
      (time, lat, lon)
      float64
      22.98 23.24 23.49 ... -32.14 -31.7
      array([[[ 22.98400285,  23.23669915,  23.48890434, ...,  23.32491403,\n",
             "          23.28399523,  23.04925177],\n",
             "        [ 22.82801481,  23.03275408,  23.27535111, ...,  22.94262952,\n",
             "          22.92803004,  22.57099324],\n",
             "        [ 22.89002377,  22.98556885,  23.15248584, ...,  22.62693524,\n",
             "          22.58997807,  22.20693858],\n",
             "        ...,\n",
             "        [-28.10981478, -27.7891234 , -27.58903202, ..., -39.21370283,\n",
             "         -37.63197058, -35.0719245 ],\n",
             "        [-29.87008348, -29.37479887, -28.97624337, ..., -39.33408115,\n",
             "         -37.80999757, -35.51757549],\n",
             "        [-30.90996101, -30.27087087, -29.71224358, ..., -39.30207549,\n",
             "         -37.73000183, -35.65357792]],\n",
             "\n",
             "       [[ 23.10400254,  23.55204383,  23.88167095, ...,  22.91515567,\n",
             "          22.88998873,  22.86773746],\n",
             "        [ 23.06799591,  23.41768321,  23.67292138, ...,  22.5792619 ,\n",
             "          22.5300323 ,  22.3638965 ],\n",
             "        [ 23.08999633,  23.27058897,  23.41715262, ...,  22.35442901,\n",
             "          22.26999514,  22.04133825],\n",
             "        ...,\n",
             "        [-27.62970937, -27.41290159, -27.29850427, ..., -41.50239881,\n",
             "         -40.4719669 , -38.31965437],\n",
             "        [-29.85004875, -29.5359456 , -29.29672901, ..., -41.3434626 ,\n",
             "         -40.42996222, -38.63076015],\n",
             "        [-30.4499802 , -30.11198963, -29.83273132, ..., -40.92743105,\n",
             "         -39.99001614, -38.43074214]],\n",
             "\n",
             "       [[ 23.16999207,  23.20234088,  23.22027682, ...,  23.54704484,\n",
             "          23.44999087,  23.27994327],\n",
             "        [ 23.08999633,  23.22072874,  23.27865721, ...,  23.24313408,\n",
             "          23.05003657,  22.83448036],\n",
             "        [ 22.9299744 ,  23.05135446,  23.09745435, ...,  23.02052488,\n",
             "          22.70798618,  22.48218686],\n",
             "        ...,\n",
             "        [-26.22965149, -26.39704832, -26.64086611, ..., -41.96437258,\n",
             "         -40.90995795, -38.53094857],\n",
             "        [-29.01007373, -29.11959253, -29.25442578, ..., -41.36776822,\n",
             "         -40.32987082, -38.24698168],\n",
             "        [-29.92996985, -30.0132639 , -30.09123317, ..., -39.75164316,\n",
             "         -38.69006184, -36.87086923]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[ 24.47998966,  25.10582762,  25.50503836, ...,  22.6286587 ,\n",
             "          22.52000275,  22.35300373],\n",
             "        [ 23.92005608,  24.56998781,  25.04915275, ...,  22.43671496,\n",
             "          22.40000914,  22.0650933 ],\n",
             "        [ 23.23995372,  23.83154769,  24.37425124, ...,  22.33205589,\n",
             "          22.31999207,  21.90016761],\n",
             "        ...,\n",
             "        [-21.33958202, -21.42702704, -21.59008797, ..., -32.39286229,\n",
             "         -31.77998965, -30.68542705],\n",
             "        [-25.18016938, -25.27962571, -25.45424895, ..., -31.59692286,\n",
             "         -31.21990373, -30.50374918],\n",
             "        [-27.41991592, -27.61580626, -27.89428887, ..., -30.22082077,\n",
             "         -29.94005118, -29.46365962]],\n",
             "\n",
             "       [[ 24.0399918 ,  24.4738043 ,  24.80504138, ...,  22.3005518 ,\n",
             "          22.17999269,  21.90488526],\n",
             "        [ 23.44006035,  23.94596863,  24.34916189, ...,  22.14060326,\n",
             "          22.02001341,  21.64896271],\n",
             "        [ 22.61993422,  23.08055197,  23.50708884, ...,  22.00442749,\n",
             "          21.85999148,  21.4763401 ],\n",
             "        ...,\n",
             "        [-20.75961675, -21.10036879, -21.49475055, ..., -31.42835583,\n",
             "         -30.53998416, -29.21720893],\n",
             "        [-24.08012063, -24.48176571, -24.93567845, ..., -31.02256587,\n",
             "         -30.35995796, -29.40131662],\n",
             "        [-25.71993572, -26.21789951, -26.77571005, ..., -30.30251281,\n",
             "         -29.76002651, -29.04128248]],\n",
             "\n",
             "       [[ 23.89998173,  24.23785823,  24.48503958, ...,  22.94893427,\n",
             "          22.84000093,  22.5407021 ],\n",
             "        [ 23.26005241,  23.69401855,  24.02915032, ...,  22.67702236,\n",
             "          22.64002378,  22.34076337],\n",
             "        [ 22.47993481,  22.85627254,  23.20697889, ...,  22.44473219,\n",
             "          22.41998905,  22.13282989],\n",
             "        ...,\n",
             "        [-20.63959725, -21.00361502, -21.44237497, ..., -33.05825483,\n",
             "         -32.39992993, -31.27825565],\n",
             "        [-24.22014135, -24.59693448, -25.03928029, ..., -32.93448695,\n",
             "         -32.61996466, -31.91279602],\n",
             "        [-26.13992323, -26.56508709, -27.04730983, ..., -32.23844089,\n",
             "         -32.14002072, -31.69677152]]])
    • slice
      (lat, lon)
      float64
      296.1 296.4 296.6 ... 235.4 237.5
      array([[296.13399675, 296.38669304, 296.63889823, ..., 296.47490793,\n",
             "        296.43398913, 296.19924566],\n",
             "       [295.97800871, 296.18274797, 296.42534501, ..., 296.09262341,\n",
             "        296.07802394, 295.72098714],\n",
             "       [296.04001766, 296.13556275, 296.30247974, ..., 295.77692914,\n",
             "        295.73997197, 295.35693248],\n",
             "       ...,\n",
             "       [245.04017912, 245.36087049, 245.56096188, ..., 233.93629106,\n",
             "        235.51802332, 238.0780694 ],\n",
             "       [243.27991042, 243.77519503, 244.17375053, ..., 233.81591274,\n",
             "        235.33999633, 237.63241841],\n",
             "       [242.24003289, 242.87912303, 243.43775032, ..., 233.84791841,\n",
             "        235.41999207, 237.49641598]])
  • regrid_method :
    bilinear
" ], "text/plain": [ "\n", "Dimensions: (lat: 59, lon: 87, time: 2920)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00\n", " * lon (lon) float64 200.0 201.5 203.0 204.5 ... 324.5 326.0 327.5 329.0\n", " * lat (lat) float64 16.0 17.0 18.0 19.0 20.0 ... 70.0 71.0 72.0 73.0 74.0\n", "Data variables:\n", " air (time, lat, lon) float64 296.1 296.4 296.6 ... 240.9 241.0 241.5\n", " celsius (time, lat, lon) float64 22.98 23.24 23.49 ... -32.24 -32.14 -31.7\n", " slice (lat, lon) float64 296.1 296.4 296.6 296.9 ... 233.8 235.4 237.5\n", "Attributes:\n", " regrid_method: bilinear" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# the entire dataset can be processed at once\n", "ds_out = regridder(ds)\n", "ds_out" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "air True\n", "celsius True\n", "slice True\n" ] } ], "source": [ "# verify that the result is the same as regridding each variable one-by-one\n", "for k in ds.data_vars:\n", " print(k, ds_out[k].equals(regridder(ds[k])))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Invalid dimension orderings to avoid\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "xESMF assumes the horizontal dimensions are the last/rightmost dimensions, which\n", "matches the convention of most NetCDF data.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • lat: 25
    • lon: 53
    • time: 2920
    • lat
      (lat)
      float32
      75.0 72.5 70.0 ... 20.0 17.5 15.0
      standard_name :
      latitude
      long_name :
      Latitude
      units :
      degrees_north
      axis :
      Y
      array([75. , 72.5, 70. , 67.5, 65. , 62.5, 60. , 57.5, 55. , 52.5, 50. , 47.5,\n",
             "       45. , 42.5, 40. , 37.5, 35. , 32.5, 30. , 27.5, 25. , 22.5, 20. , 17.5,\n",
             "       15. ], dtype=float32)
    • lon
      (lon)
      float32
      200.0 202.5 205.0 ... 327.5 330.0
      standard_name :
      longitude
      long_name :
      Longitude
      units :
      degrees_east
      axis :
      X
      array([200. , 202.5, 205. , 207.5, 210. , 212.5, 215. , 217.5, 220. , 222.5,\n",
             "       225. , 227.5, 230. , 232.5, 235. , 237.5, 240. , 242.5, 245. , 247.5,\n",
             "       250. , 252.5, 255. , 257.5, 260. , 262.5, 265. , 267.5, 270. , 272.5,\n",
             "       275. , 277.5, 280. , 282.5, 285. , 287.5, 290. , 292.5, 295. , 297.5,\n",
             "       300. , 302.5, 305. , 307.5, 310. , 312.5, 315. , 317.5, 320. , 322.5,\n",
             "       325. , 327.5, 330. ], dtype=float32)
    • time
      (time)
      datetime64[ns]
      2013-01-01 ... 2014-12-31T18:00:00
      standard_name :
      time
      long_name :
      Time
      array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000',\n",
             "       '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000',\n",
             "       '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • air
      (lon, lat, time)
      float32
      241.2 242.09999 ... 295.19 295.69
      long_name :
      4xDaily Air temperature at sigma level 995
      units :
      degK
      precision :
      2
      GRIB_id :
      11
      GRIB_name :
      TMP
      var_desc :
      Air temperature
      dataset :
      NMC Reanalysis
      level_desc :
      Surface
      statistic :
      Individual Obs
      parent_stat :
      Other
      actual_range :
      [185.16 322.1 ]
      array([[[241.2    , 242.09999, 242.29999, ..., 243.48999, 245.79   ,\n",
             "         245.09   ],\n",
             "        [243.79999, 243.59999, 244.59999, ..., 249.09   , 249.89   ,\n",
             "         249.89   ],\n",
             "        [250.     , 253.2    , 256.19998, ..., 262.69   , 262.38998,\n",
             "         262.99   ],\n",
             "        ...,\n",
             "        [296.6    , 296.4    , 295.6    , ..., 294.79   , 293.69   ,\n",
             "         293.79   ],\n",
             "        [295.9    , 296.19998, 296.19998, ..., 296.79   , 296.29   ,\n",
             "         296.09   ],\n",
             "        [296.29   , 296.29   , 296.4    , ..., 298.19   , 297.79   ,\n",
             "         297.69   ]],\n",
             "\n",
             "       [[242.5    , 242.7    , 242.2    , ..., 242.98999, 244.79   ,\n",
             "         244.29   ],\n",
             "        [244.5    , 244.09999, 244.39   , ..., 248.98999, 249.29   ,\n",
             "         249.29   ],\n",
             "        [249.79999, 252.89   , 255.5    , ..., 262.19   , 261.79   ,\n",
             "         262.19   ],\n",
             "        ...,\n",
             "        [296.19998, 295.9    , 295.4    , ..., 295.29   , 293.88998,\n",
             "         293.69   ],\n",
             "        [296.19998, 296.69998, 296.5    , ..., 297.88998, 297.19   ,\n",
             "         296.88998],\n",
             "        [296.79   , 297.19998, 296.29   , ..., 299.19   , 298.38998,\n",
             "         298.09   ]],\n",
             "\n",
             "       [[243.5    , 243.09999, 242.29999, ..., 242.09   , 243.48999,\n",
             "         243.29   ],\n",
             "        [244.7    , 244.2    , 244.     , ..., 248.59   , 248.48999,\n",
             "         248.39   ],\n",
             "        [248.89   , 252.09999, 254.2    , ..., 261.69   , 261.29   ,\n",
             "         261.38998],\n",
             "        ...,\n",
             "        [296.4    , 296.19998, 295.4    , ..., 297.49   , 295.38998,\n",
             "         295.09   ],\n",
             "        [296.79   , 296.79   , 296.29   , ..., 298.29   , 297.59   ,\n",
             "         297.19   ],\n",
             "        [297.1    , 297.4    , 296.4    , ..., 298.79   , 298.49   ,\n",
             "         298.09   ]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[232.79999, 232.     , 234.29999, ..., 244.18999, 243.29   ,\n",
             "         241.68999],\n",
             "        [232.79999, 231.     , 230.29999, ..., 240.59   , 241.29   ,\n",
             "         239.59   ],\n",
             "        [233.2    , 230.79999, 231.2    , ..., 239.39   , 240.48999,\n",
             "         239.89   ],\n",
             "        ...,\n",
             "        [295.4    , 295.4    , 296.29   , ..., 295.49   , 295.09   ,\n",
             "         295.29   ],\n",
             "        [295.9    , 295.6    , 296.4    , ..., 295.49   , 295.29   ,\n",
             "         295.69   ],\n",
             "        [296.9    , 296.4    , 297.     , ..., 296.09   , 295.69   ,\n",
             "         296.49   ]],\n",
             "\n",
             "       [[235.5    , 233.59999, 236.09999, ..., 244.48999, 243.98999,\n",
             "         241.48999],\n",
             "        [235.29999, 232.5    , 232.     , ..., 241.29   , 242.48999,\n",
             "         240.29   ],\n",
             "        [236.39   , 233.39   , 233.2    , ..., 241.68999, 243.09   ,\n",
             "         242.59   ],\n",
             "        ...,\n",
             "        [295.1    , 295.1    , 295.29   , ..., 295.38998, 294.69   ,\n",
             "         295.09   ],\n",
             "        [295.9    , 295.5    , 296.     , ..., 295.49   , 295.09   ,\n",
             "         295.69   ],\n",
             "        [296.79   , 296.4    , 297.     , ..., 295.79   , 295.49   ,\n",
             "         296.19   ]],\n",
             "\n",
             "       [[238.59999, 235.79999, 238.7    , ..., 244.89   , 244.79   ,\n",
             "         241.79   ],\n",
             "        [239.29999, 235.7    , 235.7    , ..., 242.68999, 244.29   ,\n",
             "         241.68999],\n",
             "        [241.7    , 238.5    , 238.2    , ..., 245.18999, 246.89   ,\n",
             "         246.29   ],\n",
             "        ...,\n",
             "        [294.69998, 294.79   , 295.     , ..., 294.69   , 294.29   ,\n",
             "         294.69   ],\n",
             "        [295.19998, 295.1    , 295.6    , ..., 294.79   , 294.38998,\n",
             "         295.19   ],\n",
             "        [296.6    , 296.6    , 296.79   , ..., 295.79   , 295.19   ,\n",
             "         295.69   ]]], dtype=float32)
    • celsius
      (time, lat, lon)
      float32
      -31.949997 -30.649994 ... 22.540009
      array([[[-31.949997, -30.649994, -29.649994, ..., -40.350006,\n",
             "         -37.649994, -34.550003],\n",
             "        [-29.350006, -28.649994, -28.449997, ..., -40.350006,\n",
             "         -37.850006, -33.850006],\n",
             "        [-23.149994, -23.350006, -24.259995, ..., -39.949997,\n",
             "         -36.759995, -31.449997],\n",
             "        ...,\n",
             "        [ 23.450012,  23.049988,  23.25    , ...,  22.25    ,\n",
             "          21.950012,  21.549988],\n",
             "        [ 22.75    ,  23.049988,  23.640015, ...,  22.75    ,\n",
             "          22.75    ,  22.049988],\n",
             "        [ 23.140015,  23.640015,  23.950012, ...,  23.75    ,\n",
             "          23.640015,  23.450012]],\n",
             "\n",
             "       [[-31.050003, -30.449997, -30.050003, ..., -41.149994,\n",
             "         -39.550003, -37.350006],\n",
             "        [-29.550003, -29.050003, -28.949997, ..., -42.149994,\n",
             "         -40.649994, -37.449997],\n",
             "        [-19.949997, -20.259995, -21.050003, ..., -42.350006,\n",
             "         -39.759995, -34.649994],\n",
             "        ...,\n",
             "        [ 23.25    ,  22.75    ,  23.049988, ...,  22.25    ,\n",
             "          21.950012,  21.640015],\n",
             "        [ 23.049988,  23.549988,  23.640015, ...,  22.450012,\n",
             "          22.350006,  21.950012],\n",
             "        [ 23.140015,  24.049988,  24.25    , ...,  23.25    ,\n",
             "          23.25    ,  23.450012]],\n",
             "\n",
             "       [[-30.850006, -30.949997, -30.850006, ..., -38.850006,\n",
             "         -37.050003, -34.449997],\n",
             "        [-28.550003, -28.759995, -29.149994, ..., -42.850006,\n",
             "         -41.149994, -37.449997],\n",
             "        [-16.950012, -17.649994, -18.949997, ..., -41.949997,\n",
             "         -39.949997, -34.949997],\n",
             "        ...,\n",
             "        [ 22.450012,  22.25    ,  22.25    , ...,  23.140015,\n",
             "          22.140015,  21.850006],\n",
             "        [ 23.049988,  23.350006,  23.140015, ...,  23.25    ,\n",
             "          22.850006,  22.450012],\n",
             "        [ 23.25    ,  23.140015,  23.25    , ...,  23.850006,\n",
             "          23.850006,  23.640015]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[-29.660004, -30.160004, -31.059998, ..., -28.960007,\n",
             "         -28.660004, -28.259995],\n",
             "        [-24.059998, -24.160004, -24.559998, ..., -32.559998,\n",
             "         -31.86    , -30.460007],\n",
             "        [-10.459991, -10.959991, -11.459991, ..., -33.759995,\n",
             "         -31.460007, -27.960007],\n",
             "        ...,\n",
             "        [ 21.640015,  22.140015,  24.339996, ...,  22.339996,\n",
             "          22.23999 ,  21.540009],\n",
             "        [ 23.640015,  24.73999 ,  25.140015, ...,  22.339996,\n",
             "          22.339996,  21.640015],\n",
             "        [ 25.040009,  26.040009,  25.640015, ...,  22.940002,\n",
             "          22.640015,  22.640015]],\n",
             "\n",
             "       [[-27.36    , -28.36    , -29.660004, ..., -29.86    ,\n",
             "         -29.160004, -28.36    ],\n",
             "        [-23.259995, -23.86    , -24.660004, ..., -31.86    ,\n",
             "         -30.660004, -28.86    ],\n",
             "        [-10.76001 , -11.359985, -11.859985, ..., -32.660004,\n",
             "         -30.059998, -26.259995],\n",
             "        ...,\n",
             "        [ 20.540009,  20.73999 ,  22.23999 , ...,  21.940002,\n",
             "          21.540009,  21.140015],\n",
             "        [ 23.140015,  24.040009,  24.440002, ...,  22.140015,\n",
             "          21.940002,  21.23999 ],\n",
             "        [ 24.640015,  25.23999 ,  25.339996, ...,  22.540009,\n",
             "          22.339996,  22.040009]],\n",
             "\n",
             "       [[-28.059998, -28.86    , -29.86    , ..., -31.460007,\n",
             "         -31.660004, -31.36    ],\n",
             "        [-23.259995, -23.86    , -24.759995, ..., -33.559998,\n",
             "         -32.86    , -31.460007],\n",
             "        [-10.160004, -10.959991, -11.76001 , ..., -33.259995,\n",
             "         -30.559998, -26.86    ],\n",
             "        ...,\n",
             "        [ 20.640015,  20.540009,  21.940002, ...,  22.140015,\n",
             "          21.940002,  21.540009],\n",
             "        [ 22.940002,  23.73999 ,  24.040009, ...,  22.540009,\n",
             "          22.540009,  22.040009],\n",
             "        [ 24.540009,  24.940002,  24.940002, ...,  23.339996,\n",
             "          23.040009,  22.540009]]], dtype=float32)
    • slice
      (lat, lon)
      float32
      241.2 242.5 243.5 ... 296.79 296.6
      long_name :
      4xDaily Air temperature at sigma level 995
      units :
      degK
      precision :
      2
      GRIB_id :
      11
      GRIB_name :
      TMP
      var_desc :
      Air temperature
      dataset :
      NMC Reanalysis
      level_desc :
      Surface
      statistic :
      Individual Obs
      parent_stat :
      Other
      actual_range :
      [185.16 322.1 ]
      array([[241.2    , 242.5    , 243.5    , ..., 232.79999, 235.5    , 238.59999],\n",
             "       [243.79999, 244.5    , 244.7    , ..., 232.79999, 235.29999, 239.29999],\n",
             "       [250.     , 249.79999, 248.89   , ..., 233.2    , 236.39   , 241.7    ],\n",
             "       ...,\n",
             "       [296.6    , 296.19998, 296.4    , ..., 295.4    , 295.1    , 294.69998],\n",
             "       [295.9    , 296.19998, 296.79   , ..., 295.9    , 295.9    , 295.19998],\n",
             "       [296.29   , 296.79   , 297.1    , ..., 296.9    , 296.79   , 296.6    ]],\n",
             "      dtype=float32)
  • Conventions :
    COARDS
    title :
    4x daily NMC reanalysis (1948)
    description :
    Data is from NMC initialized reanalysis\n", "(4x/day). These are the 0.9950 sigma level values.
    platform :
    Model
    references :
    http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.html
" ], "text/plain": [ "\n", "Dimensions: (lat: 25, lon: 53, time: 2920)\n", "Coordinates:\n", " * lat (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0\n", " * lon (lon) float32 200.0 202.5 205.0 207.5 ... 322.5 325.0 327.5 330.0\n", " * time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00\n", "Data variables:\n", " air (lon, lat, time) float32 241.2 242.09999 ... 295.19 295.69\n", " celsius (time, lat, lon) float32 -31.949997 -30.649994 ... 22.540009\n", " slice (lat, lon) float32 241.2 242.5 243.5 244.0 ... 296.9 296.79 296.6\n", "Attributes:\n", " Conventions: COARDS\n", " title: 4x daily NMC reanalysis (1948)\n", " description: Data is from NMC initialized reanalysis\\n(4x/day). These a...\n", " platform: Model\n", " references: http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly..." ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# xESMF doesn't like horizontal dimensions to be the first/leftmost dimensions\n", "ds_bad = ds.copy()\n", "ds_bad[\"air\"] = ds_bad[\"air\"].transpose()\n", "ds_bad" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# regridder(ds_bad) # comment this line to see the error message" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "using dimensions ('lat', 'lon') from data variable celsius as the horizontal dimensions for this dataset.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "Show/Hide data repr\n", "\n", "\n", "\n", "\n", "\n", "Show/Hide attributes\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
xarray.Dataset
    • lat: 59
    • lon: 87
    • time: 2920
    • time
      (time)
      datetime64[ns]
      2013-01-01 ... 2014-12-31T18:00:00
      standard_name :
      time
      long_name :
      Time
      array(['2013-01-01T00:00:00.000000000', '2013-01-01T06:00:00.000000000',\n",
             "       '2013-01-01T12:00:00.000000000', ..., '2014-12-31T06:00:00.000000000',\n",
             "       '2014-12-31T12:00:00.000000000', '2014-12-31T18:00:00.000000000'],\n",
             "      dtype='datetime64[ns]')
    • lon
      (lon)
      float64
      200.0 201.5 203.0 ... 327.5 329.0
      array([200. , 201.5, 203. , 204.5, 206. , 207.5, 209. , 210.5, 212. , 213.5,\n",
             "       215. , 216.5, 218. , 219.5, 221. , 222.5, 224. , 225.5, 227. , 228.5,\n",
             "       230. , 231.5, 233. , 234.5, 236. , 237.5, 239. , 240.5, 242. , 243.5,\n",
             "       245. , 246.5, 248. , 249.5, 251. , 252.5, 254. , 255.5, 257. , 258.5,\n",
             "       260. , 261.5, 263. , 264.5, 266. , 267.5, 269. , 270.5, 272. , 273.5,\n",
             "       275. , 276.5, 278. , 279.5, 281. , 282.5, 284. , 285.5, 287. , 288.5,\n",
             "       290. , 291.5, 293. , 294.5, 296. , 297.5, 299. , 300.5, 302. , 303.5,\n",
             "       305. , 306.5, 308. , 309.5, 311. , 312.5, 314. , 315.5, 317. , 318.5,\n",
             "       320. , 321.5, 323. , 324.5, 326. , 327.5, 329. ])
    • lat
      (lat)
      float64
      16.0 17.0 18.0 ... 72.0 73.0 74.0
      array([16., 17., 18., 19., 20., 21., 22., 23., 24., 25., 26., 27., 28., 29.,\n",
             "       30., 31., 32., 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43.,\n",
             "       44., 45., 46., 47., 48., 49., 50., 51., 52., 53., 54., 55., 56., 57.,\n",
             "       58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., 70., 71.,\n",
             "       72., 73., 74.])
    • celsius
      (time, lat, lon)
      float64
      22.98 23.24 23.49 ... -32.14 -31.7
      array([[[ 22.98400285,  23.23669915,  23.48890434, ...,  23.32491403,\n",
             "          23.28399523,  23.04925177],\n",
             "        [ 22.82801481,  23.03275408,  23.27535111, ...,  22.94262952,\n",
             "          22.92803004,  22.57099324],\n",
             "        [ 22.89002377,  22.98556885,  23.15248584, ...,  22.62693524,\n",
             "          22.58997807,  22.20693858],\n",
             "        ...,\n",
             "        [-28.10981478, -27.7891234 , -27.58903202, ..., -39.21370283,\n",
             "         -37.63197058, -35.0719245 ],\n",
             "        [-29.87008348, -29.37479887, -28.97624337, ..., -39.33408115,\n",
             "         -37.80999757, -35.51757549],\n",
             "        [-30.90996101, -30.27087087, -29.71224358, ..., -39.30207549,\n",
             "         -37.73000183, -35.65357792]],\n",
             "\n",
             "       [[ 23.10400254,  23.55204383,  23.88167095, ...,  22.91515567,\n",
             "          22.88998873,  22.86773746],\n",
             "        [ 23.06799591,  23.41768321,  23.67292138, ...,  22.5792619 ,\n",
             "          22.5300323 ,  22.3638965 ],\n",
             "        [ 23.08999633,  23.27058897,  23.41715262, ...,  22.35442901,\n",
             "          22.26999514,  22.04133825],\n",
             "        ...,\n",
             "        [-27.62970937, -27.41290159, -27.29850427, ..., -41.50239881,\n",
             "         -40.4719669 , -38.31965437],\n",
             "        [-29.85004875, -29.5359456 , -29.29672901, ..., -41.3434626 ,\n",
             "         -40.42996222, -38.63076015],\n",
             "        [-30.4499802 , -30.11198963, -29.83273132, ..., -40.92743105,\n",
             "         -39.99001614, -38.43074214]],\n",
             "\n",
             "       [[ 23.16999207,  23.20234088,  23.22027682, ...,  23.54704484,\n",
             "          23.44999087,  23.27994327],\n",
             "        [ 23.08999633,  23.22072874,  23.27865721, ...,  23.24313408,\n",
             "          23.05003657,  22.83448036],\n",
             "        [ 22.9299744 ,  23.05135446,  23.09745435, ...,  23.02052488,\n",
             "          22.70798618,  22.48218686],\n",
             "        ...,\n",
             "        [-26.22965149, -26.39704832, -26.64086611, ..., -41.96437258,\n",
             "         -40.90995795, -38.53094857],\n",
             "        [-29.01007373, -29.11959253, -29.25442578, ..., -41.36776822,\n",
             "         -40.32987082, -38.24698168],\n",
             "        [-29.92996985, -30.0132639 , -30.09123317, ..., -39.75164316,\n",
             "         -38.69006184, -36.87086923]],\n",
             "\n",
             "       ...,\n",
             "\n",
             "       [[ 24.47998966,  25.10582762,  25.50503836, ...,  22.6286587 ,\n",
             "          22.52000275,  22.35300373],\n",
             "        [ 23.92005608,  24.56998781,  25.04915275, ...,  22.43671496,\n",
             "          22.40000914,  22.0650933 ],\n",
             "        [ 23.23995372,  23.83154769,  24.37425124, ...,  22.33205589,\n",
             "          22.31999207,  21.90016761],\n",
             "        ...,\n",
             "        [-21.33958202, -21.42702704, -21.59008797, ..., -32.39286229,\n",
             "         -31.77998965, -30.68542705],\n",
             "        [-25.18016938, -25.27962571, -25.45424895, ..., -31.59692286,\n",
             "         -31.21990373, -30.50374918],\n",
             "        [-27.41991592, -27.61580626, -27.89428887, ..., -30.22082077,\n",
             "         -29.94005118, -29.46365962]],\n",
             "\n",
             "       [[ 24.0399918 ,  24.4738043 ,  24.80504138, ...,  22.3005518 ,\n",
             "          22.17999269,  21.90488526],\n",
             "        [ 23.44006035,  23.94596863,  24.34916189, ...,  22.14060326,\n",
             "          22.02001341,  21.64896271],\n",
             "        [ 22.61993422,  23.08055197,  23.50708884, ...,  22.00442749,\n",
             "          21.85999148,  21.4763401 ],\n",
             "        ...,\n",
             "        [-20.75961675, -21.10036879, -21.49475055, ..., -31.42835583,\n",
             "         -30.53998416, -29.21720893],\n",
             "        [-24.08012063, -24.48176571, -24.93567845, ..., -31.02256587,\n",
             "         -30.35995796, -29.40131662],\n",
             "        [-25.71993572, -26.21789951, -26.77571005, ..., -30.30251281,\n",
             "         -29.76002651, -29.04128248]],\n",
             "\n",
             "       [[ 23.89998173,  24.23785823,  24.48503958, ...,  22.94893427,\n",
             "          22.84000093,  22.5407021 ],\n",
             "        [ 23.26005241,  23.69401855,  24.02915032, ...,  22.67702236,\n",
             "          22.64002378,  22.34076337],\n",
             "        [ 22.47993481,  22.85627254,  23.20697889, ...,  22.44473219,\n",
             "          22.41998905,  22.13282989],\n",
             "        ...,\n",
             "        [-20.63959725, -21.00361502, -21.44237497, ..., -33.05825483,\n",
             "         -32.39992993, -31.27825565],\n",
             "        [-24.22014135, -24.59693448, -25.03928029, ..., -32.93448695,\n",
             "         -32.61996466, -31.91279602],\n",
             "        [-26.13992323, -26.56508709, -27.04730983, ..., -32.23844089,\n",
             "         -32.14002072, -31.69677152]]])
    • slice
      (lat, lon)
      float64
      296.1 296.4 296.6 ... 235.4 237.5
      array([[296.13399675, 296.38669304, 296.63889823, ..., 296.47490793,\n",
             "        296.43398913, 296.19924566],\n",
             "       [295.97800871, 296.18274797, 296.42534501, ..., 296.09262341,\n",
             "        296.07802394, 295.72098714],\n",
             "       [296.04001766, 296.13556275, 296.30247974, ..., 295.77692914,\n",
             "        295.73997197, 295.35693248],\n",
             "       ...,\n",
             "       [245.04017912, 245.36087049, 245.56096188, ..., 233.93629106,\n",
             "        235.51802332, 238.0780694 ],\n",
             "       [243.27991042, 243.77519503, 244.17375053, ..., 233.81591274,\n",
             "        235.33999633, 237.63241841],\n",
             "       [242.24003289, 242.87912303, 243.43775032, ..., 233.84791841,\n",
             "        235.41999207, 237.49641598]])
  • regrid_method :
    bilinear
" ], "text/plain": [ "\n", "Dimensions: (lat: 59, lon: 87, time: 2920)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2013-01-01 ... 2014-12-31T18:00:00\n", " * lon (lon) float64 200.0 201.5 203.0 204.5 ... 324.5 326.0 327.5 329.0\n", " * lat (lat) float64 16.0 17.0 18.0 19.0 20.0 ... 70.0 71.0 72.0 73.0 74.0\n", "Data variables:\n", " celsius (time, lat, lon) float64 22.98 23.24 23.49 ... -32.24 -32.14 -31.7\n", " slice (lat, lon) float64 296.1 296.4 296.6 296.9 ... 233.8 235.4 237.5\n", "Attributes:\n", " regrid_method: bilinear" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# besides ordering dimensions properly, another simple fix is to drop bad variables\n", "regridder(ds_bad.drop(\"air\"))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }