The problem

I am trying to figure out how $\ce{CO2}$ concentration trends are computed in the data provided by the Earth Systems Research Laboratory Mauna Loa Observatory. The data contains monthly measurements, seasonally corrected trend, and interpolated data with filled gaps. The trend and interpolated data should be computable from the raw averages. I was trying to reproduce the results of computing the trend and interpolation, but my values keep being slightly off.

I have tried two formulas to compute the trend that I call formula1 and formula2 below and neither reproduces the data exactly, though formula2 seems to fit pretty well.

enter image description here

The data

The data (esrl.noaa.gov) is made available as a text file structured as follows:

#  (-99.99 missing data;  -1 no data for #daily means in month)
#            decimal     average   interpolated    trend    #days
#             date                             (season corr)
1958   3    1958.208      315.71      315.71      314.62     -1
1958   4    1958.292      317.45      317.45      315.29     -1
1958   5    1958.375      317.50      317.50      314.71     -1
1958   6    1958.458      -99.99      317.10      314.85     -1
   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 

Here average is the average from monthly measurements of $\ce{CO2}$ concentration in ppm units, #days is the number of valid days' measurements per month if available.

The other two columns, interpolated and trend are a bit more involved. The file describes the method to compute the values as follows.

The "interpolated" column includes average values from the preceding column and interpolated values where data are missing. Interpolated values are computed in two steps. First, we compute for each month the average seasonal cycle in a 7-year window around each monthly value. In this way the seasonal cycle is allowed to change slowly over time. We then determine the "trend" value for each month by removing the seasonal cycle; this result is shown in the "trend" column. Trend values are linearly interpolated for missing months. The interpolated monthly mean is then the sum of the average seasonal cycle value and the trend value for the missing month.

The formulas

In order to avoid dealing with boundary effects I compare the results past the first 3.5 years of record, so that centered 7-year windows can be correctly defined. That is starting from September 1961.

Let $x_t, t=1..N$ be the monthly average values.

I need to first compute "the average seasonal cycle in a 7-year window around each monthly value". And then substract it from the data to obtain the trend.

As I understand the average seasonal cycle is the difference between the seasonal filter and some seasonal average.

To compute the 7-year seasonal filter for each $t \geq 3*12 + 6$ I compute $s_t = \frac{1}{7}\Sigma_{j=-3}^{j=3}x_{t+12j}$.

Now for a seasonal average I tried two options.

  1. The 7-year seasonal filter average $f_t=\frac{1}{12}\Sigma_{j=0}^{j=11}s_{t+j}$
  2. The 7-year average $a_t=\frac{1}{84}\Sigma_{j=-42}^{j=41}x_{t+j}$

Thereby formula1 is $x_t-(s_t-f_t)$ and formula2 is $x_t-(s_t-a_t)$.


It seems to me that I misunderstand what is meant by "the average seasonal cycle in a 7-year window around each monthly value". Neither $(s_t-f_t)$, nor $(s_t-a_t)$ defined above fit. What is the correct formula?

I have put the data into a read-only (Google sheet) for a quick check.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.