Daily global surface temperature anomaly estimates from Climate Forecast System Reanalysis (CFSR) output based on the Global Forecast System (GFS) initialization measurements four times each day are graphed below. Daily estimates since the beginning of 2017 have been derived directly from output provided by the U.S. National Centers for Environmental Prediction (NCEP) and prior to that time were provided by the University of Maine (UM) Climate Change Institute (CCI). The graphs below should be updated on most days by 0300 UTC through the previous UTC calendar day. The first graph displays the daily CFSR estimated global surface temperature anomalies over the last 14 months along with the 365-day running average.

The next graph shows daily zonal temperature anomalies, where “NH” is Northern Hemisphere (0-90N) and “SH” is Southern Hemisphere (0-90S). The Tropics zone (30N-30S) covers about 50 percent of the global surface area centered on the equator, whereas the NH and SH each cover 50 percent of the global surface and average together to equal the Global average. The Tropics zone overlaps half of the NH and half of the SH but covers the same amount of surface area as each hemisphere. The Arctic (60N-90N) and Antarctic (60S-90S) zones each cover only about 7 percent of the global surface area but sometimes excerpt a much greater influence on the global average because of very large temperature anomalies compared to other zones.

The graph below provides a closer look at the NH and SH temperature anomaly trends this year so far and includes Global and Tropics as well for comparison.

For a sneak preview of how the global and hemispheric temperature anomalies are likely to trend over the next week, see the link below:

GFS Forecast Global and Hemispheric Temperature Anomalies

The daily global temperature anomaly estimates from CFSR output provided by UM CCI since 2014 are graphed below for a longer perspective, along with centered 91-day and 365-day running means to show seasonal and annual smoothed trends.

Note that the CFSR estimated 0.139C daily global surface temperature anomaly for 2018 June 14 was the lowest since 0.09C for 2015 July 11.

Hemispheric and tropics zone surface temperature anomalies since 2013 are shown below, along with the global mean.

Arctic and Antarctic zonal temperature anomalies since 2013 are shown in the graph below, along with the NH, SH, Tropics, and Global temperature anomalies. Notice the seasonal patterns in the polar regions which also influence the global and hemispheric patterns.

For longer time periods, see the Monthly Trends page, accessible in the menu bar at the top of this page.

**Methodology**

I downloaded and installed the NASA Panopoly program.

https://www.giss.nasa.gov/tools/panoply/

Then I use these NOAA CFSV2 download pages:

Last 7 days

http://nomads.ncep.noaa.gov/pub/data/nccf/com/cfs/prod/

Daily archive

https://nomads.ncdc.noaa.gov/modeldata/cfsv2_analysis_pgbh/

Monthly archive

https://nomads.ncdc.noaa.gov/modeldata/cfsv2_analysis_monthlymeans_pgb/

For each day I download the following files which contain the surface temperature at 2 meters above ground level:

cdas1.t00z.pgrbh00.grib2

cdas1.t06z.pgrbh00.grib2

cdas1.t12z.pgrbh00.grib2

cdas1.t18z.pgrbh00.grib2

I open each file using Panopoly, one file at a time. When a file is opened, I scroll through the listed parameters, select the “Temperature_height_above_ground” parameter, right-click on it, select “Export CSV…” from the pop-up list, then save a CSV file. I scroll back to the top of the parameter list and select the file name, right-click on it, and select “Remove Dataset”. Then I follow this process for the remaining 3 files for that day.

I use an Excel workbook for each day that has worksheets for each of the four run times each day (00Z, 06Z, 12Z, 18Z) where I then load the four CSV files for the day by run time. In a 5th worksheet, I have formulas that calculate temperature averages of the 720 longitude grid cells for each of the 361 latitude grid rows with a separate column for each of the four run times. Then in a 5th column I have formulas to calculate daily temperature averages across the four run times for each of the 361 latitude zones. I have a 6th column with pre-calculated area weights for each of the 361 latitude zones based on a spherical earth and summing to 100 for the entire globe. I have a 7th column with formulas that use the zone weights to calculate weighted temperature portions (grid zone area fraction times grid zone temperature average) for each of the 361 latitude zones. Finally, I have formulas that calculate weighted temperature averages from the appropriate latitude zones for the globe and each of seven major latitude zones. These results are copied and pasted into another workbook where I have the global and 7 major zonal temperature averages for each day and formulas that calculate the associated temperature anomalies used for the graphs presented on this page. With this approach, once the CSV data are loaded into the daily workbook, the final results for the day are calculated automatically.

For each month I download the following file which contains the surface temperature at 2 meters above ground level (where YYYY is the year and MM is the numerical month):

pgbh00.gdas.YYYYMM.grib2

I open the file using Panopoly and then scroll through the listed parameters, select the “Temperature_height_above_ground” parameter, right-click on it, select “Export CSV…” from the pop-up list, and then I save a CSV file. I scroll back to the top of the parameter list and select the file name, right-click on it, and select “Remove Dataset”.

I use an Excel workbook for each month that includes a worksheet where I load the CSV data and a 2nd worksheet with formulas for the calculations. In the 2nd worksheet I have formulas that calculate temperature averages of the 720 longitude grid cells for each of the 361 latitude grid rows, with a column for the results. I have a 2nd column with pre-calculated area weights for each of the 361 latitude zones based on a spherical earth and summing to 100 for the entire globe. I have a 3rd column with formulas using the zone weights to calculate weighted temperature portions (grid zone area fraction times grid zone temperature average) for each of the 361 latitude zones. Finally, I have formulas that calculate weighted temperature averages from the appropriate latitude zones for the globe and each of seven major latitude zones. These results are copied and pasted into another workbook where I have the global and 7 major zonal temperature averages for each month and formulas that calculate the associated temperature anomalies used for the graphs presented on the Monthly Trends page. With this approach, once the CSV data are loaded, the final results for the month are calculated automatically.

This approach takes about 5 minutes per day to download the input files and process the daily output. As time permits, daily temperature anomaly estimates prior to 2018 will be replaced with estimates derived by this method.

To comment on this page or about the blog in general, use the “Comments” page in the menu bar at the top of this page.