Maintainer: Bangyou Zheng <bangyou.zheng@csiro.au>
Title: Analysis the Weather Data
Type: Package
Description: Functions are collected to analyse weather data for agriculture purposes including to read weather records in multiple formats, calculate extreme climate index.
License: MIT + file LICENSE
URL: https://weaana.bangyou.me/, https://github.com/byzheng/weaana
BugReports: https://github.com/byzheng/weaana/issues
Encoding: UTF-8
Version: 0.1.1
Date: 2021-09-06
LazyData: true
Depends: R (≥ 3.5.0)
Imports: methods, stats, settings, reshape2, lubridate, magrittr, rlang, dplyr, tibble
RoxygenNote: 7.1.2
Suggests: testthat
NeedsCompilation: no
Packaged: 2021-09-27 00:13:15 UTC; zhe00a
Author: Bangyou Zheng [aut, cre]
Repository: CRAN
Date/Publication: 2021-09-27 10:00:02 UTC

Define the class for multiple sites

Description

Define the class for multiple sites

Slots

num

total number of weather station

records

A pointer vector to weather records of each site

result

A pointer for all results name and type.


Define the class of WeaAna

Description

Define the class of WeaAna

Slots

name

Name of weather station

number

Station number of weather station

latitude

Latitude of weather station

longitude

Latitude of weather station

tav

Annual average ambient temperature

amp

Annual amplitude in mean monthly temperature

marker

The extra marker for this site

year

A vector of year of weather station

day

A vector of day of weather station

radn

A vector of radiation of weather station

maxt

A vector of maximum temperature of weather station

mint

A vector of minimum temperature of weather station

evap

A vector of evaporation of weather station

rain

A vector of rainfall of weather station

vp

A vector of pressure atmosphere of weather station

code

The 6 digit code indicates the source of the 6 data columns

extra

A list of variables need to store

res

All statistics results store in this slot

figures

A list to store all plotted figures.

file.path

The file path for this site.

data.format

The data format for this site.

load.later

Whether are records loaded laterly.


Getter to access the weather data at a specific position.

Description

Getter to access the weather data at a specific position.

Usage

## S4 method for signature 'WeaAna'
x[i, j, drop]

Arguments

x

A WeaAna object.

i

the specific position which will access.

j

None use parameter.

drop

None use parameter.

Value

A WeaAnaSite object at the position i.

Examples

library(weaana)
data( "WeatherRecordsDemo" ) 
records[1]
records[1:2]
records[2:2]


Change weather records

Description

Change weather records

Change weather records

Usage

changeWeatherRecords(object, ...)

## S4 method for signature 'WeaAna'
changeWeatherRecords(object, ...)

Arguments

object

A WeaAna object.

...

New weather records

Value

A new WeaAna object with updated records


Convert a data frame to weaana class

Description

Convert a data frame to weaana class

Usage

convert2Records(infor, records)

Arguments

infor

A list or data frame of site information

records

A data frame will convert to records

Value

A new WeaAna object


create WeaAna class

Description

create WeaAna class

Usage

createWeaAna(mets)

Arguments

mets

A list contained information of weather records.

Value

A new WeaAna class


The time elapsed in hours between the specified sun angle from 90 degree in am and pm. +ve above the horizon, -ve below the horizon.

Description

The time elapsed in hours between the specified sun angle from 90 degree in am and pm. +ve above the horizon, -ve below the horizon.

Usage

dayLength(doy, lat, angle = -6)

Arguments

doy

day of year number

lat

latitude of site (deg)

angle

angle to measure time between, such as twilight (deg). angular distance between 90 deg and end of twilight - altitude of sun. +ve up, -ve down.

Value

day length in hours


Calculate the diurnal variation in air temperature with Parton and Logan, 1981

Description

Calculate the diurnal variation in air temperature. Parton WJ, Logan JA (1981) A model for diurnal variation in soil and air temperature. Agricultural Meteorology, 23, 205?216. Codes copied from APSIM Utilities.cpp

Usage

diurnalT(maxt, mint, doy, hour, latitude, A = 1.5, B = 4, C = 1)

Arguments

maxt

maximum daily temperature

mint

minimum daily temperature

doy

day of year

hour

hour from 1 to 24

latitude

latitude in radials

A

is the time lag in temperature after noon

B

is coef that controls temperature decrease at night

C

is the time lag for min temperature after sunrise

Value

A vector with diurnal air temperature

Examples

diurnalT(maxt = 20, mint = 10, doy  = 1, 
   hour = seq(from = 1, to = 23.99, by = 0.1), 
   latitude = -10, A = 1.5, B = 4, C = 1)

Get all weather records by year range

Description

Get all weather records by year range

Get all weather records by year range

Usage

getWeatherRecords(object, ...)

## S4 method for signature 'WeaAna'
getWeatherRecords(object, yrange = NULL, vars = "all", ...)

Arguments

object

A WeaAna object.

...

Other arguments

yrange

Year range.

vars

Variable

Value

A data frame with all weather records

Examples

library(weaana)
data( "WeatherRecordsDemo" ) 
getWeatherRecords( records, yrange = c( 2008, 2009 ) )
getWeatherRecords( records, yrange = c( 2008, 2009 ), length = 10 )


Return a y value from a linear interpolation function

Description

Return a y value from a linear interpolation function

Usage

interpolationFunction(x, y, values, split = "\\s+")

Arguments

x

x

y

y

values

values

split

split

Value

The interpolated values


Read weather records from a file list and/or a folder list

Description

Read weather records from a file list and/or a folder list

Usage

readWeatherRecords(
  dataFiles = NULL,
  dataFolders = NULL,
  dataFormat = "APSIM",
  dataWeather = NULL,
  load.later = FALSE,
  ...
)

Arguments

dataFiles

A character vector to specify the path of weather data files.

dataFolders

A character vector to specify the path of weather data folders.

dataFormat

The format of weather data file.

dataWeather

A data.frame for existing data.

load.later

Whether load weather records now or later. "dataFroamt" should be One of "APSIM" and "RDATA".

...

Other arguments

Value

A WeaAna class which contains all weather data.


Demo weather records

Description

Demo weather records

Usage

records

Format

An object of class WeaAna of length 1.


Define the class for statistics results

Description

Define the class for statistics results

Slots

name

Name of result

type

Type of result


Show basic information of class WeaAna

Description

Show the name, number, latitude, longitude of all weather stations.

Usage

## S4 method for signature 'WeaAna'
show(object)

Arguments

object

WeaAna objects

Examples

library(weaana)
data( "WeatherRecordsDemo" ) 
show( records )
records

Get site information

Description

Get site information

Get site information

Get site information

Usage

siteInfor(object, ...)

## S4 method for signature 'WeaAna'
siteInfor(object, load.now = FALSE)

## S4 method for signature 'WeaAnaSite'
siteInfor(object, load.now = FALSE)

Arguments

object

A WeaAnaSite object.

...

Not used

load.now

Whether load site information

Value

Site information in the WeaAna object

Site information in the WeaAnaSite object

Examples

library(weaana)
data( "WeatherRecordsDemo" ) 
siteInfor( records )
siteInfor( records, load.now = TRUE )

Calculate the sphere distance

Description

Calculate the sphere distance

Usage

sphericalDistance(lat1, lon1, lat2, lon2)

Arguments

lat1

Latitude

lon1

Longitude

lat2

Latitude

lon2

Longitude

Value

Distance in km


Calculate thermal time using cardinal temperatures

Description

Calculate thermal time using cardinal temperatures

Usage

thermalTime(weather, x_temp, y_temp, method = NULL)

Arguments

weather

WeaAna object

x_temp

The cardinal temperatures

y_temp

The effective thermal time

method

The method to calculate thermal time. The default method is ( maxt + mint ) / 2 - base. The three hour temperature methods will be used if method = '3hr'

Value

A data.frame with three columns: year, day and thermalTime.

Examples

met_file <- system.file("extdata/WeatherRecordsDemo1.met", package = "weaana")
records <- readWeatherRecords(met_file)
x_temp <- c(0, 26, 34)
y_temp <- c(0, 26, 0)
res <- thermalTime(records, x_temp, y_temp)
head(res)
res <- thermalTime(records, x_temp, y_temp, method = "3hr")
head(res)

Calculate thermal time using cardinal temperatures

Description

Calculate thermal time using cardinal temperatures

Usage

thermalTimeDaily(mint, maxt, x_temp, y_temp, method = NULL)

Arguments

mint

The minimum temperature

maxt

The maximum temperature

x_temp

The cardinal temperatures

y_temp

The effective thermal time

method

The method to calculate thermal time. The default method is ( maxt + mint ) / 2 - base. The three hour temperature methods will be usesd if method = '3hr'

Value

The thermal time.

Examples

mint <- c(0, 10)
maxt <- c(30, 40)
x_temp <- c(0, 20, 35)
y_temp <- c(0, 20, 0)
thermalTimeDaily(mint, maxt, x_temp, y_temp)
thermalTimeDaily(mint, maxt, x_temp, y_temp, method = '3hr')

Calculate thermal time using the hourly temperature (non daily temperature)

Description

Calculate thermal time using the hourly temperature (non daily temperature)

Usage

thermalTimeHourly(timestamp, temperature, x_temp, y_temp)

Arguments

timestamp

The timestamp of weather records

temperature

The temperature

x_temp

The cardinal temperatures

y_temp

The effective thermal time

Value

A data frame with daily thermal time

Examples

met_file <- system.file("extdata/WeatherHourly.csv", package = "weaana")
hourly <- read.csv(met_file, as.is = TRUE) 

hourly$timestamp <- as.POSIXct(hourly$timestamp, format = "%Y-%m-%dT%H:%M:%SZ")
x_temp <- c(0, 20, 35)
y_temp <- c(0, 20, 0)
thermalTimeHourly(hourly$timestamp, hourly$temperature, x_temp, y_temp)

Significantly t-test with auto-correlation for time serial data

Description

Method is presented by Santer et al. 2000

Usage

ttest_ts(y, slope = NULL)

Arguments

y

A vector of time serial data

slope

Whether export slope

Value

p values of t-test


Write weather records into file

Description

Write weather records into file

Write weather records into file

Usage

writeWeatherRecords(object, ...)

## S4 method for signature 'WeaAna'
writeWeatherRecords(object, file, cols = NULL)

Arguments

object

A WeaAna object.

...

Not used

file

Path of output file.

cols

Columns to export. All columns exported if NULL

Value

No return values