Thredds resources for GUI

from datetime import datetime
from opendrift.models.oceandrift import OceanDrift
from opendrift.readers.reader_netCDF_CF_generic import Reader

o = OceanDrift(loglevel=0)

thredds_resources = open(o.test_data_folder()+'../../opendrift/scripts/data_sources.txt').readlines()
times = {}
15:20:29 DEBUG   opendrift.config:168: Adding 18 config items from __init__
15:20:29 DEBUG   opendrift.config:178:   Overwriting config item readers:max_number_of_fails
15:20:29 DEBUG   opendrift.config:168: Adding 5 config items from __init__
15:20:29 INFO    opendrift:509: OpenDriftSimulation initialised (version 1.13.1 / v1.13.1-82-gbc545aa)
15:20:29 DEBUG   opendrift.config:168: Adding 15 config items from oceandrift
15:20:29 DEBUG   opendrift.config:178:   Overwriting config item seed:z

Open each thredds dataset to check contents and spatial coverage

for t in thredds_resources:
    if t.startswith('http') and not t.startswith('cmems'):
        start = datetime.now()
        print('\n#%%\n%s\n' % t)
        r = Reader(t)
        print(r)
        ts = str(datetime.now() - start)
        times[t] = ts
        print('Time to open reader: ', ts)
        if r.global_coverage():
            lscale = 'coarse'
        else:
            lscale = 'intermediate'
        r.plot(lscale=lscale)
  • https://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be
  • https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc
  • https://thredds.met.no/thredds/dodsC/fou-hi/barents_eps_zdepth_be
  • https://thredds.met.no/thredds/dodsC/cmems/mywavewam3km/dataset-wam-arctic-1hr3km-be.ncml
  • https://thredds.met.no/thredds/dodsC/ww3_4km_agg
  • https://thredds.met.no/thredds/dodsC/cmems/topaz6/dataset-topaz6-arc-15min-3km-be.ncml
  • https://thredds.met.no/thredds/dodsC/aromearcticlatest/latest/arome_arctic_lagged_6_h_latest_2_5km_latest.nc
  • https://pae-paha.pacioos.hawaii.edu/thredds/dodsC/ncep_global/NCEP_Global_Atmospheric_Model_best.ncd
  • https://tds.hycom.org/thredds/dodsC/FMRC_ESPC-D-V02_uv3z/FMRC_ESPC-D-V02_uv3z_best.ncd
#%
https://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be


15:20:29 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:20:29 DEBUG   gribapi.bindings:58: eccodes lib search: trying to find binary wheel
15:20:29 DEBUG   gribapi.bindings:65: eccodes lib search: looking in /opt/conda/envs/opendrift/lib/python3.13/site-packages/eccodes.libs
15:20:29 DEBUG   gribapi.bindings:65: eccodes lib search: looking in /opt/conda/envs/opendrift/lib/python3.13/site-packages/eccodes/.dylibs
15:20:29 DEBUG   gribapi.bindings:65: eccodes lib search: looking in /opt/conda/envs/opendrift/lib/python3.13/site-packages/eccodes
15:20:29 DEBUG   gribapi.bindings:91: eccodes lib search: did not find library from wheel; try to find as separate lib
15:20:29 DEBUG   gribapi.bindings:99: eccodes lib search: findlibs returned /opt/conda/envs/opendrift/lib/libeccodes.so
15:20:34 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:20:34 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'polar_stereographic', 'straight_vertical_longitude_from_pole': np.float64(70.0), 'latitude_of_projection_origin': np.float64(90.0), 'standard_parallel': np.float64(60.0), 'false_easting': np.float64(3192800.0), 'false_northing': np.float64(1784000.0), 'semi_major_axis': np.float64(6378137.0), 'semi_minor_axis': np.float64(6356752.3142), 'proj4': '+proj=stere +lat_0=90 +lat_ts=60 +lon_0=70 +x_0=3192800 +y_0=1784000 +a=6378137 +b=6356752.3142 +units=m +no_defs +type=crs'}
15:20:34 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:20:34 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'x': 'X', 'y': 'Y', 'z': 'depth', 'time': 'time'}
15:20:34 DEBUG   opendrift.readers.reader_netCDF_CF_generic:368: Skipped variables without standard_name: ['angle', 'tke', 'ubar', 'vbar']
15:20:34 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 25 for reader https://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:20:34 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:20:34 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_wind', 'y_wind'] -> wind_speed
15:20:34 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_sea_water_velocity', 'y_sea_water_velocity'] -> sea_water_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be

Projection:
  +proj=stere +lat_0=90 +lat_ts=60 +lon_0=70 +x_0=3192800 +y_0=1784000 +a=6378137 +b=6356752.3142 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: 0.000000   xmax: 2080800.000000   step: 800   numx: 2602
  ymin: 0.000000   ymax: 720800.000000   step: 800   numy: 902
  Corners (lon, lat):
    ( -1.58,  58.50)  ( 23.71,  75.32)
    (  9.19,  55.91)  ( 38.06,  70.03)
Vertical levels [m]:
  [   -0.    -3.   -10.   -15.   -25.   -50.   -75.  -100.  -150.  -200.
  -250.  -300.  -500. -1000. -2000. -3000.]
Available time range:
  start: 2017-02-20 00:00:00   end: 2025-05-14 00:00:00   step: 1:00:00
    72121 times (3468 missing)
Variables:
  sea_floor_depth_below_sea_level
  latitude
  longitude
  x_wind
  y_wind
  sea_water_salinity
  sea_water_temperature
  x_sea_water_velocity
  eastward_sea_water_velocity
  y_sea_water_velocity
  northward_sea_water_velocity
  upward_sea_water_velocity
  sea_surface_height
  wind_speed - derived from ['x_wind', 'y_wind']
  sea_water_speed - derived from ['x_sea_water_velocity', 'y_sea_water_velocity']
===========================

Time to open reader:  0:00:04.700974

#%
https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc


15:20:38 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:20:39 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:20:39 DEBUG   opendrift.readers.reader_netCDF_CF_generic:237: 30 ensemble members available
15:20:39 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'lambert_conformal_conic', 'standard_parallel': array([63.3, 63.3]), 'longitude_of_central_meridian': np.float64(15.0), 'latitude_of_projection_origin': np.float64(63.3), 'earth_radius': np.float64(6371000.0)}
15:20:39 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:20:39 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'time': 'time', 'x': 'x', 'y': 'y'}
15:20:39 DEBUG   opendrift.readers.reader_netCDF_CF_generic:368: Skipped variables without standard_name: ['fog_area_fraction']
15:20:39 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 10 for reader https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:20:39 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:20:39 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_wind', 'y_wind'] -> wind_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc

Projection:
  +proj=lcc +lat_0=63.3 +lon_0=15 +lat_1=63.3 +lat_2=63.3 +x_0=0 +y_0=0 +R=6371000 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: -1060084.000000   xmax: 1309916.000000   step: 2500   numx: 949
  ymin: -1332517.875000   ymax: 1337482.125000   step: 2500   numy: 1069
  Corners (lon, lat):
    (-18.12,  72.76)  ( 54.24,  71.58)
    (  0.28,  50.32)  ( 33.03,  49.77)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2025-05-09 12:00:00   end: 2025-05-12 01:00:00   step: 1:00:00
    62 times (0 missing)
Variables (30 ensemble members):
  longitude
  latitude
  x_wind
  y_wind
  air_temperature
  relative_humidity
  cloud_area_fraction
  air_pressure_at_sea_level
  precipitation_amount
  snowfall_amount
  wind_speed_of_gust
  wind_speed - derived from ['x_wind', 'y_wind']
===========================

Time to open reader:  0:00:00.897259

#%
https://thredds.met.no/thredds/dodsC/fou-hi/barents_eps_zdepth_be


15:20:39 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:20:42 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:20:42 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'lambert_conformal_conic', 'standard_parallel': array([77.5, 77.5], dtype=float32), 'longitude_of_central_meridian': np.float32(-25.0), 'latitude_of_projection_origin': np.float32(77.5), 'earth_radius': np.float32(6371000.0), 'proj4': '+proj=lcc +lat_0=77.5 +lon_0=-25 +lat_1=77.5 +lat_2=77.5 +no_defs +R=6.371e+06'}
15:20:42 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:20:42 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'x': 'X', 'y': 'Y', 'z': 'depth', 'time': 'time'}
15:20:42 DEBUG   opendrift.readers.reader_netCDF_CF_generic:368: Skipped variables without standard_name: ['angle']
15:20:42 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 10 for reader https://thredds.met.no/thredds/dodsC/fou-hi/barents_eps_zdepth_be
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:20:42 INFO    opendrift.readers.basereader:176: Variable x_sea_water_velocity will be rotated from eastward_sea_water_velocity
15:20:42 INFO    opendrift.readers.basereader:176: Variable y_sea_water_velocity will be rotated from northward_sea_water_velocity
15:20:42 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:20:42 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_wind', 'y_wind'] -> wind_speed
15:20:42 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['sea_ice_x_velocity', 'sea_ice_y_velocity'] -> sea_ice_speed
15:20:42 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_sea_water_velocity', 'y_sea_water_velocity'] -> sea_water_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/fou-hi/barents_eps_zdepth_be

Projection:
  +proj=lcc +lat_0=77.5 +lon_0=-25 +lat_1=77.5 +lat_2=77.5 +x_0=0 +y_0=0 +R=6371000 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: 278603.187500   xmax: 2123602.750000   step: 2500   numx: 738
  ymin: -897931.625000   ymax: 1472067.625000   step: 2500   numy: 948
  Corners (lon, lat):
    ( 79.56,  87.57)  ( 68.83,  71.11)
    (-17.96,  69.30)  ( 18.62,  62.13)
Vertical levels [m]:
  [   -0.    -3.   -10.   -15.   -25.   -50.   -75.  -100.  -150.  -200.
  -250.  -300.  -500. -1000. -2000. -3000.]
Available time range:
  start: 2022-06-29 00:00:00   end: 2025-05-13 00:00:00   step: 1:00:00
    25177 times (648 missing)
Variables:
  sea_floor_depth_below_sea_level
  latitude
  longitude
  sea_binary_mask
  ocean_vertical_diffusivity
  x_wind
  y_wind
  sea_ice_area_fraction
  sea_ice_thickness
  sea_ice_x_velocity
  sea_ice_y_velocity
  sea_water_salinity
  sea_water_temperature
  eastward_sea_water_velocity
  northward_sea_water_velocity
  upward_sea_water_velocity
  sea_surface_height
  x_sea_water_velocity
  y_sea_water_velocity
  wind_speed - derived from ['x_wind', 'y_wind']
  sea_ice_speed - derived from ['sea_ice_x_velocity', 'sea_ice_y_velocity']
  sea_water_speed - derived from ['x_sea_water_velocity', 'y_sea_water_velocity']
===========================

Time to open reader:  0:00:02.739520

#%
https://thredds.met.no/thredds/dodsC/cmems/mywavewam3km/dataset-wam-arctic-1hr3km-be.ncml


15:20:42 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:21:31 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:21:31 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'polar_stereographic', 'scale_factor_at_projection_origin': np.float64(1.0), 'straight_vertical_longitude_from_pole': np.float64(-45.0), 'latitude_of_projection_origin': np.float64(90.0), 'earth_radius': np.float64(6371000.0), 'proj4': '+proj=stere +lon_0=-45 +lat_0=90 +k=1 +R=6371000 +no_defs'}
15:21:32 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:21:32 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'y': 'rlat', 'x': 'rlon', 'time': 'time'}
15:21:32 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 8 for reader https://thredds.met.no/thredds/dodsC/cmems/mywavewam3km/dataset-wam-arctic-1hr3km-be.ncml
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:21:32 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:21:32 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['sea_water_speed', 'sea_water_to_direction'] -> x_sea_water_velocity
15:21:32 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['sea_water_speed', 'sea_water_to_direction'] -> y_sea_water_velocity
15:21:32 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['sea_surface_wave_stokes_drift_x_velocity', 'sea_surface_wave_stokes_drift_y_velocity'] -> sea_surface_wave_stokes_drift_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/cmems/mywavewam3km/dataset-wam-arctic-1hr3km-be.ncml

Projection:
  +proj=stere +lat_0=90 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +R=6371000 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: -3600000.000000   xmax: 3798000.000000   step: 3000   numx: 2467
  ymin: -4300000.000000   ymax: 2798000.000000   step: 3000   numy: 2367
  Corners (lon, lat):
    (-172.86,  50.62)  ( 81.38,  49.37)
    (-84.94,  42.49)  ( -3.55,  41.52)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2022-08-01 00:00:00   end: 2025-05-18 12:00:00   step: 1:00:00
    24517 times (0 missing)
Variables:
  sea_floor_depth_below_sea_level
  longitude
  latitude
  sea_ice_area_fraction
  sea_ice_thickness
  sea_water_speed
  sea_water_to_direction
  sea_surface_wave_significant_height
  sea_surface_wave_period_at_variance_spectral_density_maximum
  sea_surface_wave_mean_period_from_variance_spectral_density_inverse_frequency_moment
  sea_surface_wave_mean_period_from_variance_spectral_density_second_frequency_moment
  sea_surface_wave_from_direction
  sea_surface_wind_wave_significant_height
  sea_surface_wind_wave_mean_period_from_variance_spectral_density_first_frequency_moment
  sea_surface_wind_wave_from_direction
  sea_surface_primary_swell_wave_significant_height
  sea_surface_primary_swell_wave_mean_period
  sea_surface_primary_swell_wave_from_direction
  sea_surface_secondary_swell_wave_significant_height
  sea_surface_secondary_swell_wave_mean_period
  sea_surface_secondary_swell_wave_from_direction
  sea_surface_wave_from_direction_at_variance_spectral_density_maximum
  sea_surface_wave_stokes_drift_x_velocity
  sea_surface_wave_stokes_drift_y_velocity
  sea_surface_wave_maximum_crest_height
  sea_surface_wave_maximum_height
  x_sea_water_velocity - derived from ['sea_water_speed', 'sea_water_to_direction']
  y_sea_water_velocity - derived from ['sea_water_speed', 'sea_water_to_direction']
  sea_surface_wave_stokes_drift_speed - derived from ['sea_surface_wave_stokes_drift_x_velocity', 'sea_surface_wave_stokes_drift_y_velocity']
===========================

Time to open reader:  0:00:49.782413

#%
https://thredds.met.no/thredds/dodsC/ww3_4km_agg


15:21:32 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:22:55 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:22:55 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'proj4': '+proj=ob_tran +o_proj=longlat +lon_0=-40 +o_lat_p=22 +R=6.371e+06 +no_defs', 'grid_mapping_name': 'rotated_latitude_longitude', 'grid_north_pole_longitude': np.float64(140.0), 'grid_north_pole_latitude': np.float64(22.0), 'earth_radius': np.float64(6371000.0)}
15:22:55 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:22:55 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'y': 'rlat', 'x': 'rlon', 'time': 'time'}
15:22:55 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 7 for reader https://thredds.met.no/thredds/dodsC/ww3_4km_agg
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:22:55 INFO    opendrift.readers.basereader:176: Variable x_wind will be rotated from eastward_wind
15:22:55 INFO    opendrift.readers.basereader:176: Variable y_wind will be rotated from northward_wind
15:22:55 INFO    opendrift.readers.basereader:176: Variable sea_surface_wave_stokes_drift_x_velocity will be rotated from eastward_surface_stokes_drift
15:22:55 INFO    opendrift.readers.basereader:176: Variable sea_surface_wave_stokes_drift_y_velocity will be rotated from northward_surface_stokes_drift
15:22:55 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:22:55 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['sea_surface_wave_stokes_drift_x_velocity', 'sea_surface_wave_stokes_drift_y_velocity'] -> sea_surface_wave_stokes_drift_speed
15:22:55 DEBUG   opendrift.readers.basereader.variables:116: NB: Converting degrees to radians due to ob_tran srs
===========================
Reader: https://thredds.met.no/thredds/dodsC/ww3_4km_agg

Projection:
  +proj=ob_tran +o_proj=longlat +o_lon_p=0 +o_lat_p=22 +lon_0=320 +R=6371000 +no_defs +type=crs
Coverage: [degrees]
  xmin: 5.530000   xmax: 30.450000   step: 0.04   numx: 623
  ymin: -14.350000   ymax: 26.650000   step: 0.04   numy: 1026
  Corners (lon, lat):
    ( 93.81,  83.15)  ( 65.69,  61.93)
    (-31.02,  53.25)  (  2.14,  42.96)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2023-04-20 06:00:00   end: 2025-05-11 05:00:00   step: 1:00:00
    18048 times (0 missing)
Variables:
  longitude
  latitude
  status map
  sea_surface_wave_peak_frequency
  depth
  eastward_wind
  northward_wind
  sea_ice_area_fraction
  sea_surface_wave_significant_height
  mean_wave_length
  sea_surface_wind_wave_mean_period_from_variance_spectral_density_second_frequency_moment
  sea_surface_wind_wave_mean_period_from_variance_spectral_density_inverse_frequency_moment
  sea_surface_wind_wave_mean_period_from_variance_spectral_density_first_frequency_moment
  sea_surface_wave_from_direction
  sea_surface_wave_directional_spread
  sea_surface_wave_peak_direction
  sea_surface_wave_maximum_height
  sea_surface_wave_maximum_crest_height
  sea_surface_wave_maximum_height_std
  sea_surface_wave_maximum_crest_height_std
  sea_surface_wave_significant_height_partition_0
  sea_surface_wave_significant_height_partition_1
  sea_surface_wave_period_at_variance_spectral_density_maximum_partition_0
  sea_surface_wave_period_at_variance_spectral_density_maximum_partition_1
  sea_surface_wave_from_direction_partition_0
  sea_surface_wave_from_direction_partition_1
  sea_surface_swell_wave_mean_period_from_variance_spectral_density_first_frequency_moment
  sea_surface_swell_wave_mean_period_from_variance_spectral_density_second_frequency_moment
  eastward_friction_velocity
  northward_friction_velocity
  charnock_coefficient_for_surface_roughness_length_for_momentum_in_air
  wind_mixing_energy_flux_into_sea_water
  eastward_wave_supported_wind_stress
  northward_wave_supported_wind_stress
  sea_surface_wave_mean_period_from_variance_spectral_density_inverse_frequency_moment
  eastward_wave_to_ocean_stress
  northward_wave_to_ocean_stress
  wave_to_ocean_energy_flux
  eastward_stokes_transport
  northward_stokes_transport
  eastward_surface_stokes_drift
  northward_surface_stokes_drift
  eastward_wave_to_sea_ice_stress
  northward_wave_to_sea_ice_stress
  wave_to_sea_ice_energy_flux
  sea_surface_wave_period_at_variance_spectral_density_maximum
  wind_speed
  wind_from_direction
  x_wind
  y_wind
  sea_surface_wave_stokes_drift_x_velocity
  sea_surface_wave_stokes_drift_y_velocity
  sea_surface_wave_stokes_drift_speed - derived from ['sea_surface_wave_stokes_drift_x_velocity', 'sea_surface_wave_stokes_drift_y_velocity']
===========================

Time to open reader:  0:01:23.415095
15:22:55 DEBUG   opendrift.readers.basereader.variables:116: NB: Converting degrees to radians due to ob_tran srs
15:22:55 DEBUG   opendrift.readers.basereader.variables:116: NB: Converting degrees to radians due to ob_tran srs
15:22:55 DEBUG   opendrift.readers.basereader.variables:116: NB: Converting degrees to radians due to ob_tran srs

#%
https://thredds.met.no/thredds/dodsC/cmems/topaz6/dataset-topaz6-arc-15min-3km-be.ncml


15:22:55 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:22:57 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:22:57 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'polar_stereographic', 'latitude_of_projection_origin': np.float64(90.0), 'longitude_of_projection_origin': np.float64(-45.0), 'scale_factor_at_projection_origin': np.float64(1.0), 'straight_vertical_longitude_from_pole': np.float64(-45.0), 'earth_radius': np.float64(6378273.0), 'proj4': '+proj=stere +lon_0=-45 +lat_0=90 +k=1 +R=6378273 +no_defs', 'false_easting': np.float64(0.0), 'false_northing': np.float64(0.0)}
15:22:57 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:22:57 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'x': 'x', 'y': 'y', 'time': 'time'}
15:22:57 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 4 for reader https://thredds.met.no/thredds/dodsC/cmems/topaz6/dataset-topaz6-arc-15min-3km-be.ncml
, assuming a maximum average speed of 5 m/s and time span of 0:15:00
15:22:57 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:22:57 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_sea_water_velocity', 'y_sea_water_velocity'] -> sea_water_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/cmems/topaz6/dataset-topaz6-arc-15min-3km-be.ncml

Projection:
  +proj=stere +lat_0=90 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +R=6378273 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: -3600000.000000   xmax: 3798000.000000   step: 3000   numx: 2467
  ymin: -4300000.000000   ymax: 2798000.000000   step: 3000   numy: 2367
  Corners (lon, lat):
    (-172.86,  50.66)  ( 81.38,  49.41)
    (-84.94,  42.54)  ( -3.55,  41.57)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2018-01-01 00:00:00   end: 2025-05-17 23:45:00   step: 0:15:00
    258624 times (0 missing)
Variables:
  longitude
  latitude
  sea_floor_depth_below_sea_level
  x_sea_water_velocity
  y_sea_water_velocity
  sea_surface_height
  sea_water_speed - derived from ['x_sea_water_velocity', 'y_sea_water_velocity']
===========================

Time to open reader:  0:00:01.821337

#%
https://thredds.met.no/thredds/dodsC/aromearcticlatest/latest/arome_arctic_lagged_6_h_latest_2_5km_latest.nc


15:22:57 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:22:58 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:22:58 DEBUG   opendrift.readers.reader_netCDF_CF_generic:237: 6 ensemble members available
15:22:58 DEBUG   opendrift.readers.reader_netCDF_CF_generic:143: Parsing CF grid mapping dictionary: {'grid_mapping_name': 'lambert_conformal_conic', 'standard_parallel': array([77.5, 77.5]), 'longitude_of_central_meridian': np.float64(-25.0), 'latitude_of_projection_origin': np.float64(77.5), 'earth_radius': np.float64(6371000.0)}
15:22:58 DEBUG   pyproj:40: PROJ_ERROR: proj_create: several objects matching this name: Krovak (Greenwich), Equal Earth Greenwich, Laborde Grid (Greenwich), Modified Krovak (Greenwich), Krovak East North (Greenwich), Modified Krovak East North (Greenwich), ...
15:22:58 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'time': 'time', 'x': 'x', 'y': 'y'}
15:22:58 DEBUG   opendrift.readers.reader_netCDF_CF_generic:368: Skipped variables without standard_name: ['fog_area_fraction']
15:22:58 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 10 for reader https://thredds.met.no/thredds/dodsC/aromearcticlatest/latest/arome_arctic_lagged_6_h_latest_2_5km_latest.nc
, assuming a maximum average speed of 5 m/s and time span of 1:00:00
15:22:58 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:22:58 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_wind', 'y_wind'] -> wind_speed
===========================
Reader: https://thredds.met.no/thredds/dodsC/aromearcticlatest/latest/arome_arctic_lagged_6_h_latest_2_5km_latest.nc

Projection:
  +proj=lcc +lat_0=77.5 +lon_0=-25 +lat_1=77.5 +lat_2=77.5 +x_0=0 +y_0=0 +R=6371000 +units=m +no_defs +type=crs
Coverage: [degrees]
  xmin: 278620.937500   xmax: 2123621.000000   step: 2500   numx: 739
  ymin: -897985.687500   ymax: 1472014.250000   step: 2500   numy: 949
  Corners (lon, lat):
    ( 79.55,  87.57)  ( 68.83,  71.11)
    (-17.96,  69.30)  ( 18.62,  62.13)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2025-05-09 12:00:00   end: 2025-05-12 01:00:00   step: 1:00:00
    62 times (0 missing)
Variables (6 ensemble members):
  longitude
  latitude
  x_wind
  y_wind
  air_temperature
  relative_humidity
  cloud_area_fraction
  air_pressure_at_sea_level
  precipitation_amount
  snowfall_amount
  wind_speed_of_gust
  wind_speed - derived from ['x_wind', 'y_wind']
===========================

Time to open reader:  0:00:01.011854

#%
https://pae-paha.pacioos.hawaii.edu/thredds/dodsC/ncep_global/NCEP_Global_Atmospheric_Model_best.ncd


15:22:58 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:23:00 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:23:00 DEBUG   opendrift.readers.reader_netCDF_CF_generic:262: Lon and lat are 1D arrays - using as projection coordinates
15:23:00 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'time': 'time', 'x': 'longitude', 'y': 'latitude'}
15:23:00 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 3 for reader https://pae-paha.pacioos.hawaii.edu/thredds/dodsC/ncep_global/NCEP_Global_Atmospheric_Model_best.ncd
, assuming a maximum average speed of 5 m/s and time span of 3:00:00
15:23:00 INFO    opendrift.readers.basereader:176: Variable x_wind will be rotated from eastward_wind
15:23:00 INFO    opendrift.readers.basereader:176: Variable y_wind will be rotated from northward_wind
15:23:00 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:23:00 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_wind', 'y_wind'] -> wind_speed
===========================
Reader: https://pae-paha.pacioos.hawaii.edu/thredds/dodsC/ncep_global/NCEP_Global_Atmospheric_Model_best.ncd

Projection:
  +proj=latlong
Coverage: [degrees]
  xmin: 0.000000   xmax: 359.500000   step: 0.5   numx: 720
  ymin: -90.000000   ymax: 90.000000   step: 0.5   numy: 361
  Corners (lon, lat):
    (  0.00,  90.00)  (359.50,  90.00)
    (  0.00, -90.00)  (359.50, -90.00)
Vertical levels [m]:
  Not specified
Available time range:
  start: 2022-12-01 12:00:00   end: 2025-05-16 12:00:00   step: 3:00:00
    7177 times (0 missing)
Variables:
  air_pressure_at_sea_level
  surface_downwelling_longwave_flux
  surface_downwelling_shortwave_flux
  precipitation_flux
  relative_humidity
  surface_temperature
  air_temperature
  eastward_wind
  surface_upwelling_longwave_flux
  surface_upwelling_shortwave_flux
  northward_wind
  x_wind
  y_wind
  wind_speed - derived from ['x_wind', 'y_wind']
===========================

Time to open reader:  0:00:01.740162

#%
https://tds.hycom.org/thredds/dodsC/FMRC_ESPC-D-V02_uv3z/FMRC_ESPC-D-V02_uv3z_best.ncd


