index.cjs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
  2. var _area = require('@turf/area');
  3. var _bbox = require('@turf/bbox');
  4. var _bboxpolygon = require('@turf/bbox-polygon');
  5. var _centroid = require('@turf/centroid');
  6. var _distance = require('@turf/distance');
  7. var _nearestpoint = require('@turf/nearest-point');
  8. var _meta = require('@turf/meta');
  9. var _helpers = require('@turf/helpers');
  10. function nearestNeighborAnalysis(dataset, options) {
  11. options = options || {};
  12. const studyArea = options.studyArea || _bboxpolygon.bboxPolygon.call(void 0, _bbox.bbox.call(void 0, dataset));
  13. const properties = options.properties || {};
  14. const units = options.units || "kilometers";
  15. const features = [];
  16. _meta.featureEach.call(void 0, dataset, (feature) => {
  17. features.push(_centroid.centroid.call(void 0, feature));
  18. });
  19. const n = features.length;
  20. const observedMeanDistance = features.map((feature, index) => {
  21. const otherFeatures = _helpers.featureCollection.call(void 0,
  22. features.filter((f, i) => {
  23. return i !== index;
  24. })
  25. );
  26. return _distance.distance.call(void 0,
  27. feature,
  28. _nearestpoint.nearestPoint.call(void 0, feature, otherFeatures).geometry.coordinates,
  29. { units }
  30. );
  31. }).reduce((sum, value) => {
  32. return sum + value;
  33. }, 0) / n;
  34. const populationDensity = n / _helpers.convertArea.call(void 0, _area.area.call(void 0, studyArea), "meters", units);
  35. const expectedMeanDistance = 1 / (2 * Math.sqrt(populationDensity));
  36. const variance = 0.26136 / Math.sqrt(n * populationDensity);
  37. properties.nearestNeighborAnalysis = {
  38. units,
  39. arealUnits: units + "\xB2",
  40. observedMeanDistance,
  41. expectedMeanDistance,
  42. nearestNeighborIndex: observedMeanDistance / expectedMeanDistance,
  43. numberOfPoints: n,
  44. zScore: (observedMeanDistance - expectedMeanDistance) / variance
  45. };
  46. studyArea.properties = properties;
  47. return studyArea;
  48. }
  49. var turf_nearest_neighbor_analysis_default = nearestNeighborAnalysis;
  50. exports.default = turf_nearest_neighbor_analysis_default; exports.nearestNeighborAnalysis = nearestNeighborAnalysis;
  51. //# sourceMappingURL=index.cjs.map