Learn R Programming

Enhancing the National Climate Database with clifro

New Zealand’s National Climate Database, CliFlo holds data from about 6500 climate stations, with observations dating back to 1850. CliFlo returns raw data at ten minute, hourly, and daily frequencies. CliFlo also returns statistical summaries, inclusive of about eighty different types of monthly and annual statistics and six types of thirty−year normals.

The clifro package is designed to minimise the hassle in downloading data from CliFlo. It does this by providing functions for the user to log in, easily choose the appropriate datatypes and stations, and then query the database. Once the data have been downloaded, they are stored as specific objects in R with the primary aim to ensure data visualisation and exploration is done with minimal effort and maximum efficiency.

This package extends the functionality of CliFlo by returning stations resulting from simultaneous searches, the ability to visualise where these climate stations are by exporting to KML files, and elegant plotting of the climate data. The vignettes and help files are written with the intention that even inexperienced R users can use clifro easily. Exporting the climate data from R is fairly easy and for more experienced useRs, automated updating of spreadsheets or databases can be made much easier.

Free CliFlo Subscription

A current CliFlo subscription is recommended for clifro, otherwise data from only one station is available. The subscription is free and lasts for 2 years or 2,000,000 rows without renewal, which enables access to around 6,500 climate stations around New Zealand and the Pacific.

Note this package requires internet access for connecting to the National Climate Database web portal.

Installation in R

# Install the latest CRAN release
install.packages("clifro")

# Or the latest development version
if(!require(devtools))
  install.packages("devtools")
devtools::install_github("ropensci/clifro")

# Then load the package
library(clifro)

Getting Started

The following small example shows some of the core functionality in clifro.

Where are the climate stations?

We can search for climate stations anywhere in New Zealand and return the station information in the form of a KML file. For example, we can return all the climate stations (current and historic) in the greater Auckland region.

all.auckland.st = cf_find_station("Auckland", search = "region", status = "all")
cf_save_kml(all.auckland.st, "all_auckland_stations")

Note the open stations have green markers and the closed stations have red markers.

Download and visualise public climate data

The only station available for unlimited public access to climate data is the Reefton electronic weather station (EWS). We can download the 2014 wind and rain data and easily visualise the results very easily.

public.cfuser = cf_user()

# Choose the datatypes
daily.wind.rain.dt = cf_datatype(c(2, 3), c(1, 1), list(4, 1), c(1, NA))

# Choose the Reefton EWS station
reefton.st = cf_station()

# Send the query to CliFlo and retrieve the data
daily.datalist = cf_query(user = public.cfuser, 
                          datatype = daily.wind.rain.dt, 
                          station = reefton.st,
                          start_date = "2012-01-01 00",
                          end_date = "2013-01-01 00")
#> connecting to CliFlo...
#> reading data...
#> UserName is = public
#> Number of charged rows output = 0
#> Number of free rows output = 732
#> Total number of rows output = 732
#> Copyright NIWA 2020 Subject to NIWA's Terms and Conditions
#> See: http://clifloecd1.niwa.co.nz/pls/niwp/doc/terms.html
#> Comments to: cliflo@niwa.co.nz

# Have a look at what data is now available
daily.datalist
#> List containing clifro data frames:
#>               data      type              start                end rows
#> df 1) Surface Wind  9am only (2012-01-01  9:00) (2012-12-31  9:00)  366
#> df 2)         Rain     Daily (2012-01-01  9:00) (2012-12-31  9:00)  366

# Plot the data using default plotting methods
plot(daily.datalist)     # For the first dataframe  (Surface Wind)

plot(daily.datalist, 2)  # For the second dataframe (Rain)

For more details and reproducible examples, see the technical report for how to use clifro, including choosing datatypes, stations, saving locations as KML files and easy, elegant plotting for various different climate and weather data.

# View the clifro demo
demo(clifro)

# Read the 'Introduction to clifro' vignette
vignette("clifro")

Contributor Code of Conduct

The clifro package is released with a contributor code of conduct. By participating in this project you agree to abide by its terms.

Citation


To cite package ‘clifro’ in publications use:

Seers B and Shears N (2015). “New Zealand's Climate Data in R - An Introduction to clifro.” The University of Auckland, Auckland, New
Zealand. <URL: https://stattech.wordpress.fos.auckland.ac.nz/2015/03/25/2015-02-new-zealands-climate-data-in-r-an-introduction-to-clifro/>.

A BibTeX entry for LaTeX users is

  @TechReport{,
    title = {New Zealand's Climate Data in R --- An Introduction to clifro},
    author = {Blake Seers and Nick Shears},
    institution = {The University of Auckland},
    address = {Auckland, New Zealand},
    year = {2015},
    url = {https://stattech.wordpress.fos.auckland.ac.nz/2015/03/25/2015-02-new-zealands-climate-data-in-r-an-introduction-to-clifro/},
  }

Copy Link

Version

Install

install.packages('clifro')

Monthly Downloads

364

Version

3.2-5

License

GPL-2

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

May 24th, 2021

Functions in clifro (3.2-5)

cf_find_station

Search for Clifro Stations
cfStation-class

The Clifro Station Object
+,cfStation,cfStation-method

Arithmetic Operators for Clifro Objects
windrose

Plot a windrose
dimnames,dataFrame-method

Dimension Attributes of a Clifro Object
[[,dataFrame-method

Subsetting Methods for Clifro Objects
valid_cfuser

Validation Functions For The cfUser Class
cfDatatype-class

The Clifro Datatype Object
plot,cfScreenObs,missing-method

Plot Screen Observations
plot,cfRain,missing-method

Plot Rain Time series
plot,cfEarthTemp,missing-method

Plot Earth Temperatures
cf_query

Retrieve Data from the National Climate Database
cf_last_query

Retrieve Last Query Result from CliFlo
plot,cfPressure,missing-method

Plot Mean Sea Level Atmospheric Pressure
summary,cfUser-method

Summarise User Information
cfUser-class

The Clifro User Object
plot,cfWind,missing-method

Plot Clifro Wind Objects
plot.cfDataList

Default Clifro Plotting
summary,cfWind-method

Summarise Clifro Wind Data
cf_save_kml

Save Clifro Station Information to a KML File
clifro

From CliFlo to clifro: Enhancing The National Climate Database With R
plot,cfTemp,missing-method

Plot Temperature Range
plot,cfSunshine,missing-method

Plot Sunshine Hours
cf_curl_opts

Store curl options for use within clifro