{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n# Seafloor interaction\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This example demonstrates the three possibilities for\ninteraction of particles with seafloor:\n- 'previous': particles are moved back to previous location\n- 'deactivate': particles are deactivated\n- 'lift_to_seafloor': particles are lifted vertically to seafloor level\n\nThis is controlled by the config setting:\no.set_config('general:seafloor_action', )\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from datetime import timedelta\nfrom opendrift.readers import reader_netCDF_CF_generic\nfrom opendrift.models.oceandrift import OceanDrift\nfrom opendrift.readers import reader_oscillating\n\n\n# readers\no = OceanDrift(loglevel=50)\nreader_norkyst = reader_netCDF_CF_generic.Reader(o.test_data_folder() + '14Jan2016_NorKyst_z_3d/NorKyst-800m_ZDEPTHS_his_00_3Dsubset.nc')\nreader_osc = reader_oscillating.Reader('x_sea_water_velocity', amplitude=10, period_seconds=3600)\n\nruns = []\nseafloor_actions = ['previous', 'deactivate', 'lift_to_seafloor']\n\nfor seafloor_action in seafloor_actions:\n\n o = OceanDrift(loglevel=50) # Set loglevel to 0 for debug information\n o.set_config('drift:max_speed', 10)\n\n o.add_reader([reader_osc, reader_norkyst])\n\n o.set_config('drift:horizontal_diffusivity', 0)\n o.set_config('environment:constant:y_sea_water_velocity', 0)\n o.set_config('environment:constant:land_binary_mask', 0)\n o.set_config('general:use_auto_landmask', False)\n o.set_config('general:seafloor_action', seafloor_action)\n\n # Seeding some particles 50m above seafloor\n o.seed_elements(lon=4.2, lat=62.0, z='seafloor+50',\n radius=7000, number=200, time=reader_norkyst.start_time)\n\n o.run(duration=timedelta(hours=2), time_step=120)\n runs.append(o)\n\n\nruns[0].animation(fast=False, compare=runs[1:], legend=seafloor_actions,\n vmin=0, vmax=300, background='sea_floor_depth_below_sea_level')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the run with 'lift_to_seafloor', we see that\nelements have been lifted vertically\n\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [ "runs[2].plot_property('z')" ] } ], "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 }