You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to underline differences between our implementation in Xclim and the method by Cannon as described in the 2016 paper. In the end, I don't think that this has important consequences for the results, but I think it's worth explaining what I've done.
Let
$X$ be a simulation, $Y$ a reference dataset;
$X^h,Y^h$ be the datasets in a historical training period.
$\overline{X}^T$ is the trend of a field $X_t$ centered on time $t$ (a rolling mean 15 years before/after $t$). Previous fields should also have a subscript $t$ but I only write here for clarity. The $T$ stands for trend, I really want to underline there is still a time dependance (smoothening over 30 years with a rolling window). If I write simply $\overline{X}$, then it's a mean, all points in the time series are taken, time dependance is lost.
For instance, in the Quantile Mapping method, we use $X^h, Y^h$, find a transfer function that computes adjustment factors $A_{QM(X^h, Y^h)}$ and apply this to $X$
$$X_{QM}^{\prime} = X + A_{QM(X^h, Y^h)}(X)$$
For the scaling transformation, we simply have a constant factor added $$X_{Scaling}^{\prime} = X + A_{Scaling(X^h, Y^h)}$$
I programmed Cannon's method to see the differences. In the training, I simply reused eqm_train, and instead of computing scale, I compute mu_hist = hist.mean(dim=dim). Then in the adjustment, I corrected the detrend sim with mu_hist as I would have done for scale in our DQM implementation:
Generic Issue
Description
I want to underline differences between our implementation in Xclim and the method by Cannon as described in the 2016 paper. In the end, I don't think that this has important consequences for the results, but I think it's worth explaining what I've done.
Let
For instance, in the Quantile Mapping method, we use$X^h, Y^h$ , find a transfer function that computes adjustment factors $A_{QM(X^h, Y^h)}$ and apply this to $X$
For the scaling transformation, we simply have a constant factor added
$$X_{Scaling}^{\prime} = X + A_{Scaling(X^h, Y^h)}$$
DQM Xclim
DQM Cannon
What I Did
I programmed Cannon's method to see the differences. In the training, I simply reused
eqm_train
, and instead of computingscale
, I computemu_hist = hist.mean(dim=dim)
. Then in the adjustment, I corrected the detrendsim
withmu_hist
as I would have done forscale
in our DQM implementation:Here is a test:
The climatological means over each days of year (in the historical period) are very similar
Looking a time series, the differences are smaller that
scen - sim
but still not negligible:Other thoughts
A possible alternative implementation could be to work with detrended fields in the training period:
DQM Xclim - alternate
Code of Conduct
The text was updated successfully, but these errors were encountered: