Satellite

from opendrift.readers import reader_netCDF_CF_generic
from opendrift.models.openoil import OpenOil

o = OpenOil(loglevel=20)  # Set loglevel to 0 for debug information

# Arome
reader_arome = reader_netCDF_CF_generic.Reader(o.test_data_folder() +
    '16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc')

# Norkyst
reader_norkyst = reader_netCDF_CF_generic.Reader(o.test_data_folder() +
    '16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc')

o.add_reader([reader_norkyst, reader_arome])

Out:

13:43:51 INFO    opendrift.models.basemodel: OpenDriftSimulation initialised (version 1.7.1 / v1.7.1-87-g074c1d2)
13:43:51 INFO    opendrift.readers.reader_netCDF_CF_generic: Opening dataset: /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc
13:43:51 INFO    opendrift.readers.reader_netCDF_CF_generic: Opening dataset: /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc

Seed oil particles within contour detected from satellite

o.seed_from_gml(o.test_data_folder() + 'radarsat_oil_satellite_observation/RS2_20151116_002619_0127_SCNB_HH_SGF_433012_9730_12182143_Oil.gml',
    num_elements=2000)

Out:

13:43:51 INFO    opendrift.models.openoil: Oil type not specified, using default: AASGARD A 2003
querying DB:
Oil.name ==  'AASGARD A 2003'
13:43:52 INFO    opendrift.models.openoil: Using density 816.6828030078809 and viscosity 3.298187589355751e-05 of oiltype AASGARD A 2003

Adjusting some configuration

o.set_config('drift:vertical_mixing', False)
o.set_config('processes:dispersion', True)
o.set_config('processes:evaporation', False)
o.set_config('processes:emulsification', True)
o.set_config('drift:current_uncertainty', .1)  # Diffusion
o.set_config('drift:wind_uncertainty', 1)

Running model for 6 hours

o.run(steps=6*4, time_step=900)

Out:

13:43:52 INFO    opendrift.models.basemodel: Fallback values will be used for the following variables which have no readers:
13:43:52 INFO    opendrift.models.basemodel:    upward_sea_water_velocity: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_surface_wave_significant_height: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_surface_wave_stokes_drift_x_velocity: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_surface_wave_stokes_drift_y_velocity: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_surface_wave_period_at_variance_spectral_density_maximum: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_surface_wave_mean_period_from_variance_spectral_density_second_frequency_moment: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_ice_area_fraction: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_ice_x_velocity: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_ice_y_velocity: 0.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_water_temperature: 10.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_water_salinity: 34.000000
13:43:52 INFO    opendrift.models.basemodel:    sea_floor_depth_below_sea_level: 10000.000000
13:43:52 INFO    opendrift.models.basemodel:    ocean_vertical_diffusivity: 0.020000
13:43:52 INFO    opendrift.models.basemodel: Adding a dynamical landmask with max. priority based on assumed maximum speed of 1.3 m/s. Adding a customised landmask may be faster...
13:43:52 INFO    opendrift_landmask_data.mask: locking landmask for generation..
13:43:52 INFO    opendrift_landmask_data.mask: decompressing memmap landmask to /tmp/landmask/mask.dat..
13:44:05 INFO    opendrift_landmask_data.mask: landmask generated
13:44:09 INFO    opendrift.models.basemodel: Using existing reader for land_binary_mask
13:44:09 INFO    opendrift.models.basemodel: All points are in ocean
13:44:09 INFO    opendrift.models.openoil: Oil-water surface tension is 0.028134 Nm
13:44:09 INFO    opendrift.models.basemodel: 2015-11-16 00:26:18.770000 - step 1 of 24 - 1990 active elements (0 deactivated)
13:44:09 INFO    opendrift.models.basemodel: 2015-11-16 00:41:18.770000 - step 2 of 24 - 1990 active elements (0 deactivated)
13:44:09 INFO    opendrift.models.basemodel: 2015-11-16 00:56:18.770000 - step 3 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 01:11:18.770000 - step 4 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 01:26:18.770000 - step 5 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 01:41:18.770000 - step 6 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 01:56:18.770000 - step 7 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 02:11:18.770000 - step 8 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 02:26:18.770000 - step 9 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 02:41:18.770000 - step 10 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 02:56:18.770000 - step 11 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 03:11:18.770000 - step 12 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 03:26:18.770000 - step 13 of 24 - 1990 active elements (0 deactivated)
13:44:10 INFO    opendrift.models.basemodel: 2015-11-16 03:41:18.770000 - step 14 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 03:56:18.770000 - step 15 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 04:11:18.770000 - step 16 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 04:26:18.770000 - step 17 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 04:41:18.770000 - step 18 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 04:56:18.770000 - step 19 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 05:11:18.770000 - step 20 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 05:26:18.770000 - step 21 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 05:41:18.770000 - step 22 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 05:56:18.770000 - step 23 of 24 - 1990 active elements (0 deactivated)
13:44:11 INFO    opendrift.models.basemodel: 2015-11-16 06:11:18.770000 - step 24 of 24 - 1990 active elements (0 deactivated)

