Skip to content

Instantly share code, notes, and snippets.

@JiaweiZhuang
Created June 26, 2018 04:08
Show Gist options
  • Save JiaweiZhuang/6c6b00f5f4da1113e9ad33f223f9ad58 to your computer and use it in GitHub Desktop.
Save JiaweiZhuang/6c6b00f5f4da1113e9ad33f223f9ad58 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ESMPy masking test"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import xesmf as xe\n",
"import ESMF"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Prepare grid & data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (x: 12, x_b: 13, y: 6, y_b: 7)\n",
"Coordinates:\n",
" lon (y, x) float64 -110.0 -90.0 -70.0 -50.0 -30.0 -10.0 10.0 30.0 ...\n",
" lat (y, x) float64 -50.0 -50.0 -50.0 -50.0 -50.0 -50.0 -50.0 -50.0 ...\n",
" lon_b (y_b, x_b) int64 -120 -100 -80 -60 -40 -20 0 20 40 60 80 100 ...\n",
" lat_b (y_b, x_b) int64 -60 -60 -60 -60 -60 -60 -60 -60 -60 -60 -60 ...\n",
"Dimensions without coordinates: x, x_b, y, y_b\n",
"Data variables:\n",
" *empty*"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# very coarse grid to emphasize masking effect\n",
"ds_in = xe.util.grid_2d(-120, 120, 20, -60, 60, 20)\n",
"ds_in"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (x: 11, x_b: 12, y: 5, y_b: 6)\n",
"Coordinates:\n",
" lon (y, x) float64 -100.0 -80.0 -60.0 -40.0 -20.0 0.0 20.0 40.0 ...\n",
" lat (y, x) float64 -40.0 -40.0 -40.0 -40.0 -40.0 -40.0 -40.0 -40.0 ...\n",
" lon_b (y_b, x_b) int64 -110 -90 -70 -50 -30 -10 10 30 50 70 90 110 ...\n",
" lat_b (y_b, x_b) int64 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 -50 ...\n",
"Dimensions without coordinates: x, x_b, y, y_b\n",
"Data variables:\n",
" *empty*"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# get some cell overlapping with the source grid\n",
"ds_out = xe.util.grid_2d(-110, 110, 20, -50, 50, 20)\n",
"ds_out"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'source grid in blue; destination grid in black')"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot grid structure\n",
"plt.pcolormesh(ds_in['lon_b'], ds_in['lat_b'], np.zeros_like(ds_in['lon']), \n",
" cmap='Greys', edgecolors='b')\n",
"plt.pcolormesh(ds_out['lon_b'], ds_out['lat_b'], np.zeros_like(ds_out['lon']), \n",
" cmap='Greys', edgecolors='k', alpha=0.9)\n",
"plt.xlim(-180, 180)\n",
"plt.ylim(-90, 90)\n",
"plt.title('source grid in blue; destination grid in black')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"data_in = xe.data.wave_smooth(ds_in['lon'].values, ds_in['lat'].values)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'input data (without nan)')"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.pcolormesh(ds_in['lon_b'], ds_in['lat_b'],data_in, vmin=0)\n",
"\n",
"def tweak_plot():\n",
" 'reuse later'\n",
" plt.xlim(-120, 120)\n",
" plt.ylim(-60, 60)\n",
" plt.colorbar()\n",
" \n",
"tweak_plot()\n",
"plt.title('input data (without nan)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Regridding test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case 1 (reference): no nan in data, no masking in ESMPy"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"grid_in = xe.backend.esmf_grid(ds_in['lon'].values.T, ds_in['lat'].values.T)\n",
"xe.backend.add_corner(grid_in, ds_in['lon_b'].values.T, ds_in['lat_b'].values.T)\n",
"\n",
"grid_out = xe.backend.esmf_grid(ds_out['lon'].values.T, ds_out['lat'].values.T)\n",
"xe.backend.add_corner(grid_out, ds_out['lon_b'].values.T, ds_out['lat_b'].values.T)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"regrid = xe.backend.esmf_regrid_build(grid_in, grid_out, 'conservative')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(5, 11)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_out = xe.backend.esmf_regrid_apply(regrid, data_in.T).T\n",
"data_out.shape"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'reference regridding result (without nan)')"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.pcolormesh(ds_out['lon_b'], ds_out['lat_b'], data_out, vmin=0)\n",
"tweak_plot()\n",
"plt.title('reference regridding result (without nan)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case 2 (xESMF current default): nan in data, no masking in ESMPy "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'input data with nan')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_in_with_nan = data_in.copy()\n",
"data_in_with_nan[1,1] = np.nan\n",
"data_in_with_nan[2:4,5:7] = np.nan\n",
"data_in_with_nan[0,-1] = np.nan\n",
"\n",
"plt.pcolormesh(ds_in['lon_b'], ds_in['lat_b'], data_in_with_nan, vmin=0)\n",
"tweak_plot()\n",
"plt.title('input data with nan')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'regridding result with nan')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# use the same regridder\n",
"data_out_with_nan = xe.backend.esmf_regrid_apply(regrid, data_in_with_nan.T).T\n",
"\n",
"plt.pcolormesh(ds_out['lon_b'], ds_out['lat_b'], data_out_with_nan, vmin=0)\n",
"tweak_plot()\n",
"plt.title('regridding result with nan')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case 3 (possible pre-processing by users): nan->zero before regridding, no masking in ESMPy"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"data_in_with_zero = data_in_with_nan.copy()\n",
"data_in_with_zero[np.isnan(data_in_with_nan)] = 0.0"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'regridding result (nan->zero before regridding)')"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWgAAAEICAYAAAByEW6PAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xm8XVV99/HPl4QZFDAMIQOBEhRoreCVodgKijKIoFYUrICAjfCAYqtl9FEc6IM+LVYfFBohMogMDw6kGougIA5ACBiQEFIiIISEOUxFA8n99Y+1Lm4OZ7o5+9yz7z3fd177lbOntdY+Z5/fXXvttfZRRGBmZtWzRq8LYGZm9TlAm5lVlAO0mVlFOUCbmVWUA7SZWUU5QJuZVdSYC9CSFkjas8G6PSUtabLvBZK+mF//taRFXSrmiJD0YUm/HOY+m0paJGmdbpVrtJJ0v6S9V3Pf10r6jaRnJX287LKNNElTJT0naVyD9adL+naT/V96LyWdKum8kso1V9KOZaRVBeN7XYCyRUQpH05E/AJ4bRlpVYWkAKZHxOImm50MfCsi/jhCxeoXJwLXR8ROvS5IGSLiAWCDktL65zLSyf4F+DzwtyWm2TM9q0FLKvWPQ9npjRQllbiSkbQ2cATQsObT5fw3laQRymukz5etgAWrs2OnZe2z79psYC9JE3tdkDKMaGDIlzUnSboD+G9J4yVtKem7kh6TdF/x8k/SupIulLRc0kJJJxabKBqkV7x0Wjc3WyyXdBfwppry7CTptnzZeTmwTmHdnnXy+pSkOyQ9LenyYjNALtsySUslfURSSNq2wftwvaQzJP0KeB7YRtKrJZ2f03hI0heHLh8lbSvp5znfx3NZkTQt5zO+Ju2P1Mnzhvzy9nxp+oE6RdsVeCoiisd9vaQvSPpVfp9+ImlCYf3/l/RwLtsNxcvL/N5/XdKP8r43S/qzeu9JdhRwn6TPSdq6wXu3ZS7/0PR8vjIYWn9UPleWS7pa0laFdSHpOEn3APfkZX8l6ZZc/lsk/VWT8gG8SdJdOf1v1ZwDB0iaL+kpSb+W9Pq8/GfAXsDZuczb5c/7onze/17Sp5X/UCs1Tf1K0lckPQmc3urYat6jofPiaEkPAD/Ly3fL5XpK0u0qNAVK2jp/fs9KujZ/bt9ulF7tuZf3/3ne/xpgQk2ZDsvH+YSk02rWnV4nryMkPZDP99MK2zaNCfnK71bgHS0+x9EhIkZsAu4H5gNTgHVJfyBuBT4DrAVsA9wL7JO3PxP4ObAxMBm4A1jSKL3Csr0L+/8C2CRvc+fQ/jm/3wP/AKwJvA94EfhiXr9nnbzmAlvm9BYCx+R1+wIPAzsC6wEXAwFs2+B9uB54IG8/Puf/A+DfgfWBzXJeH83bXwqclt+vdYA35+XTcj7ja9L+SH79YeCXhXUNy5TXHwf8qE5Zfwdslz+z64EzC+uPAjYE1gb+DZhfWHcB8CSwSz7OS4DLWpwjuwHnAE8A1wGHA+s12f4S4NL8+t3AYmD7nN+ngV/XHP81+fNbN/+/HDgsb39onn9Nk/P3znwubQL8qnC+7Aw8SvojN450JXI/sHbt55LnLwKuyu/dNOC/gKMLn9tK4GO5XOu2Oraacg6dFxfl82ldYFJ+T/fP59Hb8/ymeZ8bSc0DawFvBp4Bvt0kvaFl4wv7n5XPg78Bni3svwPwXF6+dt5uJX/6np5eJ69v5nz+ElgBbN9OTMjbfA04ayRjW9di5ohmlk7YowrzuwIP1GxzCqkNFArBOs9/hFcGzaPq5LF3Yf99C+tm8KcA/TfAUkCF9b+meYD+UGH+y8C5+fUs4P8U1m1L6wD9+cL85vkkXLew7FDguvz6ImAmMLnBF7GsAH0aNQE0p/fpwvz/Av6zwf4b5TxenecvAM4rrN8fuLvNc2Vt4P3AHFKQP6/ONieR/sAP/XH+MTnI5fk1SFcoWxWO/62F9YcBc2vSvBH4cJPz95ia4/ldfn0O8IWa7RcBb6nzuYzLn/cOhW0/SmqjHvrcar8XTY+twXmxTc17dXHNdleT/pBMJQXM9Qrrvs0rg+Y2dfIYX9h//cL67xT2/0zxvCIF+RdoHqAnF7afCxxS+E43jAl52RnArHbOs6pPvWj7fLDweitgy3zJ9ZSkp4BTSQELUm31wQb7Nls2pHb/39eseyjyJ1pnfT0PF14/z59ukrRTzlq178OawLLC+/DvpJo0pBtMAuYq9VI5qo30V8dyUo2uVt3jljRO0pmSfifpGVIAg5df3jba99RCM8W5tRlGxApS7Wg+6cv8F8X1kvYDTgDeHRF/yIu3Ar5aeA+fJL1vkwq7Ft/3LXnlZ/77mu1r1Z5PWxby/mTNuTylsL5oAn+6gmuUb+051M6xNSvrVsDBNeV7MzAxl/HJiHi+Sf6NlpH3Xx4R/11zPMX1L+2bt3uiSbmhs+/ahsBTLdIfFXoRoIsB8UHgvojYqDBtGBH75/XLSJcxQ6a0SK/Wspp9ptasmyS97KZUcf1wtFPOWrXvwwpgQuF9eFXkHikR8XBE/H1EbEmqaX1DqX176AuxXiGtLVbzGCAFxO2Gsf0HgYOAvYFXk2o/kAJHUxHxzxGxQZ6OGVou6TWSjpc0l9R2Oh7YKyJ2LWzzWuBC4P0RUftl/WjN+bRuRPy6mHXh9VJS4CqaCjzUpOi159PSQt5n1OS9XkRcWieNx0nNacW8a/OtPa/bObZatefYxTX7rx8RZ5LO300kFc+j4XzXlgEbS1q/5niK619KL+fzmiblbqad79r2wO2rmX6l9Lr3wFzgGaUbfevmGtmfSxq6mXcFcIqkjSVNAo4fZvrF/SeT2vSG3Ei6LPu40s3F95LaSlfHFcCRkrbPJ99nhrNzRCwDfgL8q6RXSVpD0p9JeguApINz+SHVcgNYFRGPkb7UH8rv3VFAs5twj5Da+RuZC2yU3+t2bEj6w/IE6Y9ER92lJB1NqoW/BfgcMCUiToyIhYVtXkVqu/10RNT28T6X9HnvmLd9taSDm2Q5B9hO0gfzOfABUnvpD5vsc5ykyZI2IV3tXZ6XfxM4RtKuStaX9E5Jr7giiYhVpHPmDEkb5pt9/0jz3jPDPbZa3wbeJWmffK6so3QjfHJE/B6YB5wuaS1JuwPvajfhwv6fy/u/uWb/K4EDJL1Z0lqkbnCrG3uaxgSlnkhvJN1rGPV6GqDzifou4A3AfaSaxXmk2hikD3JJXnct6YNeMYwsPke61LqPFAAvLuT9AvBeUnvfcuADwPdW8zh+TLoxcR3pRs6NedVwyno46bL3rlyeK0mXn5B6n9ws6TlSN6ITIuK+vO7vgX8iBckdSe3ojZwOXJgvcd9f5zheILUbf6jNMl9Een8fyuW+qc39GrmR1KZ6cET8KJ8ftXYm9U8/q9BE8lwu//eBLwGX5SaXO4H9GmUWEU8ABwCfJL1/JwIHRMTjTcr4HdK5dG+evpjTmkf6LM4mfX6LSedWIx8jXQHdC/wypzurSVmHdWx19n+QdLVzKvAYqUb9T/wpBvwdsDvpffgi6Q/PcM7fD5LuKT0JfJZ0bgzlvYB0A/o7pBrwctL3enW0igkHktryl9bZd9TRy5tgq03SsaSbBW/pdVmakbQ96Qu0dkSs7HV5hkPSpqSeLzsV2natzyh15bw7Ij7b67I0UxsTJN1Mupl6Z29LVo5eN3E0JWmipD3yJf9rSTWd7/e6XPVIek++vNuYVNP5j9EWnAEi4rGIeJ2Dc3+R9KbcrLaGpH1Jte0f9LpctVrFhIjYdawEZygpQEvaSNKVku5W6jy+u6RNJF0j6Z78/8arkfRapN4Mz5JuGF0FfKOMMnfBR0mXjr8DVgHH9rY4ZsOyBakr4HOk5rpjI+I3PS1RfaMpJnSslCYOSRcCv4iI8/JNgPVIbV1PRsSZkk4GNo6IkzrOzMysT3QcoPNd9dtJndijsHwRsGdELFMaF399RIyphw+ZmXVTGQ892YZ0af8tSX9JGtl1ArB57j5GDtKb1dtZ0gzSCD/WX3/9N77uda8roUhmNtbdeuutj0fEpp2ksc9e68cTT9brLFQnvztWXB0R+3aS33CVEaDHk7o+fSwibpb0VdIjK9sSETNJw5gZGBiIefPmlVAkMxvrJLUa+dvSE0+uYu7V7Y1PGzfxngmttypXGTcJl5DGwt+c568kBexHctMG+f9HS8jLzKw0AQy2+a8ZSVMkXZc7SSyQdEKdbfZUemri/Dy1HNDWcQ06Ih6W9KCk10bEIuBtpEELd5EexHJm/v+qTvMyMytTELxYdzzUsK0EPhkRt+XRo7dKuiYi7qrZ7hcRcUC7iZb14O2PAZfkHhz3AkeSaudX5OG7DwDDGZZqZjYiWtWO25Hvtw3dc3tW0kLSg6xqA/SwlBKgI2I+MFBn1dvKSN/MrBuCYFX7PdkmSCreJJuZ76G9jKRpwE7AzbXrgN0l3U56yNan8jD4hqr80zVmZl032PSBmC/zeETUq4i+RNIGwHeBT0TEMzWrbyM9a+Y5SfuTRmpOb5ZepYd6m5l1UwCriLamViStSQrOl0TEKx68FhHPRMTQg73mAGuq8PNx9bgGbWZ9bRg16IYkCTgfWBgRZzXYZgvgkYgISbuQKshNf7jAAdrM+lYAL5bzRM89SD+h9ltJ8/OyU8k/XBAR55J+9/RYSSuBP5Cewtc0cwdoM+tb0WbzRct00o9HNP0loYg4m/S88LY5QJtZ/wpYVeFH4jtAm1nfSiMJq8sB2sz6mFjV+jeOe8YB2sz6VrpJ6ABtZlY5qR+0A7SZWSUNugZtZlY9rkF3ybSLz+x1EYZt4uZPdSXdAyff0ZV0P/Cq7vxm6LTxG3YlXYD7Vz7blXQvf2anrqQ7e8nru5IuwLJHNupa2t1y/2Ft/9ZHKQKxqsJPvBi1AdrMrAxu4jAzq6BAvBDjel2MhhygzaxvpYEqbuIwM6sk3yQ0M6ugCLEqXIM2M6ukQdegzcyqJ90krG4YrG7JzMy6zDcJzcwqbJX7QZuZVY9HEpqZVdige3GYmVVPeliSA7SZWeUE4kUP9TYzq54IKj1QpbSSSRon6TeSfpjnt5Z0s6R7JF0uaa2y8jIzK4cYbHPqhTL/dJwALCzMfwn4SkRMB5YDR5eYl5lZx4JUg25n6oVScpU0GXgncF6eF/BW4Mq8yYXAu8vIy8ysTKtYo62pF8pqg/434ERg6KcyXgM8FREr8/wSYFJJeZmZlSLQ2H5gv6QDgEcj4lZJew4trrNpNNh/BjADYOrUqZ0Wx8ysbQG8OMafxbEHcKCk/YF1gFeRatQbSRqfa9GTgaX1do6ImcBMgIGBgbpB3MysO1Tp50F33LASEadExOSImAYcAvwsIv4OuA54X97sCOCqTvMyMytTkEYStjP1QjdzPQn4R0mLSW3S53cxLzOz1bIq16JbTb1QauNLRFwPXJ9f3wvsUmb6ZmZlipCfxWFmVkXpJqGHepuZVZB/k9DMrJLSTcIx3IvDzGw0K2MkoaQpkq6TtFDSAkkn1NlGkr4mabGkOyTt3KpsrkGbWd8qcSThSuCTEXGbpA2BWyVdExF3FbbZD5iep12Bc/L/DbkGbWZ9bZA12pqaiYhlEXFbfv0s6cFxtY+3OAi4KJKbSIP5JjZL1zVoM+tbEfDiYNv11AmS5hXmZ+aR0C8jaRqwE3BzzapJwIOF+aFnFC1rlKEDtJn1rdTE0XaAfjwiBpptIGkD4LvAJyLimdrVdYvQhAO0mfW1skYJSlqTFJwviYjv1dlkCTClMN/wGUVD3AZtZn1rqJtdO1Mz+Rn45wMLI+KsBpvNBg7PvTl2A56OiIbNG+AatJn1tdKGeu8BHAb8VtL8vOxUYCpARJwLzAH2BxYDzwNHtkrUAdrM+loZvzcYEb+kfhtzcZsAjhtOug7QZta3Ui8OP4ujdOMeHX0/Er58/fW6ku6Ga/yxK+me9EB3fkZy3q3bdiVdgIE3Lu5Kum/ZZFFX0l3+XHfOCRid35GRNuZ/8srMbDQro4mjWxygzaxvVf1hSQ7QZtbX/MB+M7MKihArHaDNzKrJTRxmZhXkNmgzswpzgDYzqyD3gzYzqzD3gzYzq6AIWNn+A/tHnAO0mfU1N3GYmVWQ26DNzCosHKDNzKqpyjcJO24dlzRF0nWSFkpaIOmEvHwTSddIuif/v3HnxTUzK09EOT951S1l3L5cCXwyIrYHdgOOk7QDcDLw04iYDvw0z5uZVYhYNbhGW1MvdJxrRCyLiNvy62eBhcAk4CDgwrzZhUB3nv5uZtaBCLU19UKpbdCSpgE7ATcDmw/9Ym1ELJO0WYN9ZgAzAKZOnVpmcczMmqr6szhKq7dL2gD4LvCJiHim3f0iYmZEDETEwKabblpWcczMWovUDt3O1AulBGhJa5KC8yUR8b28+BFJE/P6icCjZeRlZlamQdTW1Atl9OIQcD6wMCLOKqyaDRyRXx8BXNVpXmZmZYqK3yQsow16D+Aw4LeS5udlpwJnAldIOhp4ADi4hLzMzErVq+aLdnQcoCPil9Cw/v+2TtM3M+smjyQ0M6ugdAPQAdrMrJKq3M3OAdrM+tqYboM2MxutAjHoB/abmVVThSvQDtBm1sd8k9DMrMIqXIV2gDazvlblGnR1W8fNzLosgMFBtTW1ImmWpEcl3dlg/Z6SnpY0P0+faZWma9Bm1r8CKK8GfQFwNnBRk21+EREHtJugA7SZ9bWy+kFHxA35mfilcROHmfW3aHOCCZLmFaYZq5Hb7pJul/RjSTu22njU1qDH/aG6DfuNrFzZnb+Ha6g7t6Fvu2l6V9Ld9lM3diVdgNv+ZfeupLvXO+/uSrrdOidgdH5HRt6wfs7q8YgY6CCz24CtIuI5SfsDPwCafslcgzaz/tZ+DbqzbCKeiYjn8us5wJqSJjTbZ9TWoM3MOhYQbfTQKIOkLYBHIiIk7UKqID/RbB8HaDPrc+UEaEmXAnuS2qqXAJ8F1gSIiHOB9wHHSloJ/AE4JKL5LUoHaDPrb+X14ji0xfqzSd3w2uYAbWb9zUO9zcwqqNyBKqVzgDazvuYH9puZVdUI9eJYHQ7QZtbXujTOqxQO0GbWv0oahNItDtBm1sfkm4RmZpXlGrSZWUUN9roAjTlAm1n/qng/6K4/zU7SvpIWSVos6eRu52dmNhyK9qZe6GqAljQO+DqwH7ADcKikHbqZp5nZsIzQ40ZXR7dr0LsAiyPi3oh4AbgMOKjLeZqZjQndDtCTgAcL80vyspdImjH0EzKPPfZYl4tjZvZyfdvEQf0Hrb7sUCNiZkQMRMTApptu2uXimJkVBGmodztTD3S7F8cSYEphfjKwtMt5mpm1r8L9oLtdg74FmC5pa0lrAYcAs7ucp5lZ26rcxNHVGnRErJR0PHA1MA6YFRELupmnmdmwVLgG3fWBKvnXa+d0Ox8zs9XSzwHazKyqetl80Q4HaDPrb35gv5lZNbkGbWZWVQ7QZmYV5DZoM7MKc4A2M6smVfiB/V1/HrSZma0e16DNrL+5icPMrIJ8k9DMrMIcoM3MKsoB2sysekS1e3GM2gC9zhO9LsHwvTC+O2fCYJd+Nn7n3e7pSrrzvrpbV9IFGHhjd8rcrfd4fJfOCYAX161w1bAq3AZtZlZhFQ7Q7gdtZv0t2pxakDRL0qOS7mywXpK+JmmxpDsk7dwqTQdoM+trJf7k1QXAvk3W7wdMz9MM4JxWCTpAm1l/K6kGHRE3AE822eQg4KJIbgI2kjSxWZpugzaz/hXD6sUxQdK8wvzMiJg5jNwmAQ8W5pfkZcsa7eAAbWb9rf2bhI9HxEAHOdXrCtQ0dwdoM+trI9jNbgkwpTA/GVjabAe3QZtZfyupDboNs4HDc2+O3YCnI6Jh8wa4Bm1m/ay84IukS4E9SW3VS4DPAmsCRMS5wBxgf2Ax8DxwZKs0HaDNrG+J8po4IuLQFusDOG44aTpAm1lf81BvM7OqcoA2M6uoCgfojnpxSPq/ku7O48q/L2mjwrpT8pjzRZL26byoZmYla3OYd6+aQTrtZncN8OcR8Xrgv4BTACTtABwC7Egam/4NSeM6zMvMrHwj181u2DoK0BHxk4hYmWdvInW8hjTm/LKIWBER95G6lezSSV5mZt2gwfamXihzoMpRwI/z60Zjzl9B0gxJ8yTNe+yxx0osjplZa1Vu4mh5k1DStcAWdVadFhFX5W1OA1YClwztVmf7uoeYHzYyE2BgYKDCzfVmNub0sPmiHS0DdETs3Wy9pCOAA4C35Y7YsBpjzs3MeqLCAbrTXhz7AicBB0bE84VVs4FDJK0taWvSA6rndpKXmVnZhkYSjtomjhbOBtYGrpEEcFNEHBMRCyRdAdxFavo4LiJWdZiXmVnpNFjdKnRHAToitm2y7gzgjE7SNzPrqtHeBm1mNpb5WRxmZlXlAG1mVk2uQZuZVZUDtJlZBQ3vV71HnAO0mfWtMn9RpRscoM2sv0V1I7QDtJn1NdegzcyqyANVzMyqyzcJzcwqygHazKyKAt8kNDOrKt8k7IIVm/S6BMO3yQbPt95oNTw7uE5X0v3S1B90Jd1p22zYlXQB7l/5bFfSvfyZnbqS7sZdOicAlm22VlfSXWfx2l1Jt2ccoM3MqscDVczMqipi7D6w38xs1KtufHaANrP+5iYOM7MqCsBNHGZmFVXd+OwAbWb9rcpNHGv0ugBmZr2kwWhrapmOtK+kRZIWSzq5zvoPS3pM0vw8faRVmq5Bm1n/KulpdpLGAV8H3g4sAW6RNDsi7qrZ9PKIOL7ddF2DNrO+lQaqRFtTC7sAiyPi3oh4AbgMOKjT8jlAm1l/G2xzggmS5hWmGYVUJgEPFuaX5GW1/lbSHZKulDSlVdHcxGFmfa2N2vGQxyNioFEydZbVJvwfwKURsULSMcCFwFubZegatJn1rxjG1NwSoFgjngwsfVlWEU9ExIo8+03gja0SLSVAS/qUpJA0Ic9L0tfy3cw7JO1cRj5mZuVqrwdHG704bgGmS9pa0lrAIcDs4gaSJhZmDwQWtkq04yaO3I7yduCBwuL9gOl52hU4J/9vZlYtJTywPyJWSjoeuBoYB8yKiAWSPg/Mi4jZwMclHQisBJ4EPtwq3TLaoL8CnAhcVVh2EHBRRARwk6SNJE2MiGUl5GdmVo4o7yevImIOMKdm2WcKr08BThlOmh01ceS/Bg9FxO01q9q9o2lm1lsR7U090LIGLelaYIs6q04DTgXeUW+3OsvqHmHuqjIDYOrUqa2KY2ZWrgoP9W4ZoCNi73rLJf0FsDVwuyRIdy1vk7QLbdzRLKQ/E5gJMDAwUOG3yszGIg1W92e9V7uJIyJ+GxGbRcS0iJhGCso7R8TDpLuXh+feHLsBT7v92cwqJxjOQJUR162BKnOA/YHFwPPAkV3Kx8xstYm2hnH3TGkBOteih14HcFxZaZuZdU0/BGgzs1HJAdrMrIKG2qArygHazPpalXtxOECbWR/r3SCUdjhAm1n/Chygzcwqq7otHA7QZtbf+qIftJnZqOQAbWZWQRGwqrptHA7QZtbfXIM2M6soB2gzswoKoPXvDfaMA7SZ9bGAcBt06Rb973/odRGsgrbpUrrD+iG54aS7Q5cStvYEvkloZlZZboM2M6soB2gzsyryw5LMzKopAD9u1MysolyDNjOrIg/1NjOrpoBwP2gzs4rySEIzs4pyG7SZWQVFuBeHmVlluQZtZlZFQaxa1etCNOQAbWb9y48bNTOrsAp3s1uj0wQkfUzSIkkLJH25sPwUSYvzun06zcfMrGwBxGC0NbUiad8c7xZLOrnO+rUlXZ7X3yxpWqs0O6pBS9oLOAh4fUSskLRZXr4DcAiwI7AlcK2k7SKiuo09ZtZ/opwH9ksaB3wdeDuwBLhF0uyIuKuw2dHA8ojYVtIhwJeADzRLt9Ma9LHAmRGxAiAiHs3LDwIui4gVEXEfsBjYpcO8zMxKF6tWtTW1sAuwOCLujYgXgMtIcbDoIODC/PpK4G2S1CzRTtugtwP+WtIZwB+BT0XELcAk4KbCdkvysleQNAOYkWefk7SowzI1MgF4vEtp99pYPjbw8Y123Tq+rTpN4FmWX31tXDmhzc3XkTSvMD8zImbm15OABwvrlgC71uz/0jYRsVLS08BraPLetAzQkq4Ftqiz6rS8/8bAbsCbgCskbQPU+6tQtxEnH+DMeuvKJGleRAx0O59eGMvHBj6+0a7KxxcR+5aUVDsxr+24OKRlgI6IvRuWSDoW+F5EBDBX0iDpr+USYEph08nA0lZ5mZmNUu3EvKFtlkgaD7waeLJZop22Qf8AeCuApO2AtUjV9dnAIfmu5dbAdGBuh3mZmVXVLcB0SVtLWovUSWJ2zTazgSPy6/cBP8uV24Y6bYOeBcySdCfwAnBEznCBpCuAu4CVwHEV6MHR9WaUHhrLxwY+vtFurB/fUJvy8cDVwDhgVkQskPR5YF5EzAbOBy6WtJhUcz6kVbpqEcDNzKxHOh6oYmZm3eEAbWZWUWMuQEs6OA87H5Q0ULOu7vDzVkM0q0rS6ZIekjQ/T/sX1o2Jofaj9bNpRNL9kn6bP695edkmkq6RdE/+f+Nel7NdkmZJejTfhxpaVvd4lHwtf5Z3SNq5dyUfHcZcgAbuBN4L3FBcWDP8fF/gG5LGFYZo7gfsAByatx0tvhIRb8jTHGh8rL0s5OoYA59NI3vlz2uoAnEy8NOImA78NM+PFheQzrGiRsezH6lH13TS4LRzRqiMo9aYC9ARsTAi6o1GbDT8vJ0hmqPNWBlqPxY/m3qKQ4AvBN7dw7IMS0TcwCv78jY6noOAiyK5CdhI0sSRKenoNOYCdBP1hmJOarJ8tDg+Xy7OKlwaj/ZjGjJWjqMogJ9IujU/5gBg84hYBpD/36xnpStHo+MZi59nV43K50E3G34eEVc12q3OsqD+H6nK9D1sMdT+HOALpPJ+AfhX4ChWY0hpRY2V4yjaIyKW5ic/XiPp7l4XaASNxc+zq0ZlgG42/LyJZkMxKzssvd1jlfRN4Id5dqwMtR8rx/GSiFia/39U0vdJzTiPSJoYEcvyJf+jTROpvkbHM+Y+z27rpyaORsPP2xmiWUk17XfvId0ghbEz1H7Ufjb1SFpf0oZPsYRkAAAAxklEQVRDr4F3kD6z4hDgI4BGV4GjRaPjmQ0cnntz7AY8PdQUYvWNyhp0M5LeA/w/YFPgR5LmR8Q+edhl3eHn9YZo9qj4w/VlSW8gXSbeD3wUoNmxjiaNhs/2uFid2Bz4fn4E8HjgOxHxn5JuIT0J8mjgAeDgHpZxWCRdCuwJTJC0BPgscCb1j2cOsD/ppvXzwJEjXuBRxkO9zcwqqp+aOMzMRhUHaDOzinKANjOrKAdoM7OKcoA2M6soB2gzs4pygDYzq6j/ATjCbECJV4IpAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"data_out_with_zero = xe.backend.esmf_regrid_apply(regrid, data_in_with_zero.T).T\n",
"plt.pcolormesh(ds_out['lon_b'], ds_out['lat_b'], data_out_with_zero, vmin=0)\n",
"tweak_plot()\n",
"plt.title('regridding result (nan->zero before regridding)')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Case 4 (ESMPy built-in masking): nan->zero in data, masking in ESMPy"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1]], dtype=int32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grid_in.add_item(ESMF.GridItem.MASK, staggerloc=ESMF.StaggerLoc.CENTER)\n",
"# default is all 1 (unmasked)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[array([[1, 1, 1, 1, 1, 1],\n",
" [1, 0, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 0, 0, 1, 1],\n",
" [1, 1, 0, 0, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [1, 1, 1, 1, 1, 1],\n",
" [0, 1, 1, 1, 1, 1]], dtype=int32), None, None, None]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"grid_in.mask[0][...] = np.where(np.isnan(data_in_with_nan.T), 0, 1)\n",
"grid_in.mask # set masked cell to 0"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# rebuild regridder with mask\n",
"regrid_masked = ESMF.Regrid(ESMF.Field(grid_in), ESMF.Field(grid_out), \n",
" regrid_method=ESMF.RegridMethod.CONSERVE,\n",
" unmapped_action=ESMF.UnmappedAction.IGNORE,\n",
" src_mask_values=[0], dst_mask_values=[0])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"data_out_with_mask = xe.backend.esmf_regrid_apply(regrid_masked, data_in_with_nan.T).T"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5,1,'regridding result with ESMPy masking')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.pcolormesh(ds_out['lon_b'], ds_out['lat_b'], data_out_with_mask, vmin=0)\n",
"tweak_plot()\n",
"plt.title('regridding result with ESMPy masking')"
]
}
],
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment