AZP

The automatic zoning procedure (AZP) was initially outlined in Openshaw (1977) as a way to address some of the consequences of the modifiable areal unit problem (MAUP). In essence, it consists of a heuristic to find the best set of combinations of contiguous spatial units into p regions, minimizing the within sum of squares as a criterion of homogeneity. The number of regions needs to be specified beforehand.

azpGreedy()

A simulated annealing algorithm to solve the AZP problem

function azpGreedy(
    WeightResult w,
    Number k, 
    Array vals,
    Number inits,
    Array init_region,
    Array min_bound_values, 
    Array min_bounds,
    Array max_bound_values, 
    Array max_bounds,
    String scale_method,
    String distance_type,
    Number seed)

Arguments

Name

Type

Description

weights

WeightsResult

The weights object WeightsResult

k

Number

The number of spatially constrained clusters

vals

Array

The list of numeric vectors of the selected variable.

inits

Number

The number of construction re-runs, which is for ARiSeL "automatic regionalization with initial seed location"

init_region

Array

The initial regions that the local search starts with. Default is empty. means the local search starts with a random process to "grow" clusters

min_bounds_values

Array

The list of numeric array of selected minimum bounding variables.

min_bounds

Array

The list of minimum values that the sum value of bounding variables in each cluster should be greater than.

max_bounds_values

Array

The list of numeric arrays of selected maximum bounding variables.

max_bounds

Array

The list of minimum value that the sum value of bounding variables in each cluster should be less than.

scale_method

String

The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'.

distance_method

String

The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'.

seed

Number

The seed for random number generator.

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.readGeoJSON(data);

// create a queen contiguity weights
const w = geoda.getQueenWeights(nat);

// get values
const hr60 = geoda.getColumn(nat, "HR60");
const ue60 = geoda.getColumn(nat, "UE60");

// set minimum bound
const po60 = geoda.getColumn(nat, "PO60");

// apply azp_greedy
const inits = 1;
const init_region = [];
const min_bound_vals = [po60];
const min_bounds = [17845200];
const azp = geoda.azpGreedy(w, 20, [hr60, ue60], inits, init_region, min_bound_vals,min_bounds);

Try it yourself in the playground (jsgeoda + deck.gl):

azpSA()

A simulated annealing algorithm to solve the AZP problem

function azpSA(
    WeightResult w,
    Number k, 
    Array vals,
    Number cooling_rate,
    Number sa_maxit,
    Number inits,
    Array init_region,
    Array min_bound_values, 
    Array min_bounds,
    Array max_bound_values, 
    Array max_bounds,
    String scale_method,
    String distance_type,
    Number seed)

Arguments

Name

Type

Description

weights

WeightsResult

The weights object WeightsResult

k

Number

The number of spatially constrained clusters

vals

Array

The list of numeric vectors of selected variable.

cooling_rate

Number

The number of iterations of simulated annealing. Defaults to 1

sa_maxit

Number

The number of iterations of simulated annealing. Defaults to 1

inits

Number

The number of construction re-runs, which is for ARiSeL "automatic regionalization with initial seed location"

init_region

Array

The initial regions that the local search starts with. Default is empty. means the local search starts with a random process to "grow" clusters

min_bounds_values

Array

The list of numeric array of selected minimum bounding variables.

min_bounds

Array

The list of minimum value that the sum value of bounding variables in each cluster should be greater than.

max_bounds_values

Array

The list of numeric array of selected maximum bounding variables.

max_bounds

Array

The list of minimum value that the sum value of bounding variables in each cluster should be less than.

scale_method

String

The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'.

distance_method

String

The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'.

seed

Number

The seed for random number generator.

Return

Type

Description

ClusteringResult

The Clustering object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}

azpTabu()

A tabu algorithm to solve the AZP problem

function azpTabu(
    WeightResult w,
    Number k, 
    Array vals,
    Number tabu_length,
    Number conv_tabu,
    Number inits,
    Array init_region,
    Array min_bound_values, 
    Array min_bounds,
    Array max_bound_values, 
    Array max_bounds,
    String scale_method,
    String distance_type,
    Number seed)

Arguments

Name

Type

Description

weights

WeightsResult

The weights object WeightsResult

k

Number

The number of spatially constrained clusters

values

Array

The list of numeric vectors of selected variable.

tabu_length

Number

The length of a tabu search heuristic of tabu algorithm. Defaults to 10.

conv_tabu

Number

The number of non-improving moves. Defaults to 10.

inits

Number

The number of construction re-runs, which is for ARiSeL "automatic regionalization with initial seed location"

init_region

Array

The initial regions that the local search starts with. Default is empty. means the local search starts with a random process to "grow" clusters

min_bounds_values

Array

The list of numeric array of selected minimum bounding variables.

min_bounds

Array

The list of minimum value that the sum value of bounding variables in each cluster should be greater than.

max_bounds_values

Array

The list of numeric array of selected maximum bounding variables.

max_bounds

Array

The list of minimum value that the sum value of bounding variables in each cluster should be less than.

scale_method

String

The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'.

distance_method

String

The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'.

seed

Number

The seed for random number generator.

Return

Type

Description

ClusteringResult

The Clustering object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}

Last updated