Coverages and the DAP2 Data Model James Gallagher.

Slides:



Advertisements
Similar presentations
James Gallagher OPeNDAP 1/10/14
Advertisements

Unidata Seminar Series - 30 January 2004 OPeNDAP and THREDDS: Access and Discovery of Distributed Scientific Data Yuan Ho Ethan Davis UCAR Unidata.
Recent Work in Progress
A Unified Data Model and Programming Interface for Working with Scientific Data Doug Lindholm Laboratory for Atmospheric and Space Physics University of.
OPeNDAP-Unidata Development of DAP4 (a Data Access Protocol) Describing Progress and Seeking Input at the ESIP Summer Meeting 2012 by Dave Fulker (OPeNDAP.
Streaming NetCDF John Caron July What does NetCDF do for you? Data Storage: machine-, OS-, compiler-independent Standard API (Application Programming.
® OGC Web Services Initiative, Phase 9 (OWS-9): Innovations Thread - OPeNDAP James Gallagher and Nathan Potter, OPeNDAP © 2012 Open Geospatial Consortium.
View, through an architectural lens, of OPeNDAP’s Data Access Protocol (DAP2) A candidate OGC Standard (OGC Pending Document ) by James Gallagher.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 14 Web Database Programming Using PHP.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
ISBN Chapter 6 Data Types: Structured types.
Run time vs. Compile time
Object Oriented Databases - Overview
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Abstract Data Types and Encapsulation Concepts
4/20/2017.
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
RDF: Concepts and Abstract Syntax W3C Recommendation 10 February Michael Felderer Digital Enterprise.
RDF (Resource Description Framework) Why?. XML XML is a metalanguage that allows users to define markup XML separates content and structure from formatting.
1 Chapter 5: Names, Bindings and Scopes Lionel Williams Jr. and Victoria Yan CSci 210, Advanced Software Paradigms September 26, 2010.
OPeNDAP and the Data Access Protocol (DAP) Original version by Dave Fulker.
MapServer-OGR-OPeNDAP: An Integrated System for Uniform Access to Land and Oceanographic Datasets Frank Warmerdam Consultant Thomas E. Burk University.
Unidata’s TDS Workshop TDS Overview – Part II October 2012.
Unidata’s Common Data Model John Caron Unidata/UCAR Nov 2006.
The IRI Climate Data Library: translating between data cultures Benno Blumenthal International Research Institute for Climate Prediction Columbia University.
Chapter 3 Digital Representation of Geographic Data.
© Crown Copyright Met Office Towards improved netCDF-GIS interoperability: Potential utility of the “Well-Known Model” concept Phil Bentley, Met Office.
The Procedure Abstraction, Part V: Support for OOLs Comp 412 Copyright 2010, Keith D. Cooper & Linda Torczon, all rights reserved. Students enrolled in.
Accomplishments and Remaining Challenges: THREDDS Data Server and Common Data Model Ethan Davis Unidata Policy Committee Meeting May 2011.
The netCDF-4 data model and format Russ Rew, UCAR Unidata NetCDF Workshop 25 October 2012.
THREDDS Data Server Unidata’s Common Data Model Background / Summary John Caron Unidata/UCAR Mar 2007.
1 International Standards for Data Interoperability GALEON Geo-interface for Air, Environment, Land, Ocean NetCDF Ben Domenico Unidata Program Center*
Integrating netCDF and OPeNDAP (The DrNO Project) Dr. Dennis Heimbigner Unidata Go-ESSP Workshop Seattle, WA, Sept
DAP4 James Gallagher & Ethan Davis OPeNDAP and Unidata.
Accessing Remote Datasets using the DAP protocol through the netCDF interface. Dr. Dennis Heimbigner Unidata netCDF Workshop August 3-4, 2009.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
Semantic Technologies and Application to Climate Data M. Benno Blumenthal IRI/Columbia University CDW /04-01.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
WIGOS Data model – standards introduction.
Slide 1 SDTSSDTS FGDC CWG SDTS Revision Project ANSI INCITS L1 Project to Update SDTS FGDC CWG September 2, 2003.
Description of Information Resources: RDF/RDFS (an Introduction)
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Data Interoperability at the IRI: translating between data cultures Benno Blumenthal International Research Institute for Climate Prediction Columbia University.
Grids and Beyond: netCDF-CF and ISO/OGC Features and Coverages Ethan Davis, John Caron, Ben Domenico UCAR/Unidata AMS IIPS, 23 January 2008.
ISBN Chapter 11 Abstract Data Types and Encapsulation Concepts.
OPeNDAP Developer’s Workshop Feb Server-side Functions for Geo-spatial Selection James Gallagher 22 Feb 2007.
ISBN Chapter 10 Implementing Subprograms.
OGC Web Services with complex data Stephen Pascoe How OGC Web Services relate to GML Application Schema.
ISBN Chapter 10 Implementing Subprograms.
WMO GRIB Edition 3 Enrico Fucile Inter-Program Expert Team on Data Representation Maintenance and Monitoring IPET-DRMM Geneva, 30 May – 3 June 2016.
Unidata Infrastructure for Data Services Russ Rew GO-ESSP Workshop, LLNL
NetCDF Data Model Details Russ Rew, UCAR Unidata NetCDF 2009 Workshop
® Sponsored by Improving Access to Point Cloud Data 98th OGC Technical Committee Washington DC, USA 8 March 2016 Keith Ryden Esri Software Development.
7-Nov Fall 2001: copyright ©T. Pearce, D. Hutchinson, L. Marshall Oct lecture23-24-hll-interrupts 1 High Level Language vs. Assembly.
Geospatial metadata Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Implementing Subprograms
Creating Database Objects
Names and Attributes Names are a key programming language feature
IRI Data Library Overview
Tools to Build Clients.
Julia Powell Coast Survey Development Laboratory
Implementing Subprograms
Implementing Subprograms
Remote Data Access Update
Creating Database Objects
OPeNDAP/Hyrax Interfaces
Implementing Subprograms
Presentation transcript:

Coverages and the DAP2 Data Model James Gallagher

Outline Servers and the DAP2 data model DAP2 data model Coverages and DAP2 Support for Quadrilateral Grids Other kinds of grids Example: UGrid work with NOAA

The Data Model versus Servers Data Model – Variables – Operations – Datasets Servers – Software that implements the operations and which provides other features – Expressions combine variables, referenced by name, and operators to constrain access. Variables and their Operations provide a collection of Abstract Datatypes. URLs provide unique references to Datasets and Servers used to access them.

The Data Model and Application Domains DAP2 is domain neutral DAP2 is intended to be a lower level in a multi-tier protocol stack Examples of standards often used with DAP2: – COARDS – CF – HDF-EOS; HDF-EOS2 The separation is intentional!

Data Model Variables: – Name, Type, Shape: syntactic metadata – Attributes (name-type-value triples): semantic metadata – Value(s) Operations: – The operations that can be performed on the variables (subset, sample and function invocation) Datasets: – Instantiations of Variables

Datatypes in DAP2 Types found in a ‘typical’ programming language – Structures: define new lexical scopes; contain one or more other variables; recursive – Arrays: type-homogeneous; indexed; n-dimensional; includes arrays of structures – Scalars: the fundamental building blocks; Byte, …, String, URL. Sequence: Relational type; may be nested; defines a lexical scope; like structure, can contain one or more other variables; recursive (so nesting of relations is possible); Grid: Similar to a ‘quadrilateral coverage;’ defines a lexical scope; is not recursive.

Aside: Lexical Scope Lexical scoping prevents name ‘collisions’ Provides hierarchy Provides grouping Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Aside: Lexical Scope The above example defines 3 lexical scopes: – The outermost, which contains the Structure x – The things contained by the Structure x – The things contained by the Structure point Some Fully Qualified Names: – Assume that the dot operator has its typical meaning… – x, x.x, x.point.x Structure { Int32 x; Structure { Int32 x, y; } point; } x[1024];

Operations Operations provide a way to extract portions of a dataset to optimize data transfers – clients know what they want and can ask for that and no more Operations are made up of variable names and operators and/or function calls Operations can subset and sample arrays; extract relations from Sequences using relational operators; and call functions to compute new values using data from one or more variables.

Constraint Expressions Operators are used in “Constraint Expressions” Used to select individual variables Several variables at once Slice and sample arrays Select elements (rows) from Sequences Call functions Compose functions

Constraint Expression Examples SST SST.TIME SST.TIME,SST.COADSX SST.TIME[3] SST.TIME[2:2:8] geogrid(SST,45,-82,40,-78) linear_scale(geogrid(SST,45,-82,40,-78),10,0) Dataset { Grid { Array: Float32 SST[12][90][180]; Maps: Float64 TIME[TIME = 12]; Float64 COADSY[COADSY = 90]; Float64 COADSX[COADSX = 180]; } SST; } coads_climatology; *The real dataset for these examples is at test.opendap.org/dap/data/nc/coads_climatology.nc. e.g.: test.opendap.org/opendap/data/nc/coads_climatology.nc.asc?linear_scale(geogrid(SST,45,-82,40,-78),10,0)

Constraint Expression Examples: Sequences support relational ops &cruise=1 &cruise={1,3,5} &cruise<6 &lat,lon lat,lon&cruise=1 Dataset { Sequence { Float32 lat, lon; Sequence { Int32 depth; Float32 temp; } cast; } leg; } cruise; } XBT_Data;

Datasets Collections of variables Each Dataset is held in a single Structure instance that holds one or more variables Attributes defined at this top-most level and not explicitly bound to a variable are “global attributes” and convey information about the dataset as whole Each variable in the dataset has zero or more attributes. Attributes are lexically scoped.

OPeNDAP Servers often do more DAP2 specifies two metadata responses …and one data response (BLOB; XDR encoded) Servers also typically return/provide: – THREDDS catalogs plus HTML pages – XML, RDF encodings for metadata – ASCII, netCDF encodings for data

data model = software bus Software Bus: A programming interface that allows software modules to transfer data to each other. Format readers decode data and produce a representation using the data model Response builders use the data model representation This mirrors the larger client server design where clients can read data stored in many different formats from one or more servers.

Summary of the Data Model Variables: Datatypes provide ‘syntactic metadata; attributes provide semantic metadata Datasets: Concrete collections of variables Operations: Provide a way to use operators to extract parts of variables; based on projection, selection and function invocation Servers provide a web interface using the data model

Coverages and DAP2 DAP2 ‘Grid’ provides the structure needed for a quadrilateral grid DAP2 is ‘domain neutral’ Information about geospatial location should be provided by attributes

DAP2’s Grid Data type …is a Quadrilateral Grid “DAP2 Grid” “Maps” – Define the coverage extent “DAP2 Grid” “Array” – Define the schema mapping Grid lines do not have to be equally spaced N-dimensional Limitations – Grid lines only; curves are not supported – All Grid lines intersect at right angles

Array: Holds the ‘feature attribute value records.’ These are accessed using integer indices i 0, i 1, …, i n Map: Holds the grid points where the value of the i 0 th grid point is i th value of the m 0 th vector. Because the DAP2 Grid datatype uses vectors for its Maps, the Grid datatype is an ‘orthogonal grid.’ DAP2 Grids: Abstract and Concrete Representations

Continuous versus Discrete… DAP2 provides a mechanism It does not specify policy Thus, ‘Grid’ can represent a variety of data abstract grid coverages. The exact mapping – e.g., how to (or if) interpolate values ‘between the grid points’ – must be provided in attributes or by convention.

DAP2 Grid compared to CV_Grid Figure 16 – CV_Grid. From “The OpenGIS Abstract Specification Topic 6: Schema for coverage geometry and functions,” OGC , p. 41 Figure copyright 2007 OGC, Inc.

DAP2 Grid compared to CV_Grid Dimension and axisNames are present in the Grid variable’s definition. Extent can be read from the Map vectors or from the Grid variable’s attributes. The GridEnvelope can also be read from the Maps and Grid attributes if they are present.

DAP2 Grid compared to CV_Grid The DAP2 Grid variable’s Maps provide this information. The EvaluationStructure is implicit, however. The extent of the Grid can be read from the Maps

DAP2 Grid compared to CV_Grid GridCoordinates are held in the values stored in the Map’s

DAP2 Grid compared to CV_Grid Information about the footprint of the grid cell (as defined in sec of OGC ) may be provided in attributes of the Grid variable

Representing Other Kinds of Coverages Assumptions: – Constructor types can build the necessary data structures – DAP2 Global and Variable attributes can encode interpretation information

Other Kinds of Coverages, cont. Hexagonal Grid – Can be implemented using DAP2’s Grid variable and extra attribute information. Thiessen polygon Triangular irregular networks (TINs) – Both can be encoded using the conventions being developed by ASA & Deltares (

Summary DAP2 data model is domain neutral Provides structural support for quadrilateral grids Can be used to encode a wide variety of coverages Domain neutral design can leverage other application-specific standards Domain neutral design fosters cross-domain interoperability