jsgeoda
azpGreedy(weights, k, values, inits, initRegion, minBoundValues, minBounds, maxBoundValues, maxBounds, scaleMethod, distanceMethod, seed) → {Object}
A greedy algorithm to solve the AZP problem.
A greedy algorithm to solve the AZP problem
Parameters:
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. |
inits | Number | The number of construction re-runs, which is for ARiSeL "automatic regionalization with initial seed location" |
initRegion | 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 |
minBoundValues | Array | The list of numeric array of selected minimum bounding variables. |
minBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be greater than. |
maxBoundValues | Array | The list of numeric array of selected maximum bounding variables. |
maxBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be less than. |
scaleMethod | String | The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'. |
distanceMethod | String | The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'. |
seed | Number | The seed for random number generator. |
Source:
Returns:
Return a ClusteringResult object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}TypeObject
azpSA(weights, k, values, coolingRate, saMaxIt, inits, initRegion, minBoundValues, minBounds, maxBoundValues, maxBounds, scaleMethod, distanceMethod, seed) → {Object}
A simulated annealing algorithm to solve the AZP problem.
A simulated annealing algorithm to solve the AZP problem
Parameters:
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. |
coolingRate | Number | The number of iterations of simulated annealing. Defaults to 1 |
saMaxIt | 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" |
initRegion | 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 |
minBoundValues | Array | The list of numeric array of selected minimum bounding variables. |
minBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be greater than. |
maxBoundValues | Array | The list of numeric array of selected maximum bounding variables. |
maxBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be less than. |
scaleMethod | String | The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'. |
distanceMethod | String | The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'. |
seed | Number | The seed for random number generator. |
Source:
Returns:
Return a ClusteringResult object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}TypeObject
azpTabu(weights, k, values, tabuLength, convTabu, inits, initRegion, minBoundValues, minBounds, maxBoundValues, maxBounds, scaleMethod, distanceMethod, seed) → {Object}
A tabu-search algorithm to solve the AZP problem.
A tabu-search algorithm to solve the AZP problem.
Parameters:
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. |
tabuLength | Number | The length of a tabu search heuristic of tabu algorithm. Defaults to 10. |
convTabu | 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" |
initRegion | 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 |
minBoundValues | Array | The list of numeric array of selected minimum bounding variables. |
minBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be greater than. |
maxBoundValues | Array | The list of numeric array of selected maximum bounding variables. |
maxBounds | Array | The list of minimum value that the sum value of bounding variables in each cluster should be less than. |
scaleMethod | String | The scaling methods {'raw', 'standardize', 'demean', 'mad', 'range_standardize', 'range_adjust'}. Defaults to 'standardize'. |
distanceMethod | String | The distance methods {"euclidean", "manhattan"}. Defaults to 'euclidean'. |
seed | Number | The seed for random number generator. |
Source:
Returns:
Return a ClusteringResult object: {'total_ss', 'within_ss', 'between_ss', 'ratio', 'clusters'}TypeObject
callLisa(weights, values, permutations, seed) → {Object}
Helper function: apply LISA statistics.
Helper function: apply LISA statistics
Parameters:
Name | Type | Description |
weights | String | The weights object WeightsResult |
values | Array | The values that local moran statistics will be applied on. |
permutations | Number | The number of permutations for the LISA computation. Default: 999.
|
seed | Number | The seed for random number generator used in LISA statistics. Default: 123456789. |
Source:
Returns:
An instance of
LisaResult
TypeObjectcartogram(mapUid, values) → {Array}
Create cartogram using the values in the map.
Create cartogram using the values in the map. In cartograms, the size of a variable's value corresponds to the size of a shape. The location of the circles is aligned as closely as possible to the location of the associated area through a nonlinear optimization routine
Parameters:
Name | Type | Description |
mapUid | String | A unique map Id |
values | Array | The values that the classify algorithm will be applied on. |
Source:
Returns:
Returns an array of circles, which is defined as: { "properties": { "id" : 1}, "position": [0.01, 0.01], "radius": 0.1 }TypeArray
checkDistanceMethod(distanceMethod) → {Boolean}
Helper function: check if distance method is valid.
Helper function: check if distance method is valid.
Parameters:
Name | Type | Description |
distanceMethod | String | |
Source:
Returns:
TypeBoolean
checkInputKernel(kernel) → {Boolean}
check if input kernel is valid.
check if input kernel is valid
Parameters:
Name | Type | Description |
kernel | * | |
Source:
Returns:
TypeBoolean
checkMapUid(mapUid) → {Boolean}
Check if map uid is valid.
Check if map uid is valid
Parameters:
Name | Type | Description |
mapUid | String | |
Source:
Returns:
TypeBoolean
checkScaleMethod(scaleMethod) → {Boolean}
Helper function: check if scale method is valid.
Helper function: check if scale method is valid.
Parameters:
Name | Type | Description |
scaleMethod | String | |
Source:
Returns:
TypeBoolean
customBreaks(breakName, values, k) → {Object}
Custom breaks that wraps {'natural_breaks', 'quantile_breaks', 'stdDevBreaks', 'hinge15Breaks', 'hinge30Breaks'}.
Custom breaks that wraps {'natural_breaks', 'quantile_breaks', 'stdDevBreaks', 'hinge15Breaks', 'hinge30Breaks'}
Parameters:
Name | Type | Description |
breakName | String | The break name: {'natural_breaks', 'quantile_breaks', 'stdDevBreaks', 'hinge15Breaks', 'hinge30Breaks'} |
values | * | The values of selected variable. |
k | * | The number of breaks. |
Source:
Returns:
{'k','bins','breaks','id_array'}TypeObject
distanceMethods() → {Object}
Help function: Get distance methods.
Help function: Get distance methods.Source:
Returns:
TypeObject
ebRisk(eventValues, baseValues) → {Array}
Empirical Bayes (EB) Smoothed Rate.
Empirical Bayes (EB) Smoothed Rate
Parameters:
Name | Type | Description |
eventValues | Array | The values of an event variable. |
baseValues | Array | The values of an base variable. |
Source:
Returns:
TypeArray
excessRisk(eventValues, baseValues) → {Array}
Excess Risk.
Excess Risk
Parameters:
Name | Type | Description |
eventValues | Array | The values of an event variable. |
baseValues | Array | The values of an base variable. |
Source:
Returns:
TypeArray
free()
Free the memory used by wasm.
Free the memory used by wasmSource:
generateUid() → {String}
Help function: create a unique id for a Geojson map.
Help function: create a unique id for a Geojson mapSource:
Returns:
TypeString
getBounds(mapUid) → {Array}
Get map bounds.
Get map bounds
Parameters:
Name | Type | Description |
mapUid | String | A unique map id that has been read into GeoDaWasm. |
Source:
Returns:
TypeArray
getCentroids(mapUid) → {Array}
Get the centroids of geojson map.
Get the centroids of geojson map. Same as GEOS.algorithm.Centroid: the centroid were computed as a weighted sum of the centroids of a decomposition of the area into (possibly overlapping) triangles. The algorithm has been extended to handle holes and multi-polygons
Parameters:
Name | Type | Description |
mapUid | String | A unique map id |
Source:
Returns:
Returns an array of [x,y] coordinates (not projected) of the centroids.TypeArray
Example
// In node.js
const fs = require('fs');
const jsgeoda = require('jsgeoda');
const geoda = await jsgeoda.New();
let ab = fs.readFileSync("NAT.geojson").buffer;
let nat = geoda.readGeoJSON("NAT", ab);
let cent = geoda.getCentroids(nat);
getClusteringResult(r) → {Object}
Helper function: get clustering results.
Helper function: get clustering results
Parameters:
Name | Type | Description |
r | Object | |
Source:
Returns:
{'clusters', 'total_ss', 'between_ss', 'within_ss', 'ratio'}TypeObject
getClusters() → {Array}
cluster indicators.
cluster indicatorsSource:
Returns:
TypeArray
getColumn(mapUid, colName) → {Array}
Get the values (numeric|string) of a column or field.
Get the values (numeric|string) of a column or field.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
colName | String | A string of column or field name. |
Source:
Returns:
Returns the values of a column of field.TypeArray
getColumnNames(mapUid) → {Array}
Get the column names of the geojson map.
Get the column names of the geojson map
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
Source:
Returns:
Returns the column namesTypeArray
getColors() → {Array}
Get colors.
Get colorsSource:
Returns:
TypeArray
getConnectivity(weights) → {Object}
Get connectivity graph from a weights object.
Get connectivity graph from a weights object
Parameters:
Name | Type | Description |
weights | String | The weights object WeightsResult |
Source:
Returns:
{arcs, targets, sources}TypeObject
getDistanceWeights(mapUid, distThreshold, power, isInverse, isArc, isMile) → {Object}
Create a Distance-based weights.
Create a Distance-based weights.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
distThreshold | Number | A positive numeric value of distance threshold used to find neighbors. |
power | Number | The power (or exponent) indicates how many times to use the number in a multiplication. |
isInverse | Boolean | A bool flag indicates whether or not to apply inverse on distance value. |
isArc | Boolean | A bool flag indicates if compute arc distance (true) or Euclidean distance (false). |
isMile | Boolean | A bool flag indicates if the distance unit is mile (true) or km (false). |
Source:
Returns:
An instance of
GeoDaWeights
TypeObjectgetKernelKnnWeights(mapUid, k, kernel, adaptiveBandwidth, useKernelDiagonals, power, isInverse, isArc, isMile) → {Object}
Create a (adaptive) KNN kernel weights.
Create a (adaptive) KNN kernel weights.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
k | Number | A positive integer number for k-nearest neighbors |
kernel | String | The name of the kernel function, which could be one of the following: {triangular, uniform, quadratic, epanechnikov, quartic, gaussian} |
adaptiveBandwidth | Boolean | A bool flag indicates whether to use adaptive bandwidth or the max distance of all observation to their k-nearest neighbors. |
useKernelDiagonals | Boolean | A bool flag indicates whether or not the lower order neighbors should be included in the weights structure. |
power | Number | The power (or exponent) indicates how many times to use the number in a multiplication. |
isInverse | Boolean | A bool flag indicates whether or not to apply inverse on distance value. |
isArc | Boolean | A bool flag indicates if compute arc distance (true) or Euclidean distance (false). |
isMile | Boolean | A bool flag indicates if the distance unit is mile (true) or km (false) |
Source:
Returns:
An instance of
GeoDaWeights
TypeObjectgetKernelWeights(mapUid, bandwidth, kernel, adaptive_bandwidth, useKernelDiagonals, power, isInverse, isArc, isMile) → {Object}
Create a kernel weights with fixed bandwidth.
Create a kernel weights with fixed bandwidth.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
bandwidth | Number | The bandwidth (distance threshold). |
kernel | String | The name of the kernel function, which could be one of the following: {triangular, uniform, quadratic, epanechnikov, quartic, gaussian} |
adaptive_bandwidth | Boolean | A bool flag indicates whether to use adaptive bandwidth or the max distance of all observation to their k-nearest neighbors. |
useKernelDiagonals | Boolean | A bool flag indicates whether or not the lower order neighbors should be included in the weights structure. |
power | Number | The power (or exponent) indicates how many times to use the number in a multiplication. |
isInverse | Boolean | A bool flag indicates whether or not to apply inverse on distance value. |
isArc | Boolean | A bool flag indicates if compute arc distance (true) or Euclidean distance (false). |
isMile | Boolean | A bool flag indicates if the distance unit is mile (true) or km (false). |
Source:
Returns:
An instance of
GeoDaWeights
TypeObjectgetKnnWeights(mapUid, k, power, isInverse, isArc, isMile) → {Object}
Create a K-Nearest Neighbors weights.
Create a K-Nearest Neighbors weights.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
k | Number | A positive integer number for k-nearest neighbors |
power | Number | The power (or exponent) indicates how many times to use the number in a multiplication. |
isInverse | Boolean | A bool flag indicates whether or not to apply inverse on distance value. |
isArc | Boolean | A bool flag indicates if compute arc distance (true) or Euclidean distance (false). |
isMile | Boolean | A bool flag indicates if the distance unit is mile (true) or km (false). |
Source:
Returns:
An instance of
GeoDaWeights
TypeObjectgetLabels() → {Array}
Get labels.
Get labelsSource:
Returns:
TypeArray
getLisaValues() → {Array}
lisa values.
lisa valuesSource:
Returns:
TypeArray
getMapType(mapUid) → {Number}
Get map type.
Get map type
Parameters:
Name | Type | Description |
mapUid | String | A unique map id |
Source:
Returns:
return map typeTypeNumber
getMinDistancethreshold(mapUid, isArc, isMile) → {Number}
Get a distance that guarantees that every observation has at least 1 neighbor.
Get a distance that guarantees that every observation has at least 1 neighbor.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id. |
isArc | Boolean | A bool flag indicates if compute arc distance (true) or Euclidean distance (false). |
isMile | Boolean | A bool flag indicates if the distance unit is mile (true) or km (false). |
Source:
Returns:
TypeNumber
getNeighbors(weights, idx) → {Array}
Get neighbors (indices) of an observation.
Get neighbors (indices) of an observation.
Parameters:
Name | Type | Description |
weights | String | The weights object WeightsResult |
idx | Number | An integer number represents the index of which observation to get its neighbors. |
Source:
Returns:
The indices of neighbors.TypeArray
getNeighbors() → {Array}
nearest neighbors.
nearest neighborsSource:
Returns:
TypeArray
getNumObs(mapUid) → {Number}
Get the number of observations or rows in the geojson map.
Get the number of observations or rows in the geojson map.
Parameters:
Name | Type | Description |
mapUid | String | A unique map id |
Source:
Returns:
Returns the number of observations or rows in the geojson map.TypeNumber
getPValues() → {Array}