Will the Real Rapid City Please Stand UP!

This is a post about the quality of temperature data.  You can spend a lot of time to find methods to maximize the information you squeeze out of data, but unless the data itself is reliable, all of the effort is wasted.  Recently, I ran across an example which I found somewhat disconcerting.

I had been testing some methods for estimating the temperature at particular locations in a geographic grid cell from the temperature data set released by the Met Office.  The grid cell was chosen on the basis that was a reasonable collection of stations available for use in the procedure: 40 – 45 N by 100 – 105 W in the north central region of the United States.  I chose a station with a longer fairly complete record and my intent was to look at distance based weighting for estimating the temperature at that station site using the neighboring stations.  Then I could compare the actual measured temperature to the estimated temperature to evaluate how well I had done.  But my results seemed poorer than I had expected. At that point, I thought that perhaps I should look more closely at the station record.

The station I had chosen was Rapid City, South Dakota – ID number 726620  with a current  population close to 60000 people according to Wikipedia .  For comparison purposes, I collected the same station’s records from a variety of other sources: GISS “raw” (same as “combined”) and homogenized directly from the Gistemp web pages, GHCN “raw” and adjusted from the v2 data set and what was listed as the same two GHCN records from the Climate Explorer web site.   The subsequent analysis proved quite interesting.

To start with, the data from the Climate Explorer web site proved to be identical to the GHCN data that it purported to be.  A plot of the remaining five data sets looks like this:

At a glance, the records look quite similar with what appear to be some minor variations particularly in the later portions of the series.  Next, I compared the effects of the adjustments made in the case of GISS and GHCN.

This proved rather interesting.  Whereas the GISS homogenization was a simple increase of about 0.4 degrees in several stages, nothing we haven’t seen before.  However, the GHCN adjustment is quite complicated so a further plot of the adjustments by month seemed to be a good idea.

Monthly GHCN Adjustments:

Now this I find difficult to understand.  The pattern of the adjustments differs substantially for the various months with a strongly induced increasing trend in the summer and fall.  Since it is unlikely that the station is moved each spring to another location (the weatherman’s summer residence? 😉  ) and then back into town in the fall, I cannot find a reasonable explanation for either the type or the amounts of the adjustment.  However, it was downhill from here.

A comparison of GISS to GHCN:

None of the GISS series is even close to either of those from GHCN!  Yet they all purport to be the temperatures measured at a single site.  However, we have forgotten the Met series which initiated the entire exercise.  Met Office’s version compared to the other four:

Well, not only different, but in a strange way.  Starting in the early 1980’s, met decides to go off on its own.  Where the other four series have missing values (consistent with each other), Met always has a measurement available.  As well, the difference between Met and the others at times becomes relatively large.

As a final step, I calculated the trends from 1970 onwards for each of the five.  On a decadal basis:

Met 0.021  C / decade

GISS  0.167  C / decade

Homogenized GISS 0.253 C / decade

GHCN  -0.185  C / decade

Adjusted GHCN 0.302 C / decade

Why are they all so different?  I haven’t got a clue!  I triple-checked the data sources, but couldn’t find any errors in my versions of the data.  Maybe someone out there can provide some enlightenment.

I hope the rest of the records are not like this…

The data I used are on the website and can be downloaded through the script below.

#get data

rapiddat = url("https://statpad.files.wordpress.com/2010/03/rapidcity.doc")
rapidcityx = dget(rapiddat)

rapidcity = rapidcityx[,1:5]

plot(rapidcity) #rapid1


#giss is raw and/or combined sources)
plot(rapidcity[,"homgiss"]-rapidcity[,"giss"], main = "GISS ... Homogenized  - Raw",xlab="Year",ylab = "Degrees C" )

plot(rapidcity[,"adjghcn"]-rapidcity[,"ghcn"],main = "GHCN ... Adjusted  - Raw",xlab="Year",ylab = "Degrees C")

#monthly pattern of diffs for ghcn rapid3
for (i in 1:12) {
 plot(window(rapidcity[,"adjghcn"]-rapidcity[,"ghcn"], start=c(1888,i),deltat=1),ylim=c(-2,1),main = month.name[i],ylab ="Degrees C",xlab="Year")


plot(rapidcity[,"giss"]-rapidcity[,"ghcn"], main = "GISS - GHCN",xlab="Year",ylab = "Degrees C" )
plot(rapidcity[,"homgiss"]-rapidcity[,"ghcn"],main = "Homogenized GISS - GHCN",xlab="Year",ylab = "Degrees C")
plot(rapidcity[,"giss"]-rapidcity[,"adjghcn"], main = "GISS - Adjusted GHCN",xlab="Year",ylab = "Degrees C" )
plot(rapidcity[,"homgiss"]-rapidcity[,"adjghcn"],main = "Homogenized GISS -  Adjusted GHCN",xlab="Year",ylab = "Degrees C")

plot(rapidcity[,"met"]-rapidcity[,"ghcn"], main = "Met - GHCN",xlab="Year",ylab = "Degrees C" )
 abline(h = 0,col="red")
plot(rapidcity[,"met"]-rapidcity[,"adjghcn"],main = "Met - Adjusted GHCN",xlab="Year",ylab = "Degrees C")
 abline(h = 0,col="red")
plot(rapidcity[,"met"]-rapidcity[,"giss"], main = "Met - GISS",xlab="Year",ylab = "Degrees C" )
 abline(h = 0,col="red")
plot(rapidcity[,"met"]-rapidcity[,"homgiss"],main = "Met - Homogenized GISS",xlab="Year",ylab = "Degrees C")
 abline(h = 0,col="red")

rapid70 = window(rapidcity,start=c(1970,1))
trend = rep(NA,5)
mons = factor(cycle(rapid70))
tim = time(rapid70)
for (i in 1:5) trend[i] = lm(rapid70[,i]~0+mons+tim)$coe[13]

#         met         giss      homgiss         ghcn      adjghcn
# 0.002050500  0.016706298  0.025326090 -0.018540570  0.030191120



Filed under Uncategorized

23 responses to “Will the Real Rapid City Please Stand UP!

  1. Interesting that you have looked at this level of detail (i.e. monthly data). GHCN seems to have a lot of very strange adjustments: physically-unjustifiable-noaa-ghcn-adjustments

    GISS’ intention (as here) seems to be to reduce the effect of UHI, and despite some “dog-leg” adjustments, seems relatively straightforward, except that you get a lot of “wrong-way adjustments” that actually increase the warming trend (cooling the older data instead of warming it).

    One thing that is puzzling is that both GISS and GHCN seem to have as many warming adjustments as cooling ones – the effect of adjustment is almost symmetrical (here). Doesn’t that seem counter intuitive if most of the bias is thought to be warning due to UHI?

    • RomanM

      Re: vjones ,

      In this case, the adjustments are the wrong way if GHCN are doing it to reduce the UHI effect. Every month, the effect is the same with an increased trend most pronounced in the summer and fall. Their adjustment adds a rate of almost 5 degrees per century to their unadjusted data since 1970. This is nonsensical.

      Frankly, I ‘d like to see what the really raw data looks like for this site.

  2. “I hope the rest of the records are not like this…”

    I wouldn’t bet on it. By the way I have code envy. I wouldn’t know where to start running any code (Greek actually means more to me!), but I so wish that was not the case – I could do so much with these programmes – if only!

  3. jobug

    Having been a lurker on various “climate” blog for a some time, I have always found your contributions enlightning and constructive.

    Playing with R for the first time ever, and using your script, I couldn’t help noticing the difference between the variable in line 4: rapidcityxx and that in line 6: rapidcityx.

    My computer appeared to notice the difference as well, and didn’t like it!

    • RomanM

      Re: jobug,

      Sorry about that. It is fixed now.

      When posting a script, it is often necessary to tidy up what has been done to exclude extraneous steps that may have been used in the original analysis. Sometimes one or two may be overlooked. Usually, I will rerun the entire script, but neglected to do so this time.

      In this case, I wanted to load all seven series which I had used, but to pare down to the five different ones. I changed the name in one case, but not the second.

  4. BarryW

    Could you be seeing a TOBS adjustment based on season? Would changes in daylight savings time and the movement of dawn/dark have an effect on TOBS? Couple that with any changes on when the obs were taken might explain what you’re seeing.

  5. RomanM

    BarryW ,

    Interesting possibility which I had not considered (particularly for GHCN), although it doesn’t quite match in timing and pattern properly.

    According to National Geographic,

    Part of the Act of 1918 also legislated for the observance of daylight saving time nationwide. That section of the act was repealed the following year, and DST thereafter became a matter left up to local jurisdictions.

    Daylight saving time was observed nationally again during World War II, but was not uniformly practiced after the war’s end.

    Although daylight saving apparently did not start in the US before 1918 some of the differences between summer and winter go back to the late 1800’s. As well there are large variations between the summer months as well. Since the practice was local between the wars, further information would be needed to see what the situation actually was in Rapid City.

    Does anyone know where information on TOBS with respect to DST would be available?

  6. Roman

    Some of that will be TOBS.

    TOBS is different for every month of year depending on station location. You’d have to pull the station history file to confirm.

    The bias offset it set on either monthly or annual basis.

  7. RomanM: 2 things.

    1) Your use of identifiers is a little unclear. The station you appear to be talking about is identified in GHCN as 42572662004. “72662” is the WMO identifier, but it is not the WMO identifier of that station (unless the last 3 digits are 0), it is the WMO identifier of a nearby WMO station. GHCN lists 5 stations near WMO station 72662, and none of them are the WMO station itself.

    2) For the US, GISTEMP uses USHCN data, not GHCN data. Try plotting differences between your GISS data and the USHCN data. In GISTEMP’s Step 0 the USHCN data are offset (with a different offset for each month) to bring the recent part into line with GHCN data; see functions calc_monthly_USHCN_offsets and adjust_USHCN in Clear Climate Code’s ccc-gistemp.

  8. carrot eater

    It helps to know what the data flow is.

    If you want the raw data for this station, look in USHCN’s raw.avg

    Then to see it with TOB adjustment, see tob.avg and also the station history (method described in Karl 1986, and re-evaluated in Vose 2003)

    Then with the full set of adjustments (described Menne 2009), see F52.avg

    Finally GISS takes F52.avg (with adjustments), removes some infilled points and applies its own adjustment.

    This sequence is specific to the mainland US.

    • hmccard

      I too have calculated the difference between monthly raw and TOBS GHCN datasets (http://www.ncdc.noaa.gov/oa/climate/ghcn-monthly/index.php) for a number of stations. The results displayed similar step-wise changes dispalyed in the monthly GHCN graphs in Roman’s post. My graphs, as well as Roman’s, show that the adjustments are made on a seasonal basis, i.e., DJF, MAM, JJA and SON.

      IMO, the TOBS adjustments are aperiodic for a given stations and random for different stations, Randomizing the TOBS adjustments allows NCDC to claim that the bias introduced is small. That doen’t mean that the bias is small for any given station. My analysis showed that the bias can be quite large for a set of closely space stations. I did’t examine the bias related to a set of stations separated by 500km or 1200km.

  9. Roman,

    The difficulty is in finding a station which isn’t confusing. I’ve reveiewed several dozen from different data sources and they are all a mess.

    It’s a box of old socks, nobody can figure out were they all came from. After doing it for a while, it makes me want to scream. How is it we could even consider spending trillions when there isn’t a good source of the most important raw original unmolested temperature data.

  10. carrot eater

    “nobody can figure out were they all came from.”


    Take any value from GHCN v2.mean from the last several years. Look up the corresponding CLIMAT report. Compare. Where’d it come from? Via CLIMAT and the issuing country’s weather bureau. That bureau could have sent bad data, but that’s your source.

    For older values in v2.mean, chase down the sources specified in Peterson (1997). I’ve not done this, but if you were really curious about the provenance of the raw values in v2.mean, you could.

    As for the US, you have to know the data flow I described above. It’s all documented.

    • RomanM

      Re: David Jones ,

      I was using the number as given in the Met Office data set. I am well aware that this is not WMO identifier and used the appropriate series from GHCN and GISS for the comparisons.

      Thanks for the information. I will take a look at the USHCN data and see how it fits in to the picture.

      • By the way, it’s a little unfair to refer to the GISS data as “sources”. The station data you get from GISS is either from one of the sources they use (GHCN, USHCN for US, SCAR READER for Antarctica) or is one of the intermediate results from their processing algorithm (specifically, either after combining multiple GHCN station records into a single station record (Step 1) or after applying an urban adjustment (Step 2)).

    • RomanM

      The point of my post was pretty straightforward.

      What we have here is 5 different series All supposedly the temperature record from a single site. However, the trends for these series were all over the map. This doesn’t seem to bother you. How much of the record is real and how much inferred processes of adjustment? What about the fact that Met Office goes completely its own way in the early 1980s?
      Do you understand why? I don’t.

      I would think that the record keepers could do better than this.

      • carrot eater

        It doesn’t bother me because I know what I’m looking at.

        I know which sets are raw. I know which ones aren’t.

        For a US station, if I want raw, I go to the USHCN raw file.

        If I want something else, I go someplace else.

      • RomanM

        … and no matter which set you analyze, you get the same result. Amazing!

  11. adriaan


    I admire you for your skill to remain calm and objective when confronted with 5 datasets claiming to be the representative set. In my world (biology) it is an immortal sin to tamper with the raw, original data. I have been advised by some witty moron that I can buy the complete set of DVD’s with the scanned reports underlying the American temperature data, and digitize the data myself. Why? This has been done and should be available as such, free to download?

  12. D jones.

    2) For the US, GISTEMP uses USHCN data, not GHCN data. Try plotting differences between your GISS data and the USHCN data. In GISTEMP’s Step 0 the USHCN data are offset (with a different offset for each month) to bring the recent part into line with GHCN data; see functions calc_monthly_USHCN_offsets and adjust_USHCN in Clear Climate Code’s ccc-gistemp.”

    Could you explain that a little bit, I’ve puzzled over that for a couple days, Also the other sources
    ‘sumary of the day’ and the rest.

    It may seem clear to you and carrot, but the various machinations with GHCN and USHCN could use a diagram or a chart. it’s downright confusing even with this nice code.

  13. sky

    The best way to understand CRU and GISS data adjustments is to study shell-game artists at carnivals. It’s all very skillful and beyond the ken of the uninitiated.

  14. You are really a piece of work. Picking Rapid City which is world-renowned for having the greatest fluctuations in temperature anywhere. I think it had a world-record for temperature change in one day. This is not the data set to use, but you obviously have a devious mind.

    • RomanM

      Well, actually it was NOT chosen because of your claim that it has the greatest fluctuation in temperature in the known universe (which is news to me).

      Besides, whether that fact is true or not, it does not seem to have anything to do with the broad variation in the reported temperatures from the various sources I looked at. I would appreciate your explanation of how that would be salient to the topic at hand. Regardless of how the temperatures may have varied, you’d think they were all supposed to be measuring the same thing. Must be a sign of a chaotic climate… 😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s