REDCAP
Regionalization with dynamically constrained agglomerative clustering and partitioning (REDCAP) is developed by D. Guo (2008). Like SKATER, REDCAP starts from building a spanning tree in 4 different approaches (single-linkage, average-linkage, complete-linkage, and wards-linkage). Then, REDCAP provides 2 different approaches (firstāorder and full-order constraining) to prune the tree to find clusters. The REDCAP with first-order approach using a minimum spanning tree is exactly the same as SKATER. For more information, please read https://geodacenter.github.io/workbook/9c_spatial3/lab9c.html#redcap
redcap()
function redcap(
WeightResult w,
Number k,
Array vals,
String method,
Number min_bound,
Array bound_vals,
String scale_method,
String distance_type)
Arguments
Name
Type
Description
weights
WeightsResult
The weights object WeightsResult
k
Number
The number of clusters
vals
Array
The list of numeric vectors of the selected variable
method
String
The REDCAP method: {'single-linkage', 'average-linkage', 'complete-linkage', 'Ward-linkage'}.
min_bound
Number
The minimum value that the sum value of the bounding variable in each cluster should be greater than
bound_vals
Array
The numeric vector of the selected bounding variable
scale_method
String
The scaling method: {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}
distance_method
String
The distance method: {"euclidean", "manhattan"}
Return
Type
Description
ClusteringResult
The Clustering object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}
Examples
const jsgeoda = require('jsgeoda');
const fs = require('fs');
// load data
const data = fs.readFileSync('./data/natregimes.geojson').buffer;
// create jsgeoda instance
const geoda = await jsgeoda.New();
// load geojson in jsgeoda
const nat = geoda.read_geojson(data);
// create a queen contiguity weights
const w = geoda.queen_weights(nat);
// get values
const hr60 = geoda.get_col(nat, "HR60");
const ue60 = geoda.get_col(nat, "UE60");
// set minimum bound
const po60 = geoda.get_col(nat, "PO60");
// apply skater
const skater = geoda.redcap(w, 10, [hr60, ue60], 'single-linkage', 17845200, po60);
Try it yourself in the playground (jsgeoda + deck.gl):
Last updated
Was this helpful?