Compute Bias and RMSE between observations and simulations in 2 different NC files
Added by david moreno about 7 years ago
Hey all,
I have 2 netcdf files, one with gridded obs and another one with gridded simulations (same grid dims) and I need to compute the bias and rmse for one of the variables, preferably outputting the bias and RMSE to a new nc file.
So, it would be something like Bias=sum(obs(file1)-sim(file2))/ntimes.
Is there an (easy) way to do this with CDO or NCO?
Thanks!
Replies (8)
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by Karin Meier-Fleischer about 7 years ago
Hi David,
use the operator chaining like
cdo -timavg -sub file1 file2 outfile
-Karin
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by david moreno about 7 years ago
Thanks Karin,
But the timavg operator computes a time average, not the Bias or rmse right?
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by Karin Meier-Fleischer about 7 years ago
It is the same as your Bias above Bias=sum(obs(file1)-sim(file2))/ntime which does a time average (sum/ntimes).
But you can do
cdo -divc,ntimes -timsum -sub file1 file2 outfile
the results are the same.
To compute RMSE
cdo -sqrt -fldmean -sqr -sub file1 file2 RMSE.nc
-Karin
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by Karin Meier-Fleischer about 7 years ago
RMSE definition is RMSE=sqrt(mean((forecast-observed)^2)) so it must be
cdo -sqrt -fldmean -sqr -sub file2 file1 RMSE.nc
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by david moreno about 7 years ago
Thank you so much for the help Karin!
And the variables need to have the same name in both input files, or I can define which vars to use in the computations?
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by Karin Meier-Fleischer about 7 years ago
Yes, they should have the same name, if not use chname operator to change the variable name.
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by ray kettaren about 2 years ago
Hello Karin!
I have similar problem due making bias (precipitation) : bias = [(RCM-eobs)/eobs]*100
But I got totally unrealistic values. Can you please help. This is the command I used.
At first, i made substract from RCM-EOBS. The result is correct. But when I use the second command the result becomes really unrealistic.
cdo sub pr_djf.nc eobs_pr_djfnewunit.nc subpr_bias.nc
cdo mulc,100 -div subpr_bias.nc eobs_pr_djfnewunit.nc bias_pr_cru-ens.nc
RE: Compute Bias and RMSE between observations and simulations in 2 different NC files - Added by Ralf Mueller about 2 years ago
your CDO calls look fine. So the numbers are coming from earlier computations I guess.