{ "cells": [ { "cell_type": "markdown", "id": "e80ae713-2cab-4917-843f-d65ad05992a7", "metadata": {}, "source": [ "In this notebook, we will define and visualize the grid that will be used for the California current model.\n", "\n", "First, import packages to create and visualize the model grid here:" ] }, { "cell_type": "code", "execution_count": 1, "id": "613704d1-012e-49df-806d-b8348c5a4777", "metadata": {}, "outputs": [], "source": [ "# import the modules for computations and plotting\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import cartopy\n", "import cartopy.crs as ccrs\n", "\n", "# import the distance function from eccoseas\n", "from eccoseas.toolbox import distance as etd\n" ] }, { "cell_type": "markdown", "id": "fb10c986-3f2c-4a55-9a04-a33cdfc2a3db", "metadata": {}, "source": [ "## Constructing the Grid\n", "\n", "The grid for this model will be located on the west coast of California covering 135-115$^{\\circ}$W in longitude and 29-52$^{\\circ}$N in latitude. The grid spacing will be $1/12^{\\circ}$ in the zonal (east-west) direction and $1/16^{\\circ}$ in the meridional (north-south) direction, covering a grid of 360 rows and 240 columns. " ] }, { "cell_type": "markdown", "id": "b8ccdb30-ea52-449d-a396-19fb75e10c2c", "metadata": {}, "source": [ "This grid can be created in Python as follows:" ] }, { "cell_type": "code", "execution_count": 2, "id": "91f1c9b3-b2b5-43c0-904c-fb8572b244d0", "metadata": {}, "outputs": [], "source": [ "# define the parameters that will be used in the data file\n", "delX = 1/12\n", "delY = 1/16\n", "xgOrigin = -135\n", "ygOrigin = 29\n", "n_rows = 360\n", "n_cols = 240\n", "\n", "# recreate the grids that will be used in the model\n", "xc = np.arange(xgOrigin+delX/2, xgOrigin+n_cols*delX+delX/2, delX)\n", "yc = np.arange(ygOrigin+delY/2, ygOrigin+n_rows*delY+delY/2, delY)\n", "XC, YC = np.meshgrid(xc, yc)" ] }, { "cell_type": "markdown", "id": "fc87472a-8d1c-4b43-a62e-c30f290afdcb", "metadata": {}, "source": [ "### Visualizing the Grid\n", "The grids above can be visualized as follows:" ] }, { "cell_type": "code", "execution_count": 3, "id": "b5267805-9e18-44d1-b89c-65d0e71ed619", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# make a plot of XC and YC\n", "plt.figure(figsize=(10,7))\n", "\n", "plt.subplot(1,2,1)\n", "C = plt.pcolormesh(XC)\n", "plt.colorbar(C, orientation = 'horizontal')\n", "plt.title('XC (Longitude)')\n", "\n", "plt.subplot(1,2,2)\n", "C = plt.pcolormesh(YC)\n", "plt.colorbar(C, orientation = 'horizontal')\n", "plt.title('YC (Latitude)')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "c27d983c-de94-43d1-a600-9143acb4af04", "metadata": {}, "source": [ "### Visualizing the Grid on a Map with Cartopy\n", "To get a sense of where the model is located on the globe, cartopy can be be used to plot the domain on the globe:" ] }, { "cell_type": "code", "execution_count": 4, "id": "86ee4490-799a-4542-a343-34168021ab39", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,5))\n", "ax = plt.axes(projection=ccrs.Orthographic(-130,10))\n", "ax.plot(XC[:,0], YC[:,0], 'g-', transform=ccrs.PlateCarree())\n", "ax.plot(XC[:,-1], YC[:,-1], 'g-', transform=ccrs.PlateCarree())\n", "ax.plot(XC[0,:], YC[0,:], 'g-', transform=ccrs.PlateCarree())\n", "ax.plot(XC[-1,:], YC[-1,:], 'g-', transform=ccrs.PlateCarree())\n", "ax.coastlines()\n", "ax.set_global()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "12280567-6c8e-461d-88b4-ce8bae553e47", "metadata": {}, "source": [ "### Visualizing the Grid Spacing\n", "The model grid is defined in terms of units in longitude and latitude although it is useful to quantify the grid spacing in terms of more familiar units, such as meters. The `great_circle_distance` function from **eccoseas** can be used to quantify this distance. Loop through the points to generate inter-point distances in the horizontal (`dXC`) and vertical (`dYC`) directions:" ] }, { "cell_type": "code", "execution_count": 5, "id": "6c2220a5-689f-4905-a035-4f2ed44ba5d3", "metadata": {}, "outputs": [], "source": [ "dXC = np.zeros((np.shape(XC)[0], np.shape(XC)[1]-1))\n", "for row in range(np.shape(XC)[0]):\n", " for col in range(np.shape(XC)[1]-1):\n", " dXC[row,col] = etd.great_circle_distance(XC[row,col], YC[row,col], XC[row,col+1], YC[row,col+1])\n", "\n", "dYC = np.zeros((np.shape(YC)[0]-1, np.shape(YC)[1]))\n", "for row in range(np.shape(XC)[0]-1):\n", " for col in range(np.shape(XC)[1]):\n", " dYC[row,col] = etd.great_circle_distance(XC[row,col], YC[row,col], XC[row+1,col], YC[row+1,col])" ] }, { "cell_type": "markdown", "id": "a6c8cf60-6719-49f2-b909-aa5e14aa858c", "metadata": {}, "source": [ "Finally, make a plot of the inter-point distances:" ] }, { "cell_type": "code", "execution_count": 6, "id": "1dd9bbb2-393d-460d-be38-d3c3fcf802be", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlsAAAEjCAYAAAAFXMRAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAiEElEQVR4nO3df7BkdXnn8ffnXoZBkMAggsMwBJJAKuhWwLDExGxiRCNSWUezpYXJGrKSjJvg+mN1F5BUZOOSQqOY7MaQHSIruiJOjERiaVDYsJa1/BBY5GdYxkBgYALBJRGztSDw7B997tBzuX3vnZl7uk+feb+qevqc7znd/Xz7dD/z3O/50akqJEmS1I6ZSQcgSZLUZxZbkiRJLbLYkiRJapHFliRJUosstiRJklpksSVJktQiiy2NRZJPJPmPk45DkqRxs9jSWCX550n+NslBQ20bkjyY5IBm/heT3Jjku0m2Jflykp+aXNSS9lRJPp3k4nltP5Pk20m+P8m5Se5J8o9J7ktycZIjJxSuOspiS2NVVX8O/HfgowBJDgQuBH69qv4hyb8Ffg/4HeBQ4AjgD4ENk4hX0h7vHcApSV4NkGQf4CLgPcB/Bl4H/CJwAPCjwE3ASZMJVV0VryCvNiQ5Hvg4cDTwJaCALVX1m0kOBu4E3gKcCuxTVW9uRrYeBP5VVf3JhEKXpB0keSPwIeAlwG8CxwEfAf4cOKaqHphcdJoGjmxpxSXZG/gz4FPAQcCfAP9ibnlVPQq8E/g08PMM/nIE+AlgH+DyMYYrSYtq/vi7CfgMsBF4G/Aq4AYLLS2HxZba8DJgFfB7VfW9qvoc8I1561zHYNj9K1X1d03bC4BHq+qp8YUqSctyBvBK4Ler6n4G+WrbZEPStLDYUhsOAx6sHfdR/828dTYBn2RwLMRPNm3fBg5OstcYYpSkZauqh4FHgTuapm8DaycXkaaJxZbasA1YlyRDbUfMTSQ5HVgP/AbwPuCiZtfjtcD/A14/vlAlaZdcBZyY5PBJB6Lus9hSG64FngLekWSvJL8AnAiQ5DDgd4Ffq6ongD9i8BfiOVX1D8BvAR9L8vok+yZZleS1ST40ma5I0nNV1VXAV4HLk/xYk+v2T/Kvk7x10vGpWzwbUa1IcgKD06N/iMHZiAD3MDib56Gq+o2hdX8YuAH4yaq6I8kvAe8GfgR4nMGBqedV1f8cYxckaQdJ7gN+tSm05k4GOgf4JQa7FB9lUIDNHdclARZbkiRJrXI3oiRJUosstiRJklpksSVJktQiiy1JkqQWWWxJkiS1qBNX6t47q2sf9pt0GJLG6HEee7SqXjjpOFbC7PP3q70OOmjSYUgakycf2LpT+WvJYivJPsDXgNXN+p+rqvcnORf4NWDud+3eV1Vfah5zNnA68DTwjqq6crHX2If9+PGZVy83Zkk9cNUzm+f/hNOKG0f+AtjroINY9953rXwHJHXSve98707lr+WMbD0BvLKqvptkFfD1JF9uln20qj48vHKSY4FTgRcz+I28q5IcU1VPj3yFhMzO7kzckqbdM2N5lfbzlyQtYcliq/kx4e82s6ua22JXQt0AXNb8FMu9SbYw+KmWa0c9IGCxJe1pvtf+S4wjf0nSUpZ1zFaSWQY/mfJDwMeq6vokrwXenuSXgRuB91TVY8A64Lqhh29t2hZ5AWAmi64iSbui9fwlSUtYVrHVDKEfl+RABj+6+RLgQuADDP5K/ADwEeCtDEqn5zzF/IYkG4GNAPtkP0e2JLWijfwFO+aw2TVrVj5wSb2xU2cjVtXfJ7kGOHn4WIckFwFfbGa3AuuHHnY48NACz7UJ2ARwwF4vLCy2JLVoJfNX83zbc9jqI9b7I7OSRlrO2YgvBL7XJKrnAa8CPphkbVVta1Z7A3B7M30FcGmSCxgcYHo0cMOSkcx6yS9JK2ts+UuSFrGcka21wCXNcQ8zwOaq+mKSTyU5jsEQ+33A2wCq6o4km4E7gaeAMzyTR9KEmL8kTdxyzka8FTh+gfa3LPKY84Dzlh2Fl36Q1IKx5C9JWkInriAPwIy7ESVJUv90o9hK8AB5SZLUR90otmBQcEmSJPVMN4qt4NmIkiSpl7pRbBGYcTeiJEnqn24UW/5cjyRJ6qluFFvg2YiSJKmXOlJsxQPkJUlSL3Wj2PIAeUmS1FPdKLaAcmRLkiT1UDeKrQCzFluSJKl/ulFsEQ+QlyRJvdSRYsvdiJIkqZ+6UWy5G1GSJPVUJ4qtIpS7ESVJUg91otgaXEF+0kFIkiStvG4UW+BFTSVJUi91ptgqfxtR0gpLsg/wNWA1g3z3uap6f5KDgM8CRwL3AW+qqseax5wNnA48Dbyjqq6cQOiSemTJYmtsycqRLUkr7wnglVX13SSrgK8n+TLwC8DVVXV+krOAs4AzkxwLnAq8GDgMuCrJMVX19KQ6IGn6LWdkq/1kFSjPRpS0wqqqgO82s6uaWwEbgFc07ZcA1wBnNu2XVdUTwL1JtgAnAteOL2pJfbNksTWeZBV3I0pqRZJZ4Cbgh4CPVdX1SQ6tqm0AVbUtySHN6uuA64YevrVpk6RdtqxjtlpPVmlukrTCmlH145IcCFye5CWLrL5QJqoFV0w2AhsBZtes2d0wJfXYsoqtNpLVcKJavc+B7kaU1Kqq+vsk1wAnAw8nWdv8obgWeKRZbSuwfuhhhwMPjXi+TcAmgNVHrF+wIJMk2MmzEVcyWQ0nqv0POLzcjShppSV5IfC9Jnc9D3gV8EHgCuA04Pzm/gvNQ64ALk1yAYNjTo8Gbhh74JJ6ZTlnI44lWZW1lqSVtxa4pDkUYgbYXFVfTHItsDnJ6cD9wBsBquqOJJuBO4GngDM8E1HS7lrOyNZYkpUjW5JWWlXdChy/QPu3gZNGPOY84LyWQ5O0B1nO2YjjSVbWWpIkqYe6cQX5AI5sSZKkHupGsQWUP0QtSZJ6qBvFVryoqSRJ6qdOFFuFZyNKkqR+6kSxBe5GlCRJ/dSNYite+kGSJPVTN4ot8NIPkiSpl7pRbAVqdtJBSJIkrbxuFFt4gLwkSeqnzhRbxGpLkiT1TyeKrcKzESVJUj91otgi7kaUJEn91I1iC0e2JElSP3Wm2PLSD5IkqY+6UWzFkS1JktRP3Si28ArykiSpnzpRbPlD1JIkqa+W3HmXZH2Sv0xyV5I7kryzaT83yYNJbmlupww95uwkW5LcneQ1y4ok3rx526NuYzC2/CVJi1jOyNZTwHuq6uYk+wM3Jflqs+yjVfXh4ZWTHAucCrwYOAy4KskxVfX0yFeIx2xJakX7+UuSlrBksVVV24BtzfTjSe4C1i3ykA3AZVX1BHBvki3AicC1i77QmP7SlbTnGFv+kqRF7NQxW0mOBI4HrgdeDrw9yS8DNzL46/ExBonsuqGHbWXx5AY4siWpXW3mL0lazLKLrSTPB/4UeFdVfSfJhcAHGBzf/gHgI8BbWXiMqhZ4vo3ARoBV+6/xAHlJrVnp/NU85/YcNrtmTRthS+qJZRVbSVYxSFSfrqrPA1TVw0PLLwK+2MxuBdYPPfxw4KH5z1lVm4BNAPseur6WPlRfknZeG/mreY7tOWz1EesXLMgkCZZRbCUJ8HHgrqq6YKh9bXM8BMAbgNub6SuAS5NcwOAA06OBG5Z6HUe2JK20ceUvSVrMcka2Xg68BbgtyS1N2/uANyc5jsEQ+33A2wCq6o4km4E7GZwJdMZSZ/J4nS1JLWk9f0nSUpZzNuLXWfg4hi8t8pjzgPOWHcUYr7sjac8xlvwlSUvoxBXkAYstSZLUS50ptrz0gyRJ6qPuFFuObEmSpB7qRrEVlvErjZIkSdOnG8UWjmxJkqR+6kyx5ciWJEnqo24UW3FkS5Ik9VMniq3CsxElSVI/daLYAtyNKEmSeqkbxZa7ESVJUk91o9gCryAvSZJ6yZ13kiRJLerMyJYHyEuSpD7qTLHlbkRJktRH3Si24siWJEnqp24UW3g2oiRJ6qfOFFvM1KQjkCRJWnGdKLbK62xJakGS9cAngRcBzwCbqur3kxwEfBY4ErgPeFNVPdY85mzgdOBp4B1VdeUEQpfUI0sWW2NLVh6zJWnlPQW8p6puTrI/cFOSrwK/AlxdVecnOQs4CzgzybHAqcCLgcOAq5IcU1VPTyh+ST2wnBJnLln9CPAy4IwmIZ3FIFkdDVzdzDMvWZ0M/GGS2TaCl6TFVNW2qrq5mX4cuAtYB2wALmlWuwR4fTO9Abisqp6oqnuBLcCJYw1aUu8sObJVVduAbc3040mGk9UrmtUuAa4BzmQoWQH3JplLVtcu+jqObElqUZIjgeOB64FDm9xGVW1Lckiz2jrguqGHbW3aJGmX7dQxW60lq+B1tiS1JsnzgT8F3lVV30lGJpyFFix49k6SjcBGgNk1a1YiTEk9texia6WT1fxEVZ6NKKkFSVYxyF2frqrPN80PJ1nb/KG4Fnikad8KrB96+OHAQws9b1VtAjYBrD5ivQlM0kjL2nm3WLJqlu90sqqqTVV1QlWdMPv8/XY1fkkaKYO/Cj8O3FVVFwwtugI4rZk+DfjCUPupSVYnOQo4GrhhXPFK6qflnI24VLI6n+cmq0uTXMDgbJ5lJSuP2ZLUgpcDbwFuS3JL0/Y+Bnlrc5LTgfuBNwJU1R1JNgN3Mjg56AzPRJS0u5azG7H9ZBUgjsJLWllV9XVGHxF60ojHnAec11pQkvY4yzkbcTzJypEtSZLUQ524gjzg2YiSJKmXOlJslbsRJUlSL3Wj2PI6W5Ikqae6UWyB19mSJEm91Jliy5EtSZLUR90otgJxZEuSJPVQN4otcGRLkiT1UoeKLUe2JElS/3So2Jp0AJIkSSuvG8VWII5sSZKkHupGsQWObEmSpF7qSLFVno0oSZJ6qSPFFsSRLUmS1EPdKLaCZyNKkqRe6kSxFWDG3YiSJKmHOlFsgWcjSpKkfupGseXP9UiSpJ6aWWqFJBcneSTJ7UNt5yZ5MMktze2UoWVnJ9mS5O4kr1luIPHmzdsedRuXceUwSRplOSNbnwD+APjkvPaPVtWHhxuSHAucCrwYOAy4KskxVfX0Yi8Qyt2IktryCVrOYZK0mCWLrar6WpIjl/l8G4DLquoJ4N4kW4ATgWuXeqAHyEtqw7hymCSNsuRuxEW8PcmtzRD9mqZtHfDA0DpbmzZJ6hpzmKSx2NUD5C8EPgBUc/8R4K0sfCjGgkNWSTYCGwFWvfAAZmee2cVQJGmnrWgOm12zZqFVJAnYxWKrqh6em05yEfDFZnYrsH5o1cOBh0Y8xyZgE8C+Rx9WHrMlaVxWOoetPmK9CUzSSLtUbCVZW1Xbmtk3AHNn+VwBXJrkAgYHlx4N3LD0MxazHrMlaUxWPodJ0mhLFltJPgO8Ajg4yVbg/cArkhzHYHj9PuBtAFV1R5LNwJ3AU8AZyzmLJ+DZiJJaMY4cJkmLWc7ZiG9eoPnji6x/HnDezgYys/BhEZK0W8aVwyRplE5cQT7B3YiSJKmXOlFsgbsRJUlSP3Wk2CpmLLYkSVIPdaTYcmRLkiT1UyeKrQRHtiRJUi91otgCmI1XkJckSf3TiWIrHrMlSZJ6qhPFFrgbUZIk9VMniq0E9vKHqCVJUg91otgCryAvSZL6qRPFlsdsSZKkvupIseVuREmS1E8zkw5AkiSpz7ozsuV1tiRJUg91otgiHrMlSZL6qRvFFjDjyJYkSeqhThRb7kaUJEl91ZFiy92IktqR5GLg54FHquolTdtBwGeBI4H7gDdV1WPNsrOB04GngXdU1ZUTCFtSjyxZbI0rUbkbUVJLPgH8AfDJobazgKur6vwkZzXzZyY5FjgVeDFwGHBVkmOq6ukxxyypR5YzsvUJWk5UCcw6siWpBVX1tSRHzmveALyimb4EuAY4s2m/rKqeAO5NsgU4Ebh2LMFK6qUli63xJKpir/iHo6SxObSqtgFU1bYkhzTt64Drhtbb2rRJ0i7b1WO2djtRJdkIbAR4/ov29ZgtSV2QBdoWTE7DOWx2zZo2Y5I05Vb6APllJ6qq2gRsAjjk2BfUrD9ELWl8Hk6ytvljcS3wSNO+FVg/tN7hwEMLPcFwDlt9xHoTmKSRdrXY2u1ENWxwNqIHyEsamyuA04Dzm/svDLVfmuQCBsedHg3cMJEIJfXGrhZbK56o3I0oqQ1JPsPgGNODk2wF3s8gd21OcjpwP/BGgKq6I8lm4E7gKeAMz0SUtLuWc+mH1hNVAqs8QF5SC6rqzSMWnTRi/fOA89qLSNKeZjlnI7aeqLyoqSRJ6qtOXEEeYBaP2ZIkSf3TiWIreMyWJEnqp44UW+UxW5IkqZc6UWwBzHrpB0mS1EMzkw5AkiSpzzoxspW4G1GSJPVTN4ot8ArykiSplzpRbEHhbyNKkqQ+6kSx5ciWJEnqq44UWx6zJUmS+qkTxRZ4BXlJktRPnSi2gtfZkiRJ/dSJYguKGQ+QlyRJPdSJYitxZEuSJPVTJ4otgBmP2ZIkST3UiWIrFLNxN6IkSeqfjhRbno0oSZL6abeKrST3AY8DTwNPVdUJSQ4CPgscCdwHvKmqHlv0eShW5andCUWSdtpK5TBJWsxKjGz9bFU9OjR/FnB1VZ2f5Kxm/sylnsTdiJImZEVymCSN0sZuxA3AK5rpS4BrWCJRBQ+Ql9QZO53DJGkxu1tsFfCVJAX8l6raBBxaVdsAqmpbkkOW8zRe+kHSBKxQDpOk0Xa32Hp5VT3UJKOvJvmr5T4wyUZgI8Ahh+3lAfKSJmFFctjsmjVtxSepB3ar2Kqqh5r7R5JcDpwIPJxkbfMX4VrgkRGP3QRsAjjmnzyvvIK8pHFbqRy2+oj1JjBJI+1ysZVkP2Cmqh5vpn8O+G3gCuA04Pzm/gtLP5e7ESWN10rmMElazO6MbB0KXJ5k7nkuraq/SPINYHOS04H7gTcu58lmHdmSNF4rmsMkaZRdLraq6q+BH12g/dvASTvzXF5nS9K4rWQOk6TFdOgK8o5sSZKk/ulEsQUw40VNJUlSD3Wi2ArlpR8kSVIvdaTYcjeiJEnqp04UW+BuREmS1E+dKLYc2ZIkSX3ViWILLLYkSVI/daLYCjCTSUchSZK08jpRbEE5siVJknqpE8VWgJlJByFJktSCbhRbCXvH/YiSJKl/OlFsgSNbkiSpnzpRbAWYdWRLkiT1UCeKLYAZLLYkSVL/dKLYGlzU1GJLkiT1TyeKLXBkS5Ik9VMniq0Qj9mSJEm91FqxleRk4PeBWeCPq+r8xdaf8XxESR2xs/lLkhbTSrGVZBb4GPBqYCvwjSRXVNWdC66PuxEldcPO5i9JWkpbI1snAluq6q8BklwGbABGJKswG0e2JHXCTuYvSVpcW8XWOuCBofmtwI+PWnkwsmWxJakTdip/SdJS2iq2FtonuMMvTSfZCGxsZp+YXXvP7S3FMikHA49OOogVZp+mw7T06fsnHcAIS+YveG4Ou/ed7+1TDpuWz9DOsE/dN0392an81VaxtRVYPzR/OPDQ8ApVtQnYBJDkxqo6oaVYJsI+TQf7pAUsmb+g3zmsb/0B+zQN+tafYW3tu/sGcHSSo5LsDZwKXNHSa0nSSjJ/SVpRrYxsVdVTSd4OXMng1OmLq+qONl5LklaS+UvSSmvtOltV9SXgS8tcfVNbcUyQfZoO9knPsZP5C/r3nvetP2CfpkHf+rNdqp5z3KckSZJWiNdbkCRJatHEi60kJye5O8mWJGdNOp5dleS+JLcluSXJjU3bQUm+muSe5n7NpONcTJKLkzyS5PahtpF9SHJ2s93uTvKayUQ92oj+nJvkwWY73ZLklKFlne4PQJL1Sf4yyV1J7kjyzqZ9arfTNDN/dUPfchf0L3/t8bmrqiZ2Y3Dw6beAHwD2Br4JHDvJmHajL/cBB89r+xBwVjN9FvDBSce5RB9+GngpcPtSfQCObbbXauCoZjvOTroPy+jPucB7F1i38/1p4lwLvLSZ3h/4303sU7udpvVm/urOrW+5a5E+TW3+2tNz16RHtrb/LEZVPQnM/SxGX2wALmmmLwFeP7lQllZVXwP+z7zmUX3YAFxWVU9U1b3AFgbbszNG9GeUzvcHoKq2VdXNzfTjwF0Mrng+tdtpipm/OqJvuQv6l7/29Nw16WJroZ/FWDehWHZXAV9JclNzZWmAQ6tqGww+aMAhE4tu143qwzRvu7cnubUZpp8bsp66/iQ5EjgeuJ5+bqeu69N728f81dfvxNTnrz0xd0262FrWz2JMiZdX1UuB1wJnJPnpSQfUsmnddhcCPwgcB2wDPtK0T1V/kjwf+FPgXVX1ncVWXaCts/2aMn16b/ek/DXN223q89eemrsmXWwt62cxpkFVPdTcPwJczmC48+EkawGa+0cmF+EuG9WHqdx2VfVwVT1dVc8AF/HssPTU9CfJKgbJ6tNV9fmmuVfbaUr05r3taf7q3Xdi2vPXnpy7Jl1s9eJnMZLsl2T/uWng54DbGfTltGa104AvTCbC3TKqD1cApyZZneQo4GjghgnEt1PmvtSNNzDYTjAl/UkS4OPAXVV1wdCiXm2nKWH+6rbefSemOX/t8blr0kfoA6cwOCvhW8A5k45nF/vwAwzOmvgmcMdcP4AXAFcD9zT3B0061iX68RkGQ9PfY/BXxemL9QE4p9ludwOvnXT8y+zPp4DbgFsZfJnXTkt/mhh/isFQ+q3ALc3tlGneTtN8M39149a33LVIn6Y2f+3pucsryEuSJLVo0rsRJUmSes1iS5IkqUUWW5IkSS2y2JIkSWqRxZYkSVKLLLYkSZJaZLElSZLUIostSZKkFllsSZIktchiS5IkqUUWW5IkSS2y2JIkSWqRxZYkSVKLLLYkSZJaZLElSZLUIostSZKkFllsSZIktchiS5IkqUUWW5IkSS2y2JIkSWqRxZYkSVKLLLYkSZJaZLElSZLUIostSZKkFllsSZIktWivSQcAcHBeVE/y5GAmIXMLsv2f7csYuWyh+WZiqPm584s9Fmqh9eetM/856znLF3oMkAzWHbl83nMu43lHrrfA45Yd51DbovEu9lrLfZ0F22un49wh0oU2YebuasfmHVasER+jes66c88z/FHaoW37svlt859r8Jrz23d8rmfjSka0z19/6HlGrrOM59yhL/PXCcx9e5+73nD7YO6mW5+4sqpOpgdWPIeZv5Z+fTqaw8xfCy7rUg6bRP7qRLH1JE/y4zOvJjOBzGy/ZyaDxDUzM9hi2+9DhpbvsGz7/Nz0vPWGllUyGNsbWja/bXi+0nxiE2p729y6bF+3ts8PrwPMPDs9f9lz5mcWW2+h++wwP3+duefboZ2F153ftuRyllq3Rj7v9mUML6uh5c/ODy/L/PWYa59/P1gvqWaTPrt88NY+u2xm+/SO8zPMmx+6HyxrpodvLNb2zHPmZ7fPP8OqPLN9nUF7Mz13n2eYobnPM8w2j3v2/tn1d1iXwesMlj/TLK+mvXlcs+4sw+317PNtn65mmmZdmA3MkmY6zJBmPs38TDM9mJpde8/Bu5M3umTFc9js3LT5a7Hc04UcVjNNwWP+ejZvDU93LIetaubHnb/cjShJktQiiy1JkqQWWWxJkiS1yGJLkiSpRRZbkiRJLbLYkiRJapHFliRJUosstiRJklpksSVJktQiiy1JkqQWWWxJkiS1KFW19FptB5H8BdD276QdDDza8mtMSl/7Zr+mz8707dG+/BD1mHIYdPOz07WYuhYPdC+mrsUD3YtpqXh2Kn91otgahyQ3VtUJk46jDX3tm/2aPn3uWxd08f3tWkxdiwe6F1PX4oHuxbTS8bgbUZIkqUUWW5IkSS3ak4qtTZMOoEV97Zv9mj597lsXdPH97VpMXYsHuhdT1+KB7sW0ovHsMcdsSZIkTcKeNLIlSZI0dlNdbCU5MMnnkvxVkruS/ESSg5J8Nck9zf2aofXPTrIlyd1JXjPU/mNJbmuW/ackmUyPnjWib+cmeTDJLc3tlKH1O9+3JD88FPstSb6T5F3Tvs0W6ddUb6+hmN6d5I4ktyf5TJJ9pn2bdclC3/WhZe9NUkkOHmpr/f0dFVOSf9O87h1JPjSumEbkw+OSXNd8t25McuIY4+lULlsknt9t3rNbk1ye5MBJv0dDy8f62V4snrF8rqtqam/AJcCvNtN7AwcCHwLOatrOAj7YTB8LfBNYDRwFfAuYbZbdAPwEEODLwGs72rdzgfcusO5U9a2Jaxb4W+D7+7LNFujX1G8vYB1wL/C8Zn4z8Ct92maTvi30XW+m1wNXAn8DHDzO93dE/vlZ4CpgddN+yLhiGhHPV+aeDzgFuGYSn0E6lsvmxfNzwF5N+wcn9T0djmnSn+0F3qOxfK6ndmQryfcBPw18HKCqnqyqvwc2MPhi0ty/vpneAFxWVU9U1b3AFuDEJGuB76uqa2vwLn5y6DETsUjfRpmavg05CfhWVf0NPdhmQ4b7Ncq09Wsv4HlJ9gL2BR6iX9tsYpb4rn8U+PfA8IG1rb+/i8T068D5VfVE0/7IOGJaJJ4Cvq9Z7QAGn8vW41lA13LZ9niq6itV9VTTfh1w+ATi2SGmZn4in+0R8Yzlcz21xRbwA8DfAf81yf9K8sdJ9gMOraptAM39Ic3664AHhh6/tWlb10zPb5+kUX0DeHszJHzx0BD1NPVtzqnAZ5rpPmyzOcP9ginfXlX1IPBh4H5gG/APVfUV+rXNJmnB73qS1wEPVtU3560/jvd3VP45BvhnSa5P8j+S/NMxxTQqnncBv5vkAQaf0bPHFM98Xctl83PQnLcyGIUZdzw7xDThz/Zz4mFMn+tpLrb2Al4KXFhVxwP/yGDYdpSF9qnWIu2TNKpvFwI/CBzH4D++jzTrT1PfSLI38DrgT5ZadYG2aerX1G+vpkDcwGAY/TBgvyT/crGHLNDWyb51xELf9XOBc4DfWmD9cby/o/LPXsAa4GXAvwM2N8eqtB3TqHh+HXh3Va0H3k0z8jWGeLbrWi4bFU+Sc4CngE+PM575MSXZl8l+thd6j8byuZ7mYmsrsLWqrm/mP8fgC/lwM8xHc//I0Prrhx5/OINh5608O7Q63D5JC/atqh6uqqer6hngIuDEofWnpW8ArwVurqqHm/k+bDOY16+ebK9XAfdW1d9V1feAzwM/SX+22aSNymNHAd9Mch+D9+rmJC9iPO/vqJi2Ap+vgRuAZxj8flzbMY2K5zQGn0cY/Mc5ie9X13LZ/HhIchrw88AvNbu9xhnP/Jh+kMl+tufHA2P6XE9tsVVVfws8kOSHm6aTgDuBKxh8CWnuv9BMXwGcmmR1kqOAo4EbmqHex5O8rKlmf3noMRMxqm9zX+LGG4Dbm+mp6Vvjzew4zD3126yxQ796sr3uB16WZN8mppOAu+jPNpuoEd/1m6vqkKo6sqqOZJDcX9qs2/r7u0hu/TPglQBJjmFwoPqjbce0SDwPAT/TtL0SuKeZHudnsGu5bH4OOhk4E3hdVf3feXGO/T2qqtsm+dmeH0/jzxjH57p28yyDSd4Y7J65Ebi1ecPWAC8ArmbwxbsaOGho/XMYnFFwN0NnDwAnMPiP8FvAH9Bc7LWDffsUcFvTdgWwdtr6xuAA628DBwy1Tf02G9Gvqd9eTUz/AfirJq5PMTg7Z+q3WVduC33X5y2/j+aMrXG9vyPyz97Af2te42bgleOKaUQ8PwXcxOCMseuBHxvze9SpXDYini0Mjju6pbn90aTfo0l+tke8R2P5XHsFeUmSpBZN7W5ESZKkaWCxJUmS1CKLLUmSpBZZbEmSJLXIYkuSJKlFFluSJEktstiSJElqkcWWJElSi/4/IfOeiS4H8xAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# make a plot of XC and YC\n", "plt.figure(figsize=(10,5))\n", "\n", "plt.subplot(1,2,1)\n", "C = plt.pcolormesh(dXC)\n", "plt.colorbar(C, orientation = 'horizontal')\n", "plt.title('dXC')\n", "\n", "plt.subplot(1,2,2)\n", "C = plt.pcolormesh(dYC.round(3))\n", "plt.colorbar(C, orientation = 'horizontal')\n", "plt.title('YC')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "668c2d55-0059-48a4-8981-453db74d04b4", "metadata": {}, "source": [ "As we can see the grid has a resolution of about 7 km, although there is a north-south gradient in horizontal distances (in other words, points further north are closer together). " ] } ], "metadata": { "kernelspec": { "display_name": "mitgcm", "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.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }