# Distance-Based Weights

Distance-based weights are constructed using distance measures between all pairs of observations. The neighbor relation can be determined by a given **distance band****,** so every other observation that falls within the distance band is considered as neighbors of one observation. Another way to determine neighbor relation is to find **K nearest neighbors*** *(* KNN*) for each observation.

For more information, please read: https://geodacenter.github.io/workbook/4b_dist_weights/lab4b.html

### 1. getMinDistancethreshold()

In order to avoid isolates (islands) that would result from too stringent a critical distance, the distance must be chosen such that each location has at least one neighbor. Such a distance conforms to a *max-min* criterion, i.e., it is the largest of the nearest neighbor distances.

**Arguments**

Input Arguments | Type | Description |

mapUid | String | the unique map id |

isArc | boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

| Description |

Number | the minimum distance that makes sure each observation has at least one neighbor |

### 2. getDistanceWeights()

With the distance band, one can create a distance-based spatial weights using WINDOW function distance_weights()

Short version:

**Arguments:**

Input Arguments | Type | Description |

map_uid | String | the unique map id |

distBand | Number | the distance band/threshold that makes sure each observation has at least one neighbor |

power | Number | the power/exponent corresponds to the number of times the base (dist_band) is used as a factor. Default: 1. |

isInverse | Boolean | if apply inverse on distance value. Default: False. |

isArc | Boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | Boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

| Description |

WeightsResult | the weights structure for each observation. |

### 3. getKnnWeights()

**Arguments:**

Input Arguments | Type | Description |

mapUid | String | the unique map id |

k | Number | the k nearest neighbors |

power | Number | the power/exponent corresponds to the number of times the base (dist_band) is used as a factor. Default: 1. |

isInverse | Boolean | if apply inverse on distance value. Default: False. |

isArc | Boolean | if compute arc distance between two observations. Default: FALSE. |

isMile | Boolean | if convert distance unit from mile to kilometer(KM). Default: TRUE. |

**Return**

| Description |

WeightsResult | the weights structure for each observation. |

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

Last updated