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.002C daily global surface temperature anomaly for 2018 August 26 was the lowest since -0.010C for 2014 June 30 and the 0.872C for 2019 March 29 was the highest since 0.909C on 2017 March 29. That is a range of 0.882C in only about seven months. The latest peak was driven primarily by high Arctic temperature anomalies. The Arctic surface temperature anomaly of 6.274C for 2019 March 29 was the highest since 6.350C on 2016 November 21.

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.

Below is a map of the latest GFS forecast daily average surface temperature anomalies around the globe provided by the UM CCI Climate Reanalyzer.

**Methodology**

Below is a description of how I download and process the NOAA CDAS data used in the daily and monthly graphs in this blog.

I downloaded and installed the NASA Panoply 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 about this page or about the blog in general, use the “Comments” page in the menu bar at the top of this page.