{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Part 2: Verification of Derivative Function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_To run this script you need output from [Selecting and Reindexing of Area of Interest](../cutting_grid_window.ipynb)._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In [Part 1: Deriving Derivatives on Triangular Grid](calculating_gradient.ipynb) we introduced a `derivative()` function to calculate derivatives on a triangular grid. Since it is difficult to tell with the naked eye whether our function did what we wanted it to do, we create an artificially generated field that has a constant gradient along one axis and remains constant along the other axis." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import xarray as xr" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Range of area of interest:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Max Plancks birthplace, Kiel, Schleswig-Holstein, Germany\n", "left_bound = 9.88\n", "right_bound = 10.38\n", "top_bound = 54.57\n", "bottom_bound = 54.07" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We import the `selected_indices`, hence the indices for `cells`, `vertices` and `edges`, just like the `new_grid` which contains the grid information of the area of interest." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:                         (cell: 70, nv: 3, vertex: 50, ne: 6,\n",
       "                                     edge: 119, no: 4, nc: 2,\n",
       "                                     max_stored_decompositions: 4, two_grf: 2,\n",
       "                                     cell_grf: 14, max_chdom: 1, edge_grf: 24,\n",
       "                                     vert_grf: 13)\n",
       "Coordinates:\n",
       "    clon                            (cell) float64 0.1804 0.1805 ... 0.174\n",
       "    clat                            (cell) float64 0.9453 0.946 ... 0.9488\n",
       "    vlon                            (vertex) float64 0.1815 0.1807 ... 0.1717\n",
       "    vlat                            (vertex) float64 0.9456 0.9466 ... 0.9482\n",
       "    elon                            (edge) float64 0.1811 0.1814 ... 0.1724\n",
       "    elat                            (edge) float64 0.9461 0.9471 ... 0.9487\n",
       "  * cell                            (cell) int64 4282376 4282377 ... 4283130\n",
       "  * vertex                          (vertex) int32 2144929 2144932 ... 2145286\n",
       "  * edge                            (edge) int32 6427302 6427311 ... 6428420\n",
       "Dimensions without coordinates: nv, ne, no, nc, max_stored_decompositions,\n",
       "                                two_grf, cell_grf, max_chdom, edge_grf, vert_grf\n",
       "Data variables: (12/91)\n",
       "    clon_vertices                   (cell, nv) float64 0.1794 0.1802 ... 0.173\n",
       "    clat_vertices                   (cell, nv) float64 0.9457 0.9446 ... 0.9492\n",
       "    vlon_vertices                   (vertex, ne) float64 9.969e+36 ... 9.969e+36\n",
       "    vlat_vertices                   (vertex, ne) float64 9.969e+36 ... 9.969e+36\n",
       "    elon_vertices                   (edge, no) float64 0.1807 0.1805 ... 0.1728\n",
       "    elat_vertices                   (edge, no) float64 0.9466 0.946 ... 0.9485\n",
       "    ...                              ...\n",
       "    edge_dual_normal_cartesian_x    (edge) float64 -0.6706 -0.7373 ... -0.7362\n",
       "    edge_dual_normal_cartesian_y    (edge) float64 -0.5071 0.4974 ... 0.4973\n",
       "    edge_dual_normal_cartesian_z    (edge) float64 0.5414 0.4572 ... 0.4589\n",
       "    cell_circumcenter_cartesian_x   (cell) float64 0.576 0.5755 ... 0.5739\n",
       "    cell_circumcenter_cartesian_y   (cell) float64 0.105 0.105 ... 0.1003 0.1009\n",
       "    cell_circumcenter_cartesian_z   (cell) float64 0.8107 0.8111 ... 0.8127\n",
       "Attributes: (12/43)\n",
       "    title:                    ICON grid description\n",
       "    institution:              Max Planck Institute for Meteorology/Deutscher ...\n",
       "    source:                   git@git.mpimet.mpg.de:GridGenerator.git\n",
       "    revision:                 d00fcac1f61fa16c686bfe51d1d8eddd09296cb5\n",
       "    date:                     20180529 at 222250\n",
       "    user_name:                Rene Redler (m300083)\n",
       "    ...                       ...\n",
       "    topography:               modified SRTM30\n",
       "    subcentre:                1\n",
       "    number_of_grid_used:      15\n",
       "    history:                  Thu Aug 16 11:05:44 2018: ncatted -O -a ICON_gr...\n",
       "    ICON_grid_file_uri:       http://icon-downloads.mpimet.mpg.de/grids/publi...\n",
       "    NCO:                      netCDF Operators version 4.7.5 (Homepage = http...
" ], "text/plain": [ "\n", "Dimensions: (cell: 70, nv: 3, vertex: 50, ne: 6,\n", " edge: 119, no: 4, nc: 2,\n", " max_stored_decompositions: 4, two_grf: 2,\n", " cell_grf: 14, max_chdom: 1, edge_grf: 24,\n", " vert_grf: 13)\n", "Coordinates:\n", " clon (cell) float64 ...\n", " clat (cell) float64 ...\n", " vlon (vertex) float64 ...\n", " vlat (vertex) float64 ...\n", " elon (edge) float64 ...\n", " elat (edge) float64 ...\n", " * cell (cell) int64 4282376 4282377 ... 4283130\n", " * vertex (vertex) int32 2144929 2144932 ... 2145286\n", " * edge (edge) int32 6427302 6427311 ... 6428420\n", "Dimensions without coordinates: nv, ne, no, nc, max_stored_decompositions,\n", " two_grf, cell_grf, max_chdom, edge_grf, vert_grf\n", "Data variables: (12/91)\n", " clon_vertices (cell, nv) float64 ...\n", " clat_vertices (cell, nv) float64 ...\n", " vlon_vertices (vertex, ne) float64 ...\n", " vlat_vertices (vertex, ne) float64 ...\n", " elon_vertices (edge, no) float64 ...\n", " elat_vertices (edge, no) float64 ...\n", " ... ...\n", " edge_dual_normal_cartesian_x (edge) float64 ...\n", " edge_dual_normal_cartesian_y (edge) float64 ...\n", " edge_dual_normal_cartesian_z (edge) float64 ...\n", " cell_circumcenter_cartesian_x (cell) float64 ...\n", " cell_circumcenter_cartesian_y (cell) float64 ...\n", " cell_circumcenter_cartesian_z (cell) float64 ...\n", "Attributes: (12/43)\n", " title: ICON grid description\n", " institution: Max Planck Institute for Meteorology/Deutscher ...\n", " source: git@git.mpimet.mpg.de:GridGenerator.git\n", " revision: d00fcac1f61fa16c686bfe51d1d8eddd09296cb5\n", " date: 20180529 at 222250\n", " user_name: Rene Redler (m300083)\n", " ... ...\n", " topography: modified SRTM30\n", " subcentre: 1\n", " number_of_grid_used: 15\n", " history: Thu Aug 16 11:05:44 2018: ncatted -O -a ICON_gr...\n", " ICON_grid_file_uri: http://icon-downloads.mpimet.mpg.de/grids/publi...\n", " NCO: netCDF Operators version 4.7.5 (Homepage = http..." ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_indices = xr.open_dataset(\n", " f\"../selected_indices_region_{bottom_bound}-{top_bound}_{left_bound}-{right_bound}.nc\"\n", ")\n", "new_grid = xr.open_dataset(\n", " f\"../new_grid_region_{bottom_bound}-{top_bound}_{left_bound}-{right_bound}.nc\"\n", ")\n", "\n", "new_grid" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pylab as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create the artificially generated field:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "vlon = np.rad2deg(new_grid.vlon)\n", "vlat = np.rad2deg(new_grid.vlat)\n", "voc = new_grid.vertex_of_cell.T.values - 1\n", "test_field = np.rad2deg(new_grid.clon)\n", "\n", "fig, ax = plt.subplots(figsize=(10, 6))\n", "im = plt.tripcolor(vlon, vlat, voc, test_field, cmap=plt.cm.get_cmap(\"seismic\"))\n", "cbar = fig.colorbar(im)\n", "\n", "cbar.set_label(\"arb. unit\")\n", "ax.set_title(\"Testfield\")\n", "ax.set_xlabel(\"Longitude / deg\")\n", "ax.set_ylabel(\"Latitude / deg\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We just copied the function `derivative()` from [Part 2:](calculating_gradient.ipynb)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def derivative(grid, data):\n", " neighbors = (grid.neighbor_cell_index.values - 1).T\n", " valid = np.all(neighbors >= 0, axis=-1)\n", "\n", " cell_lon = np.rad2deg(new_grid.clon.values[valid])\n", " cell_lat = np.rad2deg(new_grid.clat.values[valid])\n", " neighbors_lon = np.rad2deg(new_grid.clon.values[neighbors[valid]])\n", " neighbors_lat = np.rad2deg(new_grid.clat.values[neighbors[valid]])\n", "\n", " p = data.values[..., neighbors[valid]]\n", " ones = np.ones_like(neighbors_lon)\n", " A = np.stack(\n", " (\n", " ones,\n", " neighbors_lon - cell_lon[:, np.newaxis],\n", " neighbors_lat - cell_lat[:, np.newaxis],\n", " ),\n", " axis=2,\n", " )\n", " A_inv = np.linalg.inv(A)\n", "\n", " alpha, beta, gamma = np.einsum(\"...ij,...j->i...\", A_inv, p)\n", "\n", " return alpha, beta, gamma, valid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We plug in our `test_field` and calculate the derivatives in both directions:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "test_0, dtestdlon, dtestdlat, valid = derivative(new_grid, test_field)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot it and we see that we do not see much ...\n", "But wait, eureka ! Take a look at the range of the colorbar. We are at $1\\mathrm{e}{-13}$..." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "voc_valid = voc[valid]\n", "\n", "fig, ax = plt.subplots(figsize=(10, 6))\n", "im = plt.tripcolor(vlon, vlat, voc_valid, dtestdlon, cmap=plt.cm.get_cmap(\"seismic\"))\n", "cbar = fig.colorbar(im)\n", "\n", "cbar.set_label(\"arb. unit\")\n", "ax.set_title(\"Longitudinal Derivative of Testfield\")\n", "ax.set_xlabel(\"Longitude / deg\")\n", "ax.set_ylabel(\"Latitude / deg\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...so we simply round to the 12th digit after the decimal point and get a white area with the corresponding color scheme. What we get is a derivative approximately equal to `1` for the whole area of interest." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "dtestdlon_rounded = np.round(dtestdlon, 12)\n", "\n", "fig, ax = plt.subplots(figsize=(10, 6))\n", "im = plt.tripcolor(\n", " vlon, vlat, voc_valid, dtestdlon_rounded, cmap=plt.cm.get_cmap(\"seismic\")\n", ")\n", "cbar = fig.colorbar(im)\n", "\n", "cbar.set_label(\"arb. unit\")\n", "ax.set_title(\"Longitudinal Derivative of Testfield\")\n", "ax.set_xlabel(\"Longitude / deg\")\n", "ax.set_ylabel(\"Latitude / deg\")\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is exactly what we expected. Because, if you have been paying attention, you will have seen that we have chosen as `test_field` the longitudinal coordinate of the corresponding cell, namely `test_field = np.rad2deg(new_grid.clon)`. This means that for every `1 deg` change in position along the west-east axis, the value of our test field has changed by exactly `1`. The corresponding derivation along the chosen axis then inevitably results in `1` - voilà !
\n", "\n", "The same can of course still be done and checked along the latitudinal axis. For this purpose, a corresponding `test_field` must be generated, but we leave this to you as a small task. Enjoy !" ] } ], "metadata": { "jupytext": { "formats": "ipynb,md:myst" }, "kernelspec": { "display_name": "Python 3 (based on the module python3/2022.01)", "language": "python", "name": "python3_2022_01" }, "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.9.9" } }, "nbformat": 4, "nbformat_minor": 4 }