----- Original Message -----
Sent: Tuesday, February 05, 2002 4:27 AM
> Hi John,
> Sea level files are on a DODS server at
> http://uhslc1.soest.hawaii.edu/uhslc/fast.html
>
> A Pacific ADCP file at
> http://ilikai.soest.hawaii.edu/sadcp/v3/draft/database/00154.htm
> (or
> http://ilikai.soest.hawaii.edu/sadcp/v3/draft/invntory/woceonex.htm
> for the table of all cruises)
>
> A Met file at
> http://www.coaps.fsu.edu/RVSMDC/cgi-bin/woce_line.cgi?woce_line=A11
>
> For the "WOCE netCDF conventions" we have agreed to, see
> http://www.cms.udel.edu/woce/v3cd/dpc_wg/ specifically the
> conventions document.
>
> Thanks, Penny
>
A few comments on the WOCE Conventions, and the netcdf files that use them.
1) Generally, I think its a very intelligent use of netcdf files.
2) These conventions are an extension of COARDS, and so I think its a
mistake to have
:CONVENTIONS = "COARDS" ;
better to have
:Conventions = "COARDS/WOCE" ;
to indicate that this is an extension. (Note it is more standard to use
upper/lower case for "Conventions")
The next comments will use this example Pacific ADCP file:
netcdf 00154v3 {
dimensions:
depth = 24 ;
time = UNLIMITED ; // (386 currently)
variables:
float depth(depth) ;
int time(time) ;
double decday(time) ;
int woce_date(time) ;
float woce_time_of_day(time) ;
float longitude(time) ;
float latitude(time) ;
float trans_temp(time) ;
float sd_trans_temp(time) ;
float ship_u(time) ;
float sd_ship_u(time) ;
float ship_v(time) ;
float sd_ship_v(time) ;
float u(time, depth) ;
float v(time, depth) ;
// global attributes:
:WOCE_Version = "3.0" ;
:CONVENTIONS = "COARDS" ;
}
3) You have 2 coord vars, depth() and time(), these are presumably
monotonic, so you are ok there.
4) You have several "auxiliary coordinates", of which the most important are
longitude and latitude. I think most people familiar with netcdf will
correctly infer that these are the positions of the measurements at the
given time. However, your conventions dont actually say that, and COARDS
doesnt deal with auxiliary coordinates at all, so I would reccommend that
you amend your Conventions document to explicitly say that.
5) It would also be preferable to explicitly document the cordinat systems
in the file. Since there are no well established ways to do this, its not
surprising that you haven't. One possibility, following CF:
float u(time, depth) ;
u:coordinates="latitude, longitude";
float v(time, depth) ;
v:coordinates="latitude, longitude";
...
you would have to repeat this for every measurement. Another possibility
could be:
int time(time) ;
time:coordinates="latitude, longitude";
although this has its problems also.
6) I am surprised that depth is not a function of time, ie, it could vary
with each sample.