implementation of model data interoperability for ioos: successes and lessons learned
DESCRIPTION
Implementation of Model Data Interoperability for IOOS: Successes and Lessons Learned. Rich Signell USGS Woods Hole, MA / NOAA Silver Spring USA. Model Data Interoperability is Low-Hanging Fruit!. US Integrated Ocean Observing System (IOOS ® ). IOOS ® Plan defines: Global Component - PowerPoint PPT PresentationTRANSCRIPT
Implementation of Model Data Interoperability for IOOS:
Successes and Lessons Learned
Rich Signell USGS Woods Hole, MA / NOAA Silver Spring USA
Model Data Interoperability
is Low-Hanging Fruit!
US Integrated Ocean Observing System (IOOS®)
IOOS® Plan defines:• Global Component• Coastal Component
17 Federal Agencies 11 Regional Associations
HF radar
DMAC approved services for Gridded Data and Model Outputs
Table ofContents
Metadata
Data Values
DataProvider
CF Metadata
QualityControl
satellite
griddedmodeloutputs
OGC WCS(Web
CoverageService)
OPeNDAP/CF
The Problem: Stovepiped Model Access
UCLA/JPL ROMS SCB Model Yi Chao, JPL
ChesROMS Model Wen Long, UMaryland
Result: Inability to compare and assess model results & underutilization of model products
The GoMOOS Nowcast/Forecast Circulation Model (University of Maine)
Issue: Ocean grids are not regularly spaced!
Stretched surface and terrain following vertical coordinates
Curvilinear orthogonal horizontal coordinates
Climate and Forecast (CF) Metadata Conventions
Groups adopting CF:GO-ESSP: Global Organization for Earth System Science Portal IOOS-DMAC: Integrated Ocean Observing SystemESMF: Earth System Modeling FrameworkOGC: Open Geospatial Consortium (via WCS netcdf encoding)
CF-Compliant Ocean Model Files_rho:standard_name = "ocean_s_coordinate" ;s_rho:formula_terms = "s: s_rho eta: zeta depth: h a: theta_s b: theta_b depth_c: hcs_rho:field = "s_rho, scalar" ;
double s_w(s_w) ;s_w:long_name = "S-coordinate at W-points" ;s_w:valid_min = -1. ;s_w:valid_max = 0. ;s_w:standard_name = "ocean_s_coordinate" ;s_w:formula_terms = "s: s_w eta: zeta depth: h a: theta_s b: theta_b depth_c: hc" ;s_w:field = "s_w, scalar" ;
float salt(ocean_time, s_rho, eta_rho, xi_rho) ;salt:long_name = "averaged salinity" ;salt:units = "PSU" ;salt:time = "ocean_time" ;salt:coordinates = "lat_rho lon_rho" ;salt:field = "salinity, scalar, series" ;
float temp(ocean_time, s_rho, eta_rho, xi_rho) ;temp:long_name = "averaged potential temperature" ;temp:units = "Celsius" ;temp:time = "ocean_time" ;temp:coordinates = "lat_rho lon_rho" ;temp:field = "temperature, scalar, series" ;
float u(ocean_time, s_rho, eta_u, xi_u) ;u:long_name = "averaged u-momentum component" ;u:units = "meter second-1" ;
NetCDF Java Library
NcML XML markup language for NetCDF
<aggregation dimName="time" type="joinExisting"> <netcdf location="http://rocky.umeoce.maine.edu/cdfs/gomoos.20050509.cdf" /> <netcdf location="http://rocky.umeoce.maine.edu/cdfs/gomoos.20050510.cdf" /> </aggregation> <variable name="elev"> <attribute name="coordinates" value="x y" /> </variable> <variable name="depth"> <attribute name="coordinates" value="x y" /> </variable> <variable name="temp"> <attribute name="coordinates" value="x y zpos" /> </variable> <variable name="time"> <attribute name="units" value="days since 2002-01-01 00:00 UTC" /> </variable> <variable name="zpos"> <attribute name="standard_name" value="ocean_sigma_coordinate" /> <attribute name="formula_terms" value="sigma: zpos eta: elev depth: depth" /> <attribute name="positive" value="up" /> <attribute name="units" value="1" /> <attribute name="axis" value="Z" /> <values> 0 -0.002 -0.004 -0.008 -0.016 -0.024 -0.032 -0.04 -0.06 -0.08 -0.10 -0.12 -0.14 -0. </variable> <attribute name="Conventions" value="CF-1.0" />
Data Interoperability Model
NJ Toolkit for Matlab http://njtbx.sourceforge.net
• Objective: Make it simple to access CF data• Example function:• [t, geo]=nj_tslice(URI,’temp’,1);• t = 22x120x180 single• geo =
– lat: [120x180 single] – lon: [120x180 single]– z: [22x120x180 double]– time: 733582 (matlab datenum)
• nj_tslice works identically for ROMS, POM, ECOM, WRF, Wavewatch3
• URI can be: local NetCDF, remote NetCDF, NcML, OpenDAP Data URL
• Coding by Sachin Kumar Bhate MSSTATE
Comparing Models with Data in Matlab
Model 1: UMASS-ECOM Model 2: UMAINE-POM Data: SST 2008-Sep-08 07:32
Buoy_comp.m: Model/Data comparison of Wave Height
Browser-based Mapping with ncWMS/Godiva2
3D Visualization with the Integrated Data Viewer (IDV)
Single Point of Access Catalog:GEO-IDE => IOOS Regions
http://ferret.pmel.noaa.gov/thredds/geoideCatalog.html
Working with Data in ArcGIS using the NOAA/ASA Environmental Data Connector
14 Different Ocean Forecast Models Spanning CONUS Waters in IDV
OOI-CI OSSE (Sep-Oct, 2009)
Models being used for BP Spill
Successes
• Existing Unidata technology allowed for standards-based delivery of aggregated geospatial data from native model grids that put little or no effort on the data provider
• Demonstrated interoperability with 17 THREDDS servers in 11 IOOS Regions
• What did we get? – Single point of access for regional model results– Interoperable software– More eyes on the model results– More usage of model results– Faster feedback to modelers– Improved models– Increased community support for standards-based access
What Next?
• Continue work on a high-level scientific toolbox for standardized access to model data. (Matlab toolbox based on NetCDF-Java)
• Develop unstructured grid support: Common Data Model implemented in NetCDF-Java with methods comparable to structured grid
• Applications need to be modified to read standardized data via OPeNDAP instead of home-grown files
• Work on discovery and documentation
Lessons Learned
• Honor the existing practices• Users are best served by developing
infrastructure for Developers• Focus on success: find something that works,
clone it, and build off it
Questions, Feedback?
Dr. Richard P. Signell+1 (508) 457-2229
Role of Regions
• Develop customized THREDDS catalogs for regional users
• Report status of services (e.g. NetCheck)• Assess and help with gridded data standards
compliance following UAF-developed techniques
• Develop end-user applications that access gridded data, using CF-compliant OPeNDAP
• Help educate regional scientists, developers, consultants that standardized services, libraries and tools are available
Late Breaking News
THREDDS
• When people say “THREDDS”, they can mean a catalog or a data server– THREDDS Catalogs are XML files that define
metadata, datasets and services– THREDDS Data Server is a Java data server
application developed by Unidata, a simple and flexible way for delivering CF-compliant data via OPeNDAP
OPeNDAP
• When people say “OPeNDAP”, they can mean protocol, a server, or an organization– OPeNDAP (or just DAP) protocol: a remote data
access service protocol with multiple responses• DDS – describes the format of the data• DAS – describes associated attributes• DDX – XML response containing the DDS & DAS• DODS – the actual data
– OPeNDAP server: a server capable of serving the DAP protocol (e.g. THREDDS Data Server, Hyrax, Pydap, GrADS Data Server)
– OPeNDAP organization: Defines and maintains the DAP protocol, develops servers and clients, provide custom OPeNDAP solutions