SOS Service on top of THREDDS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
pom.xml Release 1.4.3 Apr 18, 2017


Build Status

Stable version: v1.4.3 for THREDDS version 4.5+

Stable version: v1.1.1 for all other THREDDS versions

NcSOS adds an OGC SOS service to datasets in your existing THREDDS server. It complies with the IOOS SWE Milestone 1.0 templates and requires your datasets be in any of the CF 1.6 Discrete Sampling Geometries.

NcSOS acts like other THREDDS services (such an OPeNDAP and WMS) where as there are individual service endpoints for each dataset. It is best to aggregate your files and enable the NcSOS service on top of the aggregation. i.e. The NcML aggregate of hourly files from an individual station would be a good candidate to serve with NcSOS. Serving the individual hourly files with NcSOS would not be as beneficial.

You will need a working THREDDS installation of at least version 4.3.16 to run NcSOS v1.1.1 or ealrier You will need a working THREDDS installation of at least version 4.5 to run NcSOS v1.4.2

Quick Links

  1. Mailing list:!forum/ncsos
  2. Documentation wiki:
  3. Source repository:
  4. Issues and Ideas:
  5. Get source/installers:
  6. Deployed Servers:
ncSOS version/ branch THREDDS version Catalog URL
v1.1.1 (release) 4.3.20 (20131125.1409)
master (branch) 4.6.3
v1.4.3 (release) 4.5.4 (20141008.1804)



  • Added the ability to enable/disable ncSOS globally in the threddsConfig.xml file
  • To enable ncSOS add the following to the threddsConfig.xml:


  • Added response formats to return data in CSV or JSON
  • Get observations for GRID feature type when latitude/longitude is specified
  • Addresses all issue from Milestone 1.4

v1.2.1 / v1.1.1

  • Fixes an issue with attributes not being set correctly in the Describe Sensor response - see issue #171


  • Works with version 4.5 of the THREDDS data server. Please note that this version contains all of the same functionality as v1.1 and that it is not backwards compatible with previous versions of the THREDDS data server.


  • Addressed defects identified in the November 2014 test report (#156).


  • Added support for GetObservation requests on TimeSeriesProfile datasets.


  • Makes use of THREDDS Spring implementation. Modifications to the web.xml and sos-servlet.xml files are no longer needed.
  • Bug fixes for issues detected during IOOS validation tests.


  • Better/automatic workaround for aggregation caching problem (software will automatically detect aggregations and disable caching support. This is only necessary until the problem is fixed in THREDDS, hopefully in 4.4.1)
  • Bug fixes for bugs deteected during OGC and IOOS validation tests.


  • Testing refactor
  • Better class names
  • Lots of cleanup in code and comments
  • Now uses JDOM and XML objects instead of strings
  • Jenkins integration


  • Testing cleanup
  • Lots of bug schema related bug fixes


  • IOOS SWE Milestone 1.0 support
  • Code cleanup and documentation
  • Hosten in Maven
  • Caching bug fix (see Known Issues below)


  • Updated DescribeSensor formatting to match new IOOS DescribeSensorPlatform and DescribeSensorNetwork
  • Added new response format for time series datasets
  • New IOOS reponse format for GetObservation requests
  • Templates for new IOOS formats found here:
  • New system for logging missing variables and attributes in datasets


  • Expanded metadata reporting from files.
  • Began updating the responses to the SOS 2.0 response format.
  • Fixed formatting.
  • Fixed many, many smaller bugs.
  • Added error handling for large datasets.


  • Added support for GetCapabilities, DescribeSensor and GetObservation requests.
  • Added caching for GetCapabilities requests
  • Supports CF 1.6 convention files including: TimeSeries, TimeSeriesProfile, Trajectory, Profile, TrajectoryProfile (Section) and Grid datasets.

##Known Issues

  • Aggregating files using NcML does not work with the built in THREDDS caching system. This is an issue on Unidata's side. NcSOS has a built-in workaround that will disable caching when an aggregated dataset is detected.