Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

Re: [netcdfgroup] arrays of fixed-length strings


Jeff Whitaker wrote:
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).
Hi Jeff:

Suppose we stuck with fixed length char arrays for this case, but added a 
convenience method in the API that did the work for you. What would that 
convenience method look like?

John


  • 2007 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: