Dapper can aggregate Opendap sequence data from other Opendap servers if the data supplied by the server conforms to the following conventions:
- The Opendap sequence contains one outer and one inner sequence. The inner sequence is nested in the outer sequence.
- The outer sequence contains a latitude, longitude, unique id, and either a depth/height value or a time variable, depending on whether the sequence represents a profile or a time series.
- The inner sequence contains all of the data variables (temperature, salinity, etc.) as well as the time variable (for a time series) or the depth variable (for a profile).
- The id variable must be named _id. This value must be unique and is used to retreive the inner sequence.
- Attributes in the Opendap DAS are used to identify the
latitude, longitude, depth and time axes. Dapper uses a
set of heuristics to determine which variable corresponds
to which axis based on the units attribute and variable
name. The best way to guarantee correct identification
of axes is to use the "units" and "axis" attributes. The
"units" attribute should conform to the udunits convention.
Following are values for the "axis" attribute.
- "X" for longitude
- "Y" for latitude
- "T" for time
- "Z" for depth or height
Example
Profile DDS (time series)
Sequence {
Float32 longitude;
Float64 time;
Float32 latitude;
Int32 _id;
Sequence {
Float32 depth;
Float32 temperature; } }
Profile DAS (time series)
... location.profile.longitude {
String units "degrees";
String axis "X";
}
location.profile.latitude {
String units "degrees";
String axis "Y";
}
location.profile.time {
String units "msec since 1970-01-01 00:00:00 GMT";
String axis "T";
}
location.profile.depth {
String units "dbar";
String axis "Z";
}