This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> From: "Larisa Kalacheva" <address@hidden> > To: <address@hidden> > Cc: <address@hidden> > Subject: Re: 970618: NetCDF Question. Please help me > > Sorry but I have two more questions during writing program for netCDF > direct date access. > > 1) When I take real *.cdf files containing information I found that header > of this file does not mach BNF form specified in Unidate documentation. > Till the description of variables all is ok. But when I start reading > variables I found that data does not mach BNF form. I can read correctly > only name and three last values (offset, size, and type) and order of the > other values differs from one variable to another. So is there any more > rules than written in BNF form? ... > Hear is example of netCDF binary data that does not mach BNF form from > your site. In attachment you find two files wich have diffrens in > variables part of header. I cannot read variables cause in some > variables present in attributes field ABSENT and 00 00 and in some > variables comes folowing data: type, size, offset without ABSENT for > attributes. Can you say exactly where in one (or both) of these files you are seeing a problem? Which variable is not following the BNF? We can dump Sd50001.cdf and Centsidl.cdf with the ncdump utility. This means they appear to be valid netcdf files from the point of view of our implementation. Perhaps we could help you get the general release (our implementation) of netcdf working on your system. That way you would not have to write a code to implement the BNF. Otherwise, be sure you understand that each "var" in the "var_array" looks like this: - name - A number which is the length of variable name, in bytes - The characters which make up the variable name, \0 padded to a 4 byte boundary. - nelems: A number which is the number of dimensions (rank) of this variable. - dimids: An array numbers of length "nelems", which are the dimension id's referenced by this variable. Note that if nelems is 0, then there is nothing here. - vatt_array: An array of attributes, which may take the ABSENT (0, 0) form. - vsize - begin -glenn