SkillAgentSearch skills...

Mesowest

Simple R functions for working with the Mesowest / SynopticLabs climate data API

Install / Use

/learn @fickse/Mesowest
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

mesowest: Simple R functions for working with the Mesowest / SynopticLabs climate data API

mesowest provides utilities for interfacing with the mesowest API using R

Installation

library(devtools)
install_github('fickse/mesowest')

Authentication

After you have obtained an API key, request a token...

library(mesowest)

requestToken(apikey = "YoUrApIkEY918202s")

# or interactively choose a text file with the key...
requestToken()

The token is saved to a text file in your root directory (~/)

Getting data

Services are accessed through the function mesowest::mw Parameters can be input as named arguments

mw(service = 'metadata', complete=1, state='UT', county='Garfield')

If this results in awkward nested dataframes, include jsonsimplify = FALSE as an argument.

Data can be queried using named parameters in the api

Timeseries

# request hourly timeseries data
d <- mw(service = 'timeseries', stid ='SFLU1', vars = c('air_temp', 'relative_humidity'), start = '201610250001', end = '201610260001', jsonsimplify= TRUE)

# parsing the nested lists
clim <- data.frame( lapply( d$STATION$OBSERVATIONS, unlist) )

Latest data

d <- mw(service = 'latest', county = 'Garfield', state = 'UT', vars = 'air_temp')

cbind(d$STATION$STID,  d$STATION$OBSERVATIONS)

Precip

# requesting hourly totals
mw(service = 'precipitation', stid='SFLU1', start =  '201610250010', end ='201611250001', pmode='intervals', interval = 'hour', jsonsimplify = TRUE, returnURL =FALSE)

A quick reference for parameters can be accessed with getparams()

# all parameters for all services
getparams()

# parameters for a specific service
getparams('networks')

There is also a shortcut api call to list variables

mwvariables()

Debugging

The mw() function generates an API request which may be inspected by setting returnURL = TRUE.

E.g. this query

mw(service = 'latest', county = 'Garfield', state = 'UT', vars = 'air_temp', returnURL = TRUE)`

returns this:
http://api.mesowest.net/v2/stations/latest?&token=XX_YOURTOKEN_XX&county=Garfield&state=UT&vars=air_temp


Note: This package was created independently from SynopticLabs, MesoWest, or any associates. It is intended to be used for research purposes only.

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated1y ago
Forks3

Languages

R

Security Score

60/100

Audited on Jun 27, 2024

No findings