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.
Hello--I would like to store an M-by-N array in a NetCDF file. The array would be stored as a single variable. I know the values of M and N, but due to physical memory limitations on my desktop computer, I cannot load the entire 2D array, which would consist of thousands of rows and hundreds of columns. Instead of loading the entire 2D array, I would like to load M-by-1 arrays (1D arrays), and then progressively add each column to the NetCDF file to create the M-by-N array.
Is this possible? The following code snippet (based on the C++ example given in the documentation) demonstrates what I would like to accomplish. However, after running this code snippet, the NetCDF file produced appears to be nothing but junk data. (I am using ParaView from Kitware as the NetCDF viewer.)
/// start of program #include <iostream> #include <netcdfcpp.h> using namespace std; static const int NX = 100; static const int NY = 100; static const int NC_ERR = 2; int main(void) { int dataOut[NX]; for(int i = 0; i < NX; i++) dataOut[i] = i; NcFile dataFile("simple_xy.nc", NcFile::Replace); if (!dataFile.is_valid()) { cout << "Couldn't open file!\n"; return NC_ERR; } NcDim* xDim = dataFile.add_dim("x", NX); NcDim* yDim = dataFile.add_dim("y", NY); NcVar *data = dataFile.add_var("data", ncInt, xDim, yDim); // Write each column to file? for(int i = 0; i < NY; i++) data->put( dataOut, i, NX ); return 0; } /// end of program Thank you for helping to shed some light on this matter. Nicholas Kinar n.kinar@xxxxxxxx Researcher, Centre for Hydrology University of Saskatchewan Saskatoon, Saskatchewan, CANADA
netcdfgroup
archives: