Multiply all values in vertical column
Added by david moreno over 1 year ago
Hello all,
I need to multiply all values of a vertical column, something exactly like VERTSUM but for multiplication instead of sum.
Is there a CDO operator that does this?
Replies (3)
RE: Multiply all values in vertical column - Added by Karin Meier-Fleischer over 1 year ago
Hi David,
imo there is no such operator. You can write a small script to do it, e.g.
#!/usr/bin/env ksh #-- create dummy input file cdo -sellevel,1000,3000,5000 -selname,t $HOME/data/rectilinear_grid_3D.nc infile.nc nlev=$(cdo -s nlevel infile.nc) cdo splitlevel infile.nc inlev_ set -A flist $(ls inlev_*.nc) first=${flist[0]} for (( i=1; i<${nlev}; i++ )) do cdo -mul ${first} ${flist[$i]} tmp_${i}.nc mv tmp_${i}.nc tmp.nc first=tmp.nc done mv tmp.nc outfile.nc
RE: Multiply all values in vertical column - Added by david moreno over 1 year ago
Hi Karin, thanks for the tip!
I'm trying to use your script but I dont use korn shell... And it seems like there is some syntax difference in the set -A flist $(ls inlev_*.nc) command.
Do you think you could send me the bash (sh) equivalent of set -A flist $(ls inlev_*.nc)?
Thanks
RE: Multiply all values in vertical column - Added by Karin Meier-Fleischer over 1 year ago
Instead of
set -A flist $(ls inlev_*.nc)
use the following for bash shell
flist=($(ls inlev_*.nc))