Skip to content

Instantly share code, notes, and snippets.

@JiaweiZhuang
Created June 26, 2018 04:40
Show Gist options
  • Save JiaweiZhuang/02e0fd234ecde2aa313a34d336da6050 to your computer and use it in GitHub Desktop.
Save JiaweiZhuang/02e0fd234ecde2aa313a34d336da6050 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 (with nearest neighour algorithm)"
]
},
{
"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, 'nearest_s2d')"
]
},
{
"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": "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\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.NEAREST_STOD,\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')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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