GISTEMP Urban Adjustment

After some recent tweaks by me to the ccc-gistemp sources it is now possible to run a pipeline of the GISTEMP process with some of the steps omitted. An earlier post shows how I can omit Step 4 to create a land-only index. My recent changes allow Step 2 to be omitted. Step 2 is the urban adjustment step (in which stations marked as urban have their trend adjusted).

Omitting Step 2 will therefore give us an idea of the magnitude of the effect of the urban adjustment. It so happens that my writing this blog post overlaps with Nick Barnes implementing GISTEMP’s new scheme for identifying urban stations (corresponding to GISTEMP’s update of 2010-01-16). That gives me an opportunity to show both the new and old adjustment schemes against a “no adjustment” baseline:

In making this graph Step 4 has been omitted, giving us a land index. This is primarily to amplify the differences: land covers the lesser fraction of the Earth; so including the ocean data (which does not require an urban adjustment) makes the difference smaller.

And for each hemisphere:



To make a “no urban adjustment” run of ccc-gistemp: «python tool/ -s 0,1,3,5»; and to make an “urban adjustment” land-index: «python tool/ -s 0,1,2,3,5».

21 Responses to “GISTEMP Urban Adjustment”

  1. pdjakow Says:

    Good job!

    I wonder, when 0.4.0 will be available 😉

  2. drj Says:

    @pdjakow: very soon! If you would like to help, you can check out our code from svn and run it and report any errors to the mailing list. We always like to have a bit of a testing effort before a release.

  3. carrot eater Says:

    I don’t know why GISS doesn’t regularly publish a no-adjustment record, just to show what it looks like. Or do they?

    Has the public code been updated to reflect the new UHI method, or did you just implement it based on the description on the update page?

  4. Nick.Barnes Says:

    carrot eater: GISTEMP updated their sources on 16th January this year. I looked at the detailed changes to their code and implemented our matching change last week, in preparation for our 0.4.0 release.

    I don’t think that GISS do publish any numbers without their urban adjustment.

  5. steven mosher Says:

    It would be beneficial to have some additional output from the code
    this is not a task list but just saying.

    1. An output list of the stations and their rural designation
    2. For every station adjusted a list of stations used to adjust it.

    keep up the good work. thanks!

  6. steven mosher Says:


    I spent some time in the code. I noticed in the urban adjustment code that you added the ability to use global_brightness. A while back either Zeke or Nick Stokes asked me where the global brightness value came from.

    I’ve been trying to see what file exactly this comes out of on
    the web ( assuming its a station inventory file) and then looking for descriptions of that metadata..

    Any clues:

    1. the location of the metadata file.
    2. the actual source for that metadata.

  7. Steven mosher Says:

    It would be instructive to do a rural only.
    I was thinking you could just populate the list of “strange stations”
    in step0 ( I recall a routine that dropped stations deemed strange)
    with a list of urban stations.. would that work?

  8. Zeke Hausfather Says:


    Brightness is here:

    Also, anyone have any inkling of why GISS land temps are so much lower than NCDC?


    GISS annual land temps gives me 0.169 C per decade from 1960-2009, while NCDC gives a whopping 0.22 C per decade…

    [ed: didn’t spot this needed approving until after I’d written my responses below]

  9. drj Says:

    @Steven: on brightness: The brightness value comes from the v2.inv file supplied by GISS. In describing this change, on 2010-01-16, GISS say “now based on nightlight radiances everywhere, as described in an upcoming publication”. Presumably we will have to wait for the upcoming publication.

  10. drj Says:

    @Steven: logging and rural only. Step 2 logging was removed because it made the code less clear. This was annoying me recently (so at some point it may come back in).

    A “rural only” analysis is definitely on the cards.

    If you have a list of favourite rural stations then it’s very easy to run Step 0, edit the work/v2.mean_comb file to remove stations, then run Steps 1 through 5 to complete the analysis. My earlier post hints at how to do that.

  11. Nick.Barnes Says:

    I took out the step 2 logging because maintaining exact logging compatibility with GISTEMP was a pain: for instance, we were having to construct and pass around special “station descriptor” strings – composed of the station name, part of the station ID, and bits and pieces of metadata – specifically to write them out in log files.
    To visualise and debug step 2 processes, some sort of logging may be useful (although I think for visualisation I would prefer for the information to be added to metadata, for instance the list of rural station IDs used to adjust an urban station record should be a metadata item for the urban station). But it should be a logging format which makes sense for the new code.

  12. steven mosher Says:

    Hi Nick,

    Check out this guy

    He’s got some GISS questions ( data questions upstream of you )
    and I thought he might use your good graces with Dr. Rudy to
    maybe get some answers.

  13. The Blackboard » Replication Says:

    […] The image at the start of the post presents a replication of GISTemp using either GHCN raw or GISS land temp data coupled with HadISST1/Reynolds ocean data and the effects of interpolation. The latter factor is estimated by taking the difference between standard GISTemp values and those from a version of GISTemp run for only areas covered by HadCRUT, which effectively filters out the net effect of 1200 km interpolation. Its worth noting that the difference between using GISS Step 0 and GHCN raw land data is fairly negligible, despite the fact that GISS Step 0 presumably uses adjusted (rather than raw) USHCN data as well as Antarctic station data. Similarly, its notable that the GISS urban adjustments (via nightlights) don’t appear to have a large impact vis-a-vis the unadjusted data, a point that others have previously made. […]

  14. Mike Edwards Says:


    Isn’t it more than a little curious that an adjustment supposedly made to deal with the effects of UHI actually has no discernable effect on the outcome of the calculations?

    What are the possible explanations for this?

    o UHI does not exist. A little unlikely given the previous studies I’ve seen.

    o Very few of the stations used in these calculations are subject to UHI. Also seems unlikely from my knowledge of some of the stations used, although it is worth acknowledging that 70% of the Earth’s surface is ocean.

    o The adjustment for UHI is a failure. ie UHI effects are not actually removed by the adjustment procedure.

    Are there any studies of the effects of the procedure on stations which might be expected to suffer from UHI?

  15. Nick.Barnes Says:

    @Mike Edwards: There are lots of studies – hundreds, at least – of the urban heat island effect, and quite a lot of effort has gone into identifying, quantifying, modelling, and adjusting for the effect of UHI on global temperature records. For GISTEMP, you can see, for instance, section 5 of Hansen et al 1999, or section 3.1 of the draft Hansen et al 2010. These sections look at example station records, as well as the net effect.

    If you are interested in the effect at particular stations, you can go to the GISTEMP station data page and see station records before and after UHI adjustment. If you want better or more detailed analysis, you can easily download ccc-gistemp and fiddle with yourself. For instance, it is easy to change the code which discriminates between urban and rural stations, or to add code to log the adjustments made. We want to write better visualisations ourselves, but haven’t done so yet.

    “Isn’t it more than a little curious”: No, I don’t think so. I think it is exactly “a little curious”: it is a surprising result at first glance, but when one analyses it in more detail the surprise diminishes. Very little of the world’s surface is urban, and although quite a few of the weather stations qualify as urban, it turns out that the urban heat island effect at those stations, while measurable, is not enormous.

  16. Mike Edwards Says:

    @Nick Barnes

    While I can accept that much of the world’s surface isn’t urban (it’s mostly ocean!), I am puzzled by your statement that “although quite a few of the weather stations qualify as urban…the UHI effect at those stations is not enormous”

    From the studies I’ve seen of UHI effects, I would expect the UHI to be substantial enough to show up in the adjustments – if that isn’t the case, then I doubt that the adjustments are doing thier job, given the studies I’ve seen on the magnitude of the UHI effect.

  17. Nick.Barnes Says:

    @Mike Edwards: Do you understand how the UHI adjustment works in GISTEMP? Do you have any suggestions for improving it?

  18. Zeke Hausfather Says:

    Mike Edwards,

    In general, SST tends to dominate any global reconstruction. A plot of land-only unadjusted and UHI-adjusted GISTemp data would show a more discernible difference (but still not huge).

  19. Nick.Barnes Says:

    Zeke: the graphs above are land-only.

  20. Zeke Hausfather Says:


    Ahh, thats what I get for reading too quickly 😛

  21. weltklima - Seite 170 - Aktienboard Says:

    […] […]

Leave a Reply