Nasa GISS Surface Temperature (GISTEMP) Analysis

core

Files Size Format Created Updated License Source
2 50kB csv ODC-PDDL-1.0 Global Annual Temperature Anomalies (Land), 1880-2014 Global Annual Temperature Anomalies (Land+Ocean), 1880-2014 Hemispheric Temperature Anomalies (Land+Ocean), 1880-2014 Global Annual Temperature Anomalies (Land+Ocean) for three latitude bands, 1900-2014
Nasa GISS Surface Temperature (GISTEMP) Analysis. Four different series are provided: Global Annual Temperature Anomalies (Land) 1880-2014, Global Annual Temperature Anomalies (Land and Ocean) 1880-2014, Hemispheric Temperature Anomalies (Land+ Ocean) 1880-2014 and Annual Temperature anomalies read more
Download

Data Files

global-temp-annual  

Field information

Field Name Order Type (Format) Description
Year 1 date (fmt:%Y-%m-%d) YYYY
Land 2 number Global annual anomalies computed from land data, in degrees C
Land and Ocean 3 number Global annual anomalies computed from land and ocean data, in degrees C
N Hem 4 number Northern hemisphere annual anomalies computed from land and ocean data, in degrees C
S Hem 5 number Southern hemisphere annual anomalies computed from land and ocean data, in degrees C
Band 1 6 number Latitude band (90N-23.6N, 30% of global area) annual anomalies computed from land and ocean data, in degrees C
Band 2 7 number Latitude band (23.6N-23.6S, 40% of global area) annual anomalies computed from land and ocean data, in degrees C
Band 3 8 number Latitude band (23.6S-90S, 30% of global area) annual anomalies computed from land and ocean data, in degrees C

global-temp-5yr  

Field information

Field Name Order Type (Format) Description
Year 1 date (fmt:%Y-%m-%d) YYYY
Land 2 number Global 5-year anomalies mean computed from land data, in degrees C
Land and Ocean 3 number Global 5-year anomalies mean computed from land and ocean data, in degrees C
N Hem 4 number Northern hemisphere 5-year anomalies mean computed from land and ocean data, in degrees C
S Hem 5 number Southern hemisphere 5-year anomalies mean computed from land and ocean data, in degrees C
Band 1 6 number Latitude band (90N-23.6N, 30% of global area) 5-year anomalies mean computed from land and ocean data, in degrees C
Band 2 7 number Latitude band (23.6N-23.6S, 40% of global area) 5-year anomalies mean computed from land and ocean data, in degrees C
Band 3 8 number Latitude band (23.6S-90S, 30% of global area) 5-year anomalies mean computed from land and ocean data, in degrees C

Read me

Nasa GISS Surface Temperature (GISTEMP) Analysis. Four different series are provided: Global Annual Temperature Anomalies (Land) 1880-2014, Global Annual Temperature Anomalies (Land and Ocean) 1880-2014, Hemispheric Temperature Anomalies (Land+ Ocean) 1880-2014 and Annual Temperature anomalies (Land + Ocean) for three latitude bands that cover 30%, 40% and 30% of the global area, respectively, 1900-2014.

Data

Period of Record

1880-2014 (Anomalies are relative to the 1951-80 base period means.)

Description

The NASA GISS Surface Temperature (GISTEMP) analysis provides a measure of the changing global surface temperature with monthly resolution for the period since 1880, when a reasonably global distribution of meteorological stations was established. The input data Ruedy et al. use for the analysis, collected by many national meteorological services around the world, are the adjusted data of the Global Historical Climatology Network (GHCN) Vs. 3 (this represents a change from prior use of unadjusted Vs. 2 data) (Peterson and Vose, 1997 and 1998), United States Historical Climatology Network (USHCN) data, and SCAR (Scientific Committee on Antarctic Research) data from Antarctic stations. Documentation of the basic analysis method is provided by Hansen et al. (1999), with several modifications described by Hansen et al. (2001). The GISS analysis is updated monthly, however CDIAC's presentation of the data here is updated annually.

Key finding

The global mean temperature for 2014 was the warmest on record (see Trends section for further details)

Sources

Data Preparation

Requirements

Python 2 together with modules urllib and csv are required in order to process the data.

Processing

Run the following script from this directory to download and process the data:

make

Resources

The raw data are stored in ./archive/. The processed data can be found in ./data.

License

Data

Data are sourced from US Federal government funded agency and no copyright restrictions are applied. More specifically:

If you wish to use a diagram, image, graph, table, or other materials from the CDIAC website and are concerned with obtaining permission and possible copyright restrictions, there should be no concerns. All of the reports, graphics, data, and other information on the CDIAC website are freely and publicly available without copyright restrictions.*

