integrate_to_ppi {bioRad}R Documentation

Calculate a plan position indicator (ppi) of vertically integrated density adjusted for range effects

Description

Estimates a spatial image of vertically integrated density (vid) based on all elevation scans of the radar, while accounting for the changing overlap between the radar beams as a function of range. The resulting ppi is a vertical integration over the layer of biological scatterers based on all available elevation scans, corrected for range effects due to partial beam overlap with the layer of biological echoes (overshooting) at larger distances from the radar. The methodology is described in detail in Kranstauber et al. (2020).

Usage

integrate_to_ppi(
  pvol,
  vp,
  nx = 100,
  ny = 100,
  xlim,
  ylim,
  zlim = c(0, 4000),
  res,
  quantity = "eta",
  param = "DBZH",
  raster = NA,
  lat,
  lon,
  antenna,
  beam_angle = 1,
  crs,
  param_ppi = c("VIR", "VID", "R", "overlap", "eta_sum", "eta_sum_expected"),
  k = 4/3,
  re = 6378,
  rp = 6357
)

Arguments

pvol

A pvol object.

vp

A vp object

nx

number of raster pixels in the x (longitude) dimension

ny

number of raster pixels in the y (latitude) dimension

xlim

x (longitude) range

ylim

y (latitude) range

zlim

Numeric vector of length two. Altitude range, in m

res

numeric vector of length 1 or 2 to set the resolution of the raster (see res). If this argument is used, arguments nx and ny are ignored. Unit is identical to xlim and ylim.

quantity

Character. Profile quantity on which to base range corrections, either eta or dens.

param

reflectivity Character. Scan parameter on which to base range corrections. Typically the same parameter from which animal densities are estimated in vp. Either DBZH, DBZV, DBZ, TH, or TV.

raster

(optional) RasterLayer with a CRS. When specified this raster topology is used for the output, and nx, ny, res arguments are ignored.

lat

Latitude of the radar, in degrees. If missing taken from pvol.

lon

Latitude of the radar, in degrees. If missing taken from pvol.

antenna

Numeric. Radar antenna height, in m. Default to antenna height in vp.

beam_angle

Numeric. Beam opening angle in degrees, typically the angle between the half-power (-3 dB) points of the main lobe.

crs

character or object of class CRS. PROJ.4 type description of a Coordinate Reference System (map projection). When 'NA' (default), an azimuthal equidistant projection with origin at the radar location is used. To use a WSG84 (lat,lon) projection, use crs="+proj=longlat +datum=WGS84"

param_ppi

Character (vector). One or multiple of VIR, VID, R, overlap, eta_sum or eta_sum_expected.

k

Numeric. Standard refraction coefficient.

re

Numeric. Earth equatorial radius, in km.

rp

Numeric. Earth polar radius, in km.

Details

The function requires:

The pixel locations on the ground are easily translated into a corresponding azimuth and range of the various scans (see beam_range()).

For each scan within the polar volume, the function calculates:

If one of lat or lon is missing, the extent of the ppi is taken equal to the extent of the data in the first scan of the polar volume.

To arrive at the final PPI image, the function calculates

Scans at 90 degree beam elevation (e.g. birdbath scans) are ignored.

#' @seealso

Value

A ppi object.

References

Examples


# Locate and read the polar volume example file
pvolfile <- system.file("extdata", "volume.h5", package = "bioRad")

# load polar volume
pvol <- read_pvolfile(pvolfile)

# Read the corresponding vertical profile example
data(example_vp)

# Calculate the range-corrected ppi on a 50x50 pixel raster
ppi <- integrate_to_ppi(pvol, example_vp, nx = 50, ny = 50)

# Plot the vertically integrated reflectivity (VIR) using a
# 0-2000 cm^2/km^2 color scale
plot(ppi, zlim = c(0, 2000))

# Calculate the range-corrected ppi on finer 2000m x 2000m pixel raster
ppi <- integrate_to_ppi(pvol, example_vp, res = 2000)

# Plot the vertically integrated density (VID) using a
# 0-200 birds/km^2 color scale
plot(ppi, param = "VID", zlim = c(0, 200))

# Download a basemap and map the ppi
map(ppi)

# The ppi can also be projected on a user-defined raster, as follows:

# First define the raster
template_raster <- raster::raster(
  raster::extent(12, 13, 56, 57),
  crs = sp::CRS("+proj=longlat")
)

# Project the ppi on the defined raster
ppi <- integrate_to_ppi(pvol, example_vp, raster = template_raster)

# Extract the raster data from the ppi object
raster::brick(ppi$data)

# Calculate the range-corrected ppi on an even finer 500m x 500m pixel raster,
# cropping the area up to 50000 meter from the radar
ppi <- integrate_to_ppi(
  pvol, example_vp, res = 500,
  xlim = c(-50000, 50000), ylim = c(-50000, 50000)
)
plot(ppi, param = "VID", zlim = c(0, 200))


[Package bioRad version 0.7.3 Index]