Stephen,
This feature is new to NCO as of version 4.4.0,
i.e., you must install the latest NCO to take advantage of it.
zender@roulee:~$ ncgen -k netCDF-4 -b -o ~/my_string_file.nc ~/foo.cdl
zender@roulee:~$ ncks --cdl ~/my_string_file.nc
netcdf my_string_file {
// global attributes:
string :my_string_attribute = "this is a single-valued NC_STRING
variable" ;
} // group /
zender@roulee:~$ ncks -3 ~/my_string_file.nc ~/foo.nc
zender@roulee:~$ ncks --cdl ~/foo.nc
netcdf foo {
// global attributes:
:my_string_attribute = "this is a single-valued NC_STRING variable" ;
:history = "Fri Jan 24 08:03:14 2014: ncks -3
/home/zender/my_string_file.nc /home/zender/foo.nc" ;
:NCO = "20140124" ;
} // group /
There is no problem mapping scalar NC_STRING attributes
to NC_CHAR array attributes. The difficult, messy,
ugly problems arise when dealing with NC_STRING arrays
and/or with NC_STRING variables (as opposed to attributes).
Fortunately NC_STRING is usually used as a scalar attribute,
not as a variable, so this workaround solves most real-world
examples of converting netCDF4->netCDF3 that I have encountered
so far.
Producers of netCDF4 datasets should think twice before using
NC_STRING for anything except scalar attributes if they value
interoperability with netCDF3 applications.
Charlie
Le 24/01/2014 01:06, [email protected] a écrit :
> Hi Charlie,
>
>> However this issue is resolved, there is a workaround available now:
>> ncdismember (and ncks -3) automatically translates netCDF4 files to
>> netCDF3 files, and optionally sends them to a cfchecker. It translates
>> scalar NC_STRING attributes to NC_CHAR arrays.
>
> I've tried this and it doesn't seem to work with ncks version 4.3.4. I get
> the same error as I would if I used "nccopy -k 1":
>
> $ ncks -3 my_string_file.nc my_nc3_file.nc
> nco_err_exit(): ERROR Short NCO-generated message (usually name of function
> that triggered error): nco_copy_att()
> nco_err_exit(): ERROR Error code is -45. Translation into English with
> nc_strerror(-45) is "NetCDF: Not a valid data type or _FillValue type
> mismatch"
> nco_err_exit(): ERROR NCO will now exit with system call exit(EXIT_FAILURE)
>
> where nc_string_file.nc is:
>
> $ ncdump my_string_file.nc
> netcdf my_string_file {
>
> // global attributes:
> string :my_string_attribute = "this is a single-valued
> NC_STRING variable" ;
> }
>
> I guess in theory the attribute is a length-1 array of strings which cannot
> be mapped to an NC_CHAR array without some approximations.
>
> S.
>
> ---
> Stephen Pascoe +44 (0)1235 445980
> Centre of Environmental Data Archival
> STFC Rutherford Appleton Laboratory, Harwell Oxford, Didcot OX11 0QX, UK
>
>
> -----Original Message-----
> From: Charlie Zender [mailto:[email protected]]
> Sent: 23 January 2014 17:36
> To: CF Metadata Mail List
> Subject: Re: [CF-metadata] CF Conventions and NetCDF4 string attributes
>
> Hi Stephen,
>
> The example you posted illustrates one of many netCDF4 features that are
> creeping into datasets. One of your suggestions is to explicitly loosen the
> rules and to allow CF to accept scalar NC_STRINGs.
> There are trade-offs to such exceptions.
> This might put CF on a slippery slope to greater netCDF4 acceptance (good,
> IMHO) yet immediately puts a whole class of CF applications in jeopardy of
> not working with files that are nominally CF-compliant because they have an
> NC_STRING the application does not understand (awkward, until application is
> "fixed").
>
> However this issue is resolved, there is a workaround available now:
> ncdismember (and ncks -3) automatically translates netCDF4 files to
> netCDF3 files, and optionally sends them to a cfchecker. It translates scalar
> NC_STRING attributes to NC_CHAR arrays.
> http://nco.sf.net/nco.html#ncdismember
> http://nco.sf.net/nco.html#ncks
>
> Best,
> Charlie
> --
> Charlie Zender, Earth System Sci. & Computer Sci.
> University of California, Irvine 949-891-2429 )'(
> _______________________________________________
> CF-metadata mailing list
> [email protected]
> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>
--
Charlie Zender, Earth System Sci. & Computer Sci.
University of California, Irvine 949-891-2429 )'(
_______________________________________________
CF-metadata mailing list
[email protected]
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata