meteoForecast is a package to access outputs from
Numerical Weather Prediction models both in raster format and as a time
series for a location. The current version works with these
services:
 
This package has been developed in the framework of the European Project PVCROPS.
The development version is available at Codeberg:
## install.packages("remotes")
remotes::install_git("https://codeberg.org/meteoForecast")The stable version is available at CRAN:
install.packages('meteoForecast')library(meteoForecast)grepVar will help you to find the variable you need. If
no day is defined, it will return the variables available in the current
version of the service.
grepVar('cloud', service = 'gfs')
[1] "Cloud_water_entire_atmosphere_single_layer"
[2] "Cloud_mixing_ratio_isobaric"               However, you may be interested in the variables available in previous versions. It that is the case, choose a certain day to get this information:
grepVar('cloud', service = 'meteogalicia', day = as.Date('2016-09-15'))
[1] "cft" "cfm" "cfl" "cfh"You can use the empty string to retrieve the full list of variables provided by the service.
grepVar("", service = 'meteogalicia', complete = TRUE)Each function admits an argument named service to choose
the service. After loading meteoForecast the default
service is Meteogalicia as reported with:
mfService()
[1] "meteogalicia"You can choose a different service (for the running session) using
mfService with the name of the service.
mfService('gfs')
Option service changed to gfs
mfService('meteogalicia')
Option service changed to meteogaliciamfProj4 provides the projection of a service:
mfProj4(‘nam’)
[1] “+proj=lcc +lat_1=25 +lat_0=25 +lon_0=-95 +k_0=1 +x_0=0 +y_0=0 +a=6367470.21484375 +b=6367470.21484375 +units=km +no_defs”
mfExtent provides the extent of a service (using the
class Extent defined by the package
raster):
mfExtent(‘meteogalicia’, resolution = 36)
class : Extent xmin : -49.18259 xmax : 18.789 ymin : 24.03791 ymax : 56.06608
getRaster gets a forecast output inside a bounding
box and provides a multilayer raster data using the
RasterBrick class defined in the package
raster.
wrf <- getRaster(var = 'temp', day = '2014-01-25', run = '00')
library(rasterVis)
levelplot(wrf, layers = 10:21) 
getRasterDays uses getRaster to
download the results cast each day comprised between start
and end using the 00UTC run.
wrfDays <- getRasterDays('cft',
                      start = '2014-01-01',
                      end = '2014-01-05',
                      box = c(-2, 35, 2, 40))
hovmoller(wrfDays, par.settings = BTCTheme,
          interpolate = TRUE, panel = panel.levelplot.raster) 
getPoint, getPointDays, and
getPointRuns get data for a certain location and produce a
time series using the zoo class.
getPoint
## temperature (Kelvin) forecast from meteogalicia
tempK <- getPoint(c(0, 40), vars = 'temp')
## Cell does not coincide exactly with request
attr(tempK, 'lat')
attr(tempK, 'lon')
## Units conversion
tempC <- tempK - 273
xyplot(tempC) 
getPointDays
## Time sequence
radDays <- getPointDays(c(0, 40), start = '2013-01-01',
                        end = '2013-01-15')
xyplot(radDays) 
getPointRuns
## Variability between runs
radRuns <- getPointRuns(c(0, 40), start = '2013-01-01',
                        end = '2013-01-15')
xyplot(radRuns, superpose = TRUE) 
## variability around the average
radAv <- rowMeans(radRuns)
radVar <- sweep(radRuns, 1, radAv)
xyplot(radVar, superpose = TRUE)