210 likes | 343 Views
GALEON IE: data model reconciliation between netCDF and WCS/GML. Stefano Nativi – CNR-IMAA and University of Florence (Italy) Lorenzo Bigagli – CNR-IMAA and University of Florence (Italy) Ben Domenico – Unidata/UCAR (USA) John Caron – Unidata/UCAR (USA). Outline. Rationale Data models
E N D
GALEON IE: data model reconciliation between netCDF and WCS/GML Stefano Nativi – CNR-IMAA and University of Florence (Italy) Lorenzo Bigagli – CNR-IMAA and University of Florence (Italy) Ben Domenico – Unidata/UCAR (USA)John Caron – Unidata/UCAR (USA)
Outline • Rationale • Data models • Reconciliation approach • Available implementation: the ncML-GML • Examples
Rationale • We must explicitly mediate from netCDF hyperspatial data to WCS coverage models
N-Dimension Coordinate Systems 2 Dimension Coordinate System 2 Dimension Coordinate System 2 Dimension Coordinate System 2D SCS + elev + time 2 Dimension Coordinate System Implicit/explicit Geometry Implicit/explicit Geometry Implicit/explicit Geometry Implicit/explicit Geometry Implicit/explicit Geometry Spatial Reference System (SRS) Spatial Reference System (SRS) Spatial Reference System (SRS) Spatial Reference System (SRS) Spatial Reference System (SRS) explicit/semi-implicit/implicit Geometry 2D+elev+time dataset Range set Range set Range set Range set Range set Scalar measured quantities 01101100111 11010101010 010101… 01101100111 11010101010 010101… Mediation Process 2D + elev + time Coverages netCDF hyperspace dataset (3/4/5D) a Coverage
Conceptual mapping Semantics level
Mediation process: the introduced GI concepts in brief • A netCDF dataset origins several different coverages • Each coverage is characterized by a domain, a range-set and is referenced by a CS/CRS • Each coverage is optionally described by a geographic extent • Each domain is characterized by a geometry • Supported domains: regular grid domain, irregular grid domain and multipoint domain • Each range-set lists or points set of values associated to each domain location • Supported range-set types: scalar range-set and parametric range-set
An Implementation already exists • The ncML-GML markup language implements the presented reconciliation model • It is a Mediation Markup Language between ncML (netCDF Markup Language) and GML • An extension of ncML core schema, based on GML grammar • NcML-GML version 0.7.3 • based on GML 3.1.1 • N2G version 0.8 • Java API for ncML-GML ver. 0.7.3 • WCS-G • WCS 1.0 which supports ncML-GML/netCDF documents • Subsetting (domain and range-set) • netCDF • ncML-GML 0.7.3 • WCS light client • Test client for WCS-G
Example: sst.nc • Example: sst.nc (~3Mb) • Sea Surface Temperature (float) depending on • lon = 180 ; • lat = 170 ; • time = UNLIMITED ; // (24 currently) • Already published on OPeNDAP server
netCDF-CF • Unrestricted domain • Special semantics attached to dimension: • Latitude • Longitude • Vertical • Time • Pressure (added by us) • Scalar co-domain only • Recommended axes order • *-T-Z-Y-X
sst.nc – netCDF-CFannotated CDL netcdf C:/WebDocs/THREDDS/GALEON/SST.NC.test/sst-again.nc { dimensions: lon = 180; // (has coord.var) lat = 170; // (has coord.var) time = UNLIMITED; // (24 currently) // (has coord.var) bnds = 2; variables: double lon(lon); :standard_name = "longitude"; :long_name = "longitude"; :units = "degrees_east"; :axis = "X"; :bounds = "lon_bnds"; :original_units = "degrees_east"; double lon_bnds(lon, bnds); (continue) CF assign special semantics to some dimensions CF mandates the use of coordinate variables for such dimensions Standard names are defined for common dimensions/variables Semantics is associated based on :units attribute CF conventions support partitioning an axis in cells
Semantics is associated based on :units attribute double lat(lat); :standard_name = "latitude"; :long_name = "latitude"; :units = "degrees_north"; :axis = "Y"; :bounds = "lat_bnds"; :original_units = "degrees_north"; double lat_bnds(lat, bnds); double time(time); :standard_name = "time"; :long_name = "time"; :units = "days since 2001-1-1"; :axis = "T"; :calendar = "360_day"; :bounds = "time_bnds"; :original_units = "seconds since 2001-1-1"; double time_bnds(time, bnds); (continue) Semantics is associated based on :units attribute
float tos(time, lat, lon); :standard_name = "sea_surface_temperature"; :long_name = "Sea Surface Temperature"; :units = "K"; :cell_methods = "time: mean (interval: 30 minutes)"; :_FillValue = 1.0E20; // float :missing_value = 1.0E20; // float :original_name = "sosstsst"; :original_units = "degC"; :history = " At 16:37:23 on 01/11/2005: CMOR altered the data in the following ways: added 2.73150E+02 to yield output units; Cyclical dimension was output starting at a different lon;"; (continue) CF conventions support the description of methods applied to obtain interval values
:title = "IPSL model output prepared for IPCC Fourth Assessment SRES A2 experiment"; :institution = "IPSL (Institut Pierre Simon Laplace, Paris, France)"; :source = "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v"; :contact = "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr"; :project_id = "IPCC Fourth Assessment"; :table_id = "Table O1 (13 November 2004)"; :experiment_id = "SRES A2 experiment"; :realization = 1; // int :cmor_version = 0.96; // float :Conventions = "CF-1.0"; :history = "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements"; :references = "Dufresne et al, Journal of Climate, 2015, vol XX, p 136"; :comment = "Test drive"; Mandatory global attribute for CF conventions
Dataset vs. Coverage • Generic mapping issue D(*-T-Z-Y-X) → R C(X-Y-Z-T) → *
Example: Lat-Lon-Time <GML 2D+T scalar coverage> WCS Time netCDF file transcoding ncML-GML Lat netCDF Lon
Example: 2 x Lat-Lon-Time <GML 2D+T composite coverage> Time netCDF file WCS transcoding Lat Time Lon ncML-GML netCDF Lat Lon
Example: Pressure-Lat-Lon-Time <GML 2D+T parametric coverage> WCS Time netCDF file P transcoding Lat ncML-GML netCDF Lon
Example: Lat-Lon-Time + Pressure-Lat-Lon-Time <GML 2D+T scalar coverage> <GML 2D+T parametric coverage> netCDF file Time WCS-G Y transcoding X Time ncML-GML P ncML-GML netCDF netCDF Y X