cc: Tom Crowley
date: Tue Aug 10 15:47:04 2004
from: Phil Jones
subject: Re: Mann and Jones (2003)
to: Gabi Hegerl , "Michael E. Mann"
Gabi,
No second attempt - don't know what the first was? We'll be doing a new instrumental
data
set (surprisingly called HadCRUT3), but that's it at the moment.
Attached is a good review of corals - just out.
Cheers
Phil
At 10:36 10/08/2004 -0400, Gabi Hegerl wrote:
Hi Mike and Phil,
Thanks! Yes, factor 1.29 will get me closer to my best guess scaling (factor 1.6 to
same-size signals).
The scaling is a tough issue, and I think there are lots of possibilities to do it
depending on what one wants
to do. For comparing underlying forced signals, I think tls is best. To get a
conservative size paleo reconstruction
(like what part of instrumental do we reconstruct with paleo), the traditional scaling
is best.
I'll write up what Myles and I have been thinking and send it.
Phil, if there is a second attempt at that with the Hadley Centre, let me know, I don't
like racing anybody!
Gabi
Michael E. Mann wrote:
Dear Phil and Gabi,
I've attached a cleaned-up and commented version of the matlab code that I wrote for
doing the Mann and Jones (2003) composites. I did this knowing that Phil and I are
likely to have to respond to more crap criticisms from the idiots in the near future, so
best to clean up the code and provide to some of my close colleagues in case they want
to test it, etc. Please feel free to use this code for your own internal purposes, but
don't pass it along where it may get into the hands of the wrong people.
In the process of trying to clean it up, I realized I had something a bit odd, not
necessarily wrong, but it makes a small difference. It seems that I used the 'long' NH
instrumental series back to 1753 that we calculated in the following paper:
* Mann, M.E., Rutherford, S., Bradley, R.S., Hughes, M.K., Keimig, F.T., [1]Optimal
Surface Temperature Reconstructions using Terrestrial Borehole Data, Journal of
Geophysical Research, 108 (D7), 4203, doi: 10.1029/2002JD002532, 2003.
(based on the sparse available long instrumental records) to set the scale for the
decadal standard deviation of the proxy composite. Not sure why I used this, rather than
using the CRU NH record back to 1856 for this purpose. It looks like I had two similarly
named series floating around in the code, and used perhaps the less preferable one for
setting the scale.
Turns it, this has the net effect of decreasing the amplitude of the NH reconstruction
by a factor of 0.11/0.14 = 1.29.
This may explain part of what perplexed Gabi when she was comparing w/ the instrumental
series. I've attached the version of the reconstruction where the NH is scaled by the
CRU NH record instead, as well as the Matlab code which you're welcome to try to use
yourself and play around with. Basically, this increases the amplitude of the
reconstruction everywhere by the factor 1.29. Perhaps this is more in line w/ what Gabi
was estimating (Gabi?)
Anyway, doesn't make a major difference, but you might want to take this into account in
any further use of the Mann and Jones series...
Phil: is this worth a followup note to GRL, w/ a link to the Matlab code?
Mike
p.s. Gabi: when do you and Tom plan to publish your NH reconstruction that now goes back
about 1500 years or so? It would be nice to have more independent reconstructions
published in the near future! Maybe I missed this? Thanks...
______________________________________________________________
Professor Michael E. Mann
Department of Environmental Sciences, Clark Hall
University of Virginia
Charlottesville, VA 22903
_______________________________________________________________________
e-mail: [2]mann@virginia.edu Phone: (434) 924-7770 FAX: (434) 982-2137
[3]http://www.evsc.virginia.edu/faculty/people/mann.shtml
% COMPOSITENH"
%
% (c) 2003, M.E. Mann
%
% THIS ROUTINE PERFORMS A RECONSTRUCTION OF NORTHERN HEMISPHERE
% MEAN ANNUAL TEMPERATURE BASED ON A WEIGHTED COMPOSITE OF LONG-TERM TEMPERATURE
% PROXY RECORDS SCALED AGAINST THE INSTRUMENTAL HEMISPHERIC MEAN TEMPERATURE
% SERIES, AS USED IN THE FOLLOWING TWO PUBLICATIONS:
%
%
% Jones, P.D., Mann, M.E., Climate Over Past Millennia, Reviews of Geophysics,
% 42, RG2002, doi:10.1029/2003RG000143, 2004
%
% Mann, M.E., Jones, P.D., Global Surface Temperatures over the Past two Millennia,
% Geophysical Research Letters,
% 30 (15), 1820, doi: 10.1029/2003GL017814, 2003
%
%
% 1. READ IN INSTRUMENTAL RECORD
%
% Read in CRU instrumental NH mean temeperature record (1856-2003)
load nh.dat;
yearinstr=nh(:,1);
% calculate both warm-season and annual means
warmseason=(nh(:,5)+nh(:,6)+nh(:,7)+nh(:,8)+nh(:,9)+nh(:,10))/6;
annualmean=nh(:,14);
% use annual mean record in this analysis
nhmean=annualmean;
%
% 2. READ IN PREVIOUSLY PUBLISHED PROXY-RECONSTRUCTIONS OF NH ANNUAL MEAN
% RECONSTRUCTIONS AND FORM APPROPRIATELY SCALED COMPOSITE
%
% Read in Mann et al (1998), Crowley and Lowery (2000), and Jones et al (1998)
% NH temperature reconstructions
load nhem-millennium.dat;
load crowleylowery.dat;
load joneshemisrecons.dat;
nhmbh=nhem_millennium(1:981,2);
nhjones=joneshemisrecons(1:981,2);
nhcl=crowleylowery(1:981,2);
yearmillen=nhem_millennium(1:981,1);
% since some reconstructions are only decadally resolved, smooth each on
% decadal timescales through use of a lowpass filter with cutoff at
% f=0.1 cycle/year. Based on use of the filtering routine described in:
%
% Mann, M.E., On Smoothing Potentially Non-Stationary Climate Time Series,
% Geophysical Research Letters, 31, L07214, doi: 10.1029/2004GL019569, 2004.
%
% using 'minimum norm' constraint at both boundaries for all time series
nhsmooth=lowpass(nhmean,0.10,0,0);
nhmbhsmooth=lowpass(nhmbh,0.10,0,0);
nhjonessmooth=lowpass(nhjones,0.10,0,0);
nhclsmooth=lowpass(nhcl,0.10,0,0);
% Mann et al (1998) already calibrated in terms of hemispheric annual mean temperature, but
% reference mean has to be adjusted to equal that of the instrumental series
% over the 1856-1980 overlap period (which uses a 1961-1990 reference period)
admbh=mean(nhsmooth(1:125))-mean(nhmbhsmooth(857:981));
newmbh=nhmbhsmooth+admbh;
% need to adjust and scale Jones et al (1998) and Crowley and Lowery (2000)
% reconstructions to match mean and trend of smoothed instrumental series
% over 1856-1980
t1=1856;
t2=1980;
x=(t1:t2)';
nhlong=nhmean(1:125);
smoothlong=lowpass(nhlong,0.10,0,0);
amean0=mean(smoothlong);
y=smoothlong;
[yc,t,trend0,detrend0,xm,ym] = lintrend(x, y);
%
y=nhclsmooth(t1-999:t2-999);
[yc,t,trendcl,detrendcl,xm,ym] = lintrend(x, y);
%
y=nhjonessmooth(t1-999:t2-999);
[yc,t,trendjones,detrendjones,xm,ym] = lintrend(x, y);
%
multjones=norm(trend0)/norm(trendjones);
adjustedjones=nhjonessmooth*multjones;
offsetjones=amean0-mean(adjustedjones(t1-999:t2-999));
newjones=adjustedjones+offsetjones;
newjones=newjones';
%
multcl=norm(trend0)/norm(trendcl);
adjustedcl=nhclsmooth*multcl;
offsetcl=amean0-mean(adjustedcl(t1-999:t2-999));
newcl=adjustedcl+offsetcl;
newcl=newcl';
%
nhlongcompose=0.3333*(newmbh+newjones'+newcl')';
%
% 3. READ IN AND PROCESS PROXY TEMPERATURE RECORDS
%
M=8;
load 'china-series1.dat'
load 'itrdb-long-fixed.dat'
load 'westgreen-o18.dat'
load 'torny.dat'
load 'chesapeake.dat'
load 'mongolia-darrigo.dat'
load 'dahl-jensen-gripbh1yrinterp.txt'
load 'dahl-jensen-dye3bh1yrinterp.txt'
% read in years
x1=china_series1(:,1);
x2=itrdb_long_fixed(:,1);
x3=westgreen_o18(:,1);
x4=torny(:,1);
x5=chesapeake(:,1);
x6=mongolia_darrigo(:,1);
x7=dahl_jensen_gripbh1yrinterp(:,1);
x8=dahl_jensen_dye3bh1yrinterp(:,1);
% read in proxy values
y1=china_series1(:,2);
y2=itrdb_long_fixed(:,2);
y3=westgreen_o18(:,2);
y4=torny(:,2);
y5=chesapeake(:,2);
y6=mongolia_darrigo(:,2);
y7=dahl_jensen_gripbh1yrinterp(:,2);
y8=dahl_jensen_dye3bh1yrinterp(:,2);
% Store decadal correlation of each proxy record with local available
% overlapping CRU gridpoint surface temperature record (see Mann and Jones, 2003)
corr(1)=0.22;
corr(2)=0.52;
corr(3)=0.75;
corr(4)=0.32;
corr(5)=0.31;
corr(6)=0.40;
corr(7)=0.53;
corr(8)=0.52;
% Estimate Area represented by each proxy record based on latitude of
% record and estimated number of temperature gridpoints represented by record
pi=3.14159;
factor=pi/180.0;
lat(1)=32.5;
dof(1)=4;
lat(2)=37.5;
dof(2)=2;
lat(3)=77;
dof(3)=0.667;
lat(4)=68;
dof(4)=3.5;
lat(5)=37.0;
dof(5)=1.0;
lat(6)=47;
dof(6)=1;
lat(7)=73;
dof(7)=0.667;
lat(8)=65;
dof(8)=0.667;
for j=1:M
area(j)=dof(j)*cos(lat(j)*factor);
end
% determine min and max available years over all proxy records
%
minarray=[min(x1) min(x2) min(x3) min(x4) min(x5) min(x6) min(x7) min(x8)];
maxarray=[max(x1) max(x2) max(x3) max(x4) max(x5) max(x6) max(x7) max(x8)];
tbegin=max(minarray);
tend1=min(maxarray);
tend=max(maxarray);
% initialize proxy data matrix
notnumber = -9999;
for j=1:M
for i=1:minarray(j)-1
time(i)=i;
mat(i,j)=notnumber;
end
for i=minarray(j):tend
time(i)=i;
end
for i=minarray(j):maxarray(j)
if (j==1) mat(i,j)=y1(i-minarray(j)+1);
end
if (j==2) mat(i,j)=y2(i-minarray(j)+1);
end
if (j==3) mat(i,j)=y3(i-minarray(j)+1);
end
if (j==4) mat(i,j)=y4(i-minarray(j)+1);
end
if (j==5) mat(i,j)=y5(i-minarray(j)+1);
end
if (j==6) mat(i,j)=y6(i-minarray(j)+1);
end
if (j==7) mat(i,j)=y7(i-minarray(j)+1);
end
if (j==8) mat(i,j)=y8(i-minarray(j)+1);
end
end
% added in Jones and Mann (2004), extend series ending between
% 1980 calibration period end and 2001 boundary by persistence of
% last available value through 2001
for i=maxarray(j)+1:tend
if (j==1) mat(i,j)=y1(maxarray(j)-minarray(j)+1);
end
if (j==2) mat(i,j)=y2(maxarray(j)-minarray(j)+1);
end
if (j==3) mat(i,j)=y3(maxarray(j)-minarray(j)+1);
end
if (j==4) mat(i,j)=y4(maxarray(j)-minarray(j)+1);
end
if (j==5) mat(i,j)=y5(maxarray(j)-minarray(j)+1);
end
if (j==6) mat(i,j)=y6(maxarray(j)-minarray(j)+1);
end
if (j==7) mat(i,j)=y7(maxarray(j)-minarray(j)+1);
end
if (j==8) mat(i,j)=y8(maxarray(j)-minarray(j)+1);
end
end
end
time=time';
data=[time mat];
% decadally lowpass of proxy series at f=0.1 cycle/year as described earlier
for j=1:M
unfiltered=mat(minarray(j):tend,j);
filt=lowpass(unfiltered,0.1,0,0);
for i=1:minarray(j)-1
filtered(i,j)=mat(i,j);
end
for i=minarray(j):tend
filtered(i,j)=filt(i-minarray(j)+1);
end
end
% standardize data
% first remove mean from each series
for j=1:M
icount=0;
amean(j)=0;
for i=1:tend
if (filtered(i,j)>notnumber)
icount=icount+1;
amean(j)=amean(j)+filtered(i,j);
end
end
amean(j)=amean(j)/icount;
end
% now divide through by standard deviation
for j=1:M
icount=0;
asum=0;
for i=1:tend
if (filtered(i,j)>notnumber)
asum=asum+(filtered(i,j)-amean(j))^2;
icount=icount+1;
end
end
sd(j)=sqrt(asum/icount);
for i=1:tend
standardized(i,j)=filtered(i,j);
if (mat(i,j)>notnumber)
standardized(i,j)=(filtered(i,j)-amean(j))/sd(j);
end
end
end
%
% 4. Calculate NH mean temperature reconstruction through weighted (and
% unweighted) composites of the decadally-smoothed proxy indicators
%
% impose weighting scheme for NH mean composite
for j=1:M
% weighting method 1: weight each proxy series by approximate area
% weighting method 2: weight each proxy series by correlation between
% predictor and local gridpoint series over available overlap period
% during calibration interval
% weighting method 3: weight each proxy series by correlation between
% predictor and NH mean series over calibration interval:
% weightlong(j)=lincor(nhlong,standardized(1856:1980,j));
% weighting method 4: combine 1 and 3
% weighting method 5: combine 1 amd 2 (this is the 'standard' weighting
% scheme chosen by Mann and Jones (2003)
% use standard weighting scheme
weight(j)=corr(j)*area(j);
end
% perform reconstructions based on:
% (1) the 6 proxy temperature records available over interval AD 200-1980
% (2) all 8 proxy temperature records available over interval AD 553-1980
istart0=200;
istart1=200;
istart2=553;
nseries1=0;
nseries2=0;
weightsum1=0;
weightsum2=0;
for j=1:M
if (istart1>=minarray(j))
nseries1=nseries1+1;
weightsum1=weightsum1+weight(j);
end
if (istart2>=minarray(j))
nseries2=nseries2+1;
weightsum2=weightsum2+weight(j);
end
end
% calculate composites through 1995 (too few series available after that date)
% As discussed above, persistence is used to extend any series ending
% between 1980 and 1995 as described by Jones and Mann (2004).
tend=1995;
for i=istart1:tend
unweighted1(i)=0;
unweighted2(i)=0;
weighted1(i)=0;
weighted2(i)=0;
for j=1:M
if (istart1>=minarray(j))
unweighted1(i)=unweighted1(i)+standardized(i,j);
weighted1(i)=weighted1(i)+weight(j)*standardized(i,j);
end
if (istart2>=minarray(j))
unweighted2(i)=unweighted2(i)+standardized(i,j);
weighted2(i)=weighted2(i)+weight(j)*standardized(i,j);
end
end
end
unweighted1=unweighted1/nseries1;
unweighted2=unweighted2/nseries2;
weighted1=weighted1/weightsum1;
weighted2=weighted2/weightsum2;
unweighted1(1:istart1-1)=0;
unweighted2(1:istart2-1)=0;
weighted1(1:istart1-1)=0;
weighted2(1:istart2-1)=0;
% scale composite to have same variance as decadally-smoothed instrumental
% NH series
% Mann and Jones (2003) and Jones and Mann (2004) used for this purpose
% the extended (1753-1980) NH series used in:
% Mann, M.E., Rutherford, S., Bradley, R.S., Hughes, M.K., Keimig, F.T.,
% Optimal Surface Temperature Reconstructions using Terrestrial Borehole Data,
% Journal of Geophysical Research, 108 (D7), 4203, doi: 10.1029/2002JD002532, 2003.
% That series has a decadal standard deviation sd=0.1123
% If instead, the 1856-2003 CRU instrumental NH mean record is used, with
% a decadal standard deviation of sd=0.1446, the amplitude of the reconstruction
% increases by a factor 1.29 (this scaling yields slightly lower verification
% scores)
load nhem-long.dat
nhemlong=nhem_long(:,2);
longsmooth=lowpass(nhemlong,0.10,0,0);
sd0=std(longsmooth);
% use weighted (rather than unweighted) composite in this case
series1=weighted1;
% center composites on 1856-1980 calibration period
y=series1(t1:t2)';
amean1=mean(series1(t1:t2));
compseries1=series1(t1:t2)-amean1;
mult1=sd0/std(compseries1);
% scale composite to standard deviation of instrumental series and re-center
% to have same (1961-1990) zero reference period as CRU NH instrumental
% temperature record
adjusted1=series1*mult1;
offset1=amean0-mean(adjusted1(t1:t2));
compose1=adjusted1+offset1;
compose1=compose1';
series2=weighted2;
y=series2(t1:t2)';
amean2=mean(series2(t1:t2));
compseries2=series2(t1:t2)-amean2;
mult2=sd0/std(compseries2);
adjusted2=series2*mult2;
offset2=amean0-mean(adjusted2(t1:t2));
compose2=adjusted2+offset2;
compose2=compose2';
%
% 5. UNCERTAINTY ESTIMATION, AND STATISTICAL VERIFICATION
%
% estimate uncertainty in reconstruction
% nominal (white noise) unresolved calibration period variance
calibvar=lincor(smoothlong,compose1(t1:t2))^2;
uncalib=1-calibvar;
sdunc=sd0*sqrt(uncalib);
% note: this is the *nominal* white noise uncertainty in the reconstruction
% a spectral analysis of the calibration residuals [as discussed briefly in
% Mann and Jones, 2003] indicates that a peak at the multidecadal timescale
% that exceeds the white noise average residual variance by a factor of
% approximately 6. A conservative estimate of the standard error in the
% reconstruction thus inflates the nominal white noise estimate "sdunc" by a
% factor of sqrt(6)
sdlow = sdunc*sqrt(6)
% calculate long-term verification statistics for reconstruction
% use composite of Mann et al (1998)/Crowley and Lowery (2000)/Jones et al (1998)
% and AD 1600-1855 interval
overlapcomp=nhlongcompose(1:981);
% work with longer reconstruction (back to AD 200)
overlaprecon=compose1(1000:1980)';
%overlaprecon=compose2(1000:1980)';
%calculate verification R^2
series11=overlaprecon(601:856);
series22=overlapcomp(601:856);
verifrsq=lincor(series11,series22)^2
% calculate verification RE
var1=0.0;
var2=0.0;
var3=0.0;
var4=0.0;
var5=0.0;
am0=0.0;
% insure convention of zero mean over calibration interval
for i=857:981
am0=am0+overlapcomp(i);
end
am0=am0/125;
for i=601:856
var1=var1+(overlapcomp(i)-am0)^2;
var2=var2+(overlapcomp(i)-overlaprecon(i))^2;
end
verifRE=1-var2/var1
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gabriele Hegerl
Division of Earth and Ocean Sciences,
Nicholas School for the Environment and Earth Sciences,
Box 90227
Duke University, Durham NC 27708
Ph: 919 684 6167, fax 684 5833
email: [4]hegerl@duke.edu, [5]http://www.env.duke.edu/faculty/bios/hegerl.html
Prof. Phil Jones
Climatic Research Unit Telephone +44 (0) 1603 592090
School of Environmental Sciences Fax +44 (0) 1603 507784
University of East Anglia
Norwich Email p.jones@uea.ac.uk
NR4 7TJ
UK
----------------------------------------------------------------------------