Re: arrays of fixed-length strings

Ed Hartnett wrote:
Jeff Whitaker <jswhit@xxxxxxxxxxx> writes:

In netcdf-4.0, I don't see how to create variables which are arrays of
strings with length > 1.  I see how to create arrays of
single-characters, and arrays of variable-length strings, but not
strings of a specified length.

Am I missing something, or is this not supported by HDF5?


Howdy Jeff!

Strings are variable length by their nature.

How about a two dimensional array of NC_CHAR?

Thanks,

Ed




Ed: I use arrays of fixed length strings, padded with spaces, quite a bit. This simplifies the memory management issues associated with arrays of variable length strings (which have no counterpart in Fortran 90/95, although they are allowed in Fortran 2003). Below is an excerpt from my previous reply which explains why I don't like using 2-D arrays of characters to represent 1-D arrays of fixed-length strings:

Russ: I realize you can use a array of shape ndim,8 to store an array of ndim 8 character strings. Thats the way I've done it with netcdf-3 - it just feels clunky. A typical use case for me is station data, where you want to store the name of the station. I end up the with an array of characters shaped (nstations,ncars) - in fortran I read it into an (nstations,nchars) character(len=1) array (after first finding out what both nstations and nchars are), then reshape it into a (nstations) character(len=nchars) array. I'd rather just read it into a character(len=nchars) array straight off. Not a show stopper for sure, but it would be more convenient. I realize that specifying the data type would be tricky, instead of NC_CHAR, do you have a bunch of new types NC_CHAR1, NC_CHAR2, ... NC_CHAR120? Or a new function datatype = nc_set_chartype(nchars)? However, I bet it would get used a lot more than the esoteric datatypes you have in netcdf-4 already (enums and opaque for example).


-Jeff

--
Jeffrey S. Whitaker         Phone  : (303)497-6313
Meteorologist               FAX    : (303)497-6449
NOAA/OAR/PSD  R/PSD1        Email  : Jeffrey.S.Whitaker@xxxxxxxx
325 Broadway                Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web    : http://tinyurl.com/5telg

==============================================================================
To unsubscribe netcdfgroup, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================