Reading NetCDF data from OPEnDAP services

In this example we read NetCDF data from an OPEnDAP service using the :ref:`data-sources-opendap` source.
[1]:
import earthkit.data as ekd

url = "https://psl.noaa.gov/thredds/dodsC/Datasets/noaa.oisst.v2/sst.mnmean.nc"
d = ekd.from_source("opendap", url)
d
[1]:
NetCDF file

pathhttps://psl.noaa.gov/thredds/dodsC/Datasets/noaa.oisst.v2/sst.mnmean.nc
typesxarray, pandas, fieldlist, numpy, array

We can load the data into Xarray.

[2]:
d.to_xarray()
[2]:
<xarray.Dataset> Size: 128MB
Dimensions:    (time: 494, nbnds: 2, lat: 180, lon: 360)
Coordinates:
  * time       (time) datetime64[ns] 4kB 1981-12-01 1982-01-01 ... 2023-01-01
  * lat        (lat) float32 720B 89.5 88.5 87.5 86.5 ... -87.5 -88.5 -89.5
  * lon        (lon) float32 1kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5
Dimensions without coordinates: nbnds
Data variables:
    time_bnds  (time, nbnds) datetime64[ns] 8kB ...
    sst        (time, lat, lon) float32 128MB ...
Attributes:
    title:                           NOAA Optimum Interpolation (OI) SST V2
    Conventions:                     CF-1.0
    history:                         Wed Apr  6 13:47:45 2005: ncks -d time,0...
    comments:                        Data described in  Reynolds, R.W., N.A. ...
    platform:                        Model
    source:                          NCEP Climate Modeling Branch
    institution:                     National Centers for Environmental Predi...
    References:                      https://www.psl.noaa.gov/data/gridded/da...
    dataset_title:                   NOAA Optimum Interpolation (OI) SST V2
    source_url:                      http://www.emc.ncep.noaa.gov/research/cm...
    DODS_EXTRA.Unlimited_Dimension:  time

We can also convert the data into a fieldlist.

[3]:
fl = d.to_fieldlist()
fl.ls()
[3]:
parameter.variable time.valid_datetime time.base_datetime time.step vertical.level vertical.level_type ensemble.member geography.grid_type
0 sst 1981-12-01 1981-12-01 0 days None unknown 0 None
1 sst 1982-01-01 1982-01-01 0 days None unknown 0 None
2 sst 1982-02-01 1982-02-01 0 days None unknown 0 None
3 sst 1982-03-01 1982-03-01 0 days None unknown 0 None
4 sst 1982-04-01 1982-04-01 0 days None unknown 0 None
... ... ... ... ... ... ... ... ...
489 sst 2022-09-01 2022-09-01 0 days None unknown 0 None
490 sst 2022-10-01 2022-10-01 0 days None unknown 0 None
491 sst 2022-11-01 2022-11-01 0 days None unknown 0 None
492 sst 2022-12-01 2022-12-01 0 days None unknown 0 None
493 sst 2023-01-01 2023-01-01 0 days None unknown 0 None

494 rows × 8 columns

[4]:
v = fl[2].to_numpy()
v.shape
[4]:
(180, 360)
[5]:
fl.to_xarray()
[5]:
<xarray.Dataset> Size: 128MB
Dimensions:    (time: 494, nbnds: 2, lat: 180, lon: 360)
Coordinates:
  * time       (time) datetime64[ns] 4kB 1981-12-01 1982-01-01 ... 2023-01-01
  * lat        (lat) float32 720B 89.5 88.5 87.5 86.5 ... -87.5 -88.5 -89.5
  * lon        (lon) float32 1kB 0.5 1.5 2.5 3.5 4.5 ... 356.5 357.5 358.5 359.5
Dimensions without coordinates: nbnds
Data variables:
    time_bnds  (time, nbnds) datetime64[ns] 8kB dask.array<chunksize=(494, 2), meta=np.ndarray>
    sst        (time, lat, lon) float32 128MB dask.array<chunksize=(494, 180, 360), meta=np.ndarray>
Attributes:
    title:                           NOAA Optimum Interpolation (OI) SST V2
    Conventions:                     CF-1.0
    history:                         Wed Apr  6 13:47:45 2005: ncks -d time,0...
    comments:                        Data described in  Reynolds, R.W., N.A. ...
    platform:                        Model
    source:                          NCEP Climate Modeling Branch
    institution:                     National Centers for Environmental Predi...
    References:                      https://www.psl.noaa.gov/data/gridded/da...
    dataset_title:                   NOAA Optimum Interpolation (OI) SST V2
    source_url:                      http://www.emc.ncep.noaa.gov/research/cm...
    DODS_EXTRA.Unlimited_Dimension:  time
[ ]: