[Thread Prev][Thread Next][Index]

RE: Concatenating netcdf files along time dim



Hello,

Instead of trying to do this in ferret, I found it easier to use the
netcdf operators found at http://nco.sourceforge.net/.    These tools
are useful -- particularly for concatenating. These operators, simple to
use, install on a variety of systems and I have found them quite robust.
"ncrcat" can concatenate a very long series of files along the record
dimension (usually time).  "ncecat" is an ensemble concatenator which
will create a record variable to concatenate a series of files that do
not have a time dimension which can be useful for certain data sets.

Hope this helps ...

Rost Parsons

Dr. A. Rost Parsons
Oceanographer, Naval Research Laboratory
Building 1009, Room A119, Code 7333
Stennis Space Center, MS 39529-5004
(228) 688-4413
e-mail  mailto:parsons@nrlssc.navy.mil



-----Original Message-----
From: owner-ferret_users@ferret.pmel.noaa.gov
[mailto:owner-ferret_users@ferret.pmel.noaa.gov] On Behalf Of Arindam
Chakraborty
Sent: Tuesday, September 09, 2003 6:43 AM
To: hengkek@nus.edu.sg
Cc: Ferret Users List
Subject: Re: Concatenating netcdf files along time dim


hello,
	there must be a better way to do this. Here I'm just pointing
out one way which is working for me. I'm copying the .jnl file first:

!==============================================================
! Concatenate 5 files with single time point and different time !
origin.  can dat/all

! open all the 5 files
 use grex01.nc
 use grex02.nc
 use grex03.nc
 use grex04.nc
 use grex05.nc

! define a time axis for the new concatenated variable. In this case !
time increment is daily and there are 5 days of data.  def
axis/t="01-jan-2003:12:00":"05-jan-2003:12:00":1/units=days tax

! define a series of variables. var1 is the final 'concatenated' !
variable. (If you have many many days, it may be possible to write !
these series of variable definitions in a single repeat loop).  let var1
= if (l eq 1) then var[d=1,gx=var,gy=var,gt=tax] else var2  let var2 =
if (l eq 2) then var[d=2,gx=var,gy=var,gt=tax] else var3  let var3 = if
(l eq 3) then var[d=3,gx=var,gy=var,gt=tax] else var4  let var4 = if (l
eq 4) then var[d=4,gx=var,gy=var,gt=tax] else var5  let var5 = if (l eq
5) then var[d=5,gx=var,gy=var,gt=tax]

 list var1

 contour var1[l=@ave]
 go land

 save/clo/file=grex01-05.nc var1
! end of .jnl file =============


Here I'm including the ncdump-ed output of one of my .nc files: netcdf
grex01 {
dimensions:
        lon = 6 ;
        lat = 3 ;
        time = UNLIMITED ; // (1 currently)
variables:
        float lon(lon) ;
                lon:units = "degrees_east" ;
                lon:long_name = "Longitude" ;
                lon:actual_range = 3.082857e-44f, 2.009861f ;
        float lat(lat) ;
                lat:units = "degrees_north" ;
                lat:long_name = "Latitude" ;
                lat:actual_range = 32.12643f, 3.041262e-23f ;
        double time(time) ;
                time:units = "days since 2003-01-01 12:00:00" ;
                time:long_name = "Time" ;
                time:valid_min = 0. ;
        float var(time, lat, lon) ;
                var:units = "put_the_unit" ;
                var:long_name = "This is long name of the variable" ;
                var:missing_value = -999.9f ;

// global attributes:
                :var_desc = "You can have a global attribute here" ;


 Hope this helps,

~ Arindam C

On Tue, 9 Sep 2003 hengkek@nus.edu.sg wrote:

> Hello people
> 
> I'm trying my luck here to see if anyone has successfully used ferret 
> to concatenate a series of netcdf files with the following properties:
> 
> 1- Record variable is 'time'
> 2- One record per file
> 3- Value of "time" variable is '0.0' for each file.
> 4- Each file's origin for the time variable is different.
> 
> I'd be most grateful for some tips or pointers to docs.  I was getting

> the error below.  I was hoping Ferret would magically recalculate all 
> the time values to values relative to one single arbitrary origin.
> 
> Thanks.
> 
> -Kek
> Physical Oceanography
> Singapore
> 
> -------------
> use x1.nc
> save/file=z.nc/append eee
>  LISTing to file z.nc
> use x2.nc
> save/file=z.nc/append eee
>  LISTing to file z.nc
>  **TMAP ERR: error in line definition
>              disordered output coordinate value: 2.08333E-03 Axis: 
> TIME LIST/FORMAT=CDF/file=z.nc/append eee Command file, command group,

> or REPEAT execution aborted
> -------------
> 
> x1.nc and x2.nc have different time origins.
> 
> The netcdf file structure is as follows:
> 
> dimensions:
>         z = 20 ;
>         lat = 199 ;
>         lon = 133 ;
>         time = UNLIMITED ; // (1 currently)
> ...
>         float time(time) ;
>                 time:long_name = "time" ;
>                 time:units = "days since 2003-01-01 00:00:00 +00:00" ;
> 



[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement