THREDDS stands for Thematic Real-time Environmental Distributed Data Services and is a type of service as a product of the Unidata program, which is a 'community of education and research institutions with the common goal of sharing geoscience data and the tools to access and visualize that data' (see Unidata about page). The implementation of a THREDDS data service is called TDS (THREDDS Data Server).  The THREDDS Data Server (TDS) is a web server that provides metadata and data access for scientific datasets, using a variety of remote data access protocols.  TDS accepts various data formats, think of NetCDF, HDF and GRIB and is able to provide the OGC services WMS, WCS and others as OPeNDAP and HTTP. The additional service (a matter of configuration) ncISO allows extraction of metadata from the header of the data disseminated via THREDDS. More information on the factsheet.

The combination of the dynamic behavior of THREDDS and the possibilities of the file format nNetCDF allows for real time availability of data via OGC services like WMS. 

Step-by-step guide

Installing THREDDS on your local machine can be a bit cumbersome, first you need to have Tomcat running and then you can have TDS as a service. The most ideal solution is to use the docker version of TDS or using the Deltares TDS. 

  1. check out the desired version of TDS from https://downloads.unidata.ucar.edu/tds/ and follow the instructions
  2. if you need one for your project get in contact with IT (Servicedesk-Data@deltares.nl) or request for a space on the openearth production server (https://opendap.deltares.nl/thredds/catalog/opendap/catalog.html).


Tutorials

Most obvious tutorial can be found on TDS website of Unidata - https://docs.unidata.ucar.edu/tds/current/userguide/index.html


Automation with Python

Automation with Python is mainly focused on writing netCDF files. The main python package is the netCDF4 package. See https://pypi.org/project/netCDF4/ for installation and documentation. But you might also find it easier to work with XARRAY package. 


TDS and metadata

NetCDF is a choice that fits well with current practices. But to be able to enable extraction of standardized metadata it is of importance to follow good practices and implement CF metadata convention (see link for further reading). In the Opens Source SVN repository of the netCDFKickstarter various CF compliant examples can be found. See for further reading https://svn.oss.deltares.nl/repos/openearthtools/trunk/python/applications/netCDFKickstarter/