Hi,
This is nasty, but it would be quick. Your C++ program could make a call
to the ncks utility (which is part of the NetCDF operators). In C you
use the system function ... I guess it is similar or the same in C++.
Compared to using the C++ interface, this will save you many many lines
of code, at the expense of being a very inelegant solution.
Tim Hume
On Mon, 11 Apr 2005 11:42:20 -0700 (PDT)
Selina Satterfield <satterfields2000@xxxxxxxxx> wrote:
> I'm new to netCDF development and currently I have a
> large number of netcdf files
> that contain multiple dimensions, variables , and data
> for a period of time. Here is a cdl that I generated
> with ncdump of one of the files
>
> netcdf test {
> dimensions:
> lat = 141 ;
> lon = 360 ;
> time = UNLIMITED ; // (31 currently)
> variables:
> float lat(lat) ;
> lat:long_name = "Latitude" ;
> lat:units = "degrees_north" ;
> float lon(lon) ;
> lon:long_name = "Longitude" ;
> lon:units = "degrees_east" ;
> float time(time) ;
> time:long_name = "Time" ;
> time:units = "hours since 1997-01-01" ;
> float age_rcnt_obs(time, lat, lon) ;
> age_rcnt_obs:_FillValue = 999.f ;
> age_rcnt_obs:long_name = "Age of Recent Observation"
> ;
> age_rcnt_obs:missing_value = 999.f ;
> age_rcnt_obs:units = "Hours" ;
> age_rcnt_obs:valid_max = 255.f ;
> age_rcnt_obs:valid_min = 0.f ;
> float anal_temp(time, lat, lon) ;
> anal_temp:_FillValue = 9999.f ;
> anal_temp:long_name = "Analysis Temperature" ;
> anal_temp:missing_value = 999.9f ;
> anal_temp:scale_factor = 0.1f ;
> anal_temp:units = "Deg. C" ;
> anal_temp:valid_max = 70.f ;
> anal_temp:valid_min = -10.f ;
> float avgrad(time, lat, lon) ;
> etc.....;
>
> // global attributes:
> :title = "SST 100 KM FIELD" ;
> data:
>
> lat = -70, -69, -68, -67, -66, -65, -64, -63, -62,
> -61, -60, -59, -58, -57,
> -56, -55, -54, -53, -52, -51, -50, -49, -48, -47,
> -46, -45, -44, -43,
> etc..............;
>
> lon = -180, -179, -178, -177, -176, -175, -174, -173,
> -172, -171, -170,
> -169, -168, -167, -166, -165, -164, -163, -162,
> -161, -160, -159, -158,
> -157, -156, -155, -154, -153, -152, -151, -150,
> -149, -148, -147, -146,
> -145, -144, -143, -142, -141, -140, -139, -138,
> -137, -136, -135, -134,
> etc..............;
>
> time = 60600, 60624, 60648, 60672, 60696, 60720,
> 60744, 60768, 60792, 60816,
> 60840, 60864, 60888, 60912, 60936, 60960, 60984,
> 61008, 61032, 61056,
> 61080, 61104, 61128, 61152, 61176, 61200, 61224,
> 61248, 61272, 61296,
> 61320 ;
>
> age_rcnt_obs
> .........etc
>
> As you can see with the time there is data for 31
> days. What I would like to do is create 31 separate
> files using the NetCDF C++ Interface. Each file would
> include all dimensions variables attributes and only
> the data for that single day. I can't use a utility I
> need to create this myself since dates and other
> information needs to be obtained from a database. My
> question is can anyone send a code example of how I
> might do this? Thank you for your time and
> consideration.
>
> Selina
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Make Yahoo! your home page
> http://www.yahoo.com/r/hs
>