15:23:00 INFO    opendrift.readers:61: Opening file with xr.open_dataset
15:23:00 WARNING opendrift.readers:67: Removing variables that cannot be CF decoded: ['tau']
15:23:00 DEBUG   opendrift.readers.reader_netCDF_CF_generic:128: Finding coordinate variables.
15:23:00 INFO    opendrift.readers.reader_netCDF_CF_generic:299: Grid coordinates are detected, but proj4 string not given: assuming latlong
15:23:00 INFO    opendrift.readers.reader_netCDF_CF_generic:332: Detected dimensions: {'z': 'depth', 'y': 'lat', 'x': 'lon', 'time': 'time'}
15:23:00 DEBUG   opendrift.readers.basereader.variables:612: Setting buffer size 9 for reader https://tds.hycom.org/thredds/dodsC/FMRC_ESPC-D-V02_uv3z/FMRC_ESPC-D-V02_uv3z_best.ncd
, assuming a maximum average speed of 5 m/s and time span of 3:00:00
15:23:00 INFO    opendrift.readers.basereader:176: Variable y_sea_water_velocity will be rotated from northward_sea_water_velocity
15:23:00 INFO    opendrift.readers.basereader:176: Variable x_sea_water_velocity will be rotated from eastward_sea_water_velocity
15:23:00 DEBUG   opendrift.readers.basereader:186: Variable mapping: ['sea_floor_depth_below_sea_level'] -> ['land_binary_mask'] is not activated
15:23:00 DEBUG   opendrift.readers.basereader.variables:567: Adding variable mapping: ['x_sea_water_velocity', 'y_sea_water_velocity'] -> sea_water_speed
===========================
Reader: https://tds.hycom.org/thredds/dodsC/FMRC_ESPC-D-V02_uv3z/FMRC_ESPC-D-V02_uv3z_best.ncd

Projection:
  +proj=latlong
Coverage: [degrees]
  xmin: 0.000000   xmax: 359.920044   step: 0.0799561   numx: 4502
  ymin: -80.000000   ymax: 90.000000   step: 0.0400009   numy: 4250
  Corners (lon, lat):
    (  0.00,  90.00)  (359.92,  90.00)
    (  0.00, -80.00)  (359.92, -80.00)
Vertical levels [m]:
  [   -0.    -2.    -4.    -6.    -8.   -10.   -12.   -15.   -20.   -25.
   -30.   -35.   -40.   -45.   -50.   -60.   -70.   -80.   -90.  -100.
  -125.  -150.  -200.  -250.  -300.  -350.  -400.  -500.  -600.  -700.
  -800.  -900. -1000. -1250. -1500. -2000. -2500. -3000. -4000. -5000.]
Available time range:
  start: 2025-04-30 12:00:00   end: 2025-05-15 12:00:00   step: 3:00:00
    121 times (0 missing)
Variables:
  northward_sea_water_velocity
  eastward_sea_water_velocity
  y_sea_water_velocity
  x_sea_water_velocity
  sea_water_speed - derived from ['x_sea_water_velocity', 'y_sea_water_velocity']
===========================

Time to open reader:  0:00:00.495446

Summary of times to open each dataset:

for t, time in times.items():
    print(time, t)
0:00:04.700974 https://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be

0:00:00.897259 https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc

0:00:02.739520 https://thredds.met.no/thredds/dodsC/fou-hi/barents_eps_zdepth_be

0:00:49.782413 https://thredds.met.no/thredds/dodsC/cmems/mywavewam3km/dataset-wam-arctic-1hr3km-be.ncml

0:01:23.415095 https://thredds.met.no/thredds/dodsC/ww3_4km_agg

0:00:01.821337 https://thredds.met.no/thredds/dodsC/cmems/topaz6/dataset-topaz6-arc-15min-3km-be.ncml

0:00:01.011854 https://thredds.met.no/thredds/dodsC/aromearcticlatest/latest/arome_arctic_lagged_6_h_latest_2_5km_latest.nc

0:00:01.740162 https://pae-paha.pacioos.hawaii.edu/thredds/dodsC/ncep_global/NCEP_Global_Atmospheric_Model_best.ncd

0:00:00.495446 https://tds.hycom.org/thredds/dodsC/FMRC_ESPC-D-V02_uv3z/FMRC_ESPC-D-V02_uv3z_best.ncd

Total running time of the script: (10 minutes 8.639 seconds)

Gallery generated by Sphinx-Gallery