www.archive-org-2014.com » ORG » O » OPENDAP

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".

    Archived pages: 580 . Archive date: 2014-01.

  • Title: DODS Programmers Guide -- 4.2.5 Adding Local Access to a DODS Client Library
    Descriptive info: Go backward to.. 4.. 2.. 4 Functions that Write to Data Sets.. Go up to.. 2 Client Libraries.. Go forward to.. 3 Using Constraints.. 5 Adding Local Access to a DODS Client Library.. In order to ensure that programs, once they have been re-linked with DODS client libraries, can still access local data files it is necessary to add software to read those local data to the functions in the re-implemented library.. Typically in each function in the new library the state information accessed by the identifier passed to the function is used to determine if the call is to access local or remote data.. In the former case, the function must do exactly what the original implementation of the API would have done to satisfy the function call.. It is wasteful to completely recode the entire API just to achieve local access.. However,  ...   order to use the original implementation of the library, you must rename all of its external symbols that will appear in user programs.. For example, if an API defines four functions (.. open.. ,.. close.. read.. and.. write.. ) and one global variable (.. errno.. ), then each of those must be renamed to some new symbol (e.. g.. ,.. orig open.. orig close.. ).. These source modules can then be added to the set of object modules used to build the DODS client library.. Of course the DODS client library must also include the original external symbol names; one approach is to recode each of the APIs external symbols as a function which either calls the DODS-replacement or the original function (now renamed so that the symbols do not conflict) depending on whether the access is local or remote.. Tom Sgouros, July 2, 2004..

    Original link path: /api/pguide-html/pguide_35.html
    Open archive

  • Title: DODS Programmers Guide -- 4.3 Using Constraints
    Descriptive info: 4 Using the Toolkit.. 3.. 1 How Constraint Expressions are Evaluated.. Constraint expressions are an important part of DODS, providing a powerful way to control how data is accessed without forcing the Data Access Protocol to support a lot of different messages.. Constraint expressions are used to select which variables will be extracted from a data set by both the user and by the client library.. The constraint expression syntax is described in detail in the.. The OPeNDAP User Guide.. 2 Different Ways of Using Constraint Expressions..

    Original link path: /api/pguide-html/pguide_36.html
    Open archive

  • Title: DODS Programmers Guide -- 4.3.1 How Constraint Expressions are Evaluated
    Descriptive info: The server-side constraint expressions are evaluated using a two step process.. Every constraint expression has two parts, the projection and the selection subexpressions.. The projection part of a constraint expression tells which variables to include in any return document describing the data set and the selection subexpression limits the returned data to variables with values that satisfy a set of relational expressions.. The projection  ...   copy of the data set's.. DDS.. is marked with the variables included in the projection.. The selection subexpression, however, is not evaluated until values are read from the data set.. One way to classify the projection and selection subexpressions is that projections depend solely on the logical structure of a data set, while selections depend on the values of particular variables within that data set..

    Original link path: /api/pguide-html/pguide_37.html
    Open archive

  • Title: DODS Programmers Guide -- 4.3.2 Different Ways of Using Constraint Expressions
    Descriptive info: 5 Linking Your Program.. There are two different ways that constraint expressions can be used.. One is by the client library and the other is by the user.. When writing a client library that has features for selecting variables or parts of variables, try to code the replacements to those calls so that they build up DODS constraint expressions that will request only the data the user wants.. Then read the data from the returned DDS and store it in the variable(s) passed to the API call by the user.. This is a much better solution than requesting the entire variable from the data set and then throwing away parts of it.. Suppose that the user program (via the APIs functional interface) asks for the data in variable.. X.. The constraint expression that will retrieve.. is simply `.. '.. Suppose, given the following.. that the user program requests the two variables.. u.. v.. from the embedded structure.. Dataset { Int32 u[time_a = 16][lat = 17][lon = 21]; Int32 v[time_a = 16][lat = 17][lon = 21]; Float64 lat[lat = 17]; Float64 lon[lon = 21]; Float64 time[time = 16]; } fnoc1;.. A.. constraint expression that would project just those variables would be.. fnoc1.. u,fnoc1.. v.. To restrict the arrays.. to only the first two dimensions (.. time.. lat.. ), the projection subexpression  ...   set:.. Dataset { Sequence { Int32 id; Float64 lat; Float64 lon; Sequence { Float64 depth; Float64 temperature; } xbt; } site; } cruise;.. To request data with a certain range of latitude and longitude values, you can use a selection subexpression like this:.. lat =10.. 0 lat =20.. 0 long =5.. 5 long =7.. 5.. Note that each clause of the selection subexpression begins with a.. and that the clauses are combined using a boolean.. and.. Finally, using the previous.. , if a user requested only depth and temperature given the above latitude and longitude range (i.. , the user program requests that only the depth and temperature values be returned given a certain latitude and longitude range) the client library would use the following constraint expression:.. site.. xbt.. depth, site.. temp lat =10.. A second way that constraint expressions can be used is that users may specify an initial URL with a constraint expression already attached.. In this case the.. request data.. member function will append the constraint expression built by the client library to the one supplied by the user and request data constrained by both expressions.. From the standpoint of a client library (or a data server, for that matter) there is no difference between a URL supplied with an initial constraint and one supplied without one..

    Original link path: /api/pguide-html/pguide_38.html
    Open archive

  • Title: DODS Programmers Guide -- 5 Linking Your Program
    Descriptive info: Contents.. 6 DAP C Reference.. To link a user program to the DODS client-library version of a data access API library, you need only substitute the name of the reimplemented API library for the original, and add the DODS Data Access Protocol library (.. libdap++.. ) to the link list.. Because the DAP library and the API have circular dependencies they must each be included on the linker command line twice.. An example of this can be seen in the DODS-NetCDF Makefile; the value of.. LIBS.. is passed to the linker.. ld.. Note that the API library is listed first.. LIBS = -lnc-dods  ...   tools.. In particular,.. includes libstdc++ (and libg++) by default when it builds an executable program from object modules.. If you use.. instead of.. when you link, be sure to include these libraries as well after all the libraries listed above.. If you don't use.. , but instead use the linker directly (i.. e, you call.. yourself) you are on your own - you can use.. gcc -V.. to determine what flags and additional libraries it uses that are specific to your system and then experiment with those.. We cannot tell you how to proceed since each UNIX variant requires different flags and libraries..

    Original link path: /api/pguide-html/pguide_39.html
    Open archive

  • Title: DODS Programmers Guide -- A Overview of the DODS Server Architecture
    Descriptive info: 1 Outputs.. A Overview of the DODS Server Architecture.. This appendix describes in functional terms the operation of a server.. Note that descriptions of server outputs naturally and unavoidably refer to certain kinds of inputs and vice versa.. This makes it difficult to create definitions without forward and backward cross-references.. Please be prepared to read this specification with a virtual thumb between the pages as you flip back and forth from the output to the input sections.. 1.. 1 HTML Data.. 2 ASCII Data (Text).. 3 Binary Data.. 2 Inputs.. 1 Request types.. 2 Constraint expressions.. 3 Server functions..

    Original link path: /api/pguide-html/pguide_41.html
    Open archive

  • Title: DODS Programmers Guide -- A.1 Outputs
    Descriptive info: A server sends to a client one of three different sorts of messages:.. HTML;.. ASCII data; or.. Binary data.. Encoding the DAP Data Types..

    Original link path: /api/pguide-html/pguide_42.html
    Open archive

  • Title: DODS Programmers Guide -- A.1.1 HTML Data
    Descriptive info: There are three different kinds of HTML data returned by a DODS server.. Clients that request these data should be prepared to display the HTML to the user.. Server Information (.. usage.. ).. One kind of HTML data is returned in response to a request for server information (using the.. info.. URL suffix), and contains usage information for the server, including a formatted version of the dataset DAS and DDS.. This information is formatted by the.. service program, invoked by the server.. WWW Interface.. The forms-based DODS WWW interface returns HTML data to the client.. This can either be a form a user can use to create a DODS contraint expression or a  ...   HTML text describing the supported URL suffixes.. (See.. DODS Dispatch.. pm.. ) Note that though an error message could in theory be returned to any client, whether or not they can display HTML, in practice, only web browser clients are prone to these kinds of errors.. Aside from web browser clients (e.. Netscape), the DODS clients issue their server requests through the DODS client core libraries, which format the URL according to the DODS conventions.. NOTE:.. There are two kinds of DODS error messages.. The particular one described above is issued in response to a badly formed URL.. Other kinds of errors are returned as ASCII data within a DODS data document.. See.. Section..

    Original link path: /api/pguide-html/pguide_43.html
    Open archive

  • Title: DODS Programmers Guide -- A.1.2 ASCII Data (Text)
    Descriptive info: These are the different kinds of ASCII data returned by a fully-equipped DODS server.. ("Fully equipped" implies that the server has, on its execution path, all the supported DODS service programs.. ).. The DODS Data Descriptor Structure is a description of the data contained in the dataset.. It contains information about the data types and names represented in the dataset.. Programmers can think of the DDS as containing the type declarations for the data.. The DDS is fully described in.. The DDS is created with a service program called.. * dds.. , where the.. *.. is the same two-letter abbreviation used in  ...   a hierarchical list of name-type-value triples, where the names of the containers correspond to entries in the DDS.. The DAS is fully described in.. The DAS is created with a service program called.. * das.. ASCII Data.. If a DODS server is equipped with a service program called.. asciival.. , it can convert binary data to ascii data on the fly, allowing you to use a standard web browser (such as Netscape) to examine data.. This feature can also be used to import data into a client that may not be able to process DODS data encoded in the standard binary format..

    Original link path: /api/pguide-html/pguide_44.html
    Open archive

  • Title: DODS Programmers Guide -- A.1.3 Binary Data
    Descriptive info: The DODS data document consists of two parts, a DDS describing the data returned, and the data itself.. It may also consist of ASCII data describing an error condition.. The DDS returned with the data differs slightly from the DDS returned by a simple request using the.. dds.. URL suffix.. Whereas the DDS returned in response to that URL is a description of the dataset available, the DDS returned in a data document describes the data being returned.. If you ask for an entire dataset, there will be no difference between these two DDS's.. However, if you request only a.. part.. of a dataset, the DDS included in the data document will only reflect the part of the dataset returned to you.. As an example, consider a dataset containing an array with one hundred elements.. The DDS for this dataset will contain an array with one hundred elements.. However, if you send a server a request for just the first fifty elements of the array, the DODS data document returned will contain a DDS with only fifty elements.. This is illustrated in.. figure.. Data.. The data requested from a server is (unsurprisingly) also contained in the DODS server's response to a data request.. The data is encoded using the XDR standard (eXternal Data Representation), and packed into the second part of the response document.. For more information on XDR, see.. Internet RFC 1014.. For further details, see.. , below.. Error Messages.. A DODS data document may contain an error message.. This is a DODS Error object (containing an ASCII error message and some other data) stuck into the HTTP document where the data would usually go.. This is where error conditions on the server are noted, as well as badly formed constraint expressions and file names.. The DODS Data Document and the DDS.. For the dataset containing the vector.. temp.. , with 100 elements, the top "Simple DDS Request" shows what the DDS might look like for that dataset.. The bottom "DODS Data Document" shows what might be returned by a request for all the even-numbered elements of the.. array.. Note that the DDS has been altered to allow for the reduced number of elements in the returned data array.. The HTTP response containing the DODS data document is formatted like this:.. HTTP/1.. 0  ...   the XDR format.. However, arrays of Byte, Int16, Int32, UInt16, UInt32, Float32, and Float64 actually have their size sent twice, once by the DAP software and once by the XDR software.. Here's a hex dump of some Int32 array data that shows this behavior:.. 00000000: 4461 7461 7365 7420 7b0a 2020 2020 496e Dataset {.. In 00000010: 7433 3220 755b 7469 6d65 5f61 203d 2031 t32 u[time_a = 1 00000020: 5d5b 6c61 7420 3d20 315d 5b6c 6f6e 203d ][lat = 1][lon = 00000030: 2032 315d 3b0a 7d20 666e 6f63 313b 0a44 21];.. } fnoc1;.. D 00000040: 6174 613a 0a00 0000 1500 0000 15ff fff9 ata:.. 00000050: 40ff fff6 6fff fff3 e5ff fff1 ffff fff3 @.. o.. 00000060: 4aff fff6 9aff fffb 1c00 0002 9600 0009 J.. 00000070: b300 000b 5e00 000b 0300 000b 8200 000a.. ^.. 00000080: b900 000a ae00 000b 7300 000a 2900 0008.. s.. 00000090: 5b00 0007 3500 0006 da00 0007 6900 0007 [.. 5.. i.. 000000a0: 3e.. The length bytes for the data section start at address 0x45 (The length is 0x00000015.. ) and is repeated at 0x49.. Here's how you can see this:.. geturl "http://dods.. gso.. uri.. edu/cgi-bin/nph-nc/data/fnoc1.. nc?u[0:0][0:0][0:20]".. The DDS for this dataset is (use.. geturl -d.. ):.. Structures and Grids are sent by serializing their components, one by one, in the order of their declaration in the DDS.. Sequences have a much more complex encoding scheme because one sequence may contain another sequence.. because the sequence type provides no information about the length of a given instance.. To send sequences the DAP uses two different algorithms, one up to DODS version 2.. 14 servers and clients and a better (more compact one) after that.. DODS clients at version 2.. 15 and later can all read from both servers.. but.. they assume that a server that does not announce its version is very old and will attempt to read Sequences using the old algorithm.. (So if you're writing a new DODS server that serves Sequences, you must remember to address the version requirement.. Here's how the new algorithm encodes a sequence:.. Serialize row of the sequence by:.. Writing the start of instance marker (0x5A), and.. Serializing (writing the XDR encoding of) each element in the row in the order of appearance, then.. Write the end of sequence marker (0x5A)..

    Original link path: /api/pguide-html/pguide_45.html
    Open archive

  • Title: DODS Programmers Guide -- A.2 Inputs
    Descriptive info: The input to a DODS server is contained in an HTTP "GET" request.. Unlike a POST, the information in this kind of request is all in the URL.. Consequently, examining the parts of a DODS URL will illustrate all the different sorts of requests a DODS server can handle.. Figure.. contains a description of the parts of a DODS  ...   parts of the DODS URL are described in detail in.. http://dods.. nc.. das ^ ^ ^ ^ ^ ^ | | | | | | Protocol | | | | | Machine Name | | | | Server----------------------------- | | | Directory--------------------------------- | | Filename--------------------------------------- | URL Suffix----------------------------------------------.. Parts of a DODS URL (without a constraint expression).. Selection.. Projection..

    Original link path: /api/pguide-html/pguide_46.html
    Open archive

  • Archived pages: 580