#%%
# Setting some parameters
duration = timedelta(seconds=12)  # T
time_step=timedelta(seconds=.5)
time_step_output=timedelta(seconds=.5)
delta=.02  # spatial resolution
steps = int(duration.total_seconds()/
            time_step_output.total_seconds() + 1)

o = OceanDrift(loglevel=20)

#%%
# Note that Runge-Kutta here makes a difference to Euler scheme
o.set_config('drift:advection_scheme', 'runge-kutta4')
o.disable_vertical_motion()
o.set_config('environment:fallback:land_binary_mask', 0)

double_gyre = reader_double_gyre.Reader(epsilon=.25, omega=0.628, A=0.1)
print(double_gyre)
o.add_reader(double_gyre)

#%%
# Calculate Lyapunov exponents
times = [double_gyre.initial_time +
         n*time_step_output for n in range(steps)]
lcs = o.calculate_ftle(time=times, time_step=time_step,
                       duration=duration, delta=delta, RLCS=False)

#%%
# Make run with particles for the same period
o.seed_elements(lon=174.046669,
                lat=-40.928116,
                radius=20,
                number=100,
                z=np.linspace(0, -10, 100),
                time=schism_native.start_time)

o.seed_elements(lon=173.8839,
                lat=-40.9160,
                radius=20,
                number=100,
                z=np.linspace(0, -10, 100),
                time=schism_native.start_time)

o.seed_elements(lon=174.2940,
                lat=-41.0888,
                radius=20,
                number=100,
                z=np.linspace(0, -10, 100),
                time=schism_native.start_time)

o.disable_vertical_motion()  #Deactivate any vertical processes/advection"""
#%%
# Running model
o.run(time_step=900, end_time=schism_native.start_time + timedelta(days=1.0))
# outfile='schism_native_output.nc')
# Print and plot results
print(o)
o.plot(fast=True)
o.animation()
o.animation_profile()