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.
Hi Elizabeth, Thank-you for your help and suggestion. I have tried using NcGroup::getType(), but I still get exceptions when I used non-netCDF3 types. e.g.: netCDF::NcFile ncFile("test.nc", netCDF::NcFile::replace, netCDF::NcFile::nc4); // works auto ncFloat = ncFile.getType("float",netCDF::NcGroup::ParentsAndCurrent); std::cout << "ncFloat.getName() = " << ncFloat.getName() << std::endl; // throws NcBadType auto ncString = ncFile.getType("string",netCDF::NcGroup::ParentsAndCurrent); std::cout << "ncString.getName() = " << ncString.getName() << std::endl; // throws NcBadType auto ncUint = ncFile.getType("uint",netCDF::NcGroup::ParentsAndCurrent); std::cout << "ncUint.getName() = " << ncUint.getName() << std::endl; Again, this works on Ubuntu 14.04 with netCDF 4.1.3 but not on Ubuntu 16.04 with netCDF 4.4.0. As far as I can tell, this means I cannot make variables of type string, uint etc? Best regards, Daniel ________________________________ From: Elizabeth A. Fischer <elizabeth.fischer@xxxxxxxxxxxx> Sent: Friday, 2 December 2016 5:07 PM To: Potter, Daniel (Energy, Newcastle) Cc: netcdfgroup@xxxxxxxxxxxxxxxx Subject: Re: [netcdfgroup] NcType problems on Ubuntu 16.04 Daniel, I believe you're using the "new" (NetCDF4) C++ interface? It has known problems with NcType, specifically for any types not in the NetCDF3 data model. I solved them by using strings instead of the symbolic enums; some of the API functions take strings. If I need a NcType object, I use the following function to get one: inline netCDF::NcType nc_type(netCDF::NcVar ncvar, std::string sntype) { return ncvar.getParentGroup().getType(sntype, netCDF::NcGroup::ParentsAndCurrent); } -- Elizabeth
netcdfgroup
archives: