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.

splitting netcdf file into multiple files by date

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

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