Now you can request additional data and/or customized columns!
Try It Now! Certified
Files | Size | Format | Created | Updated | License | Source |
---|---|---|---|---|---|---|
7 | 498kB | csv zip | 5 years ago | 4 years ago | Open Data Commons Public Domain Dedication and License v1.0 | Trends in Atmospheric Carbon Dioxide, Mauna Loa, Hawaii Trends in Atmospheric Carbon Dioxide, Global |
Download files in this dataset
File | Description | Size | Last changed | Download |
---|---|---|---|---|
co2-mm-mlo | 32kB | csv (32kB) , json (94kB) | ||
co2-annmean-mlo | 1kB | csv (1kB) , json (3kB) | ||
co2-gr-mlo | 1kB | csv (1kB) , json (4kB) | ||
co2-mm-gl | 16kB | csv (16kB) , json (38kB) | ||
co2-annmean-gl | 935B | csv (935B) , json (2kB) | ||
co2-gr-gl | 1kB | csv (1kB) , json (4kB) | ||
co2-ppm_zip | Compressed versions of dataset. Includes normalized CSV and JSON data with original data and datapackage.json. | 55kB | zip (55kB) |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Date | 1 | date (%Y-%m-%d) | YYYY-MM-DD |
Decimal Date | 2 | number | |
Average | 3 | number | The monthly mean CO2 mole fraction determined from daily averages. If there are missing days concentrated either early or late in the month, the monthly mean is corrected to the middle of the month using the average seasonal cycle. Missing months are denoted by -99.99. |
Interpolated | 4 | number | Values from the average column and interpolated values where data are missing. Interpolated values are computed in two steps. First, we compute for each month the average seasonal cycle in a 7-year window around each monthly value. In this way the seasonal cycle is allowed to change slowly over time. We then determine the trend value for each month by removing the seasonal cycle; this result is shown in the trend column. Trend values are linearly interpolated for missing months. The interpolated monthly mean is then the sum of the average seasonal cycle value and the trend value for the missing month. |
Trend | 5 | number | Seasonally corrected. |
Number of Days | 6 | number | -1 denotes no data for number of daily averages in the month. |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Year | 1 | date (%Y-%m-%d) | |
Mean | 2 | number | |
Uncertainty | 3 | number | The estimated uncertainty in the annual mean is the standard deviation of the differences of annual mean values determined independently by NOAA/ESRL and the Scripps Institution of Oceanography. |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Year | 1 | date (%Y-%m-%d) | |
Annual Increase | 2 | number | Annual CO2 mole fraction increase (ppm) from Jan 1 through Dec 31. |
Uncertainty | 3 | number | Estimated from the standard deviation of the differences between monthly mean values determined independently by the Scripps Institution of Oceanography and by NOAA/ESRL. |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Date | 1 | date (%Y-%m-%d) | YYYY-MM-DD |
Decimal Date | 2 | number | |
Average | 3 | number | |
Trend | 4 | number |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Year | 1 | date (%Y-%m-%d) | |
Mean | 2 | number | |
Uncertainty | 3 | number | The uncertainty in the global annual mean is estimated using a monte carlo technique that computes 100 global annual averages, each time using a slightly different set of measurement records from the NOAA ESRL cooperative air sampling network. The reported uncertainty is the mean of the standard deviations for each annual average using this technique. Please see Conway et al., 1994, JGR, vol. 99, no. D11. for a complete discussion. |
Signup to Premium Service for additional or customised data - Get Started
This is a preview version. There might be more data in the original version.
Field Name | Order | Type (Format) | Description |
---|---|---|---|
Year | 1 | date (%Y-%m-%d) | |
Annual Increase | 2 | number | Annual CO2 mole fraction increase (ppm) from Jan 1 through Dec 31. |
Uncertainty | 3 | number | The uncertainty in the global annual mean growth rate is estimated using a monte carlo technique that computes 100 time series of global annual growth rates, each time using measurement records from a different sampling of sites from the NOAA ESRL cooperative air sampling network. Each year has a different uncertainty. Please see Conway et al., 1994, JGR, vol. 99, no. D11. for a complete discussion. The last one or two years listed could have preliminary uncertainties set equal to the average uncertainty since 1980. Before 1980 the global growth rate has been approximated by taking the average of Mauna Loa and the South Pole, correcting for the offset between (MLO+SPO)/2 and the global Marine Boundary Layer, as described in Ballantyne et al, 2012. |
Use our data-cli tool designed for data wranglers:
data get https://datahub.io/core/co2-ppm
data info core/co2-ppm
tree core/co2-ppm
# Get a list of dataset's resources
curl -L -s https://datahub.io/core/co2-ppm/datapackage.json | grep path
# Get resources
curl -L https://datahub.io/core/co2-ppm/r/0.csv
curl -L https://datahub.io/core/co2-ppm/r/1.csv
curl -L https://datahub.io/core/co2-ppm/r/2.csv
curl -L https://datahub.io/core/co2-ppm/r/3.csv
curl -L https://datahub.io/core/co2-ppm/r/4.csv
curl -L https://datahub.io/core/co2-ppm/r/5.csv
curl -L https://datahub.io/core/co2-ppm/r/6.zip
If you are using R here's how to get the data you want quickly loaded:
install.packages("jsonlite", repos="https://cran.rstudio.com/")
library("jsonlite")
json_file <- 'https://datahub.io/core/co2-ppm/datapackage.json'
json_data <- fromJSON(paste(readLines(json_file), collapse=""))
# get list of all resources:
print(json_data$resources$name)
# print all tabular data(if exists any)
for(i in 1:length(json_data$resources$datahub$type)){
if(json_data$resources$datahub$type[i]=='derived/csv'){
path_to_file = json_data$resources$path[i]
data <- read.csv(url(path_to_file))
print(data)
}
}
Note: You might need to run the script with root permissions if you are running on Linux machine
Install the Frictionless Data data package library and the pandas itself:
pip install datapackage
pip install pandas
Now you can use the datapackage in the Pandas:
import datapackage
import pandas as pd
data_url = 'https://datahub.io/core/co2-ppm/datapackage.json'
# to load Data Package into storage
package = datapackage.Package(data_url)
# to load only tabular data
resources = package.resources
for resource in resources:
if resource.tabular:
data = pd.read_csv(resource.descriptor['path'])
print (data)
For Python, first install the `datapackage` library (all the datasets on DataHub are Data Packages):
pip install datapackage
To get Data Package into your Python environment, run following code:
from datapackage import Package
package = Package('https://datahub.io/core/co2-ppm/datapackage.json')
# print list of all resources:
print(package.resource_names)
# print processed tabular data (if exists any)
for resource in package.resources:
if resource.descriptor['datahub']['type'] == 'derived/csv':
print(resource.read())
If you are using JavaScript, please, follow instructions below:
Install data.js
module using npm
:
$ npm install data.js
Once the package is installed, use the following code snippet:
const {Dataset} = require('data.js')
const path = 'https://datahub.io/core/co2-ppm/datapackage.json'
// We're using self-invoking function here as we want to use async-await syntax:
;(async () => {
const dataset = await Dataset.load(path)
// get list of all resources:
for (const id in dataset.resources) {
console.log(dataset.resources[id]._descriptor.name)
}
// get all tabular data(if exists any)
for (const id in dataset.resources) {
if (dataset.resources[id]._descriptor.format === "csv") {
const file = dataset.resources[id]
// Get a raw stream
const stream = await file.stream()
// entire file as a buffer (be careful with large files!)
const buffer = await file.buffer
// print data
stream.pipe(process.stdout)
}
}
})()
CO2 PPM - Trends in Atmospheric Carbon Dioxide. Data are sourced from the US Government’s Earth System Research Laboratory, Global Monitoring Division. Two main series are provided: the Mauna Loa series (which has the longest continuous series since 1958) and a Global Average series (a global average over marine surface sites).
Data are reported as a dry air mole fraction defined as the number of molecules of carbon dioxide divided by the number of all molecules in air, including CO2 itself, after water vapor has been removed. The mole fraction is expressed as parts per million (ppm). Example: 0.000400 is expressed as 400 ppm.*
Run the following script from this directory to download and process the data:
make data
The raw data are output to ./tmp
. The processed data are output to ./data
.
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/
The terms of use of the source dataset list three specific restrictions on public use of these data:
The information on government servers are in the public domain, unless specifically annotated otherwise, and may be used freely by the public so long as you do not 1) claim it is your own (e.g. by claiming copyright for NOAA information – see next paragraph), 2) use it in a manner that implies an endorsement or affiliation with NOAA, or 3) modify it in content and then present it as official government material.*
Notifications of data updates and schema changes
Warranty / guaranteed updates
Workflow integration (e.g. Python packages, NPM packages)
Customized data (e.g. you need different or additional data)
Or suggest your own feature from the link below