{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Tutorial on how to combine different Fields for advection into a `SummedField` object" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In some oceanographic applications, you may want to advect particles using a combination of different velocity data sets. For example, particles at the surface are transported by a combination of geostrophic, Ekman and Stokes flow. And often, these flows are not even on the same grid.\n", "\n", "One option would be to write a `Kernel` that computes the movement of particles due to each of these flows. However, in Parcels it is possible to directly combine different flows (without interpolation) and feed them into the built-in `AdvectionRK4` kernel. For that, we use so-called `SummedField` objects.\n", "\n", "This tutorial shows how to use these `SummedField` with a very idealised example. We start by importing the relevant modules." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "from parcels import Field, FieldSet, ParticleSet, JITParticle, plotTrajectoriesFile, AdvectionRK4\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's first define a zonal and meridional velocity field on a 1kmx1km grid with a flat mesh. The zonal velocity is uniform and 1 m/s, and the meridional velocity is zero everywhere." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "xdim, ydim = (10, 20)\n", "Uflow = Field('U', np.ones((ydim, xdim), dtype=np.float32),\n", " lon=np.linspace(0., 1e3, xdim, dtype=np.float32),\n", " lat=np.linspace(0., 1e3, ydim, dtype=np.float32))\n", "Vflow = Field('V', np.zeros((ydim, xdim), dtype=np.float32), grid=Uflow.grid)\n", "fieldset_flow = FieldSet(Uflow, Vflow)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We then run a particle and plot its trajectory" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Compiled JITParticleAdvectionRK4 ==> /var/folders/r2/8593q8z93kd7t4j9kbb_f7p00000gn/T/parcels-501/f4a8b4db3aa8d583976f0284a7a13f1c.so\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pset = ParticleSet(fieldset_flow, pclass=JITParticle, lon=[0], lat=[900])\n", "output_file = pset.ParticleFile(name='SummedFieldParticle_flow.nc', outputdt=1)\n", "pset.execute(AdvectionRK4, runtime=10, dt=1, output_file=output_file)\n", "output_file.export() # export the trajectory data to a netcdf file\n", "plotTrajectoriesFile('SummedFieldParticle_flow.nc');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The trajectory plot shows a particle moving eastward on the 1 m/s flow, as expected" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, let's define another set of velocities (`Ustokes, Vstokes`) on a different, higher-resolution grid. This flow is southward at -0.2 m/s." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "gf = 10 # factor by which the resolution of this grid is higher than of the original one.\n", "Ustokes = Field('U', np.zeros((ydim*gf, xdim*gf), dtype=np.float32),\n", " lon=np.linspace(0., 1e3, xdim*gf, dtype=np.float32),\n", " lat=np.linspace(0., 1e3, ydim*gf, dtype=np.float32))\n", "Vstokes = Field('V', -0.2*np.ones((ydim*gf, xdim*gf), dtype=np.float32), grid=Ustokes.grid)\n", "fieldset_stokes=FieldSet(Ustokes, Vstokes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We run a particle in this `FieldSet` and also plot its trajectory" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Compiled JITParticleAdvectionRK4 ==> /var/folders/r2/8593q8z93kd7t4j9kbb_f7p00000gn/T/parcels-501/4d88daba7f9f4523f96fbc7c30b967ee.so\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pset = ParticleSet(fieldset_stokes, pclass=JITParticle, lon=[0], lat=[900])\n", "output_file = pset.ParticleFile(name='SummedFieldParticle_stokes.nc', outputdt=1)\n", "pset.execute(AdvectionRK4, runtime=10, dt=1, output_file=output_file)\n", "output_file.export() # export the trajectory data to a netcdf file\n", "plotTrajectoriesFile('SummedFieldParticle_stokes.nc');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now comes the trick of the `SummedFields`. We can simply define a new `FieldSet` with a summation of different `Fields`, as in `U=fieldset_flow.U+fieldset_stokes.U`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "fieldset_sum = FieldSet(U=fieldset_flow.U+fieldset_stokes.U, V=fieldset_flow.V+fieldset_stokes.V)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And if we then run the particle again and plot its trajectory, we see that it moves southeastward!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO: Compiled JITParticleAdvectionRK4 ==> /var/folders/r2/8593q8z93kd7t4j9kbb_f7p00000gn/T/parcels-501/b144599600769c9fe6b24339a7949645.so\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pset = ParticleSet(fieldset_sum, pclass=JITParticle, lon=[0], lat=[900])\n", "output_file = pset.ParticleFile(name='SummedFieldParticle_sum.nc', outputdt=1)\n", "pset.execute(AdvectionRK4, runtime=10, dt=1, output_file=output_file)\n", "output_file.export() # export the trajectory data to a netcdf file\n", "plotTrajectoriesFile('SummedFieldParticle_sum.nc');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What happens under the hood is that each `Field` in the `SummedField` is interpolated separately to the particle location, and that the different velocities are added in each step of the RK4 advection. So `SummedFields` are effortless to users.\n", "\n", "Note that `SummedFields` work for any type of `Field`, not only for velocities. Any call to a `Field` interpolation (`fieldset.fld[time, lon, lat, depth]`) will return the sum of all `Fields` in the list if `fld` is a `SummedField`." ] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }