@turf/interpolate 7.3.0 → 7.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.js
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// index.ts
2
2
  var _bbox = require('@turf/bbox');
3
3
  var _hexgrid = require('@turf/hex-grid');
4
4
  var _pointgrid = require('@turf/point-grid');
@@ -11,21 +11,25 @@ var _helpers = require('@turf/helpers');
11
11
  var _meta = require('@turf/meta');
12
12
  var _invariant = require('@turf/invariant');
13
13
  function interpolate(points, cellSize, options) {
14
+ var _a, _b, _c, _d;
14
15
  options = options || {};
15
- if (typeof options !== "object") throw new Error("options is invalid");
16
- var gridType = options.gridType;
17
- var property = options.property;
18
- var weight = options.weight;
19
- var box = options.bbox;
20
- if (!points) throw new Error("points is required");
16
+ if (typeof options !== "object") {
17
+ throw new Error("options is invalid");
18
+ }
19
+ if (!points) {
20
+ throw new Error("points is required");
21
+ }
21
22
  _invariant.collectionOf.call(void 0, points, "Point", "input must contain Points");
22
- if (!cellSize) throw new Error("cellSize is required");
23
- if (weight !== void 0 && typeof weight !== "number")
23
+ if (!cellSize) {
24
+ throw new Error("cellSize is required");
25
+ }
26
+ var gridType = (_a = options.gridType) != null ? _a : "square";
27
+ var property = (_b = options.property) != null ? _b : "elevation";
28
+ var weight = (_c = options.weight) != null ? _c : 1;
29
+ var box = (_d = options.bbox) != null ? _d : _bbox.bbox.call(void 0, points);
30
+ if (weight !== void 0 && typeof weight !== "number") {
24
31
  throw new Error("weight must be a number");
25
- property = property || "elevation";
26
- gridType = gridType || "square";
27
- weight = weight || 1;
28
- box = box != null ? box : _bbox.bbox.call(void 0, points);
32
+ }
29
33
  _helpers.validateBBox.call(void 0, box);
30
34
  var grid;
31
35
  switch (gridType) {
@@ -50,21 +54,32 @@ function interpolate(points, cellSize, options) {
50
54
  }
51
55
  var results = [];
52
56
  _meta.featureEach.call(void 0, grid, function(gridFeature) {
57
+ var _a2;
53
58
  var zw = 0;
54
59
  var sw = 0;
55
60
  _meta.featureEach.call(void 0, points, function(point) {
61
+ var _a3;
56
62
  var gridPoint = gridType === "point" ? gridFeature : _centroid.centroid.call(void 0, gridFeature);
57
63
  var d = _distance.distance.call(void 0, gridPoint, point, options);
58
64
  var zValue;
59
- if (property !== void 0) zValue = point.properties[property];
60
- if (zValue === void 0) zValue = point.geometry.coordinates[2];
61
- if (zValue === void 0) throw new Error("zValue is missing");
62
- if (d === 0) zw = zValue;
65
+ if (property !== void 0) {
66
+ zValue = (_a3 = point.properties) == null ? void 0 : _a3[property];
67
+ }
68
+ if (zValue === void 0) {
69
+ zValue = point.geometry.coordinates[2];
70
+ }
71
+ if (zValue === void 0) {
72
+ throw new Error("zValue is missing");
73
+ }
74
+ if (d === 0) {
75
+ zw = zValue;
76
+ }
63
77
  var w = 1 / Math.pow(d, weight);
64
78
  sw += w;
65
79
  zw += w * zValue;
66
80
  });
67
81
  var newFeature = _clone.clone.call(void 0, gridFeature);
82
+ (_a2 = newFeature.properties) != null ? _a2 : newFeature.properties = {};
68
83
  newFeature.properties[property] = zw / sw;
69
84
  results.push(newFeature);
70
85
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-interpolate/dist/cjs/index.cjs","../../index.js"],"names":[],"mappings":"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","file":"/home/runner/work/turf/turf/packages/turf-interpolate/dist/cjs/index.cjs","sourcesContent":[null,"import { bbox } from \"@turf/bbox\";\nimport { hexGrid } from \"@turf/hex-grid\";\nimport { pointGrid } from \"@turf/point-grid\";\nimport { distance } from \"@turf/distance\";\nimport { centroid } from \"@turf/centroid\";\nimport { squareGrid } from \"@turf/square-grid\";\nimport { triangleGrid } from \"@turf/triangle-grid\";\nimport { clone } from \"@turf/clone\";\nimport { featureCollection, validateBBox } from \"@turf/helpers\";\nimport { featureEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\n\n/**\n * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).\n *\n * @function\n * @param {FeatureCollection<Point>} points with known value\n * @param {number} cellSize the distance across each grid point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')\n * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.\n * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.\n * @param {number} [options.weight=1] exponent regulating the distance-decay weighting\n * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.\n * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'\n * @example\n * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});\n *\n * // add a random property to each point\n * turf.featureEach(points, function(point) {\n * point.properties.solRad = Math.random() * 50;\n * });\n * var options = {gridType: 'points', property: 'solRad', units: 'miles'};\n * var grid = turf.interpolate(points, 100, options);\n *\n * //addToMap\n * var addToMap = [grid];\n */\nfunction interpolate(points, cellSize, options) {\n // Optional parameters\n options = options || {};\n if (typeof options !== \"object\") throw new Error(\"options is invalid\");\n var gridType = options.gridType;\n var property = options.property;\n var weight = options.weight;\n var box = options.bbox;\n\n // validation\n if (!points) throw new Error(\"points is required\");\n collectionOf(points, \"Point\", \"input must contain Points\");\n if (!cellSize) throw new Error(\"cellSize is required\");\n if (weight !== undefined && typeof weight !== \"number\")\n throw new Error(\"weight must be a number\");\n\n // default values\n property = property || \"elevation\";\n gridType = gridType || \"square\";\n weight = weight || 1;\n\n box = box ?? bbox(points);\n validateBBox(box);\n var grid;\n switch (gridType) {\n case \"point\":\n case \"points\":\n grid = pointGrid(box, cellSize, options);\n break;\n case \"square\":\n case \"squares\":\n grid = squareGrid(box, cellSize, options);\n break;\n case \"hex\":\n case \"hexes\":\n grid = hexGrid(box, cellSize, options);\n break;\n case \"triangle\":\n case \"triangles\":\n grid = triangleGrid(box, cellSize, options);\n break;\n default:\n throw new Error(\"invalid gridType\");\n }\n var results = [];\n featureEach(grid, function (gridFeature) {\n var zw = 0;\n var sw = 0;\n // calculate the distance from each input point to the grid points\n featureEach(points, function (point) {\n var gridPoint =\n gridType === \"point\" ? gridFeature : centroid(gridFeature);\n var d = distance(gridPoint, point, options);\n var zValue;\n // property has priority for zValue, fallbacks to 3rd coordinate from geometry\n if (property !== undefined) zValue = point.properties[property];\n if (zValue === undefined) zValue = point.geometry.coordinates[2];\n if (zValue === undefined) throw new Error(\"zValue is missing\");\n if (d === 0) zw = zValue;\n var w = 1.0 / Math.pow(d, weight);\n sw += w;\n zw += w * zValue;\n });\n // write interpolated value for each grid point\n var newFeature = clone(gridFeature);\n newFeature.properties[property] = zw / sw;\n results.push(newFeature);\n });\n return featureCollection(results);\n}\n\nexport { interpolate };\nexport default interpolate;\n"]}
1
+ {"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-interpolate/dist/cjs/index.cjs","../../index.ts"],"names":["_a"],"mappings":"AAAA;ACAA,kCAAqB;AACrB,yCAAwB;AACxB,6CAA0B;AAC1B,0CAAyB;AACzB,0CAAyB;AACzB,+CAA2B;AAC3B,mDAA6B;AAC7B,oCAAsB;AACtB,wCAA6D;AAC7D,kCAA4B;AAC5B,4CAA6B;AA6B7B,SAAS,WAAA,CACP,MAAA,EACA,QAAA,EACA,OAAA,EAOwD;AAjD1D,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmDE,EAAA,QAAA,EAAU,QAAA,GAAW,CAAC,CAAA;AAGtB,EAAA,GAAA,CAAI,OAAO,QAAA,IAAY,QAAA,EAAU;AAC/B,IAAA,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAAA,EACtC;AACA,EAAA,GAAA,CAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAAA;AAAA,EACtC;AACA,EAAA,qCAAA,MAAa,EAAQ,OAAA,EAAS,2BAA2B,CAAA;AACzD,EAAA,GAAA,CAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACxC;AAEA,EAAA,IAAI,SAAA,EAAA,CAAW,GAAA,EAAA,OAAA,CAAQ,QAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAoB,QAAA;AACnC,EAAA,IAAI,SAAA,EAAA,CAAW,GAAA,EAAA,OAAA,CAAQ,QAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAoB,WAAA;AACnC,EAAA,IAAI,OAAA,EAAA,CAAS,GAAA,EAAA,OAAA,CAAQ,MAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAkB,CAAA;AAC/B,EAAA,IAAI,IAAA,EAAA,CAAM,GAAA,EAAA,OAAA,CAAQ,IAAA,EAAA,GAAR,KAAA,EAAA,GAAA,EAAgB,wBAAA,MAAW,CAAA;AAGrC,EAAA,GAAA,CAAI,OAAA,IAAW,KAAA,EAAA,GAAa,OAAO,OAAA,IAAW,QAAA,EAAU;AACtD,IAAA,MAAM,IAAI,KAAA,CAAM,yBAAyB,CAAA;AAAA,EAC3C;AAEA,EAAA,mCAAA,GAAgB,CAAA;AAEhB,EAAA,IAAI,IAAA;AACJ,EAAA,OAAA,CAAQ,QAAA,EAAU;AAAA,IAChB,KAAK,OAAA;AAAA,IACL,KAAK,QAAA;AACH,MAAA,KAAA,EAAO,kCAAA,GAAU,EAAK,QAAA,EAAU,OAAO,CAAA;AACvC,MAAA,KAAA;AAAA,IACF,KAAK,QAAA;AAAA,IACL,KAAK,SAAA;AACH,MAAA,KAAA,EAAO,oCAAA,GAAW,EAAK,QAAA,EAAU,OAAO,CAAA;AACxC,MAAA,KAAA;AAAA,IACF,KAAK,KAAA;AAAA,IACL,KAAK,OAAA;AACH,MAAA,KAAA,EAAO,8BAAA,GAAQ,EAAK,QAAA,EAAU,OAAO,CAAA;AACrC,MAAA,KAAA;AAAA,IACF,KAAK,UAAA;AAAA,IACL,KAAK,WAAA;AACH,MAAA,KAAA,EAAO,wCAAA,GAAa,EAAK,QAAA,EAAU,OAAO,CAAA;AAC1C,MAAA,KAAA;AAAA,IACF,OAAA;AACE,MAAA,MAAM,IAAI,KAAA,CAAM,kBAAkB,CAAA;AAAA,EACtC;AACA,EAAA,IAAI,QAAA,EAAsC,CAAC,CAAA;AAC3C,EAAA,+BAAA,IAA6B,EAAM,QAAA,CAAU,WAAA,EAAa;AAnG5D,IAAA,IAAAA,GAAAA;AAoGI,IAAA,IAAI,GAAA,EAAK,CAAA;AACT,IAAA,IAAI,GAAA,EAAK,CAAA;AAET,IAAA,+BAAA,MAAY,EAAQ,QAAA,CAAU,KAAA,EAAO;AAvGzC,MAAA,IAAAA,GAAAA;AAwGM,MAAA,IAAI,UAAA,EACF,SAAA,IAAa,QAAA,EACR,YAAA,EACD,gCAAA,WAAoB,CAAA;AAC1B,MAAA,IAAI,EAAA,EAAI,gCAAA,SAAS,EAAW,KAAA,EAAO,OAAO,CAAA;AAC1C,MAAA,IAAI,MAAA;AAEJ,MAAA,GAAA,CAAI,SAAA,IAAa,KAAA,CAAA,EAAW;AAC1B,QAAA,OAAA,EAAA,CAASA,IAAAA,EAAA,KAAA,CAAM,UAAA,EAAA,GAAN,KAAA,EAAA,KAAA,EAAA,EAAAA,GAAAA,CAAmB,QAAA,CAAA;AAAA,MAC9B;AACA,MAAA,GAAA,CAAI,OAAA,IAAW,KAAA,CAAA,EAAW;AACxB,QAAA,OAAA,EAAS,KAAA,CAAM,QAAA,CAAS,WAAA,CAAY,CAAC,CAAA;AAAA,MACvC;AACA,MAAA,GAAA,CAAI,OAAA,IAAW,KAAA,CAAA,EAAW;AACxB,QAAA,MAAM,IAAI,KAAA,CAAM,mBAAmB,CAAA;AAAA,MACrC;AACA,MAAA,GAAA,CAAI,EAAA,IAAM,CAAA,EAAG;AACX,QAAA,GAAA,EAAK,MAAA;AAAA,MACP;AACA,MAAA,IAAI,EAAA,EAAI,EAAA,EAAM,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAA;AAChC,MAAA,GAAA,GAAM,CAAA;AACN,MAAA,GAAA,GAAM,EAAA,EAAI,MAAA;AAAA,IACZ,CAAC,CAAA;AAED,IAAA,IAAI,WAAA,EAAa,0BAAA,WAAiB,CAAA;AAClC,IAAA,CAAAA,IAAAA,EAAA,UAAA,CAAW,UAAA,EAAA,GAAX,KAAA,EAAAA,IAAAA,EAAA,UAAA,CAAW,WAAA,EAAe,CAAC,CAAA;AAC3B,IAAA,UAAA,CAAW,UAAA,CAAW,QAAQ,EAAA,EAAI,GAAA,EAAK,EAAA;AACvC,IAAA,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA;AAAA,EACzB,CAAC,CAAA;AACD,EAAA,OAAO,wCAAA,OAAyB,CAAA;AAGlC;AAGA,IAAO,cAAA,EAAQ,WAAA;ADnDf;AACE;AACA;AACF,mEAAC","file":"/home/runner/work/turf/turf/packages/turf-interpolate/dist/cjs/index.cjs","sourcesContent":[null,"import { bbox } from \"@turf/bbox\";\nimport { hexGrid } from \"@turf/hex-grid\";\nimport { pointGrid } from \"@turf/point-grid\";\nimport { distance } from \"@turf/distance\";\nimport { centroid } from \"@turf/centroid\";\nimport { squareGrid } from \"@turf/square-grid\";\nimport { triangleGrid } from \"@turf/triangle-grid\";\nimport { clone } from \"@turf/clone\";\nimport { featureCollection, Grid, Units, validateBBox } from \"@turf/helpers\";\nimport { featureEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { BBox, Feature, FeatureCollection, Point, Polygon } from \"geojson\";\n\n/**\n * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).\n *\n * @function\n * @param {FeatureCollection<Point>} points with known value\n * @param {number} cellSize the distance across each grid point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')\n * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.\n * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.\n * @param {number} [options.weight=1] exponent regulating the distance-decay weighting\n * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.\n * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'\n * @example\n * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});\n *\n * // add a random property to each point\n * turf.featureEach(points, function(point) {\n * point.properties.solRad = Math.random() * 50;\n * });\n * var options = {gridType: 'points', property: 'solRad', units: 'miles'};\n * var grid = turf.interpolate(points, 100, options);\n *\n * //addToMap\n * var addToMap = [grid];\n */\nfunction interpolate<T extends Grid = \"square\">(\n points: FeatureCollection<Point>,\n cellSize: number,\n options?: {\n gridType?: T;\n property?: string;\n units?: Units;\n weight?: number;\n bbox?: BBox;\n }\n): FeatureCollection<T extends \"point\" ? Point : Polygon> {\n // Optional parameters\n options = options || {};\n\n // Validation pre-options parsing\n if (typeof options !== \"object\") {\n throw new Error(\"options is invalid\");\n }\n if (!points) {\n throw new Error(\"points is required\");\n }\n collectionOf(points, \"Point\", \"input must contain Points\");\n if (!cellSize) {\n throw new Error(\"cellSize is required\");\n }\n\n var gridType = options.gridType ?? \"square\";\n var property = options.property ?? \"elevation\";\n var weight = options.weight ?? 1;\n var box = options.bbox ?? bbox(points);\n\n // validation post options-parsing\n if (weight !== undefined && typeof weight !== \"number\") {\n throw new Error(\"weight must be a number\");\n }\n\n validateBBox(box);\n\n var grid;\n switch (gridType) {\n case \"point\":\n case \"points\":\n grid = pointGrid(box, cellSize, options);\n break;\n case \"square\":\n case \"squares\":\n grid = squareGrid(box, cellSize, options);\n break;\n case \"hex\":\n case \"hexes\":\n grid = hexGrid(box, cellSize, options);\n break;\n case \"triangle\":\n case \"triangles\":\n grid = triangleGrid(box, cellSize, options);\n break;\n default:\n throw new Error(\"invalid gridType\");\n }\n var results: Feature<Point | Polygon>[] = [];\n featureEach<Point | Polygon>(grid, function (gridFeature) {\n var zw = 0;\n var sw = 0;\n // calculate the distance from each input point to the grid points\n featureEach(points, function (point) {\n var gridPoint =\n gridType === \"point\"\n ? (gridFeature as Feature<Point>)\n : centroid(gridFeature);\n var d = distance(gridPoint, point, options);\n var zValue;\n // property has priority for zValue, fallbacks to 3rd coordinate from geometry\n if (property !== undefined) {\n zValue = point.properties?.[property];\n }\n if (zValue === undefined) {\n zValue = point.geometry.coordinates[2];\n }\n if (zValue === undefined) {\n throw new Error(\"zValue is missing\");\n }\n if (d === 0) {\n zw = zValue;\n }\n var w = 1.0 / Math.pow(d, weight);\n sw += w;\n zw += w * zValue;\n });\n // write interpolated value for each grid point\n var newFeature = clone(gridFeature);\n newFeature.properties ??= {};\n newFeature.properties[property] = zw / sw;\n results.push(newFeature);\n });\n return featureCollection(results) as FeatureCollection<\n T extends \"point\" ? Point : Polygon\n >;\n}\n\nexport { interpolate };\nexport default interpolate;\n"]}
@@ -1,30 +1,38 @@
1
+ import { Grid, Units } from '@turf/helpers';
1
2
  import { FeatureCollection, Point, BBox, Polygon } from 'geojson';
2
- import { Units, Grid } from '@turf/helpers';
3
3
 
4
4
  /**
5
- * http://turfjs.org/docs/#interpolate
5
+ * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).
6
+ *
7
+ * @function
8
+ * @param {FeatureCollection<Point>} points with known value
9
+ * @param {number} cellSize the distance across each grid point
10
+ * @param {Object} [options={}] Optional parameters
11
+ * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')
12
+ * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.
13
+ * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.
14
+ * @param {number} [options.weight=1] exponent regulating the distance-decay weighting
15
+ * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.
16
+ * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'
17
+ * @example
18
+ * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});
19
+ *
20
+ * // add a random property to each point
21
+ * turf.featureEach(points, function(point) {
22
+ * point.properties.solRad = Math.random() * 50;
23
+ * });
24
+ * var options = {gridType: 'points', property: 'solRad', units: 'miles'};
25
+ * var grid = turf.interpolate(points, 100, options);
26
+ *
27
+ * //addToMap
28
+ * var addToMap = [grid];
6
29
  */
7
- declare function interpolate(
8
- points: FeatureCollection<Point>,
9
- cellSize: number,
10
- options?: {
11
- gridType?: "point";
30
+ declare function interpolate<T extends Grid = "square">(points: FeatureCollection<Point>, cellSize: number, options?: {
31
+ gridType?: T;
12
32
  property?: string;
13
33
  units?: Units;
14
34
  weight?: number;
15
35
  bbox?: BBox;
16
- }
17
- ): FeatureCollection<Point>;
18
- declare function interpolate(
19
- points: FeatureCollection<Point>,
20
- cellSize: number,
21
- options?: {
22
- gridType?: Grid;
23
- property?: string;
24
- units?: Units;
25
- weight?: number;
26
- bbox?: BBox;
27
- }
28
- ): FeatureCollection<Polygon>;
36
+ }): FeatureCollection<T extends "point" ? Point : Polygon>;
29
37
 
30
38
  export { interpolate as default, interpolate };
@@ -1,30 +1,38 @@
1
+ import { Grid, Units } from '@turf/helpers';
1
2
  import { FeatureCollection, Point, BBox, Polygon } from 'geojson';
2
- import { Units, Grid } from '@turf/helpers';
3
3
 
4
4
  /**
5
- * http://turfjs.org/docs/#interpolate
5
+ * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).
6
+ *
7
+ * @function
8
+ * @param {FeatureCollection<Point>} points with known value
9
+ * @param {number} cellSize the distance across each grid point
10
+ * @param {Object} [options={}] Optional parameters
11
+ * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')
12
+ * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.
13
+ * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.
14
+ * @param {number} [options.weight=1] exponent regulating the distance-decay weighting
15
+ * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.
16
+ * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'
17
+ * @example
18
+ * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});
19
+ *
20
+ * // add a random property to each point
21
+ * turf.featureEach(points, function(point) {
22
+ * point.properties.solRad = Math.random() * 50;
23
+ * });
24
+ * var options = {gridType: 'points', property: 'solRad', units: 'miles'};
25
+ * var grid = turf.interpolate(points, 100, options);
26
+ *
27
+ * //addToMap
28
+ * var addToMap = [grid];
6
29
  */
7
- declare function interpolate(
8
- points: FeatureCollection<Point>,
9
- cellSize: number,
10
- options?: {
11
- gridType?: "point";
30
+ declare function interpolate<T extends Grid = "square">(points: FeatureCollection<Point>, cellSize: number, options?: {
31
+ gridType?: T;
12
32
  property?: string;
13
33
  units?: Units;
14
34
  weight?: number;
15
35
  bbox?: BBox;
16
- }
17
- ): FeatureCollection<Point>;
18
- declare function interpolate(
19
- points: FeatureCollection<Point>,
20
- cellSize: number,
21
- options?: {
22
- gridType?: Grid;
23
- property?: string;
24
- units?: Units;
25
- weight?: number;
26
- bbox?: BBox;
27
- }
28
- ): FeatureCollection<Polygon>;
36
+ }): FeatureCollection<T extends "point" ? Point : Polygon>;
29
37
 
30
38
  export { interpolate as default, interpolate };
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- // index.js
1
+ // index.ts
2
2
  import { bbox } from "@turf/bbox";
3
3
  import { hexGrid } from "@turf/hex-grid";
4
4
  import { pointGrid } from "@turf/point-grid";
@@ -11,21 +11,25 @@ import { featureCollection, validateBBox } from "@turf/helpers";
11
11
  import { featureEach } from "@turf/meta";
12
12
  import { collectionOf } from "@turf/invariant";
13
13
  function interpolate(points, cellSize, options) {
14
+ var _a, _b, _c, _d;
14
15
  options = options || {};
15
- if (typeof options !== "object") throw new Error("options is invalid");
16
- var gridType = options.gridType;
17
- var property = options.property;
18
- var weight = options.weight;
19
- var box = options.bbox;
20
- if (!points) throw new Error("points is required");
16
+ if (typeof options !== "object") {
17
+ throw new Error("options is invalid");
18
+ }
19
+ if (!points) {
20
+ throw new Error("points is required");
21
+ }
21
22
  collectionOf(points, "Point", "input must contain Points");
22
- if (!cellSize) throw new Error("cellSize is required");
23
- if (weight !== void 0 && typeof weight !== "number")
23
+ if (!cellSize) {
24
+ throw new Error("cellSize is required");
25
+ }
26
+ var gridType = (_a = options.gridType) != null ? _a : "square";
27
+ var property = (_b = options.property) != null ? _b : "elevation";
28
+ var weight = (_c = options.weight) != null ? _c : 1;
29
+ var box = (_d = options.bbox) != null ? _d : bbox(points);
30
+ if (weight !== void 0 && typeof weight !== "number") {
24
31
  throw new Error("weight must be a number");
25
- property = property || "elevation";
26
- gridType = gridType || "square";
27
- weight = weight || 1;
28
- box = box != null ? box : bbox(points);
32
+ }
29
33
  validateBBox(box);
30
34
  var grid;
31
35
  switch (gridType) {
@@ -50,21 +54,32 @@ function interpolate(points, cellSize, options) {
50
54
  }
51
55
  var results = [];
52
56
  featureEach(grid, function(gridFeature) {
57
+ var _a2;
53
58
  var zw = 0;
54
59
  var sw = 0;
55
60
  featureEach(points, function(point) {
61
+ var _a3;
56
62
  var gridPoint = gridType === "point" ? gridFeature : centroid(gridFeature);
57
63
  var d = distance(gridPoint, point, options);
58
64
  var zValue;
59
- if (property !== void 0) zValue = point.properties[property];
60
- if (zValue === void 0) zValue = point.geometry.coordinates[2];
61
- if (zValue === void 0) throw new Error("zValue is missing");
62
- if (d === 0) zw = zValue;
65
+ if (property !== void 0) {
66
+ zValue = (_a3 = point.properties) == null ? void 0 : _a3[property];
67
+ }
68
+ if (zValue === void 0) {
69
+ zValue = point.geometry.coordinates[2];
70
+ }
71
+ if (zValue === void 0) {
72
+ throw new Error("zValue is missing");
73
+ }
74
+ if (d === 0) {
75
+ zw = zValue;
76
+ }
63
77
  var w = 1 / Math.pow(d, weight);
64
78
  sw += w;
65
79
  zw += w * zValue;
66
80
  });
67
81
  var newFeature = clone(gridFeature);
82
+ (_a2 = newFeature.properties) != null ? _a2 : newFeature.properties = {};
68
83
  newFeature.properties[property] = zw / sw;
69
84
  results.push(newFeature);
70
85
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../index.js"],"sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { hexGrid } from \"@turf/hex-grid\";\nimport { pointGrid } from \"@turf/point-grid\";\nimport { distance } from \"@turf/distance\";\nimport { centroid } from \"@turf/centroid\";\nimport { squareGrid } from \"@turf/square-grid\";\nimport { triangleGrid } from \"@turf/triangle-grid\";\nimport { clone } from \"@turf/clone\";\nimport { featureCollection, validateBBox } from \"@turf/helpers\";\nimport { featureEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\n\n/**\n * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).\n *\n * @function\n * @param {FeatureCollection<Point>} points with known value\n * @param {number} cellSize the distance across each grid point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')\n * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.\n * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.\n * @param {number} [options.weight=1] exponent regulating the distance-decay weighting\n * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.\n * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'\n * @example\n * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});\n *\n * // add a random property to each point\n * turf.featureEach(points, function(point) {\n * point.properties.solRad = Math.random() * 50;\n * });\n * var options = {gridType: 'points', property: 'solRad', units: 'miles'};\n * var grid = turf.interpolate(points, 100, options);\n *\n * //addToMap\n * var addToMap = [grid];\n */\nfunction interpolate(points, cellSize, options) {\n // Optional parameters\n options = options || {};\n if (typeof options !== \"object\") throw new Error(\"options is invalid\");\n var gridType = options.gridType;\n var property = options.property;\n var weight = options.weight;\n var box = options.bbox;\n\n // validation\n if (!points) throw new Error(\"points is required\");\n collectionOf(points, \"Point\", \"input must contain Points\");\n if (!cellSize) throw new Error(\"cellSize is required\");\n if (weight !== undefined && typeof weight !== \"number\")\n throw new Error(\"weight must be a number\");\n\n // default values\n property = property || \"elevation\";\n gridType = gridType || \"square\";\n weight = weight || 1;\n\n box = box ?? bbox(points);\n validateBBox(box);\n var grid;\n switch (gridType) {\n case \"point\":\n case \"points\":\n grid = pointGrid(box, cellSize, options);\n break;\n case \"square\":\n case \"squares\":\n grid = squareGrid(box, cellSize, options);\n break;\n case \"hex\":\n case \"hexes\":\n grid = hexGrid(box, cellSize, options);\n break;\n case \"triangle\":\n case \"triangles\":\n grid = triangleGrid(box, cellSize, options);\n break;\n default:\n throw new Error(\"invalid gridType\");\n }\n var results = [];\n featureEach(grid, function (gridFeature) {\n var zw = 0;\n var sw = 0;\n // calculate the distance from each input point to the grid points\n featureEach(points, function (point) {\n var gridPoint =\n gridType === \"point\" ? gridFeature : centroid(gridFeature);\n var d = distance(gridPoint, point, options);\n var zValue;\n // property has priority for zValue, fallbacks to 3rd coordinate from geometry\n if (property !== undefined) zValue = point.properties[property];\n if (zValue === undefined) zValue = point.geometry.coordinates[2];\n if (zValue === undefined) throw new Error(\"zValue is missing\");\n if (d === 0) zw = zValue;\n var w = 1.0 / Math.pow(d, weight);\n sw += w;\n zw += w * zValue;\n });\n // write interpolated value for each grid point\n var newFeature = clone(gridFeature);\n newFeature.properties[property] = zw / sw;\n results.push(newFeature);\n });\n return featureCollection(results);\n}\n\nexport { interpolate };\nexport default interpolate;\n"],"mappings":";AAAA,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,mBAAmB,oBAAoB;AAChD,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AA4B7B,SAAS,YAAY,QAAQ,UAAU,SAAS;AAE9C,YAAU,WAAW,CAAC;AACtB,MAAI,OAAO,YAAY,SAAU,OAAM,IAAI,MAAM,oBAAoB;AACrE,MAAI,WAAW,QAAQ;AACvB,MAAI,WAAW,QAAQ;AACvB,MAAI,SAAS,QAAQ;AACrB,MAAI,MAAM,QAAQ;AAGlB,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,oBAAoB;AACjD,eAAa,QAAQ,SAAS,2BAA2B;AACzD,MAAI,CAAC,SAAU,OAAM,IAAI,MAAM,sBAAsB;AACrD,MAAI,WAAW,UAAa,OAAO,WAAW;AAC5C,UAAM,IAAI,MAAM,yBAAyB;AAG3C,aAAW,YAAY;AACvB,aAAW,YAAY;AACvB,WAAS,UAAU;AAEnB,QAAM,oBAAO,KAAK,MAAM;AACxB,eAAa,GAAG;AAChB,MAAI;AACJ,UAAQ,UAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,KAAK,UAAU,OAAO;AACvC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,WAAW,KAAK,UAAU,OAAO;AACxC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,QAAQ,KAAK,UAAU,OAAO;AACrC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,aAAa,KAAK,UAAU,OAAO;AAC1C;AAAA,IACF;AACE,YAAM,IAAI,MAAM,kBAAkB;AAAA,EACtC;AACA,MAAI,UAAU,CAAC;AACf,cAAY,MAAM,SAAU,aAAa;AACvC,QAAI,KAAK;AACT,QAAI,KAAK;AAET,gBAAY,QAAQ,SAAU,OAAO;AACnC,UAAI,YACF,aAAa,UAAU,cAAc,SAAS,WAAW;AAC3D,UAAI,IAAI,SAAS,WAAW,OAAO,OAAO;AAC1C,UAAI;AAEJ,UAAI,aAAa,OAAW,UAAS,MAAM,WAAW,QAAQ;AAC9D,UAAI,WAAW,OAAW,UAAS,MAAM,SAAS,YAAY,CAAC;AAC/D,UAAI,WAAW,OAAW,OAAM,IAAI,MAAM,mBAAmB;AAC7D,UAAI,MAAM,EAAG,MAAK;AAClB,UAAI,IAAI,IAAM,KAAK,IAAI,GAAG,MAAM;AAChC,YAAM;AACN,YAAM,IAAI;AAAA,IACZ,CAAC;AAED,QAAI,aAAa,MAAM,WAAW;AAClC,eAAW,WAAW,QAAQ,IAAI,KAAK;AACvC,YAAQ,KAAK,UAAU;AAAA,EACzB,CAAC;AACD,SAAO,kBAAkB,OAAO;AAClC;AAGA,IAAO,gBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../index.ts"],"sourcesContent":["import { bbox } from \"@turf/bbox\";\nimport { hexGrid } from \"@turf/hex-grid\";\nimport { pointGrid } from \"@turf/point-grid\";\nimport { distance } from \"@turf/distance\";\nimport { centroid } from \"@turf/centroid\";\nimport { squareGrid } from \"@turf/square-grid\";\nimport { triangleGrid } from \"@turf/triangle-grid\";\nimport { clone } from \"@turf/clone\";\nimport { featureCollection, Grid, Units, validateBBox } from \"@turf/helpers\";\nimport { featureEach } from \"@turf/meta\";\nimport { collectionOf } from \"@turf/invariant\";\nimport { BBox, Feature, FeatureCollection, Point, Polygon } from \"geojson\";\n\n/**\n * Takes a set of points and estimates their 'property' values on a grid using the [Inverse Distance Weighting (IDW) method](https://en.wikipedia.org/wiki/Inverse_distance_weighting).\n *\n * @function\n * @param {FeatureCollection<Point>} points with known value\n * @param {number} cellSize the distance across each grid point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.gridType='square'] defines the output format based on a Grid Type (options: 'square' | 'point' | 'hex' | 'triangle')\n * @param {string} [options.property='elevation'] the property name in `points` from which z-values will be pulled, zValue fallbacks to 3rd coordinate if no property exists.\n * @param {Units} [options.units='kilometers'] used in calculating cellSize. Supports all valid Turf {@link https://turfjs.org/docs/api/types/Units Units}.\n * @param {number} [options.weight=1] exponent regulating the distance-decay weighting\n * @param {BBox} [options.bbox=bbox(points)] Bounding Box Array [west, south, east, north] associated with the FeatureCollection.\n * @returns {FeatureCollection<Point|Polygon>} grid of points or polygons with interpolated 'property'\n * @example\n * var points = turf.randomPoint(30, {bbox: [50, 30, 70, 50]});\n *\n * // add a random property to each point\n * turf.featureEach(points, function(point) {\n * point.properties.solRad = Math.random() * 50;\n * });\n * var options = {gridType: 'points', property: 'solRad', units: 'miles'};\n * var grid = turf.interpolate(points, 100, options);\n *\n * //addToMap\n * var addToMap = [grid];\n */\nfunction interpolate<T extends Grid = \"square\">(\n points: FeatureCollection<Point>,\n cellSize: number,\n options?: {\n gridType?: T;\n property?: string;\n units?: Units;\n weight?: number;\n bbox?: BBox;\n }\n): FeatureCollection<T extends \"point\" ? Point : Polygon> {\n // Optional parameters\n options = options || {};\n\n // Validation pre-options parsing\n if (typeof options !== \"object\") {\n throw new Error(\"options is invalid\");\n }\n if (!points) {\n throw new Error(\"points is required\");\n }\n collectionOf(points, \"Point\", \"input must contain Points\");\n if (!cellSize) {\n throw new Error(\"cellSize is required\");\n }\n\n var gridType = options.gridType ?? \"square\";\n var property = options.property ?? \"elevation\";\n var weight = options.weight ?? 1;\n var box = options.bbox ?? bbox(points);\n\n // validation post options-parsing\n if (weight !== undefined && typeof weight !== \"number\") {\n throw new Error(\"weight must be a number\");\n }\n\n validateBBox(box);\n\n var grid;\n switch (gridType) {\n case \"point\":\n case \"points\":\n grid = pointGrid(box, cellSize, options);\n break;\n case \"square\":\n case \"squares\":\n grid = squareGrid(box, cellSize, options);\n break;\n case \"hex\":\n case \"hexes\":\n grid = hexGrid(box, cellSize, options);\n break;\n case \"triangle\":\n case \"triangles\":\n grid = triangleGrid(box, cellSize, options);\n break;\n default:\n throw new Error(\"invalid gridType\");\n }\n var results: Feature<Point | Polygon>[] = [];\n featureEach<Point | Polygon>(grid, function (gridFeature) {\n var zw = 0;\n var sw = 0;\n // calculate the distance from each input point to the grid points\n featureEach(points, function (point) {\n var gridPoint =\n gridType === \"point\"\n ? (gridFeature as Feature<Point>)\n : centroid(gridFeature);\n var d = distance(gridPoint, point, options);\n var zValue;\n // property has priority for zValue, fallbacks to 3rd coordinate from geometry\n if (property !== undefined) {\n zValue = point.properties?.[property];\n }\n if (zValue === undefined) {\n zValue = point.geometry.coordinates[2];\n }\n if (zValue === undefined) {\n throw new Error(\"zValue is missing\");\n }\n if (d === 0) {\n zw = zValue;\n }\n var w = 1.0 / Math.pow(d, weight);\n sw += w;\n zw += w * zValue;\n });\n // write interpolated value for each grid point\n var newFeature = clone(gridFeature);\n newFeature.properties ??= {};\n newFeature.properties[property] = zw / sw;\n results.push(newFeature);\n });\n return featureCollection(results) as FeatureCollection<\n T extends \"point\" ? Point : Polygon\n >;\n}\n\nexport { interpolate };\nexport default interpolate;\n"],"mappings":";AAAA,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,mBAAgC,oBAAoB;AAC7D,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AA6B7B,SAAS,YACP,QACA,UACA,SAOwD;AAjD1D;AAmDE,YAAU,WAAW,CAAC;AAGtB,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AACA,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AACA,eAAa,QAAQ,SAAS,2BAA2B;AACzD,MAAI,CAAC,UAAU;AACb,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AAEA,MAAI,YAAW,aAAQ,aAAR,YAAoB;AACnC,MAAI,YAAW,aAAQ,aAAR,YAAoB;AACnC,MAAI,UAAS,aAAQ,WAAR,YAAkB;AAC/B,MAAI,OAAM,aAAQ,SAAR,YAAgB,KAAK,MAAM;AAGrC,MAAI,WAAW,UAAa,OAAO,WAAW,UAAU;AACtD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAEA,eAAa,GAAG;AAEhB,MAAI;AACJ,UAAQ,UAAU;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,KAAK,UAAU,OAAO;AACvC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,WAAW,KAAK,UAAU,OAAO;AACxC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,QAAQ,KAAK,UAAU,OAAO;AACrC;AAAA,IACF,KAAK;AAAA,IACL,KAAK;AACH,aAAO,aAAa,KAAK,UAAU,OAAO;AAC1C;AAAA,IACF;AACE,YAAM,IAAI,MAAM,kBAAkB;AAAA,EACtC;AACA,MAAI,UAAsC,CAAC;AAC3C,cAA6B,MAAM,SAAU,aAAa;AAnG5D,QAAAA;AAoGI,QAAI,KAAK;AACT,QAAI,KAAK;AAET,gBAAY,QAAQ,SAAU,OAAO;AAvGzC,UAAAA;AAwGM,UAAI,YACF,aAAa,UACR,cACD,SAAS,WAAW;AAC1B,UAAI,IAAI,SAAS,WAAW,OAAO,OAAO;AAC1C,UAAI;AAEJ,UAAI,aAAa,QAAW;AAC1B,kBAASA,MAAA,MAAM,eAAN,gBAAAA,IAAmB;AAAA,MAC9B;AACA,UAAI,WAAW,QAAW;AACxB,iBAAS,MAAM,SAAS,YAAY,CAAC;AAAA,MACvC;AACA,UAAI,WAAW,QAAW;AACxB,cAAM,IAAI,MAAM,mBAAmB;AAAA,MACrC;AACA,UAAI,MAAM,GAAG;AACX,aAAK;AAAA,MACP;AACA,UAAI,IAAI,IAAM,KAAK,IAAI,GAAG,MAAM;AAChC,YAAM;AACN,YAAM,IAAI;AAAA,IACZ,CAAC;AAED,QAAI,aAAa,MAAM,WAAW;AAClC,KAAAA,MAAA,WAAW,eAAX,OAAAA,MAAA,WAAW,aAAe,CAAC;AAC3B,eAAW,WAAW,QAAQ,IAAI,KAAK;AACvC,YAAQ,KAAK,UAAU;AAAA,EACzB,CAAC;AACD,SAAO,kBAAkB,OAAO;AAGlC;AAGA,IAAO,gBAAQ;","names":["_a"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turf/interpolate",
3
- "version": "7.3.0",
3
+ "version": "7.3.2",
4
4
  "description": "Creates an interpolated grid of points using the Inverse Distance Weighting method.",
5
5
  "author": "Turf Authors",
6
6
  "contributors": [
@@ -49,36 +49,37 @@
49
49
  "bench": "tsx bench.ts",
50
50
  "build": "tsup --config ../../tsup.config.ts",
51
51
  "docs": "tsx ../../scripts/generate-readmes.ts",
52
- "test": "npm-run-all --npm-path npm test:*",
52
+ "test": "pnpm run /test:.*/",
53
53
  "test:tape": "tsx test.ts",
54
54
  "test:types": "tsc --esModuleInterop --module node16 --moduleResolution node16 --noEmit --strict types.ts"
55
55
  },
56
56
  "devDependencies": {
57
- "@turf/truncate": "7.3.0",
57
+ "@turf/truncate": "7.3.2",
58
58
  "@types/benchmark": "^2.1.5",
59
59
  "@types/tape": "^5.8.1",
60
60
  "benchmark": "^2.1.4",
61
61
  "chromatism": "^3.0.0",
62
62
  "load-json-file": "^7.0.1",
63
- "npm-run-all": "^4.1.5",
64
63
  "tape": "^5.9.0",
65
64
  "tsup": "^8.4.0",
66
65
  "tsx": "^4.19.4",
66
+ "typescript": "^5.8.3",
67
67
  "write-json-file": "^6.0.0"
68
68
  },
69
69
  "dependencies": {
70
- "@turf/bbox": "7.3.0",
71
- "@turf/centroid": "7.3.0",
72
- "@turf/clone": "7.3.0",
73
- "@turf/distance": "7.3.0",
74
- "@turf/helpers": "7.3.0",
75
- "@turf/hex-grid": "7.3.0",
76
- "@turf/invariant": "7.3.0",
77
- "@turf/meta": "7.3.0",
78
- "@turf/point-grid": "7.3.0",
79
- "@turf/square-grid": "7.3.0",
80
- "@turf/triangle-grid": "7.3.0",
81
- "@types/geojson": "^7946.0.10"
70
+ "@turf/bbox": "7.3.2",
71
+ "@turf/centroid": "7.3.2",
72
+ "@turf/clone": "7.3.2",
73
+ "@turf/distance": "7.3.2",
74
+ "@turf/helpers": "7.3.2",
75
+ "@turf/hex-grid": "7.3.2",
76
+ "@turf/invariant": "7.3.2",
77
+ "@turf/meta": "7.3.2",
78
+ "@turf/point-grid": "7.3.2",
79
+ "@turf/square-grid": "7.3.2",
80
+ "@turf/triangle-grid": "7.3.2",
81
+ "@types/geojson": "^7946.0.10",
82
+ "tslib": "^2.8.1"
82
83
  },
83
- "gitHead": "9f58a103e8f9a587ab640307ed03ba5233913ddd"
84
+ "gitHead": "099d9915467bacf45d554be4533fa9998c4efc88"
84
85
  }