Average a variable through a particular dimension
Added by Craig Wallace almost 5 years ago
Hello CDO Community
I have a seasonal forecast netcdf file with temperature variable '2m_temperature' as [lon, lat, ensembles, time]
I am attempting to average through the ensemble dimension, which is named 'number' in the file.
CDO operator 'ensmean' will not work since the ensemble members are not in separate files.
Is there some operator I can use to point to my variable and declare the dimension(either name, or number [3 in this case]) I would like to average over?
Thank you
Craig
Replies (5)
RE: Average a variable through a particular dimension - Added by Craig Wallace almost 5 years ago
ok I hacked this by using nco dimension rename from 'number' to 'depth' and then I issued [cdo vertmean infile.nc outfile.nc] and left cdo to use constant weights.
Don't judge me.
RE: Average a variable through a particular dimension - Added by Ralf Mueller almost 5 years ago
hi Craig!
Neat solution. I guess splitting the file along the number
into several files and use ensmean
would have been my strategy. But the result should be identical.
cheers
ralf
RE: Average a variable through a particular dimension - Added by Craig Wallace almost 5 years ago
Thanks Ralf - that is a good suggestion too.
RE: Average a variable through a particular dimension - Added by Ralf Mueller almost 5 years ago
the workflow would be like
- add
axis="Z"
to your ensemble dimension - call
cdo splitlevel
to create multiple ensemble files - call
ensmean
or whatever is needed
RE: Average a variable through a particular dimension - Added by Adrian Tompkins 11 months ago
Actually, if you want to average over an arbitrary dimension rather than a standard "time", "lat", "lon" dimension as is this case, I think this is one use case where nco is currently more straightforward to revert to (sorry!)
ncwa -a number input_ensemble.nc output_mean.nc