The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: Accessing NOAA Climate Data Online
Version: 1.0.0
Author: Steph Buongiorno [aut, cre]
Maintainer: Steph Buongiorno <steph.buon@proton.me>
Description: Fetch data from the National Oceanic and Atmospheric Administration Climate Data Online (NOAA CDO) https://www.ncdc.noaa.gov/cdo-web/webservices/v2 API including daily, monthly, and yearly climate summaries, radar data, climatological averages, precipitation data, annual summaries, storm events, and agricultural meteorology.
License: GPL-3
Encoding: UTF-8
Imports: httr, jsonlite
RoxygenNote: 7.3.2
NeedsCompilation: no
Packaged: 2025-05-12 22:43:51 UTC; steph
Repository: CRAN
Date/Publication: 2025-05-14 08:50:02 UTC

Retrieve Climate Data from the NOAA API

Description

Queries the NOAA Climate Data Online (CDO) API to retrieve climate data for a given dataset, station or location, and date range. Supports automatic pagination to collect large datasets.

Usage

get_climate_data(
  noaa_token,
  datasetid,
  stationid = NULL,
  locationid = NULL,
  startdate,
  enddate,
  n_results = Inf
)

Arguments

noaa_token

A character string. Your NOAA API token used for authentication. You can request a token at https://www.ncdc.noaa.gov/cdo-web/token.

datasetid

A valid dataset ID (e.g., "GHCND", "GSOM", "GSOY"). Use valid_ids() to view supported datasets.

stationid

Optional. A NOAA station ID (e.g., "GHCND:USW00094728"). Required for most station-based datasets.

locationid

Optional. A NOAA location ID (e.g., "FIPS:37", "CITY:US390029"). Used for location-based datasets.

startdate

Start date (YYYY-MM-DD) for the query range.

enddate

End date (YYYY-MM-DD) for the query range.

n_results

Maximum number of results to retrieve. Defaults to Inf (all available results).

Value

A data frame of climate data observations returned by the NOAA API.

Examples

if (nzchar(Sys.getenv("NOAA_TOKEN"))) {
  # Set your NOAA token
  noaa_token <- Sys.getenv("NOAA_TOKEN")

  # Example request: Daily summaries from Central Park, NY (GHCND:USW00094728)
  data <- get_climate_data(
    noaa_token = noaa_token,
    datasetid = "GHCND",
    stationid = "USW00094728",
    startdate = "2020-01-01",
    enddate = "2020-01-31"
  )
  head(data)
}


Retrieve NOAA Location IDs for a Given Category

Description

Queries the NOAA Climate Data Online (CDO) API to retrieve location identifiers for a specified category (e.g., state, city, county).

Usage

get_locationid(noaa_token, category_id, n_results = Inf)

Arguments

noaa_token

A character string. Your NOAA API token used for authentication. You can request a token at https://www.ncdc.noaa.gov/cdo-web/token.

category_id

A valid location category ID. Options: "ST", "CITY", "COUNTY", "ZIP", "CLIM_REG", "HYDROL_REG", "FIPS".

n_results

Maximum number of results to retrieve. Defaults to Inf (all results).

Value

A data frame of location IDs matching the given category.

Examples

if (nzchar(Sys.getenv("NOAA_TOKEN"))) {
  # Retrieve token from environment variable
  noaa_token <- Sys.getenv("NOAA_TOKEN")

  # Get all U.S. state-level location IDs using category "FIPS"
  locations <- get_locationid(noaa_token = noaa_token, category_id = "FIPS")
  head(locations)
}


Retrieve Station IDs for a Given Dataset and Location

Description

Queries the NOAA Climate Data Online (CDO) API to retrieve station identifiers associated with a specified dataset, location, and date range.

Usage

get_stationid(
  noaa_token,
  datasetid,
  locationid = NULL,
  startdate,
  enddate,
  n_results = Inf
)

Arguments

noaa_token

A character string. Your NOAA API token used for authentication. You can request a token at https://www.ncdc.noaa.gov/cdo-web/token.

datasetid

A valid dataset ID (e.g., "GHCND", "GSOM", etc.). Use valid_ids() to see supported values.

locationid

Optional. A valid location ID (e.g., "FIPS:37", "CITY:US390029"). If NULL, all locations are considered.

startdate

Start date (YYYY-MM-DD) for station data coverage.

enddate

End date (YYYY-MM-DD) for station data coverage.

n_results

Maximum number of station results to retrieve. Defaults to Inf to fetch all available.

Value

A data frame containing metadata for the matching NOAA stations.

Examples

if (nzchar(Sys.getenv("NOAA_TOKEN"))) {
  # Retrieve your NOAA API token from environment
  noaa_token <- Sys.getenv("NOAA_TOKEN")

  # Get stations for the GHCND dataset in Texas between 2020-01-01 and 2020-12-31
  stations <- get_stationid(
    noaa_token = noaa_token,
    datasetid = "GHCND",
    locationid = "FIPS:48",
    startdate = "2020-01-01",
    enddate = "2020-12-31"
  )
  head(stations)
}

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.