Accessing Remote Datasets using the DAP protocol through the netCDF interface. Dr. Dennis Heimbigner Unidata netCDF Workshop August 3-4, 2009.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

Streaming NetCDF John Caron July What does NetCDF do for you? Data Storage: machine-, OS-, compiler-independent Standard API (Application Programming.
 2005 Pearson Education, Inc. All rights reserved Introduction.
The Future of NetCDF Russ Rew UCAR Unidata Program Center Acknowledgments: John Caron, Ed Hartnett, NASA’s Earth Science Technology Office, National Science.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
2015/6/301 TransCAD Managing Data Tables. 2015/6/302 Create a New Table.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Bookstore Web Application Introducing Visual Web Developer 2008 Express and the.
Web Page Design I Retest Terms Review. 1. Web pages are created using a language known as ___________. The coding of this language must follow specific.
Introduction to Python
JavaScript, Fourth Edition
OOI CyberInfrastructure: Technology Overview - Hyrax January 2009 Claudiu Farcas OOI CI Architecture & Design Team UCSD/Calit2.
CSCI 6962: Server-side Design and Programming Web Services.
OPeNDAP Developer’s Workshop Feb OPeNDAP 4 Data Server – Hyrax James Gallagher and Nathan Potter 21 Feb 2007.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Chapter 8 Cookies And Security JavaScript, Third Edition.
Mid-Course Review: NetCDF in the Current Proposal Period Russ Rew
CH2 – Using Data. Constant Something which cannot be changed Data Type Format and size of a data item Intrinsic Data Types Pg. 47 – Table 2-1 Basic ones.
1 C - Memory Simple Types Arrays Pointers Pointer to Pointer Multi-dimensional Arrays Dynamic Memory Allocation.
Lec 6 Data types. Variable: Its data object that is defined and named by the programmer explicitly in a program. Data Types: It’s a class of Dos together.
Website Development with PHP and MySQL Saving Data.
Chapter 6 Server-side Programming: Java Servlets
1 Chapter 9 – Cookies, Sessions, FTP, and More spring into PHP 5 by Steven Holzner Slides were developed by Jack Davis College of Information Science.
3. The Nuts and Bolts of C++ Computer Programming 3. The Nuts and Bolts of C++ 1 Learning the C++ language 3. The Nuts and Bolts of C++
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.
Variables and ConstantstMyn1 Variables and Constants PHP stands for: ”PHP: Hypertext Preprocessor”, and it is a server-side programming language. Special.
HTML Basics BCIS 3680 Enterprise Programming. Web Client/Server Architecture 2  Your browser (the client) requests a Web page from a remote computer.
Advanced Utilities Extending ncgen to support the netCDF-4 Data Model Dr. Dennis Heimbigner Unidata netCDF Workshop August 3-4, 2009.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
Remote Data Access with OPeNDAP Dr. Dennis Heimbigner Unidata netCDF Workshop October 25, 2012.
1 Web Servers (Chapter 21 – Pages( ) Outline 21.1 Introduction 21.2 HTTP Request Types 21.3 System Architecture.
The HDF Group Data Interoperability The HDF Group Staff Sep , 2010HDF/HDF-EOS Workshop XIV1.
OPeNDAP Hyrax Harnessing the power of the BES OPeNDAP Hyrax Back-End Server Patrick West
Chapter 22 - Browsing The World Wide Web Introduction Description Of Functionality –Obtain textual information, recorded sounds, or graphical images from.
Files Tutor: You will need ….
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
 2008 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
©SoftMooreSlide 1 Session Tracking with Servlets.
11/8/2007HDF and HDF-EOS Workshop XI, Landover, MD1 Software to access HDF5 Datasets via OPeNDAP MuQun Yang, Hyo-Kyung Lee The HDF Group.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Tableau Server URL Parameterization and Limits. Background This short set of material covers how Tableau Server Views can be invoked via URLs while passing.
TCP/IP Protocol Suite 1 Chapter 17 Upon completion you will be able to: Domain Name System: DNS Understand how the DNS is organized Know the domains in.
9/21/04 James Gallagher Server-Side: The Basics This part of the workshop contains an overview of the two servers which OPeNDAP has developed. One uses.
SOAP, Web Service, WSDL Week 14 Web site:
Update on Unidata Technologies for Data Access Russ Rew
Utilities for netCDF-4 Dr. Dennis Heimbigner Unidata Advanced netCDF Workshop July 25, 2011.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
TSDS (HPDE DAP). Objectives (1) develop a standard API for time series-like data, (2) develop a software package, TSDS (Time Series Data Server), that.
Radoslav Georgiev Telerik Corporation
Other Projects Relevant (and Not So Relevant) to the SODA Ideal: NetCDF, HDF, OLE/COM/DCOM, OpenDoc, Zope Sheila Denn INLS April 16, 2001.
9/21/04 James Gallagher Server Installation and Testing: Hands-on ● Install the CGI server with the HDF and FreeForm handlers ● Link data so the server.
DAP+NETCDF Using the netCDF-4 Data Model
netCDF Support for In-Memory Files
Remote Data Access Update
Extending the NetCDF Supported Data Formats using a Dispatch Layer
File Transfer and access
IS333D: MULTI-TIER APPLICATION DEVELOPMENT
Conversions of the type of the value of an expression
Unidata Advanced netCDF Workshop
Application layer Lecture 7.
Remote Data Access Update
Accessing Remote Datasets through the netCDF interface.
Dispatch Layer and the NetCDF Architecture
OPeNDAP/Hyrax Interfaces
Presentation transcript:

Accessing Remote Datasets using the DAP protocol through the netCDF interface. Dr. Dennis Heimbigner Unidata netCDF Workshop August 3-4, 2009

Overview Goal: Access to Remote Data What is OPeNDAP and DAP? The DAP-netCDF Integration Architecture/Flow Example DDS and DAS netCDF Translation Glitches netCDF Translation Example Specifying a DAP Data Source General URL Format General Format: Client Parameters Defined Client Parameters General Format: Base URL Debugging Note Building and Installing NETCDF+DAP

Goal: Access to Remote Data Remote access allows the netCDF library to retrieve data that is stored on other machines in the internet. There are basically two ways to do this. Method 1: Copy the remote data using e.g. FTP or HTTP.  Great if the data is already a.nc file,  And, you have disk space to hold the data.  Otherwise, find and install conversion program to convert to netcdf format (tedious and error prone)

Remote Access (cont.) Method 2: Let others do the work for you. You tell netCDF where to get a dataset from some remote machine. The remote machine automatically converts the dataset to a standard form (called DAP) The DAP formatted data is sent to your machine. The netcdf library converts the DAP data to netcdf data for your use.

What is OPeNAP and DAP? DAP is a widely supported protocol and standard data format for accessing remote data Defined and maintained by the OPenDAP organization ( DAP was expressly designed to serve as intermediate format for accessing a wide variety of data sources

DAP (cont.) DAP represents a stream of data, not a file on a disk netCDF defines the structure and the attributes together, DAP divides them into two parts:  DDS - describes the format of the data  DAS - describes associated attributes Plus: DATADDS - the actual data; the data also includes a partial DDS at the front  aka DODS

The NETCDF-DAP Integration Unidata has integrated the DAP protocol into the standard netCDF distribution. It replaces the OPeNDAP provided libnc-dap library It closely mimics the original libnc-dap translation It is implemented completely in C, versus libnc-dap, which is C++ => You can use it with FORTRAN

Architecture / Flow GRIBnetCDF-3HDF Internet DAP Converter Remote Data Server DAP to netCDF Converter NCO (NC operators) NCDUMP Other Programs Data Request Using DAP URL Data in DAP Format netCDF library Part of the netCDF Library Web Server

Example DDS and DAS Dataset { Sequence { String Drifter_ID; String Date_Sampled; Float64 Latitude; Float64 Longitude; Float64 SST;... } Drifters; } EOS.DBO; Attributes { FacilityGlobal { String DataCenter "COAS"; String DrifterType "MetOcean"; } Drifter_ID { String Description “Instrument unique identifier } Date_Sampled { String Description "Date/time"; String Timezone "GMT"; }...

NETCDF-3 Translation Glitches Loss’y: Some data is inaccessible String type: netCDF-3 no, DAP yes So, the netCDF variable is type as char, but it is given extra dimension to represent the string  String var(d1,d2) => char var(d1,d2,stringdim1)  Stringdim1 is fixed length (defaults to 64)

Translation Glitches (cont.) Unsigned types: netCDF-3 no, DAP yes So, we upgrade the type  E.g. unsigned short => int, unsigned int => double Sequence dimensions  Think of the number of records in a relational table  This number is represented as a dimension  Used to dimension variables that represent fields of the relational table

NETCDF-3 Translation Example The netCDF-3 translation of the previous DDS+DAS netcdf Drifters { dimensions: Drifters = 5 ; // Sequence dimension stringdim64 = 64 ; // String dimension variables: char Drifters.Drifter_ID(Drifters, stringdim64) ; Drifters.Drifter_ID:Description = “Instrument unique identifier”; double Drifters.Latitude(Drifters); double Drifters.Longitude(Drifters); double Drifters.SST(Drifters); // Global Attributes :DataCenter = "COAS“... DEMO

Specifying a DAP Data Source A DAP data source is specified using an extended URL syntax that refers to the DAP server containing that data Used in place of a file name in e.g. ncdump  Beware: Shell may require quotes around URL Example: [show=url;seqdims] dods/dts/Drifters

General URL Format This format extends normal URL format by adding optional client parameters The client parameters are specific to the DAP/netCDF integration  But, it has its roots in the original OPeNDAP provided C++ based libnc-dap library

General Format: Client Parameters One or more things enclosed in brackets e.g […][…]… A set of brackets contains one or more = pairs separated by commas e.g. [x=y,a=b] The value part may be empty or it may be a list of values separated by semicolons e.g [x,y=a;b;c] If a parameter name is repeated, the values are merged using semicolons e.g [a=b,a=c] is equivalent to [a=b;c]

Defined Client Parameters mode (e.g. mode=netcdf3) Specify if we want  DAP -> netcdf-3, or  DAP -> netcdf-4 Possible values (choose 1): libnc-dap | netcdf3 | netcdf-3 | classic netcdf4 | netcdf-4 | cdm Default is mode=netcdf3

Defined Client Parameters show (e.g. show=url;projection) Specify additional attributes to include in the translation. show=translate (attribute = “_translation”)  Displays what mode was used to translate.  E.g. netcdf3 vs netcdf4 show=url (attribute = “_url”)  Displays the url that was passed to nc_open.

Defined Client Parameters (cont.) show=seqdims (attribute = “_sequence_dims”)  List dimensions that actually come from underlying DAP sequences  Also, don’t compute the sequence length  Gives useful cost information

General Format: Base URL Little to say, it specifies the DAP server from which to retrieve the data But: should never end in.dds,.das, or.dods  DAP code will take care of the extensions DEMO

Debugging Note There is a DAP specific logging mechanism that can sometimes provide extra information  Set the environment variable OCLOGFILE  E.g. for /bin/sh export OCLOGFILE=“” If you ask for the whole dataset (using e.g. ncdump), some servers will not serve up that much data and you will get an error whose cause is not obvious unless you turn on logging If you send a support request: include logging

Build and Install NETCDF+DAP 1.Add --enable-dap to your list of./configure flags 2.DAP requires the curl library (libcurl) 3.If your./configure fails because it cannot find libcurl, then you must specify --with-curl= Exactly analogous to how you would specify the path to HDF5, for example 4.If you want to thoroughly test that dap is working, then add --enable-dap-remote-tests

Example OPeNDAP DATA Sources ?xmlfilename=datasets.xml&exfunction=none

Questions?

Demos Sites atasets.xml&exfunction=none