John,
Thank you so much. These are great comments and corrections. I'll be
happy to accept all revisions you made to the document. For the 19123
compliance, I think it's fine to use record/value to refer to range
side. I am not sure, however, how netCDF folks like these terms. I guess
that "variable" is a more common term in that community.
I think that netCDF can handle "an indefinitely thin rectangle" without any
problem. The following is an example of a netCDF file containing a
"temperature" variable T in a 4-D domain (time,level,lat,lon):
dimensions:
lat, lon=30, level=10, time=5
variables:
float T(time,level,lat,lon);
float time(time),level(level),lat(lat),lon(lon)
data:
time= 5 time values
level= 10 level values
lat lat values
lon=30 lon values
T=5x10x20x30 temperature values
We can define that time, lat, and lon all have only one value (if T is
measured at one specific time and lat/lon location). Then the T is
essentially an 1-D array representing a temperature profile, as the following:
dimensions:
level=10
variables:
float T(level)
float level(level)
data:
level= 10 level values
T=5x10x20x30 temperature values
Although it's 1-D, the is still a value for lon, lat, and time and thus
this 1-D array still fits the WCS model. Thus, both netCDF and WCS model
can be used to represent this kind of array.
BTW, netCDF calls all the four arrays, time, level, lon, lat, and T,
variables, among which T is often called primary variable and the other
three coordinate variables.
Regards.
Wenli
At 17:43 2006-4-25 -0400, John Evans wrote:
Hi Wenli,
Thanks for scrutinizing the NetCDF / WCS guide so thoroughly. I've
attached my comments & suggested edits to what you wrote. I see that Ben
has already incorporated your notes into the GALEON
<http://www.unidata.ucar.edu/projects/THREDDS/GALEON/WCSnetCDFencoding.htm>Webpage;
fortunately my edits are minor. They are in a nutshell:
1 - I usually distinguish "scalar" vs. "compound" (rather than "parametric")
2 - In the opening paragraph, it would be good to stay closer to the ISO
19123 model, where a coverage has only one range, which contains
"records." The "19123 coverage" associates to each location in the domain
a single "record," which may have one or more "values" in it (and each of
these values may be scalar or compound -- though 19123 doesn't say much
about that other than to say the values may have arbitrarily complex
structure).
3 - I wonder about the typing / dimensions issue when we equate (e.g.,) an
infinitely thin rectangle (2D) with a line segment (1D) as you do under
"2) Number of axes (dimensions)." Can this be handled easily in NetCDF?
- John E.