@loaders.gl/arrow 4.3.4 → 4.4.0-alpha.10

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.
Files changed (108) hide show
  1. package/dist/arrow-loader.d.ts +1 -1
  2. package/dist/arrow-loader.js +1 -0
  3. package/dist/arrow-loader.js.map +1 -0
  4. package/dist/arrow-worker.js +664 -1292
  5. package/dist/arrow-writer.js +2 -1
  6. package/dist/arrow-writer.js.map +1 -0
  7. package/dist/dist.dev.js +3091 -4283
  8. package/dist/dist.min.js +5 -5
  9. package/dist/exports/arrow-format.d.ts +12 -0
  10. package/dist/exports/arrow-format.d.ts.map +1 -0
  11. package/dist/exports/arrow-format.js +19 -0
  12. package/dist/exports/arrow-format.js.map +1 -0
  13. package/dist/exports/arrow-loader.d.ts +1 -1
  14. package/dist/exports/arrow-loader.d.ts.map +1 -1
  15. package/dist/exports/arrow-loader.js +2 -1
  16. package/dist/exports/arrow-loader.js.map +1 -0
  17. package/dist/exports/geoarrow-loader.d.ts +1 -1
  18. package/dist/exports/geoarrow-loader.d.ts.map +1 -1
  19. package/dist/exports/geoarrow-loader.js +1 -0
  20. package/dist/exports/geoarrow-loader.js.map +1 -0
  21. package/dist/geoarrow-loader.d.ts +1 -2
  22. package/dist/geoarrow-loader.d.ts.map +1 -1
  23. package/dist/geoarrow-loader.js +1 -0
  24. package/dist/geoarrow-loader.js.map +1 -0
  25. package/dist/geoarrow-writer.d.ts +3 -3
  26. package/dist/geoarrow-writer.d.ts.map +1 -1
  27. package/dist/geoarrow-writer.js +2 -1
  28. package/dist/geoarrow-writer.js.map +1 -0
  29. package/dist/index.cjs +42 -953
  30. package/dist/index.cjs.map +4 -4
  31. package/dist/index.d.ts +1 -9
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +8 -14
  34. package/dist/index.js.map +1 -0
  35. package/dist/lib/encoders/encode-arrow.d.ts.map +1 -1
  36. package/dist/lib/encoders/encode-arrow.js +3 -1
  37. package/dist/lib/encoders/encode-arrow.js.map +1 -0
  38. package/dist/lib/encoders/encode-geoarrow.d.ts.map +1 -1
  39. package/dist/lib/encoders/encode-geoarrow.js +3 -1
  40. package/dist/lib/encoders/encode-geoarrow.js.map +1 -0
  41. package/dist/lib/parsers/parse-arrow.d.ts +2 -3
  42. package/dist/lib/parsers/parse-arrow.d.ts.map +1 -1
  43. package/dist/lib/parsers/parse-arrow.js +4 -2
  44. package/dist/lib/parsers/parse-arrow.js.map +1 -0
  45. package/dist/lib/parsers/parse-geoarrow.d.ts +2 -3
  46. package/dist/lib/parsers/parse-geoarrow.d.ts.map +1 -1
  47. package/dist/lib/parsers/parse-geoarrow.js +3 -2
  48. package/dist/lib/parsers/parse-geoarrow.js.map +1 -0
  49. package/dist/lib/types.js +1 -0
  50. package/dist/lib/types.js.map +1 -0
  51. package/dist/triangulate-on-worker.d.ts +2 -1
  52. package/dist/triangulate-on-worker.d.ts.map +1 -1
  53. package/dist/triangulate-on-worker.js +2 -1
  54. package/dist/triangulate-on-worker.js.map +1 -0
  55. package/dist/triangulation-worker.js +212 -154
  56. package/dist/workers/arrow-worker.js +1 -0
  57. package/dist/workers/arrow-worker.js.map +1 -0
  58. package/dist/workers/hard-clone.js +1 -0
  59. package/dist/workers/hard-clone.js.map +1 -0
  60. package/dist/workers/triangulation-worker-node.js +1 -0
  61. package/dist/workers/triangulation-worker-node.js.map +1 -0
  62. package/dist/workers/triangulation-worker.js +3 -2
  63. package/dist/workers/triangulation-worker.js.map +1 -0
  64. package/package.json +13 -9
  65. package/src/exports/arrow-format.ts +21 -0
  66. package/src/exports/arrow-loader.ts +1 -1
  67. package/src/exports/geoarrow-loader.ts +1 -2
  68. package/src/geoarrow-loader.ts +6 -2
  69. package/src/geoarrow-writer.ts +1 -1
  70. package/src/index.ts +2 -42
  71. package/src/lib/encoders/encode-arrow.ts +2 -1
  72. package/src/lib/encoders/encode-geoarrow.ts +2 -1
  73. package/src/lib/parsers/parse-arrow.ts +7 -5
  74. package/src/lib/parsers/parse-geoarrow.ts +11 -5
  75. package/src/triangulate-on-worker.ts +2 -1
  76. package/src/workers/triangulation-worker.ts +3 -3
  77. package/dist/lib/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +0 -74
  78. package/dist/lib/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +0 -1
  79. package/dist/lib/geoarrow/convert-geoarrow-to-binary-geometry.js +0 -377
  80. package/dist/lib/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts +0 -13
  81. package/dist/lib/geoarrow/convert-geoarrow-to-geojson-geometry.d.ts.map +0 -1
  82. package/dist/lib/geoarrow/convert-geoarrow-to-geojson-geometry.js +0 -176
  83. package/dist/lib/geoarrow/get-arrow-bounds.d.ts +0 -11
  84. package/dist/lib/geoarrow/get-arrow-bounds.d.ts.map +0 -1
  85. package/dist/lib/geoarrow/get-arrow-bounds.js +0 -34
  86. package/dist/lib/tables/convert-arrow-schema.d.ts +0 -23
  87. package/dist/lib/tables/convert-arrow-schema.d.ts.map +0 -1
  88. package/dist/lib/tables/convert-arrow-schema.js +0 -280
  89. package/dist/lib/tables/convert-arrow-to-table.d.ts +0 -15
  90. package/dist/lib/tables/convert-arrow-to-table.d.ts.map +0 -1
  91. package/dist/lib/tables/convert-arrow-to-table.js +0 -104
  92. package/dist/lib/tables/convert-table-to-arrow.d.ts +0 -16
  93. package/dist/lib/tables/convert-table-to-arrow.d.ts.map +0 -1
  94. package/dist/lib/tables/convert-table-to-arrow.js +0 -56
  95. package/dist/schema/arrow-table-batch.d.ts +0 -10
  96. package/dist/schema/arrow-table-batch.d.ts.map +0 -1
  97. package/dist/schema/arrow-table-batch.js +0 -67
  98. package/dist/schema/arrow-table-type.d.ts +0 -25
  99. package/dist/schema/arrow-table-type.d.ts.map +0 -1
  100. package/dist/schema/arrow-table-type.js +0 -4
  101. package/src/lib/geoarrow/convert-geoarrow-to-binary-geometry.ts +0 -494
  102. package/src/lib/geoarrow/convert-geoarrow-to-geojson-geometry.ts +0 -207
  103. package/src/lib/geoarrow/get-arrow-bounds.ts +0 -41
  104. package/src/lib/tables/convert-arrow-schema.ts +0 -301
  105. package/src/lib/tables/convert-arrow-to-table.ts +0 -144
  106. package/src/lib/tables/convert-table-to-arrow.ts +0 -72
  107. package/src/schema/arrow-table-batch.ts +0 -82
  108. package/src/schema/arrow-table-type.ts +0 -30
@@ -4,3 +4,4 @@
4
4
  import { createLoaderWorker } from '@loaders.gl/loader-utils';
5
5
  import { ArrowLoader } from "../arrow-loader.js";
6
6
  createLoaderWorker(ArrowLoader);
7
+ //# sourceMappingURL=arrow-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrow-worker.js","sourceRoot":"","sources":["../../src/workers/arrow-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,kBAAkB,CAAC,WAAW,CAAC,CAAC"}
@@ -99,3 +99,4 @@ function cloneBuffer(arr, force) {
99
99
  // We know from arr.slice that it will always return the same
100
100
  return arr.slice();
101
101
  }
102
+ //# sourceMappingURL=hard-clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hard-clone.js","sourceRoot":"","sources":["../../src/workers/hard-clone.ts"],"names":[],"mappings":"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"}
@@ -2,3 +2,4 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import "./triangulation-worker.js";
5
+ //# sourceMappingURL=triangulation-worker-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangulation-worker-node.js","sourceRoot":"","sources":["../../src/workers/triangulation-worker-node.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,mCAAgC"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  import * as arrow from 'apache-arrow';
5
5
  import { createWorker } from '@loaders.gl/worker-utils';
6
- import { getTriangleIndices, getBinaryGeometriesFromArrow } from "../lib/geoarrow/convert-geoarrow-to-binary-geometry.js";
6
+ import { getTriangleIndices, convertGeoArrowToBinaryFeatureCollection } from '@loaders.gl/gis';
7
7
  createWorker(async (data, options = {}) => {
8
8
  const input = data;
9
9
  const operation = input?.operation;
@@ -44,7 +44,7 @@ function parseGeoArrowBatch(data) {
44
44
  if (geometryColumn) {
45
45
  // NOTE: for a rebuild arrow.Vector, there is only one chunk, so chunkIndex is always 0
46
46
  const options = { calculateMeanCenters, triangle, chunkIndex: 0, chunkOffset };
47
- binaryDataFromGeoArrow = getBinaryGeometriesFromArrow(geometryColumn, geometryEncoding, options);
47
+ binaryDataFromGeoArrow = convertGeoArrowToBinaryFeatureCollection(geometryColumn, geometryEncoding, options);
48
48
  // NOTE: here binaryGeometry will be copied to main thread
49
49
  return {
50
50
  binaryDataFromGeoArrow,
@@ -56,3 +56,4 @@ function parseGeoArrowBatch(data) {
56
56
  chunkIndex
57
57
  };
58
58
  }
59
+ //# sourceMappingURL=triangulation-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triangulation-worker.js","sourceRoot":"","sources":["../../src/workers/triangulation-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,wCAAwC,EAEzC,MAAM,iBAAiB,CAAC;AASzB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IACxC,MAAM,KAAK,GAAG,IAAgC,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,EAAE,SAAS,CAAC;IACnC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,gBAAgB;YACnB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC;YACE,MAAM,IAAI,KAAK,CACb,8CAA8C,SAAS,0BAA0B,CAClF,CAAC;IACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,IAAsB;IAC9C,+BAA+B;IAC/B,0BAA0B;IAC1B,8BAA8B;IAC9B,MAAM,eAAe,GAAG,kBAAkB,CACxC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,IAAI,CACV,CAAC;IACF,OAAO,EAAC,GAAG,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAC,eAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,IAAwB;IAClD,IAAI,sBAAsB,GAAkC,IAAI,CAAC;IACjE,MAAM,EAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAC,GAC1F,IAAI,CAAC;IACP,qDAAqD;IACrD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,CAC9B,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,CACrB,CAAC;IACF,yCAAyC;IACzC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,cAAc,EAAE,CAAC;QACnB,uFAAuF;QACvF,MAAM,OAAO,GAAG,EAAC,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAC,CAAC;QAC7E,sBAAsB,GAAG,wCAAwC,CAC/D,cAAc,EACd,gBAAgB,EAChB,OAAO,CACR,CAAC;QACF,0DAA0D;QAC1D,OAAO;YACL,sBAAsB;YACtB,UAAU;SACX,CAAC;IACJ,CAAC;IACD,OAAO;QACL,sBAAsB;QACtB,UAAU;KACX,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/arrow",
3
- "version": "4.3.4",
3
+ "version": "4.4.0-alpha.10",
4
4
  "description": "Simple columnar table loader for the Apache Arrow format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -36,6 +36,9 @@
36
36
  "./exports/*": {
37
37
  "types": "./dist/exports/*.d.ts",
38
38
  "import": "./dist/exports/*.js"
39
+ },
40
+ "./arrow-worker.js": {
41
+ "import": "./dist/arrow-worker.js"
39
42
  }
40
43
  },
41
44
  "sideEffects": false,
@@ -57,16 +60,17 @@
57
60
  "build-worker2": "esbuild src/workers/arrow-worker.ts --bundle --outfile=dist/arrow-worker.js --platform=browser --external:{stream}"
58
61
  },
59
62
  "dependencies": {
60
- "@loaders.gl/gis": "4.3.4",
61
- "@loaders.gl/loader-utils": "4.3.4",
62
- "@loaders.gl/schema": "4.3.4",
63
- "@loaders.gl/wkt": "4.3.4",
64
- "@loaders.gl/worker-utils": "4.3.4",
63
+ "@loaders.gl/gis": "4.4.0-alpha.10",
64
+ "@loaders.gl/loader-utils": "4.4.0-alpha.10",
65
+ "@loaders.gl/schema": "4.4.0-alpha.10",
66
+ "@loaders.gl/schema-utils": "4.4.0-alpha.10",
67
+ "@loaders.gl/wkt": "4.4.0-alpha.10",
68
+ "@loaders.gl/worker-utils": "4.4.0-alpha.10",
65
69
  "@math.gl/polygon": "^4.1.0",
66
- "apache-arrow": ">= 15.0.0"
70
+ "apache-arrow": ">= 16.1.0"
67
71
  },
68
72
  "peerDependencies": {
69
- "@loaders.gl/core": "^4.3.0"
73
+ "@loaders.gl/core": "4.4.0-alpha.1"
70
74
  },
71
- "gitHead": "d18246f4ef6382f787a6ae2e9e21d8a7f40e5917"
75
+ "gitHead": "7b4dc3fdbaed20a2597c70c57efdcda5c404147f"
72
76
  }
@@ -0,0 +1,21 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {Format} from '@loaders.gl/loader-utils';
6
+
7
+ /** ArrowJS table loader */
8
+ export const ArrowFormat = {
9
+ name: 'Apache Arrow',
10
+ id: 'arrow',
11
+ module: 'arrow',
12
+ category: 'table',
13
+ extensions: ['arrow', 'feather'],
14
+ mimeTypes: [
15
+ 'application/vnd.apache.arrow.file',
16
+ 'application/vnd.apache.arrow.stream',
17
+ 'application/octet-stream'
18
+ ],
19
+ binary: true,
20
+ tests: ['ARROW']
21
+ } as const satisfies Format;
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
6
- import type {ArrowTable} from '../schema/arrow-table-type';
6
+ import type {ArrowTable} from '@loaders.gl/schema';
7
7
 
8
8
  // __VERSION__ is injected by babel-plugin-version-inline
9
9
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
@@ -3,9 +3,8 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
6
+ import type {ArrowTable, ArrowTableBatch, BinaryGeometry} from '@loaders.gl/schema';
6
7
  import {ArrowWorkerLoader} from './arrow-loader';
7
- import type {BinaryGeometry} from '@loaders.gl/schema';
8
- import type {ArrowTable, ArrowTableBatch} from '../schema/arrow-table-type';
9
8
 
10
9
  export type GeoArrowLoaderOptions = LoaderOptions & {
11
10
  arrow?: {
@@ -3,8 +3,12 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {LoaderWithParser} from '@loaders.gl/loader-utils';
6
- import type {GeoJSONTable, GeoJSONTableBatch} from '@loaders.gl/schema';
7
- import type {ArrowTable, ArrowTableBatch} from './schema/arrow-table-type';
6
+ import type {
7
+ ArrowTable,
8
+ ArrowTableBatch,
9
+ GeoJSONTable,
10
+ GeoJSONTableBatch
11
+ } from '@loaders.gl/schema';
8
12
  import {parseGeoArrowSync, parseGeoArrowInBatches} from './lib/parsers/parse-geoarrow';
9
13
  import type {GeoArrowLoaderOptions} from './exports/geoarrow-loader';
10
14
  import {GeoArrowWorkerLoader} from './exports/geoarrow-loader';
@@ -1,7 +1,7 @@
1
1
  // import type {} from '@loaders.gl/loader-utils';
2
2
 
3
3
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
4
- import {GeoJSONTable, BinaryGeometry} from '@loaders.gl/schema';
4
+ import type {GeoJSONTable, BinaryGeometry} from '@loaders.gl/schema';
5
5
  import {encodeGeoArrowSync} from './lib/encoders/encode-geoarrow';
6
6
 
7
7
  // __VERSION__ is injected by babel-plugin-version-inline
package/src/index.ts CHANGED
@@ -3,16 +3,12 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  // Types
6
- export type {ArrowTable, ArrowTableBatch} from './schema/arrow-table-type';
7
6
  export {VECTOR_TYPES} from './lib/types';
8
- import {ArrowTableBatchAggregator} from './schema/arrow-table-batch';
9
-
10
- // Make the ArrowBatch type available
11
- import {TableBatchBuilder} from '@loaders.gl/schema';
12
- TableBatchBuilder.ArrowBatch = ArrowTableBatchAggregator;
13
7
 
14
8
  // Arrow loader / Writer
15
9
 
10
+ export {ArrowFormat} from './exports/arrow-format';
11
+
16
12
  export type {ArrowLoaderOptions} from './exports/arrow-loader';
17
13
  export {ArrowWorkerLoader} from './exports/arrow-loader';
18
14
  export {ArrowLoader} from './arrow-loader';
@@ -23,48 +19,12 @@ export {ArrowWriter} from './arrow-writer';
23
19
  export {GeoArrowWorkerLoader} from './exports/geoarrow-loader';
24
20
  export {GeoArrowLoader} from './geoarrow-loader';
25
21
 
26
- // Schema utils
27
- export {
28
- convertArrowToSchema,
29
- convertSchemaToArrow,
30
-
31
- // DETAILED FUNCTIONS
32
- serializeArrowSchema,
33
- deserializeArrowSchema,
34
- serializeArrowMetadata,
35
- deserializeArrowMetadata,
36
- serializeArrowField,
37
- deserializeArrowField,
38
- serializeArrowType,
39
- deserializeArrowType
40
- } from './lib//tables/convert-arrow-schema';
41
-
42
- // Table utils
43
- export {convertArrowToTable} from './lib/tables/convert-arrow-to-table';
44
- export {convertTableToArrow} from './lib/tables/convert-table-to-arrow';
45
-
46
22
  // EXPERIMENTAL
47
23
 
48
24
  // Arrow Utils
49
- export type {GeoArrowEncoding} from '@loaders.gl/gis';
50
25
  // getGeometryColumnsFromArrowTable,
51
26
  // getGeoArrowEncoding
52
27
 
53
- export type {
54
- BinaryDataFromGeoArrow,
55
- BinaryGeometriesFromArrowOptions
56
- } from './lib/geoarrow/convert-geoarrow-to-binary-geometry';
57
- export {
58
- getBinaryGeometryTemplate,
59
- getBinaryGeometriesFromArrow,
60
- getTriangleIndices,
61
- getMeanCentersFromBinaryGeometries
62
- } from './lib/geoarrow/convert-geoarrow-to-binary-geometry';
63
-
64
- export {updateBoundsFromGeoArrowSamples} from './lib/geoarrow/get-arrow-bounds';
65
-
66
- export {parseGeometryFromArrow} from './lib/geoarrow/convert-geoarrow-to-geojson-geometry';
67
-
68
28
  // EXPERIMENTAL WORKER
69
29
  export {hardClone} from './workers/hard-clone';
70
30
 
@@ -4,6 +4,7 @@
4
4
 
5
5
  import * as arrow from 'apache-arrow';
6
6
  import {AnyArrayType, VECTOR_TYPES} from '../types';
7
+ import {ensureArrayBuffer} from '@loaders.gl/loader-utils';
7
8
 
8
9
  export type ColumnarTable = {
9
10
  name: string;
@@ -26,7 +27,7 @@ export function encodeArrowSync(data: ColumnarTable): ArrayBuffer {
26
27
  }
27
28
  const table = new arrow.Table(vectors);
28
29
  const arrowBuffer = arrow.tableToIPC(table);
29
- return arrowBuffer;
30
+ return ensureArrayBuffer(arrowBuffer);
30
31
  }
31
32
 
32
33
  /**
@@ -4,6 +4,7 @@
4
4
 
5
5
  import * as arrow from 'apache-arrow';
6
6
  import {AnyArrayType, VECTOR_TYPES} from '../types';
7
+ import {ensureArrayBuffer} from '@loaders.gl/loader-utils';
7
8
 
8
9
  export type ColumnarTable = {
9
10
  name: string;
@@ -26,7 +27,7 @@ export function encodeGeoArrowSync(data: ColumnarTable): ArrayBuffer {
26
27
  }
27
28
  const table = new arrow.Table(vectors);
28
29
  const arrowBuffer = arrow.tableToIPC(table);
29
- return arrowBuffer;
30
+ return ensureArrayBuffer(arrowBuffer);
30
31
  }
31
32
 
32
33
  /**
@@ -3,10 +3,10 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import * as arrow from 'apache-arrow';
6
- import type {Table} from '@loaders.gl/schema';
7
- import type {ArrowTableBatch} from '../../schema/arrow-table-type';
6
+ import type {Table, ArrowTableBatch} from '@loaders.gl/schema';
8
7
  import {ArrowLoaderOptions} from '../../exports/arrow-loader';
9
- import {convertArrowToTable} from '../tables/convert-arrow-to-table';
8
+ import {convertArrowToTable} from '@loaders.gl/schema-utils';
9
+ import {toArrayBufferIterator} from '@loaders.gl/loader-utils';
10
10
 
11
11
  /** Parses arrow to a loaders.gl table. Defaults to `arrow-table` */
12
12
  export function parseArrowSync(arrayBuffer, options?: {shape?: Table['shape']}): Table {
@@ -16,7 +16,9 @@ export function parseArrowSync(arrayBuffer, options?: {shape?: Table['shape']}):
16
16
  }
17
17
 
18
18
  export function parseArrowInBatches(
19
- asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,
19
+ asyncIterator:
20
+ | AsyncIterable<ArrayBufferLike | ArrayBufferView>
21
+ | Iterable<ArrayBufferLike | ArrayBufferView>,
20
22
  options?: ArrowLoaderOptions
21
23
  ): AsyncIterable<ArrowTableBatch> {
22
24
  // Creates the appropriate arrow.RecordBatchReader subclasses from the input
@@ -39,7 +41,7 @@ export function parseArrowInBatches(
39
41
 
40
42
  async function* makeArrowAsyncIterator(): AsyncIterator<ArrowTableBatch> {
41
43
  // @ts-ignore
42
- const readers = arrow.RecordBatchReader.readAll(asyncIterator);
44
+ const readers = arrow.RecordBatchReader.readAll(toArrayBufferIterator(asyncIterator));
43
45
  for await (const reader of readers) {
44
46
  for await (const recordBatch of reader) {
45
47
  // use options.batchDebounceMs to add a delay between batches if needed (use case: incremental loading)
@@ -2,10 +2,14 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {GeoJSONTable, GeoJSONTableBatch} from '@loaders.gl/schema';
6
- import type {ArrowTable, ArrowTableBatch} from '../../schema/arrow-table-type';
5
+ import type {
6
+ GeoJSONTable,
7
+ GeoJSONTableBatch,
8
+ ArrowTable,
9
+ ArrowTableBatch
10
+ } from '@loaders.gl/schema';
7
11
  import {parseArrowSync, parseArrowInBatches} from './parse-arrow';
8
- import {convertArrowToTable} from '../tables/convert-arrow-to-table';
12
+ import {convertGeoArrowToTable} from '@loaders.gl/gis';
9
13
 
10
14
  // Parses arrow to a columnar table
11
15
  export function parseGeoArrowSync(
@@ -16,7 +20,7 @@ export function parseGeoArrowSync(
16
20
  const table = parseArrowSync(arrayBuffer, {shape: 'arrow-table'}) as ArrowTable;
17
21
  switch (options?.shape) {
18
22
  case 'geojson-table':
19
- return convertArrowToTable(table.data, 'geojson-table');
23
+ return convertGeoArrowToTable(table.data, 'geojson-table');
20
24
  default:
21
25
  return table;
22
26
  }
@@ -25,7 +29,9 @@ export function parseGeoArrowSync(
25
29
  /**
26
30
  */
27
31
  export function parseGeoArrowInBatches(
28
- asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>
32
+ asyncIterator:
33
+ | AsyncIterable<ArrayBufferLike | ArrayBufferView>
34
+ | Iterable<ArrayBufferLike | ArrayBufferView>
29
35
  ): AsyncIterable<ArrowTableBatch | GeoJSONTableBatch> {
30
36
  // | BinaryGeometry
31
37
  return parseArrowInBatches(asyncIterator);
@@ -5,7 +5,8 @@
5
5
  import * as arrow from 'apache-arrow';
6
6
  import type {WorkerOptions} from '@loaders.gl/worker-utils';
7
7
  import {processOnWorker} from '@loaders.gl/worker-utils';
8
- import {BinaryDataFromGeoArrow, GeoArrowEncoding} from '@loaders.gl/arrow';
8
+ import type {GeoArrowEncoding} from '@loaders.gl/geoarrow';
9
+ import {BinaryDataFromGeoArrow} from '@loaders.gl/gis';
9
10
 
10
11
  // __VERSION__ is injected by babel-plugin-version-inline
11
12
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
@@ -6,9 +6,9 @@ import * as arrow from 'apache-arrow';
6
6
  import {createWorker} from '@loaders.gl/worker-utils';
7
7
  import {
8
8
  getTriangleIndices,
9
- getBinaryGeometriesFromArrow,
9
+ convertGeoArrowToBinaryFeatureCollection,
10
10
  BinaryDataFromGeoArrow
11
- } from '../lib/geoarrow/convert-geoarrow-to-binary-geometry';
11
+ } from '@loaders.gl/gis';
12
12
  import type {
13
13
  TriangulationWorkerInput,
14
14
  TriangulateInput,
@@ -75,7 +75,7 @@ function parseGeoArrowBatch(data: ParseGeoArrowInput): ParseGeoArrowResult {
75
75
  if (geometryColumn) {
76
76
  // NOTE: for a rebuild arrow.Vector, there is only one chunk, so chunkIndex is always 0
77
77
  const options = {calculateMeanCenters, triangle, chunkIndex: 0, chunkOffset};
78
- binaryDataFromGeoArrow = getBinaryGeometriesFromArrow(
78
+ binaryDataFromGeoArrow = convertGeoArrowToBinaryFeatureCollection(
79
79
  geometryColumn,
80
80
  geometryEncoding,
81
81
  options
@@ -1,74 +0,0 @@
1
- import * as arrow from 'apache-arrow';
2
- import { BinaryFeatureCollection as BinaryFeatures } from '@loaders.gl/schema';
3
- import { GeoArrowEncoding } from '@loaders.gl/gis';
4
- /**
5
- * Binary data from geoarrow column and can be used by e.g. deck.gl GeojsonLayer
6
- */
7
- export type BinaryDataFromGeoArrow = {
8
- /** Binary format geometries, an array of BinaryFeatureCollection */
9
- binaryGeometries: BinaryFeatures[];
10
- /** Boundary of the binary geometries */
11
- bounds: [number, number, number, number];
12
- /** Feature types of the binary geometries */
13
- featureTypes: {
14
- polygon: boolean;
15
- point: boolean;
16
- line: boolean;
17
- };
18
- /** (Optional) mean centers of the binary geometries for e.g. polygon filtering */
19
- meanCenters?: number[][];
20
- };
21
- /**
22
- * binary geometry template, see deck.gl BinaryGeometry
23
- */
24
- export declare function getBinaryGeometryTemplate(): {
25
- globalFeatureIds: {
26
- value: Uint32Array;
27
- size: number;
28
- };
29
- positions: {
30
- value: Float32Array;
31
- size: number;
32
- };
33
- properties: never[];
34
- numericProps: {};
35
- featureIds: {
36
- value: Uint32Array;
37
- size: number;
38
- };
39
- };
40
- export type BinaryGeometriesFromArrowOptions = {
41
- /** option to specify which chunk to get binary geometries from, for progressive rendering */
42
- chunkIndex?: number;
43
- /** The offset (beginning index of rows) of input chunk. Used for reconstructing globalFeatureIds in web workers */
44
- chunkOffset?: number;
45
- /** option to get mean centers from geometries, for polygon filtering */
46
- calculateMeanCenters?: boolean;
47
- /** option to compute the triangle indices by tesselating polygons */
48
- triangulate?: boolean;
49
- };
50
- /**
51
- * get binary geometries from geoarrow column
52
- *
53
- * @param geoColumn the geoarrow column, e.g. arrowTable.getChildAt(geoColumnIndex)
54
- * @param geoEncoding the geo encoding of the geoarrow column, e.g. getGeoArrowEncoding(arrowTable.schema, geoColumnName)
55
- * @param options options for getting binary geometries {meanCenter: boolean}
56
- * @returns BinaryDataFromGeoArrow
57
- */
58
- export declare function getBinaryGeometriesFromArrow(geoColumn: arrow.Vector, geoEncoding: GeoArrowEncoding, options?: BinaryGeometriesFromArrowOptions): BinaryDataFromGeoArrow;
59
- /**
60
- * Get mean centers from binary geometries
61
- * @param binaryGeometries binary geometries from geoarrow column, an array of BinaryFeatureCollection
62
- * @returns mean centers of the binary geometries
63
- */
64
- export declare function getMeanCentersFromBinaryGeometries(binaryGeometries: BinaryFeatures[]): number[][];
65
- /**
66
- * get triangle indices. Allows deck.gl to skip performing costly triangulation on main thread.
67
- * @param polygonIndices Indices within positions of the start of each simple Polygon
68
- * @param primitivePolygonIndices Indices within positions of the start of each primitive Polygon/ring
69
- * @param flatCoordinateArray Array of x, y or x, y, z positions
70
- * @param nDim - number of dimensions per position
71
- * @returns triangle indices or null if invalid polygon and earcut fails
72
- */
73
- export declare function getTriangleIndices(polygonIndices: Uint16Array, primitivePolygonIndices: Int32Array, flatCoordinateArray: Float64Array, nDim: number): Uint32Array | null;
74
- //# sourceMappingURL=convert-geoarrow-to-binary-geometry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convert-geoarrow-to-binary-geometry.d.ts","sourceRoot":"","sources":["../../../src/lib/geoarrow/convert-geoarrow-to-binary-geometry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,uBAAuB,IAAI,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAajD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,cAAc,EAAE,CAAC;IACnC,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6CAA6C;IAC7C,YAAY,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,CAAC;IAChE,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC1B,CAAC;AAsBF;;GAEG;AACH,wBAAgB,yBAAyB;;;;;;;;;;;;;;;EAQxC;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mHAAmH;IACnH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,KAAK,CAAC,MAAM,EACvB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,CAAC,EAAE,gCAAgC,GACzC,sBAAsB,CAiFxB;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,EAAE,CAiCjG;AA2ED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,WAAW,EAC3B,uBAAuB,EAAE,UAAU,EACnC,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,MAAM,GACX,WAAW,GAAG,IAAI,CAyCpB"}