OpenDrift / opendrift

Open source framework for ocean trajectory modelling
https://opendrift.github.io
GNU General Public License v2.0
245 stars 120 forks source link

Particle diffusion in Leeway #1052

Closed rhysomac closed 1 year ago

rhysomac commented 1 year ago

I'm relatively new to OpenDrift and I'm having an issue where I'm seeding 1000 particles in Leeway from a single location with diffusion and uncertainty parameters set to 0, yet particles are still diffusing more than I would expect them to. The model has zero wind. The images below are from 15 minutes and 1 hour after release, respectively. I would expect all of the particles should be clumped together or at least not dispersed so randomly. Am I wrong to assume this and, if so, is there a way to reduce this diffusion? Below I've also included my model configuration.

Leeway_15_min

Leeway_60_min

general:use_auto_landmask [False] bool A built-in GSHHG glo... general:coastline_action [stranding] enum ['none', 'stranding', 'previous'] None means that obje... general:time_step_minutes [10.0] float min: 0.01, max: 1440 [minutes] Calculation time ste... general:time_step_output_minutes [60.0] float min: 1, max: 1440 [minutes] Output time step, i.... seed:ocean_only [True] bool If True, elements se... seed:number [1] int min: 1, max: 100000000 [1] The number of elemen... drift:max_age_seconds [None] float min: 0, max: inf [seconds] Elements will be dea... drift:advection_scheme [euler] enum ['euler', 'runge-kutta', 'runge-kutta4'] Numerical advection ... drift:current_uncertainty [0.0] float min: 0, max: 5 [m/s] Add gaussian perturb... drift:current_uncertainty_uniform [0.0] float min: 0, max: 5 [m/s] Add gaussian perturb... drift:horizontal_diffusivity [0.0] float min: 0, max: 100000 [m2/s] Add horizontal diffu... drift:wind_uncertainty [0.0] float min: 0, max: 5 [m/s] Add gaussian perturb... drift:relative_wind [False] bool If True, wind drift ... drift:deactivate_north_of [None] float min: -90, max: 90 [degrees] Elements are deactiv... drift:deactivate_south_of [None] float min: -90, max: 90 [degrees] Elements are deactiv... drift:deactivate_east_of [None] float min: -360, max: 360 [degrees] Elements are deactiv... drift:deactivate_west_of [None] float min: -360, max: 360 [degrees] Elements are deactiv... seed:origin_marker [0.0] float min: None, max: None [None] An integer kept cons... seed:z [0.0] float min: None, max: None [m] Seeding value of z... seed:jibe_probability [0.04] float min: 0, max: 1 [probability] Probability per hour... seed:current_drift_factor [1.0] float min: None, max: None [1] Elements are moved w... environment:constant:x_wind [None] float min: -50, max: 50 [m/s] Component of wind al... environment:fallback:x_wind [0.0] float min: -50, max: 50 [m/s] Component of wind al... environment:constant:y_wind [None] float min: -50, max: 50 [m/s] Component of wind al... environment:fallback:y_wind [0.0] float min: -50, max: 50 [m/s] Component of wind al... environment:constant:x_sea_water_velocity [None] float min: -15, max: 15 [m/s] Component of ocean c... environment:fallback:x_sea_water_velocity [None] float min: -15, max: 15 [m/s] Component of ocean c... environment:constant:y_sea_water_velocity [None] float min: -15, max: 15 [m/s] Component of ocean c... environment:fallback:y_sea_water_velocity [None] float min: -15, max: 15 [m/s] Component of ocean c... environment:constant:land_binary_mask [None] float min: 0, max: 1 [None] 1 is land, 0 is sea... environment:fallback:land_binary_mask [None] float min: 0, max: 1 [None] 1 is land, 0 is sea... seed:object_type [Person-in-water (PIW), unknown state (mean values)]

tofivan commented 1 year ago

Dear Rhysomac, as a beginner, I would like to inquire how to replace the GSHHG base map with Google Maps? Could you please provide guidance?

rhysomac commented 1 year ago

Hi tofivan, I'm also a beginner and I don't know how to do what you're asking, the map you see in the image was because I post processed the particle results in matlab

tofivan commented 1 year ago

Dear Rhysomac, Thank you, using Matlab looks like a good approach!

knutfrode commented 1 year ago

Hi,

The large spread is inherent in the Leeway model, and is tuned to experimental data. If you don't want this, you can instead use the OceanDrift model. There surface objects simply drift with ocean currents plust a fraction (wind_drift_factor) of the wind speed. Horizontal diffusivity can be specified with o.set_config('drift:horizontal_diffusivity', 100) # for 100 m2/s

knutfrode commented 1 year ago

Please reopen if still an issue