The sum of all observations within a circle of a certain radius.
concentration(
sub,
full,
value,
lon_sub = lon,
lat_sub = lat,
lon_full = lon,
lat_full = lat,
radius = 200,
display_progress = TRUE
)
data.frame of locations to calculate concentration risk for (target points). sub
should include at least
columns for longitude and latitude.
data.frame to find the locations within radius r
from locations in sub
(reference locations). full
should include at least columns for longitude, latitude and value of interest to summarize.
column name with value of interest to summarize in full
.
column name in sub
with longitude (lon is default).
column name in sub
with latitude (lat is default).
column name in full
with longitude in full
(lon is default).
column name in full
with latitude in full
(lat is default).
radius (in meters) (default is 200m).
show progress bar (TRUE/FALSE). Defaults to TRUE.
A data.frame equal to data.frame sub
including an extra column concentration
.
A recently European Commission regulation requires insurance companies to determine the maximum value of insured fire
risk policies of all buildings that are partly or fully located within circle of a radius of 200m
(Commission Delegated Regulation (EU), 2015, Article 132). The problem can be stated as: "find the centre coordinates of a circle
with a fixed radius that maximizes the coverage of total fire risk insured". This can be viewed as a particular instance
of the Maximal Covering Location Problem (MCLP) with fixed radius. The computational performance of concentration()
is
investigated to overcome the long times the MCLP algorithm is taking. concentration()
is written in C++, and for 500,000 buildings it
needs about five minutes to determine the value of insured fire risk policies that are partly or fully located within
circle of a radius of 200m.
Commission Delegated Regulation (EU) (2015). Solvency II Delegated Act 2015/35. Official Journal of the European Union, 58:124.
# NOT RUN {
df <- data.frame(location = c("p1", "p2"), lon = c(6.561561, 6.561398), lat = c(53.21369, 53.21326))
concentration(df, Groningen, value = amount, radius = 100)
# }
Run the code above in your browser using DataLab