Additional work

All the additional work made to build this Data Package is made available under the Public Domain Dedication and License v1.0 whose full text can be found at: http://www.opendatacommons.org/licenses/pddl/1.0/

Citations

Ruedy, R., M. Sato, and K. Lo. 2015. NASA GISS Surface Temperature (GISTEMP) Analysis. In Trends: A Compendium of Data on Global Change. Carbon Dioxide Information Analysis Center, Oak Ridge National Laboratory, U.S. Department of Energy, Oak Ridge, Tenn., U.S.A. doi: 10.3334/CDIAC/cli.001 .

Import into your tool

In order to use Data Package in R follow instructions below:

install.packages("devtools")
library(devtools)
install_github("hadley/readr")
install_github("ropenscilabs/jsonvalidate")
install_github("ropenscilabs/datapkg")

#Load client
library(datapkg)

#Get Data Package
datapackage <- datapkg_read("https://pkgstore.datahub.io/core/global-temp-anomalies/latest")

#Package info
print(datapackage)

#Open actual data in RStudio Viewer
View(datapackage$data$"global-temp-annual")
View(datapackage$data$"global-temp-5yr")

Tested with Python 3.5.2

To generate Pandas data frames based on JSON Table Schema descriptors we have to install jsontableschema-pandas plugin. To load resources from a data package as Pandas data frames use datapackage.push_datapackage function. Storage works as a container for Pandas data frames.

In order to work with Data Packages in Pandas you need to install our packages:

$ pip install datapackage
$ pip install jsontableschema-pandas

To get Data Package run following code:

import datapackage

data_url = "https://pkgstore.datahub.io/core/global-temp-anomalies/latest/datapackage.json"

# to load Data Package into storage
storage = datapackage.push_datapackage(data_url, 'pandas')

# to see datasets in this package
storage.buckets

# you can access datasets inside storage, e.g. the first one:
storage[storage.buckets[0]]

In order to work with Data Packages in Python you need to install our packages:

$ pip install datapackage

To get Data Package into your Python environment, run following code:

import datapackage

dp = datapackage.DataPackage('https://pkgstore.datahub.io/core/global-temp-anomalies/latest/datapackage.json')

# see metadata
print(dp.descriptor)

# get list of csv files
csvList = [dp.resources[x].descriptor['name'] for x in range(0,len(dp.resources))]
print(csvList) # ["resource name", ...]

# access csv file by the index starting 0
print(dp.resources[0].data)

To use this Data Package in JavaScript, please, follow instructions below:

Install datapackage using npm:

$ npm install [email protected]

Once the package is installed, use code snippet below


const Datapackage = require('datapackage').Datapackage

async function fetchDataPackageAndData(dataPackageIdentifier) {
  const dp = await new Datapackage(dataPackageIdentifier)
  await Promise.all(dp.resources.map(async (resource) => {
    if (resource.descriptor.format === 'geojson') {
      const baseUrl = resource._basePath.replace('/datapackage.json', '')
      const resourceUrl = `${baseUrl}/${resource._descriptor.path}`
      const response = await fetch(resourceUrl)
      resource.descriptor._values = await response.json()
    } else {
      // we assume resource is tabular for now ...
      const table = await resource.table
      // rows are simple arrays -- we can convert to objects elsewhere as needed
      const rowsAsObjects = false
      resource.descriptor._values = await table.read(rowsAsObjects)
    }
  }))

  // see the data package object
  console.dir(dp)

  // data itself is stored in Resource object, e.g. to access first resource:
  console.log(dp.resources[0]._values)

  return dp
}


fetchDataPackageAndData('https://pkgstore.datahub.io/core/global-temp-anomalies/latest/datapackage.json');

Our JavaScript is written using ES6 features. We are using node.js v7.4.0 and passing --harmony option to enable ES6:

$ node --harmony index.js

In order to work with Data Packages in SQL you need to install our packages:

$ pip install datapackage
$ pip install jsontableschema-sql
$ pip install sqlalchemy

To import Data Package to your SQLite Database, run following code:

import datapackage
from sqlalchemy import create_engine

data_url = 'https://pkgstore.datahub.io/core/global-temp-anomalies/latest/datapackage.json'
engine = create_engine('sqlite:///:memory:')

# to load Data Package into storage
storage = datapackage.push_datapackage(data_url, 'sql', engine=engine)

# to see datasets in this package
storage.buckets

# to execute sql command (assuming data is in "data" folder, name of resource is data and file name is data.csv)
storage._Storage__connection.execute('select * from data__data___data limit 1;').fetchall()

# description of the table columns
storage.describe('data__data___data')