jonathanc
jonathanc

Reputation: 1

Using CDO to convert 2D .nc file to a 4D .nc file

I have a 2D .nc file with dimensions time and depth that I want to convert to a 4D .nc file. Latitude and longitude are saved as variable names in the 2D file. They are not in a particular order and there is large missing areas as well. The .nc file also contains temperature recordings for each time and depth.

The file header is as follows:

dimensions: 
  time = UNLIMITED ; // (309 currently) 
  level = 2000 ; 

variables: 
  float latitude(time) ; 
        latitude:units = "degree_north" ; 
  float longitude(time) ; 
        longitude:units = "degree_east" ; 
  float temperature(time, level) ; 
        temperature:standard_name = "sea_water_temperature" ; 
        temperature:long_name = "Water Temperature" ; 
        temperature:units = "Celsius" ; 
        temperature:_FillValue = -9999.f ; 
        temperature:missing_value = -9999.f ; 

Is there an easy way using cdo or nco to bin the temperature recordings into a pre-defined latitude x longitude grid so that the resulting .nc file has four dimensions? (time,depth,latitude,longitude)

Upvotes: 0

Views: 368

Answers (2)

ClimateUnboxed
ClimateUnboxed

Reputation: 8087

I think this posting is perhaps related to your question.

Maybe try

ncap2 -s 'Temp_new[time,depth,latitude,longitude]=temperature' in.nc out.nc

I'm not great at ncap2, perhaps Charlie will correct this post if this is not exactly correct. (now edited to correct the error pointed out by Charlie)

Upvotes: 1

Charlie Zender
Charlie Zender

Reputation: 6352

Adrian's answer looks correct to me except you do not need/want the dollarsigns in front of the dimension names, to so try

ncap2 -s 'Temp_new[time,depth,latitude,longitude]=temperature' in.nc out.nc

Documentation is here.

Upvotes: 2

Related Questions