deltamm(x, p = 2, max.delta = Inf, const = Inf, verbose = FALSE, ...)centmatch(x, criteria = 1, const = 14, distfun = "rdist", areafac = 1,
verbose = FALSE, ...)
## S3 method for class 'matched':
plot(x, ..., type = c("both", "obs", "model"))
## S3 method for class 'matched':
print(x, ...)
## S3 method for class 'matched':
summary(object, ...)
deltamm
and centmatch
, an object of class X.labeled
, Y.labeled
(matrices with numbered features), as well as, X.feats
and Y.feats
, deltamm
: a constant value over which the shortest distances in a distance map are set. See Gilleland (2011) and Schwedler and Baldwin (2011) for more information about this parameter.
centmatch
: numeric giving the number of grrdist
from the d
deltamm
: additional optional arguments to the distmap
function from package centmatch
: optional arguments to distfun
. For plot.matched
, additional arguments todeltamm
:Gilleland et al. (2008) describe a method for automatically merging, and simultaneously, matching identified features within two fields (a verification set). The method was proposed with the general method for spatial forecast verification introduced by Davis et al. (2006 a,b) in mind. It relies heavily on use of a binary image metric introduced by Baddeley (1992a,b) for comparing binary images; henceforth referred to as the delta metric, or just delta.
The procedure is as follows. Suppose there are m identified forecast features and n identified verification features.
1. Compute delta for each feature identified in the forecast field against each feature identified in the verification field. Store these values in an m by n matrix, Upsilon.
2. For each of the m rows of Upsilon, rank the values of delta to identify the features, j_1, ..., j_n that provide the lowest (best) to highest (worst) value, and do the same for each of the n columns to find the forecast features i1, ...,i_m that yield the lowest to highest values for each verification feature.
3. Create a new m by n matrix, Psi, whose columns contain delta computed between each of the individual features in the forecast and (first column) the corresponding j_1 feature from the verification field, and each successive column, k, has delta between the i-th forecast feature and the union of j_1, j_2, ..., j_k.
4. Create a similar m by n matrix, Ksi, that has delta computed between each individual feature in the verification field and the successively bigger unions i_1, ..., i_l for the l-th column.
5. Let Q=[Upsilon, Psi, Ksi], and merge and match features based on the rankings of delta in Q. That is, find the smallest delta in Q, and determine which mergings (if any) and matchings correspond to this value. Remove the appropriate row(s) and column(s) of Q corresponding to the already determined matchings and/or mergings. Repeat this until all features in at least one field have been exhausted.
The above algorithm suffers from two deficiencies. First, features that are merged in one field cannot be matched to merged features in another field. One possible remedy for this is to run this algorithm twice, though this is not a universally good solution. Second, features can be merged and/or matched to features that are very different from each other. A possible remedy for this is to use the cut-off argument, max.delta, to disallow mergings or matchings between features whose delta value is not <= this="" cut-off.="" in="" practice,="" these="" two="" deficiencies="" are="" not="" likely="" very="" problematic.<="" p="">
centmatch
:
This function works similarly as deltamm
, though it does not merge features. It is based on the method proposed by Davis et al. (2006a). It is possible for more than one object to be matched to the same object in another field. As a result, when plotting, it might appear that features have been merged, but they have not been. For informational purposes, the criteria, appelled criteria.values
(as determined by the criteria
argument), along with the centroid distance matrix, appelled centroid.distances
, are returned.
plot
: The plot method function for matched features plots matched features across fields in the same color using rainbow
. Unmatched features in either field are all colored gray. Zero values are colored white. In the case of features created by centmatch
, multiple features from one field could be matched to the same feature in the other so that, in such cases, it is not possible to decipher which feature in one field is mached to which feature in the other exactly. The print
method function will tell you which features matched between fields, so one can plot the originally derived features (e.g., from FeatureFinder
) to identify matched features. On the other hand, one can subjectively determine if same colored features should be merged or not.
summary
:
The summary method function so far simply reverts the class back to
Baddeley, A. (1992b) Errors in binary images and an Lp version of the Hausdorff metric. Nieuw Arch. Wiskunde, 10, 157--183.
Davis, C. A., Brown, B. G. and Bullock, R. G. (2006a) Object-based verification of precipitation forecasts, Part I: Methodology and application to mesoscale rain areas. Mon. Wea. Rev., 134, 1772--1784.
Davis, C. A., Brown, B. G. and Bullock, R. G. (2006b) Object-based verification of precipitation forecasts, Part II: Application to convective rain systems. Mon. Wea. Rev., 134, 1785--1795.
Gilleland, E. (2011) Spatial Forecast Verification: Baddeley's Delta Metric Applied to the ICP Test Cases. Wea. Forecasting, 26 (3), 409--415.
Gilleland, E., Lee, T. C. M., Halley Gotway, J., Bullock, R. G. and Brown, B. G. (2008) Computationally efficient spatial forecast verification using Baddeley's delta image metric. Mon. Wea. Rev., 136, 1747--1757.
Schwedler, B. R. J. and Baldwin, M. E. (2011) Diagnosing the sensitivity of binary image measures to bias, location, and event frequency within a forecast verification framework. Wea. Forecasting, 26, 1032--1044.
FeatureFinder
minboundmatch
is another feature matching function.
To force merges (implicit or otherwise): MergeForce
,
Other functions used to identify features within the above mentioned functions (all from
x <- y <- matrix(0, 100, 100)
x[2:3,c(3:6, 8:10)] <- 1
y[c(4:7, 9:10),c(7:9, 11:12)] <- 1
x[30:50,45:65] <- 1
y[c(22:24, 99:100),c(50:52, 99:100)] <- 1
hold <- make.SpatialVx(x, y, field.type="contrived", units="none",
data.name=c("Example", "x", "y"))
look <- FeatureFinder(hold, smoothpar=0.5)
par( mfrow=c(1,2))
image.plot(look$X.labeled)
image.plot(look$Y.labeled)
look2 <- deltamm(look)
FeatureTable(look2)
look3 <- centmatch(look)
FeatureTable(look3)
data(pert000)
data(pert004)
data(ICPg240Locs)
hold <- make.SpatialVx(pert000, pert004,
loc=ICPg240Locs, projection=TRUE, map=TRUE, loc.byrow = TRUE,
field.type="Precipitation", units="mm/h",
data.name=c("ICP Perturbed Cases", "pert000", "pert004"))
look <- FeatureFinder(hold, smoothpar=10.5, thresh = 5)
plot(look)
look2 <- deltamm(look, verbose = TRUE)
plot(look2)
Run the code above in your browser using DataLab