mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-27 07:30:33 +08:00
106 lines
4.2 KiB
Plaintext
106 lines
4.2 KiB
Plaintext
/*! \page dap4 DAP4 Support
|
|
|
|
\section dap4_accessing The DAP4 Prototocol
|
|
|
|
\tableofcontents
|
|
|
|
\subsection dap4_introduction DAP4 Introduction
|
|
|
|
Beginning with netCDF version 4.2.2, optional support is provided for
|
|
accessing data through DAP4 servers using the DAP4 protocol.
|
|
|
|
DAP4 support is automatically enabled if a usable curl library can be
|
|
set using the LDFLAGS environment variable (similar to the way
|
|
that the HDF5 libraries are referenced).
|
|
DAP2 plus DAP4 support can forcibly be enabled or disabled using the --enable-dap
|
|
flag or the --disable-dap flag, respectively. If enabled,
|
|
then DAP4 support requires access to the curl library.
|
|
Refer to the installation manual for details
|
|
|
|
DAP4 uses a data model that is similar to, but not identical with,
|
|
the netCDF-Enhanced (aka netcdf-4) model.
|
|
Generically, the DAP4 data model is encoded in XML document
|
|
called a DMR.
|
|
For detailed information about the DAP4 DMR, refer to
|
|
the DAP4 specification Volume 1:
|
|
http://docs.opendap.org/index.php/DAP4:_Specification_Volume_1
|
|
|
|
\subsection dap4_access Accessing Data Using the DAP4 Prototocol
|
|
|
|
In order to access a DAP4 data source through the netCDF API, the
|
|
file name normally used is replaced with a URL with a specific
|
|
format. The URL is composed of three parts.
|
|
- URL - this is a standard form URL with specific markers to indicate that
|
|
it refers to a DAP4 encoded dataset. The markers can be one of the following
|
|
examples.
|
|
+ [dap4]http://remotetest.unidata.ucar.edu/d4ts/test.01
|
|
+ [protocol=dap4]http://remotetest.unidata.ucar.edu/d4ts/test.01
|
|
+ http://remotetest.unidata.ucar.edu/d4ts/test.01#dap4
|
|
+ http://remotetest.unidata.ucar.edu/d4ts/test.01#protocol=dap4
|
|
+ dap4://remotetest.unidata.ucar.edu/d4ts/test.01
|
|
|
|
Note that the last case is converted internally to one of the other forms.
|
|
|
|
- Constraints - these are suffixed to the URL and take the form
|
|
“?dap4.ce=\<expression\>”. The form of the constraint expression
|
|
is somewhat complicated, and the specification should be consulted.
|
|
|
|
|
|
- Client parameters - these may be specified in either of
|
|
two ways. The older, deprecated form prefixes text to the
|
|
front of the url and is of the the general form [\<name>]
|
|
or [\<name>=value]. Examples include [show=fetch].
|
|
The newer, preferred form prefixes the
|
|
parameters to the end of the url using the semi-standard '#'
|
|
format: e.g. http://....#show=fetch&noprefetch.
|
|
|
|
It is possible to see what the translation does to a particular DAP4
|
|
data source in two steps. First, one can examine the DMR
|
|
source through a web browser and then second, one can examine
|
|
the translation using the "ncdump -h" command to see the
|
|
corresponding netCDF-4 representation.
|
|
|
|
For example, if a web browser is given the following (fictional) URL,
|
|
it will return the DMR for the specified dataset
|
|
\code
|
|
http://remotetest.unidata.ucar.edu/d4ts/test.01.dmr#dap4
|
|
\endcode
|
|
|
|
By using the following ncdump command, it is possible to see the
|
|
equivalent netCDF-4 translation.
|
|
|
|
\code
|
|
ncdump -h http://remotetest.unidata.ucar.edu/d4ts/test.01#dap4
|
|
\endcode
|
|
|
|
\subsection dap4_defined_params Defined Client Parameters
|
|
|
|
Currently, a limited set of client parameters is
|
|
recognized. Parameters not listed here are
|
|
ignored, but no error is signalled.
|
|
|
|
Parameter Name Legal Values Semantics
|
|
- "log" | "log=<file>" - Turn on logging and send the log output to
|
|
the specified file. If no file is specified, then output is sent to standard
|
|
error.
|
|
- "show=fetch" - This parameter causes the netCDF code to log a copy
|
|
of the complete url for every HTTP get request. If logging is
|
|
enabled, then this can be helpful in checking to see the access
|
|
behavior of the netCDF code.
|
|
|
|
\subsection dap4_debug Notes on Debugging DAP4 Access
|
|
|
|
The DAP4 support has a logging facility.
|
|
Note that this is currently separate from the
|
|
existing netCDF logging facility. Turning on this logging can
|
|
sometimes give important information. Logging can be enabled by
|
|
using the client parameter "log" or "log=filename",
|
|
where the first case will send log output to standard error and the
|
|
second will send log output to the specified file.
|
|
|
|
Users should also be aware that if one is
|
|
accessing data over an NFS mount, one may see some .nfsxxxxx files;
|
|
those can be ignored.
|
|
|
|
*/
|