{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Spherical grids and UnitConversion\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "In most applications, Parcels works with spherical meshes, where longitude and latitude are given in degrees, while depth is given in meters. But it is also possible to use flat meshes, where longitude and latitude are given in meters (note that the dimensions are then still called longitude and latitude for consistency reasons).\n", "\n", "In all cases, velocities are given in m/s. So Parcels seamlessly converts between meters and degrees, under the hood. For transparency, this tutorial explain how this works.\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Let's first import the relevant modules, and create dictionaries for the U, V and temp data arrays, with the velocities 1 m/s and the temperature 20C.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "from parcels import Field, FieldSet" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "xdim, ydim = (10, 20)\n", "data = {\n", " \"U\": np.ones((ydim, xdim), dtype=np.float32),\n", " \"V\": np.ones((ydim, xdim), dtype=np.float32),\n", " \"temp\": 20 * np.ones((ydim, xdim), dtype=np.float32),\n", "}\n", "dims = {\n", " \"lon\": np.linspace(-15, 5, xdim, dtype=np.float32),\n", " \"lat\": np.linspace(35, 60, ydim, dtype=np.float32),\n", "}" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "We can convert these data and dims to a FieldSet object using FieldSet.from_data. We add the argument mesh='spherical' (this is the default option) to signal that all longitudes and latitudes are in degrees.\n", "\n", "Plotting the U field indeed shows a uniform 1m/s eastward flow.\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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aqrHa4YNG9bo/K1bt2rw4MHq0sX+ZMqffHLgdDq1YMGCgHp/AzG3vkCLVyLmthBo8UqBF3Ogxdve5syZo5dfflmvvPKKdu/erYcfflglJSVKT0+XJGVmZmry5Mnu89PT07V//37NmTNHu3fv1iuvvKJVq1Zp7ty5Xt23wy1lBAAA/7R8+XItXrxYZWVlSk5O1vPPP6/rr79ekjR16lTt27dPubm57vPz8vL08MMPq6ioSPHx8XrsscfcyYRdJAcAAMDiJz+sAAAAvENyAAAALEgOAACABckBAACwCPjk4Omnn1Zqaqq6du2q8847z+M5Doej0XGuV1jW1tbq17/+taKjo9WtWzfddtttOnDgQJvE/OWXX+ree+9VQkKCwsPDNXDgQP3+978/Z7833HBDo9/znnvuaZOYJamkpETjx49Xt27dFB0drdmzZ59zu9HWfM5nys3N9fjvwOFwKD8/v8nrpk6d2uj8oUOH+j0+T/r169fo3o8//niz1xhjlJWVpfj4eIWHh+uGG25QUVFRm8S7b98+TZs2TUlJSQoPD9eFF16oBQsWnPPfQFs/4/Z4/W1LZWdn6+qrr1ZERIT69OmjX/ziF/r666+bvaapf+t///vfWz3erKysRveNjY1t9pr2fL5oWsAnB3V1dbrrrrv0q1/9qtnzVq9erbKyMvcxZcqUZs/PyMjQxo0btW7dOn388cc6duyYbr31VtXX17d6zAUFBerdu7def/11FRUVaf78+crMzNSyZcvO2feMGTMsv+eLL77oc7x2Yq6vr9e4ceN0/Phxffzxx1q3bp3efvttPfLII83225rP+UypqamW51JWVqbp06erX79+Gjx4cLPX3nzzzZbrNm/e7NfYmrNw4ULLvf/93/+92fMXL16sJUuWaNmyZcrPz1dsbKzGjBmjmpqaVo/173//u1wul1588UUVFRXp+eef1wsvvKB58+ad89q2esbt9frblsrLy9ODDz6oTz75RDk5OTp16pTS0tJ0/Pjxc1779ddfW55p//792yBi6dJLL7Xcd+fOnU2e297PF82w/YqmDm716tUmKirK42eSzMaNG233dfToUdOlSxezbt06d9vBgwdNp06dzHvvvedjpP/UXMxnmzlzphk5cmSz54wYMcI89NBDvgfWjKZi3rx5s+nUqZM5ePCgu+3NN980TqfTVFVVeeyrrZ6zJ3V1daZPnz5m4cKFzZ43ZcoUc/vtt7dqLE1JTEw0zz//vO3zXS6XiY2NNc8884y77YcffjBRUVHmhRdeaIUIz23x4sUmKSmp2XPa8hlfc801Jj093dJ2ySWXmMcff9zj+Y8++qi55JJLLG0PPPCAGTp0aKvF2JyKigojyeTl5TV5zocffmgkmSNHjrRdYD9asGCBueKKK2yf39GeL/4p4CsHds2aNUvR0dG6+uqr9cILL8jlcjV5bkFBgU6ePKm0tDR3W3x8vJKTk7V9+/a2CLeRqqoq9ezZ85znrV27VtHR0br00ks1d+7cNvnGKEk7duxQcnKy5c1oN910k2pra1VQUODxmvZ8zps2bVJlZaWmTp16znNzc3PVp08fDRgwQDNmzFBFRUWrxnamZ599Vr169dKVV16pp59+utkSfXFxscrLyy3P0+l0asSIER3+321bPOO6ujoVFBRYno8kpaWlNfl8duzY0ej8m266SZ999plOnjzp9xjPpaqqSpJsPdNBgwYpLi5Oo0eP1ocfftjaobnt2bNH8fHxSkpK0j333KO9e/c2eW5He774pw73VsbW8OSTT2r06NEKDw/X//7v/+qRRx5RZWVlkyXa8vJyhYaGqkePHpb25l6T2Zp27Nih//7v/9Y777zT7HmTJk1SUlKSYmNj9dVXXykzM1Nffvllo322W4On14T26NFDoaGhzb5atL2e86pVq3TTTTcpISGh2fPGjh2ru+66S4mJiSouLtZvf/tbjRo1SgUFBa2+/etDDz2kq666Sj169NDf/vY3ZWZmqri4WC+//LLH8xuemafXte7fv79VY/XkH//4h/74xz/queeea/a8tnrG7fn6W38wxmjOnDm67rrrlJyc3OR5cXFxWrlypVJSUlRbW6v/+q//0ujRo5Wbm+veVa+1DBkyRGvWrNGAAQN06NAhPfXUU0pNTVVRUZHHl/50pOeLs7R36cKTBQsWGEnNHvn5+ZZrvCnR/8d//IeJjIxs8vO1a9ea0NDQRu033nijeeCBB9o05q+++sr07t3bPPnkk+f+xc7y2WefGUmmoKCg1WOeMWOGSUtLa9TepUsX8+abb3q8f0uesz9+h9LSUtOpUyfz1ltv2brHmb777jvTpUsX8/bbb3t9bUvjbfDWW28ZSaaystLj53/961+NJPPdd99Z2qdPn25uuummFsXb0pgPHjxoLrroIjNt2jSv7+frM27KwYMHjSSzfft2S/tTTz1lLr74Yo/X9O/f3yxatMjS9vHHHxtJpqyszK/xncvMmTNNYmKiKS0t9fraW2+91YwfP74VomresWPHTExMjHnuuec8ft6Rni+sOmTlYNasWeecZd+vX78W9z906FBVV1fr0KFDHl97GRsbq7q6Oh05csTyrbaioqLJN2G1Rsy7du3SqFGjNGPGjHNORPPkqquuUpcuXbRnzx5dddVVjT73Z8yxsbH69NNPLW1HjhzRyZMnm321qLfP+Wwt+R1Wr16tXr166bbbbrN1jzPFxcUpMTFRe/bs8fpaybdn3jCD/9tvv/X4LaxhVnh5ebnlG1dzr3e1w9uYv/vuO40cOVLDhg3TypUrvb6fr8+4Ke35+ltf/frXv9amTZv00UcfqW/fvl5fP3ToUL3++uutEFnzunXrpssuu6zJ/y87yvNFYx0yOYiOjlZ0dHSr9V9YWKiwsLAml+SlpKSoS5cuysnJ0d133y1JKisr01dffaXFixd7vMbfMRcVFWnUqFGaMmWKnn766Rb3cfLkySZLc/6MediwYXr66adVVlbmvt/WrVvldDqVkpLi8ZqWPGdffwdjjFavXq3Jkyd79frSBocPH1ZpaWmLy52+PPPCwkJJavLeDUNKOTk5GjRokKTT4+x5eXl69tlnW3RPybuYDx48qJEjRyolJUWrV69Wp07eT2vy9Rk35czX395xxx3u9pycHN1+++0erxk2bJj+8pe/WNpa8vrbljLG6Ne//rU2btyo3NxcJSUltaifwsLCdinR19bWavfu3Ro+fLjHz9v7+aIZ7V268NX+/ftNYWGheeKJJ0z37t1NYWGhKSwsNDU1NcYYYzZt2mRWrlxpdu7cab799lvz0ksvmcjISDN79mx3HwcOHDAXX3yx+fTTT91t6enppm/fvub99983n3/+uRk1apS54oorzKlTp1o95oahhEmTJpmysjL3UVFR0WTM3377rXniiSdMfn6+KS4uNu+884655JJLzKBBg9ok5lOnTpnk5GQzevRo8/nnn5v333/f9O3b18yaNavJmI1p3efsyfvvv28kmV27dnn8/OKLLzYbNmwwxhhTU1NjHnnkEbN9+3ZTXFxsPvzwQzNs2DBz/vnnm+rq6laJr8H27dvNkiVLTGFhodm7d69Zv369iY+PN7fddluT8RpjzDPPPGOioqLMhg0bzM6dO829995r4uLiWj1eY/45lDBq1Chz4MABy7/dpmJu62e8bt0606VLF7Nq1Sqza9cuk5GRYbp162b27dtnjDHm8ccfN/fff7/7/L1795quXbuahx9+2OzatcusWrXKdOnSpUVDUi3xq1/9ykRFRZnc3FzL8/z+++/d55wd8/PPP282btxovvnmG/PVV1+Zxx9/3Ejy+zCNJ4888ojJzc01e/fuNZ988om59dZbTURERId9vmhawCcHU6ZM8TgG+uGHHxpjjHn33XfNlVdeabp37266du1qkpOTzdKlS83JkyfdfRQXF1uuMcaYEydOmFmzZpmePXua8PBwc+utt5qSkpI2ibmpMd7ExMQmYy4pKTHXX3+96dmzpwkNDTUXXnihmT17tjl8+HCbxGzM6QRi3LhxJjw83PTs2dPMmjXL/PDDD03GbEzrPmdP7r33XpOamtrk55LM6tWrjTHGfP/99yYtLc307t3bdOnSxfzsZz8zU6ZMadX4GhQUFJghQ4aYqKgoExYWZi6++GKzYMECc/z48SbjNeb0csYFCxaY2NhY43Q6zfXXX2927tzZ6vEac3o+iqd/I2d/B2nvZ/yf//mfJjEx0YSGhpqrrrrKsixwypQpZsSIEZbzc3NzzaBBg0xoaKjp16+fWbFiRavFdramnueZ/5+fHfOzzz5rLrzwQhMWFmZ69OhhrrvuOvPOO++0SbwTJ040cXFxpkuXLiY+Pt5MmDDBFBUVNRmrMe37fNE0XtkMAAAsgmafAwAAYA/JAQAAsCA5AAAAFiQHAADAguQAAABYkBwAAAALkgMAAGBBcgAAACxIDgAAgAXJAQAAsCA5AAAAFv8PF3CanRm6PA4AAAAASUVORK5CYII=", "text/plain": [ "