Featured Stories World News Commentary Money Watch Multimedia Prison Planet U.S. News Science And Technology

The Smoking Code, part 2

  • Print The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Watts Up With That?
Sunday, Dec 6th, 2009

Climategate Code Analysis Part 2

The Smoking Code, part 2 atomThere are three common issues that have been raised in my previous post that I would like to officially address concerning the CRU’s source code.

If you only get one thing from this post, please get this. I am only making a statement about the research methods of the CRU and trying to show proof that they had the means and intent to falsify data. And, until the CRU’s research results can be verified by a 3rd party, they cannot be trusted.

Here are the four most frequent concerns dealing with the CRU’s source code:

  1. The source code that actually printed the graph was commented out and, therefore, is not valid proof.
  2. No proof exists that shows this code was used in publishing results.
  3. Interpolation is a normal part of dealing with large data sets, this is no different.
  4. You need the raw climate data to prove that foul play occurred.

If anyone can think of something I missed, please let me know.

The source code that actually printed the graph was commented out and, therefore, is not valid proof.

Had I done a better job with my source analysis, I would have found a later revision of the briffa_sep98_d.pro source file (linked to in my previous post) contained in a different working tree which shows the fudge-factor array playing a direct result in the (uncommented) plotting of the data.

  • A d v e r t i s e m e n t

Snippit from: harris-tree/briffa_sep98_e.pro (see the end of the post for the full source listing)

;
; APPLY ARTIFICIAL CORRECTION
;
yearlyadj=interpol(valadj,yrloc,x)
densall=densall+yearlyadj
  ;
  ; Now plot them
  ;
  filter_cru,20,tsin=densall,tslow=tslow,/nan
  cpl_barts,x,densall,title='Age-banded MXD from all sites',$
    xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
    zeroline=tslow,yrange=[-7,3]
  oplot,x,tslow,thick=3
  oplot,!x.crange,[0.,0.],linestyle=1
  ;

Now, we can finally put this concern to rest. 

Interpolation is a normal part of dealing with large data sets, this is no different.

This is partially true, the issue doesn’t lie in the fact that the CRU researchers used interpolation. The issue is the weight of the valadj array with respect to the raw data. valadj simply introduces too large of an influence to the original data to do anything productive with it.

Here is the graph I plotted of the valadj array. When we’re talking about trying to interpret temperature data that grows on the scale of one-tenths of a degree over a period of time, “fudging” a value by 2.5 is going to have a significant impact on the data set.

The Smoking Code, part 2 graph

No proof exists that shows this code was used in publishing results.

Correct! That’s why I am (and always have) taken the following stand: Enough proof exists that the CRU had both the means and intent to intentionally falsify data. This means that all of their research results cannot be trusted until they are verified. Period.

The fact that the “fudge-factor” source code exists in the first place is reason enough for alarm. Hopefully, they didn’t use fudged results in the CRU research results, but the truth is, we just don’t know.

You need the raw climate data to prove that foul play occurred.

This is assuming the raw data are valid, which I maintain that it probably is. Several people question the validity of the climate data gathering methods used by the different climate research institutions, but I am not enough of a climate expert to have an opinion one way or the other. Furthermore, It simply doesn’t matter if the raw climate data are correct or not to demonstrate the extreme bias the valadj array forces on the raw data.

So, the raw data could actually be temperature data or corporate sales figures, the result is the same; a severe manipulation of data.

The Smoking Code, part 2 251109banner

Full Source Listing

As promised, here is the entire source listing for: harris-tree/briffa_sep98_e.pro

001   1. ;
002   2. ; PLOTS 'ALL' REGION MXD timeseries from age banded and from hugershoff
003   3. ; standardised datasets.
004   4. ; Reads Harry's regional timeseries and outputs the 1600-1992 portion
005   5. ; with missing values set appropriately.  Uses mxd, and just the
006   6. ; "all band" timeseries
007   7. ;****** APPLIES A VERY ARTIFICIAL CORRECTION FOR DECLINE*********
008   8. ;
009   9. yrloc=[1400,findgen(19)*5.+1904]
010  10. valadj=[0.,0.,0.,0.,0.,-0.1,-0.25,-0.3,0.,-0.1,0.3,0.8,1.2,1.7,2.5,2.6,2.6,$
011  11.   2.6,2.6,2.6]*0.75         ; fudge factor
012  12. if n_elements(yrloc) ne n_elements(valadj) then message,'Oooops!'
013  13. ;
014  14. loadct,39
015  15. def_1color,20,color='red'
016  16. plot,[0,1]
017  17. multi_plot,nrow=4,layout='large'
018  18. if !d.name eq 'X' then begin
019  19.   window, ysize=800
020  20.   !p.font=-1
021  21. endif else begin
022  22.   !p.font=0
023  23.   device,/helvetica,/bold,font_size=18
024  24. endelse
025  25. ;
026  26. ; Get regional tree lists and rbar
027  27. ;
028  28. restore,filename='reglists.idlsave'
029  29. harryfn=['nwcan','wnam','cecan','nweur','sweur','nsib','csib','tib',$
030  30.   'esib','allsites']
031  31. ;
032  32. rawdat=fltarr(4,2000)
033  33. for i = nreg-1 , nreg-1 do begin
034  34.   fn='mxd.'+harryfn(i)+'.pa.mean.dat'
035  35.   print,fn
036  36.   openr,1,fn
037  37.   readf,1,rawdat
038  38.   close,1
039  39.   ;
040  40.   densadj=reform(rawdat(2:3,*))
041  41.   ml=where(densadj eq -99.999,nmiss)
042  42.   densadj(ml)=!values.f_nan
043  43.   ;
044  44.   x=reform(rawdat(0,*))
045  45.   kl=where((x ge 1400) and (x le 1992))
046  46.   x=x(kl)
047  47.   densall=densadj(1,kl)     ; all bands
048  48.   densadj=densadj(0,kl)     ; 2-6 bands
049  49.   ;
050  50.   ; Now normalise w.r.t. 1881-1960
051  51.   ;
052  52.   mknormal,densadj,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
053  53.   mknormal,densall,x,refperiod=[1881,1960],refmean=refmean,refsd=refsd
054  54. ;
055  55. ; APPLY ARTIFICIAL CORRECTION
056  56. ;
057  57. yearlyadj=interpol(valadj,yrloc,x)
058  58. densall=densall+yearlyadj
059  59.   ;
060  60.   ; Now plot them
061  61.   ;
062  62.   filter_cru,20,tsin=densall,tslow=tslow,/nan
063  63.   cpl_barts,x,densall,title='Age-banded MXD from all sites',$
064  64.     xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
065  65.     zeroline=tslow,yrange=[-7,3]
066  66.   oplot,x,tslow,thick=3
067  67.   oplot,!x.crange,[0.,0.],linestyle=1
068  68.   ;
069  69. endfor
070  70. ;
071  71. ; Restore the Hugershoff NHD1 (see Nature paper 2)
072  72. ;
073  73. xband=x
074  74. restore,filename='../tree5/densadj_MEAN.idlsave'
075  75. ; gets: x,densadj,n,neff
076  76. ;
077  77. ; Extract the post 1600 part
078  78. ;
079  79. kl=where(x ge 1400)
080  80. x=x(kl)
081  81. densadj=densadj(kl)
082  82. ;
083  83. ; APPLY ARTIFICIAL CORRECTION
084  84. ;
085  85. yearlyadj=interpol(valadj,yrloc,x)
086  86. densadj=densadj+yearlyadj
087  87. ;
088  88. ; Now plot it too
089  89. ;
090  90. filter_cru,20,tsin=densadj,tslow=tshug,/nan
091  91. cpl_barts,x,densadj,title='Hugershoff-standardised MXD from all sites',$
092  92.   xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
093  93.   zeroline=tshug,yrange=[-7,3],bar_color=20
094  94. oplot,x,tshug,thick=3,color=20
095  95. oplot,!x.crange,[0.,0.],linestyle=1
096  96. ;
097  97. ; Now overplot their bidecadal components
098  98. ;
099  99. plot,xband,tslow,$
100 100.   xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
101 101.   yrange=[-6,2],thick=3,title='Low-pass (20-yr) filtered comparison'
102 102. oplot,x,tshug,thick=3,color=20
103 103. oplot,!x.crange,[0.,0.],linestyle=1
104 104. ;
105 105. ; Now overplot their 50-yr components
106 106. ;
107 107. filter_cru,50,tsin=densadj,tslow=tshug,/nan
108 108. filter_cru,50,tsin=densall,tslow=tslow,/nan
109 109. plot,xband,tslow,$
110 110.   xrange=[1399.5,1994.5],xtitle='Year',/xstyle,$
111 111.   yrange=[-6,2],thick=3,title='Low-pass (50-yr) filtered comparison'
112 112. oplot,x,tshug,thick=3,color=20
113 113. oplot,!x.crange,[0.,0.],linestyle=1
114 114. ;
115 115. ; Now compute the full, high and low pass correlations between the two
116 116. ; series
117 117. ;
118 118. perst=1400.
119 119. peren=1992.
120 120. ;
121 121. openw,1,'corr_age2hug.out'
122 122. thalf=[10.,30.,50.,100.]
123 123. ntry=n_elements(thalf)
124 124. printf,1,'Correlations between timeseries'
125 125. printf,1,'Age-banded vs. Hugershoff-standardised'
126 126. printf,1,'     Region    Full   <10   >10   >30   >50  >100'
127 127. ;
128 128. kla=where((xband ge perst) and (xband le peren))
129 129. klh=where((x ge perst) and (x le peren))
130 130. ts1=densadj(klh)
131 131. ts2=densall(kla)
132 132. ;
133 133. r1=correlate(ts1,ts2)
134 134. rall=fltarr(ntry)
135 135. for i = 0 , ntry-1 do begin
136 136.   filter_cru,thalf(i),tsin=ts1,tslow=tslow1,tshigh=tshi1,/nan
137 137.   filter_cru,thalf(i),tsin=ts2,tslow=tslow2,tshigh=tshi2,/nan
138 138.   if i eq 0 then r2=correlate(tshi1,tshi2)
139 139.   rall(i)=correlate(tslow1,tslow2)
140 140. endfor
141 141. ;
142 142. printf,1,'ALL SITES',r1,r2,rall,$
143 143.   format='(A11,2X,6F6.2)'
144 144. ;
145 145. printf,1,' '
146 146. printf,1,'Correlations carried out over the period ',perst,peren
147 147. ;
148 148. close,1
149 149. ;
150 150. end


Print Print this page.

Comment Rules



Comments are closed.


© 2012 PrisonPlanet.com is a Free Speech Systems, LLC company. All rights reserved. Digital Millennium Copyright Act Notice.