OpenDrift / opendrift

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

why some active particles on the land? #327

Closed llx206 closed 3 years ago

llx206 commented 4 years ago

HI, I have some questions

  1. Run openoil model I seed 3000 particles within a radius of 50 meters, why there are a lot of green particles out of the initial position I set. (see figure 1)
  2. Why a lot of stranded particles on the land is far away from the coastline. Is it because the low resolution of landmask? And if so, how to control the resolution of landmask? (see figure 1)
  3. In another case, why some active particles on the land? (see figure 2) image figure 1

image figure 2

AndresSepulveda commented 4 years ago

Hi, this usually happens when your time step is too large. Use a CFL approach to choose your time step in o.run considering the magnitude of the currents and the grid size of your original model.

llx206 commented 4 years ago

hank you! I will try it according to your suggestion. In addtion,Is the resolution of landmask fixed ?

knutfrode commented 4 years ago

Yes, the automatic landmask is now always used at the highest resolution (GSHHG-full).

From your plots it seems like the time_step is on the order of a day, but this should normally not be more than 1 hour, ideally 15-30 minutes for oil simulations. You may still use a coarser output timestep: https://opendrift.github.io/tutorial.html#running-the-model

llx206 commented 4 years ago

Thank you! And what about the first question?

  1. Run openoil model I seed 3000 particles within a radius of 50 meters, why there are a lot of green particles out of the initial position I set. (see figure 1)
knutfrode commented 4 years ago

This is probably related to too large time step, combined with seeding over a time interval.

Do you still see the same when using a smaller time step (e.g. 30 minutes)? What are your seed- and run-commands?

llx206 commented 4 years ago

stime = datetime(2020, 6, 22, 7, 0, 0) time = [stime,stime + timedelta(hours=24)] mass_oil = 2000 oiltype = 'MEDIUM (brage)' o.seed_elements(lon, lat, radius=50, number=3000, time=time, mass_oil=mass_oil, wind_drift_factor=0.02, oiltype=oiltype) o.run(end_time=datetime(2020, 6, 23, 7, 0, 0), time_step=1800,time_step_output=3600)

i find that if the timedelta is set to 0 then the phenomenon in question 1 no longer exists .

knutfrode commented 4 years ago

This is probably due to different calculation- and output-intervals (0.5hr vs 1 hr). Thus the position of elements which are seeded later than the initial time, are only recorded at a later step when they have moved for up to one hour. This artefact will also disappear if you use same output as calculation time step (e.g. time_step=time_step_output=1800), even if you seed elements over a time interval.

llx206 commented 4 years ago

thanks, i get it.