Print and plot results

print(o)
o.animation(fast=True, buffer=0.1)

Out:

===========================
--------------------
Reader performance:
--------------------
/root/project/tests/test_data/16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc
 0:00:00.4  total
 0:00:00.0  preparing
 0:00:00.0  reading
 0:00:00.0  interpolation
 0:00:00.0  interpolation_time
 0:00:00.3  rotating vectors
 0:00:00.0  masking
--------------------
/root/project/tests/test_data/16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc
 0:00:00.4  total
 0:00:00.0  preparing
 0:00:00.0  reading
 0:00:00.0  interpolation
 0:00:00.0  interpolation_time
 0:00:00.3  rotating vectors
 0:00:00.0  masking
--------------------
global_landmask
 0:00:00.0  total
 0:00:00.0  preparing
 0:00:00.0  reading
 0:00:00.0  masking
--------------------
Performance:
   20.4 total time
    0.4 configuration
   17.6 preparing main loop
     17.5 making dynamical landmask
      0.0 moving elements to ocean
      1.0 readers
        0.0 global_landmask
        0.1 postprocessing
    2.3 main loop
        0.4 /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc
        0.4 /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc
      0.7 updating elements
        0.6 oil weathering
          0.0 updating viscosities
          0.6 updating densities
          0.0 emulsification
          0.0 dispersion
    0.0 cleaning up
--------------------
===========================
Model:  OpenOil     (OpenDrift version 1.7.1)
        1990 active Oil particles  (0 deactivated, 0 scheduled)
-------------------
Environment variables:
  -----
  x_sea_water_velocity
  y_sea_water_velocity
     1) /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/norkyst800_subset_16Nov2015.nc
  -----
  x_wind
  y_wind
     1) /root/project/tests/test_data/16Nov2015_NorKyst_z_surface/arome_subset_16Nov2015.nc
  -----
  land_binary_mask
     1) global_landmask
  -----
Readers not added for the following variables:
  ocean_vertical_diffusivity
  sea_floor_depth_below_sea_level
  sea_ice_area_fraction
  sea_ice_x_velocity
  sea_ice_y_velocity
  sea_surface_wave_mean_period_from_variance_spectral_density_second_frequency_moment
  sea_surface_wave_period_at_variance_spectral_density_maximum
  sea_surface_wave_significant_height
  sea_surface_wave_stokes_drift_x_velocity
  sea_surface_wave_stokes_drift_y_velocity
  sea_water_salinity
  sea_water_temperature
  upward_sea_water_velocity

Time:
        Start: 2015-11-16 00:26:18.770000
        Present: 2015-11-16 06:26:18.770000
        Calculation steps: 24 * 0:15:00 - total time: 6:00:00
        Output steps: 25 * 0:15:00
===========================

13:44:12 WARNING opendrift.models.basemodel: Plotting fast. This will make your plots less accurate.
13:44:13 INFO    opendrift.models.basemodel: Saving animation to /root/project/docs/source/gallery/animations/example_satellite_0.gif...
13:44:13 INFO    opendrift.models.basemodel: Making animated gif...
MovieWriter imagemagick unavailable; using Pillow instead.
../_images/example_satellite_0.gif
o.plot(fast=True, buffer=0.1)
OpenDrift - OpenOil (AASGARD A 2003) 2015-11-16 00:26 to 2015-11-16 06:26 UTC (25 steps)

Out:

13:44:20 WARNING opendrift.models.basemodel: Plotting fast. This will make your plots less accurate.

(<GeoAxesSubplot:title={'center':'OpenDrift - OpenOil (AASGARD A 2003)\n2015-11-16 00:26 to 2015-11-16 06:26 UTC (25 steps)'}>, <module 'matplotlib.pyplot' from '/opt/conda/envs/opendrift/lib/python3.9/site-packages/matplotlib/pyplot.py'>)

Total running time of the script: ( 0 minutes 34.026 seconds)

Gallery generated by Sphinx-Gallery