[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #XYH-561731]: Reading netCDF files.
- Subject: [netCDF #XYH-561731]: Reading netCDF files.
- Date: Mon, 12 Mar 2012 21:14:15 -0600
Hi Johanna,
> Hi,
>
> I am trying to open netCDF files containing
> 8*37*144*288 dimensional variables. But I keep getting segmentation fault.
> I think this is because of the fact that the files are rather big and are
> being put in the stack. I want to put them in the heap but I can't seem to
> figure out how. Since NcVar is a private I can't use new.
>
> Do you know how my issue can be resolved?
If you're going to try to read all the values of a netCDF variable on disk into
memory,
you need to allocate memory into which the values will be read. The code shown
below just tries to read all the data into space pointed to by an uninitialized
pointer.
There are some example programs that use the netCDF C++ interface here:
http://www.unidata.ucar.edu/netcdf/examples/programs/index.html
I think the example that's closest to what you want is sfc_pres_temp_rd.cpp or
pres_temp_4D_wr.cpp.
I hope that helps.
--Russ
> I am trying to open the relative humidity, pressure levels and temperature
> from these files:
>
> http://goldsmr3.sci.gsfc.nasa.gov/daac-bin/OTF/HTTP_services.cgi?FILENAME=%2Fdata%2Fs4pa%2FMERRA%2FMAI3CPASM.5.2.0%2F2011%2F11%2FMERRA300.prod.assim.inst3_3d_asm_Cp.20111130.hdf&FORMAT=TmV0Q0RGLw&BBOX=-90%2C-180%2C90%2C180&LABEL=MERRA300.prod.assim.inst3_3d_asm_Cp.20111130.SUB.nc&SHORTNAME=MAI3CPASM&SERVICE=SUBSET_LATS4D&LAYERS=LAYER_1000%2C250%2C975%2C200%2C950%2C150%2C925%2C100%2C900%2C70%2C875%2C50%2C850%2C40%2C825%2C30%2C800%2C20%2C775%2C10%2C750%2C7%2C725%2C5%2C700%2C4%2C650%2C3%2C600%2C2%2C550%2C1%2C500%2C450%2C400%2C350%2C300&VERSION=1.02&DATASET_VERSION=5.2.0&VARIABLES=h%2Crh%2Ct
>
>
> Code fragment:
> // Open the file.
> NcFile dataFile("file1.nc", NcFile::ReadOnly);
>
> // Get pointers to the pressure and temperature variables.
> NcVar *hVar, *tempVar, *rhVar;
> if (!(hVar = dataFile.get_var("h")))
> return NC_ERR;
> if (!(tempVar = dataFile.get_var("t")))
> return NC_ERR;
> if (!(rhVar = dataFile.get_var("rh")))
> return NC_ERR;
>
> cout << "*** SUCCESS reading example file file1.nc!" << endl;
> return 0;
>
>
> Thank you!
>
> Sincerely
> Johanna Juhl
>
>
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: XYH-561731
Department: Support netCDF
Priority: Normal
Status: Closed