def test_repeated_run(self): # NOTE: this test fails if outfile is not None #outfile = 'leeway_test.nc' outfile = None o = OceanDrift(loglevel=50) o.set_config('drift:vertical_mixing', False) o.add_readers_from_list(reader_list) o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12)) o.run(steps=5, outfile=outfile) lon1 = o.get_property('lon')[0] # Repeated run with same object o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12)) o.run(steps=5, outfile=outfile) lon2 = o.get_property('lon')[0] # Third run, with different config o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12), wind_drift_factor=.1) o.run(steps=5) lon3 = o.get_property('lon')[0] # Fourth run, with different time o.reset() # Reset is needed due to new start_time o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 13), wind_drift_factor=.1) o.run(steps=5, outfile=outfile) lon4 = o.get_property('lon')[0] # Check results self.assertEqual(lon1[-1][0], lon2[-1][0]) self.assertNotEqual(lon3[-1][0], lon2[-1][0])
def test_repeated_run(self): o = OceanDrift(loglevel=50) o.add_readers_from_list(reader_list) o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12)) o.run(steps=5) lon1 = o.get_property('lon')[0] # Repeated run with same object o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12)) o.run(steps=5) lon2 = o.get_property('lon')[0] # Third run, with different config o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 12), wind_drift_factor=.1) o.run(steps=5) lon3 = o.get_property('lon')[0] # Fourth run, with different time o.reset() # Reset is needed due to new start_time o.seed_elements(lon=14, lat=67.85, time=datetime(2016, 2, 2, 13), wind_drift_factor=.1) o.run(steps=5) lon4 = o.get_property('lon')[0] # Check results self.assertEqual(lon1[-1][0], lon2[-1][0]) self.assertNotEqual(lon3[-1][0], lon2[-1][0])
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.reset() x = [.9] y = [.5] lon, lat = double_gyre.xy2lonlat(x, y) o.seed_elements(lon, lat, radius=.15, number=2000, time=double_gyre.initial_time) o.disable_vertical_motion() o.run(duration=duration, time_step=time_step, time_step_output=time_step_output) o.animation(buffer=0, lcs=lcs, hide_landmask=True) #%% # .. image:: /gallery/animations/example_double_gyre_LCS_particles_0.gif