{ "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", "
<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",
"    NCO:                      netCDF Operators version 4.7.5 (Homepage = http...