コード例 #1
0
    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])
コード例 #2
0
ファイル: test_readers.py プロジェクト: thomakra/opendrift
    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])
コード例 #3
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