[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #TWD-935825]: Format of history attribute
- Subject: [netCDF #TWD-935825]: Format of history attribute
- Date: Thu, 09 Feb 2012 09:37:31 -0700
Hi Phil,
> Thanks for replying to my recent comment against CF ticket 76 regarding
> encoding of multiple string values within the global history attribute.
> I'd forgotten that netcdf-3 only supports char vectors, and not string
> vectors.
>
> Part of the reason for me overlooking that fact was the following
> partial ncdump header listing of a classic netcdf file which has been
> updated multiple times by the ncatted tool. On the face of it, this
> appears to show a history attribute consisting of multiple strings (6 to
> be exact). I just happened to use this file as a reference point when I
> was formulating my CF comment!
>
> $ ncdump -h tasmean-1960-90-ll.nc
> ...
> // global attributes:
> :history = "Fri Aug 1 13:41:42 2008: ncatted -a
> long_name,air_temperature1,m,c,Temperature at 1.5 m
> tasmean-1960-90-ll.nc\n",
> "Fri Aug 1 13:39:52 2008: ncatted -a
> long_name,air_temperature1,c,c,Temperature at 1.5 m
> tasmean-1960-90-ll.nc\n",
> "Tue Apr 1 10:56:27 2008: ncatted -a axis,air_temperature1,d,c,
> boundsupdate.nc\n",
> "Tue Apr 1 10:56:12 2008: ncatted -a
> standard_name,air_temperature1,m,c,air_temperature boundsupdate.nc\n",
> "Tue Apr 1 10:54:26 2008: ncatted -a
> standard_name,air_temperature1,m,c,temperature boundsupdate.nc\n",
> "Tue Apr 1 10:54:00 2008: ncatted -a axis,air_temperature1,m,c,TZYX
> boundsupdate.nc" ;
>
> $ ncdump -k tasmean-1960-90-ll.nc
> classic
>
> And if I display the global attributes using ncks I get the following:
>
> $ ncks -M tasmean-1960-90-ll.nc
> Opened file tasmean-1960-90-ll.nc: dimensions = 5, variables = 9, global
> atts. = 2, ID = 65536, type = NC_FORMAT_CLASSIC
> Record dimension: name = time, size = 1
> Global attribute 0: Conventions, size = 7 NC_CHAR, value = CF-1.0
> Global attribute 1: history, size = 590 NC_CHAR, value = Fri Aug 1
> 13:41:42 2008: ncatted -a long_name,air_temperature1,m,c,Temperature at
> 1.5 m tasmean-1960-90-ll.nc
> Fri Aug 1 13:39:52 2008: ncatted -a
> long_name,air_temperature1,c,c,Temperature at 1.5 m
> tasmean-1960-90-ll.nc
> Tue Apr 1 10:56:27 2008: ncatted -a axis,air_temperature1,d,c,
> boundsupdate.nc
> Tue Apr 1 10:56:12 2008: ncatted -a
> standard_name,air_temperature1,m,c,air_temperature boundsupdate.nc
> Tue Apr 1 10:54:26 2008: ncatted -a
> standard_name,air_temperature1,m,c,temperature boundsupdate.nc
> Tue Apr 1 10:54:00 2008: ncatted -a axis,air_temperature1,m,c,TZYX
> boundsupdate.nc
>
> which looks as expected, i.e. a text string with newline chars honoured.
>
> So is the first example simply a manifestation of the way in which
> ncdump (we're using v4.1.2) is programmed to display char attributes
> containing embedded \n characters, perhaps?
Yes, exactly! I see the ncdump man-page documentation doesn't mention the
handling of "\n" characters when displaying character-variable values, so
there was no way you could have known this without reading the ncdump
source code, and this behavior goes away for netCDF-4 files that have real
strings:
case '\n':
/* Only generate linebreaks after embedded newlines for
* classic, 64-bit offset, or classic model files. For
* netCDF-4 files, don't generate linebreaks, because that
* would create an extra string in a list of strings. */
I'll put adding information about this little idiosyncracy in ncdump
documentation on my list of things to do. Thanks for pointing out the
problem!
--Russ
> PS: Hope the netcdf workshop at ESRI this week is useful. I shall look
> forward to reading about any decisions/outcomes for enhanced ArcGIS 10.x
> capabilities.
It was a very interesting meeting for me, and I hope for ESRI, too. If I
ever get around to using the Unidata Developers Blog to write some summary
notes, I'll let you know ...
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: TWD-935825
Department: Support netCDF
Priority: Normal
Status: Closed