{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n# Stokes drift vertical profiles\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\nfrom opendrift.models.physics_methods import stokes_drift_profile_monochromatic, stokes_drift_profile_exponential, \\\n stokes_drift_profile_phillips, stokes_drift_profile_windsea_swell, plot_stokes_profile\n\nz = np.linspace(0, -10, 1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Surface stokes drift and wave conditions\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "su_surface = .3\nsv_surface = .1\nTp = 8\nhs = 2\nswell_dir_to = 0 # northwards\nswell_mean_period = 10 # seconds\nswell_height = 1.5\nwind_sea_height = np.sqrt(hs**2 - swell_height**2)\nwind_sea_mean_dir_to = np.degrees(np.arctan2(su_surface, sv_surface)) + 30\nwind_sea_mean_period = 2 # seconds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting profiles of Stokes drift for significant wave heights of 2 meters\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "su_m, sv_m, ss_m = stokes_drift_profile_monochromatic(su_surface, sv_surface, hs, Tp, z)\nsu_e, sv_e, ss_e = stokes_drift_profile_exponential(su_surface, sv_surface, hs, Tp, z)\nsu_p, sv_p, ss_p = stokes_drift_profile_phillips(su_surface, sv_surface, hs, Tp, z)\nsu_c, sv_c, ss_c = stokes_drift_profile_windsea_swell(su_surface, sv_surface,\n swell_mean_direction_to=swell_dir_to, swell_mean_period=swell_mean_period,\n swell_height=swell_height,\n wind_sea_mean_direction_to=wind_sea_mean_dir_to, wind_sea_mean_period=wind_sea_mean_period,\n wind_sea_height=wind_sea_height, z=z)\n\nprofiles = [\n {'u': su_m, 'v': sv_m, 'z': z, 'kwargs': {'label': 'Stokes, Monochromatic'}},\n {'u': su_e, 'v': sv_e, 'z': z, 'kwargs': {'label': 'Stokes, Exponential'}},\n {'u': su_p, 'v': sv_p, 'z': z, 'kwargs': {'label': 'Stokes, Phillips'}},\n {'u': su_c, 'v': sv_c, 'z': z, 'kwargs': {'label': 'Stokes, Windsea + Swell'}}\n ]\n\nplot_stokes_profile(profiles, view=['vertical', 'birdseye', 'u', 'v'])" ] } ], "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.11.6" } }, "nbformat": 4, "nbformat_minor": 0 }