Skip to contents

Read and extract data from a list of wrf output files and a table of lat/lon points based on the distance of the points and the center of model grid points, points outside the domain (and points on domain boundary) are not extracteds.

Usage

extract_serie(
  filelist,
  point,
  variable = "o3",
  field = "4d",
  prefix = "serie",
  new = "check",
  return.nearest = FALSE,
  fast = FALSE,
  use_ij = FALSE,
  latitude = "XLAT",
  longitude = "XLONG",
  use_TFLAG = FALSE,
  use_datesec = FALSE,
  id = "id",
  verbose = TRUE
)

Arguments

filelist

list of files to be read

point

data.frame with lat/lon

variable

variable name

field

'4d' (defoult), '3d', '2d' or '2dz' see notes

prefix

to output file, defolt is serie

new

TRUE, FALSE of 'check' see notes

return.nearest

return the data.frame of nearest points instead of extract the serie

fast

faster calculation of grid distances but less precise

use_ij

logical, use i and j from input instead of calculate

latitude

name of latitude coordinade variable in the netcdf

longitude

name of longitude coordinade variable in the netcdf

use_TFLAG

use the variable TFLAG (CMAQ / smoke) instead of Times (WRF)

use_datesec

use the variable date and datesec (WACCM / CAM-Chem) instead of Times (WRF)

id

name of the column with station names, if point is a SpatVector (points) from terra package

verbose

display additional information

Note

The field argument '4d' or '2dz' is used to read a 4d/3d variable droping the 3rd dimention (z).

new = TRUE create a new file, new = FALSE append the data in a old file, and new = 'check' check if the file exist and append if the file exist and create if the file doesnt exist

FOR CAMx time-series, use the options: use_TFLAG=T, latitude='latitude', longitude='longitude', new=T

FOR WACCM time-series, use the options: use_datesec=T, latitude='lat', longitude='lon', new=T

The site-list of two global data-sets (METAR and AERONET) are provided on examples and site-list for stations on Brazil (INMET and Air Quality stations).

Examples

cat('Example 1: METAR site list\n')
#> Example 1: METAR site list
sites <- readRDS(paste0(system.file("extdata",package="eva3dm"),"/sites_METAR.Rds"))

cat('Example 2: AERONET site list\n')
#> Example 2: AERONET site list
sites <- readRDS(paste0(system.file("extdata",package="eva3dm"),"/sites_AERONET.Rds"))

cat('Example 3: list of INMET stations on Brazil\n')
#> Example 3: list of INMET stations on Brazil
sites <- readRDS(paste0(system.file("extdata",package="eva3dm"),"/sites_INMET.Rds"))

cat('Example 4: list of Air Quality stations on Brazil\n')
#> Example 4: list of Air Quality stations on Brazil
sites <- readRDS(paste0(system.file("extdata",package="eva3dm"),"/sites_AQ_BR.Rds"))

files    <- dir(path = system.file("extdata",package="eva3dm"),
                pattern = 'wrf.day',
                full.names = TRUE)
dir.create(file.path(tempdir(),"SERIE"))
folder <- file.path(tempdir(),"SERIE")

# extract data for 3 locations
extract_serie(filelist = files, point = sites[1:3,],prefix = paste0(folder,'/serie'))
#> extracting series of o3 field 4d for 3 points
#> dim of lat/lon: 125 125 
#> used dim of lat/lon: 125 125 
#> calculating distances...
#>              lat       lon    name agency            class         city state
#> BA0001 -12.68638 -38.33360 Gravatá  INEMA Não classificada     Camaçari    BA
#> BA0002 -12.63026 -38.35853   Cobre  INEMA Não classificada Dias D'Ávila    BA
#> BA0003 -12.80115 -38.22397  Areias  INEMA Não classificada     Camaçari    BA
#>        start   i  j model_lat model_lon
#> BA0001  2000 110 67 -12.70324 -38.39191
#> BA0002  2000 110 67 -12.70324 -38.39191
#> BA0003  2000 110 67 -12.70324 -38.39191
#> reading o3 : /home/runner/work/_temp/Library/eva3dm/extdata/wrf.day1.o3.nc file 1 of 3 
#> reading o3 : /home/runner/work/_temp/Library/eva3dm/extdata/wrf.day2.o3.nc file 2 of 3 
#> reading o3 : /home/runner/work/_temp/Library/eva3dm/extdata/wrf.day3.o3.nc file 3 of 3 
#> output: /tmp/Rtmp3zXm8M/SERIE/serie.o3.Rds