Skip to main content
Version: Next

nearestNeighborAnalysis

Description

Nearest Neighbor Analysis calculates an index based the average distances between points in the dataset, thereby providing inference as to whether the data is clustered, dispersed, or randomly distributed within the study area.

It returns a Feature<Polygon> of the study area, with the results of the analysis attached as part of of the nearestNeighborAnalysis property of the study area's properties. The attached z-score indicates how many standard deviations above or below the expected mean distance the data's observed mean distance is. The more negative, the more clustered. The more positive, the more evenly dispersed. A z-score between -2 and 2 indicates a seemingly random distribution. That is, within p of less than 0.05, the distribution appears statistically significantly neither clustered nor dispersed.

Remarks

  • Though the analysis will work on any FeatureCollection type, it works best with Point collections.
  • This analysis is very sensitive to the study area provided. If no Feature<Polygon> is passed as the study area, the function draws a box around the data, which may distort the findings. This analysis works best with a bounded area of interest within with the data is either clustered, dispersed, or randomly distributed. For example, a city's subway stops may look extremely clustered if the study area is an entire state. On the other hand, they may look rather evenly dispersed if the study area is limited to the city's downtown.

Bibliography

Philip J. Clark and Francis C. Evans, “Distance to Nearest Neighbor as a Measure of Spatial Relationships in Populations,” Ecology 35, no. 4 (1954): 445–453, doi:10.2307/1931034.

Parameters

NameTypeDescription
datasetFeatureCollection<any>FeatureCollection (pref. of points) to study
options?ObjectOptional parameters (default {})
options.studyArea?Feature<Polygon>polygon representing the study area
options.properties?GeoJsonPropertiesproperties (default {})

Returns

NearestNeighborStudyArea A polygon of the study area or an approximation of one.

Examples

var bbox = [-65, 40, -63, 42];
var dataset = turf.randomPoint(100, { bbox: bbox });
var nearestNeighborStudyArea = turf.nearestNeighborAnalysis(dataset);

Installation

$ npm install @turf/nearest-neighbor-analysis

import { nearestNeighborAnalysis } from "@turf/nearest-neighbor-analysis";
const result = nearestNeighborAnalysis(...);
$ npm install @turf/turf

import * as turf from "@turf/turf";
const result = turf.nearestNeighborAnalysis(...);