@loaders.gl/arrow 4.0.2 → 4.0.4
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.
- package/dist/arrow-loader.d.ts +6 -3
- package/dist/arrow-loader.d.ts.map +1 -1
- package/dist/arrow-loader.js +9 -1
- package/dist/arrow-loader.js.map +1 -1
- package/dist/arrow-worker.js +37 -537
- package/dist/arrow-writer.d.ts +2 -2
- package/dist/arrow-writer.d.ts.map +1 -1
- package/dist/arrow-writer.js.map +1 -1
- package/dist/dist.dev.js +1615 -246
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +31 -1
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +133 -23
- package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts +2 -1
- package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts.map +1 -1
- package/dist/geoarrow/convert-geoarrow-to-geojson.js +4 -0
- package/dist/geoarrow/convert-geoarrow-to-geojson.js.map +1 -1
- package/dist/geoarrow-loader.d.ts +19 -0
- package/dist/geoarrow-loader.d.ts.map +1 -0
- package/dist/geoarrow-loader.js +24 -0
- package/dist/geoarrow-loader.js.map +1 -0
- package/dist/geoarrow-writer.d.ts +9 -0
- package/dist/geoarrow-writer.d.ts.map +1 -0
- package/dist/geoarrow-writer.js +19 -0
- package/dist/geoarrow-writer.js.map +1 -0
- package/dist/index.cjs +508 -284
- package/dist/index.d.ts +9 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/arrow-table-batch.d.ts.map +1 -1
- package/dist/lib/arrow-table-batch.js.map +1 -1
- package/dist/lib/encode-arrow.d.ts.map +1 -1
- package/dist/lib/encode-arrow.js.map +1 -1
- package/dist/lib/encode-geoarrow.d.ts +15 -0
- package/dist/lib/encode-geoarrow.d.ts.map +1 -0
- package/dist/lib/encode-geoarrow.js +22 -0
- package/dist/lib/encode-geoarrow.js.map +1 -0
- package/dist/{lib → parsers}/parse-arrow-in-batches.d.ts +1 -1
- package/dist/parsers/parse-arrow-in-batches.d.ts.map +1 -0
- package/dist/parsers/parse-arrow-in-batches.js.map +1 -0
- package/dist/parsers/parse-arrow-sync.d.ts +6 -0
- package/dist/parsers/parse-arrow-sync.d.ts.map +1 -0
- package/dist/parsers/parse-arrow-sync.js +26 -0
- package/dist/parsers/parse-arrow-sync.js.map +1 -0
- package/dist/parsers/parse-geoarrow-in-batches.d.ts +6 -0
- package/dist/parsers/parse-geoarrow-in-batches.d.ts.map +1 -0
- package/dist/parsers/parse-geoarrow-in-batches.js +5 -0
- package/dist/parsers/parse-geoarrow-in-batches.js.map +1 -0
- package/dist/parsers/parse-geoarrow-sync.d.ts +6 -0
- package/dist/parsers/parse-geoarrow-sync.d.ts.map +1 -0
- package/dist/parsers/parse-geoarrow-sync.js +14 -0
- package/dist/parsers/parse-geoarrow-sync.js.map +1 -0
- package/dist/schema/convert-arrow-schema.d.ts.map +1 -1
- package/dist/schema/convert-arrow-schema.js +32 -5
- package/dist/schema/convert-arrow-schema.js.map +1 -1
- package/dist/tables/convert-arrow-to-columnar-table.d.ts +8 -0
- package/dist/tables/convert-arrow-to-columnar-table.d.ts.map +1 -0
- package/dist/tables/convert-arrow-to-columnar-table.js +14 -0
- package/dist/tables/convert-arrow-to-columnar-table.js.map +1 -0
- package/dist/tables/convert-arrow-to-geojson-table.d.ts +16 -0
- package/dist/tables/convert-arrow-to-geojson-table.d.ts.map +1 -0
- package/dist/tables/convert-arrow-to-geojson-table.js +33 -0
- package/dist/tables/convert-arrow-to-geojson-table.js.map +1 -0
- package/dist/tables/convert-columnar-to-row-table.d.ts +7 -0
- package/dist/tables/convert-columnar-to-row-table.d.ts.map +1 -0
- package/dist/tables/convert-columnar-to-row-table.js +18 -0
- package/dist/tables/convert-columnar-to-row-table.js.map +1 -0
- package/dist/triangulate-on-worker.d.ts +36 -0
- package/dist/triangulate-on-worker.d.ts.map +1 -0
- package/dist/triangulate-on-worker.js +14 -0
- package/dist/triangulate-on-worker.js.map +1 -0
- package/dist/triangulation-worker.js +880 -0
- package/dist/workers/arrow-worker.js +1 -1
- package/dist/workers/arrow-worker.js.map +1 -1
- package/dist/workers/triangulation-worker-node.d.ts +2 -0
- package/dist/workers/triangulation-worker-node.d.ts.map +1 -0
- package/dist/workers/triangulation-worker-node.js +2 -0
- package/dist/workers/triangulation-worker-node.js.map +1 -0
- package/dist/workers/triangulation-worker.d.ts +2 -0
- package/dist/workers/triangulation-worker.d.ts.map +1 -0
- package/dist/workers/triangulation-worker.js +24 -0
- package/dist/workers/triangulation-worker.js.map +1 -0
- package/package.json +9 -7
- package/src/arrow-loader.ts +25 -3
- package/src/arrow-writer.ts +2 -2
- package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +221 -30
- package/src/geoarrow/convert-geoarrow-to-geojson.ts +6 -2
- package/src/geoarrow-loader.ts +55 -0
- package/src/geoarrow-writer.ts +41 -0
- package/src/index.ts +30 -36
- package/src/lib/arrow-table-batch.ts +3 -0
- package/src/lib/encode-arrow.ts +3 -0
- package/src/lib/encode-geoarrow.ts +45 -0
- package/src/{lib → parsers}/parse-arrow-in-batches.ts +4 -2
- package/src/parsers/parse-arrow-sync.ts +38 -0
- package/src/parsers/parse-geoarrow-in-batches.ts +15 -0
- package/src/parsers/parse-geoarrow-sync.ts +22 -0
- package/src/schema/convert-arrow-schema.ts +32 -7
- package/src/tables/convert-arrow-to-columnar-table.ts +29 -0
- package/src/tables/convert-arrow-to-geojson-table.ts +54 -0
- package/src/tables/convert-columnar-to-row-table.ts +29 -0
- package/src/triangulate-on-worker.ts +47 -0
- package/src/workers/arrow-worker.ts +1 -1
- package/src/workers/triangulation-worker-node.ts +4 -0
- package/src/workers/triangulation-worker.ts +39 -0
- package/dist/lib/parse-arrow-in-batches.d.ts.map +0 -1
- package/dist/lib/parse-arrow-in-batches.js.map +0 -1
- package/dist/lib/parse-arrow-sync.d.ts +0 -5
- package/dist/lib/parse-arrow-sync.d.ts.map +0 -1
- package/dist/lib/parse-arrow-sync.js +0 -21
- package/dist/lib/parse-arrow-sync.js.map +0 -1
- package/dist/tables/convert-arrow-to-table.d.ts +0 -21
- package/dist/tables/convert-arrow-to-table.d.ts.map +0 -1
- package/dist/tables/convert-arrow-to-table.js +0 -37
- package/dist/tables/convert-arrow-to-table.js.map +0 -1
- package/src/lib/parse-arrow-sync.ts +0 -35
- package/src/tables/convert-arrow-to-table.ts +0 -68
- /package/dist/{lib → parsers}/parse-arrow-in-batches.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert-arrow-to-table.d.ts","sourceRoot":"","sources":["../../src/tables/convert-arrow-to-table.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAKlF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,cAAc,CAmB5F"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export function convertApacheArrowToArrowTable(arrowTable) {
|
|
2
|
-
return {
|
|
3
|
-
shape: 'arrow-table',
|
|
4
|
-
data: arrowTable
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
export function convertArrowToColumnarTable(table) {
|
|
8
|
-
const arrowTable = table.data;
|
|
9
|
-
const columnarTable = {};
|
|
10
|
-
for (const field of arrowTable.schema.fields) {
|
|
11
|
-
const arrowColumn = arrowTable.getChild(field.name);
|
|
12
|
-
const values = arrowColumn === null || arrowColumn === void 0 ? void 0 : arrowColumn.toArray();
|
|
13
|
-
columnarTable[field.name] = values;
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
shape: 'columnar-table',
|
|
17
|
-
data: columnarTable
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
export function convertColumnarToRowFormatTable(columnarTable) {
|
|
21
|
-
const tableKeys = Object.keys(columnarTable);
|
|
22
|
-
const tableRowsCount = columnarTable[tableKeys[0]].length;
|
|
23
|
-
const rowFormatTable = [];
|
|
24
|
-
for (let index = 0; index < tableRowsCount; index++) {
|
|
25
|
-
const tableItem = {};
|
|
26
|
-
for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {
|
|
27
|
-
const fieldName = tableKeys[keyIndex];
|
|
28
|
-
tableItem[fieldName] = columnarTable[fieldName][index];
|
|
29
|
-
}
|
|
30
|
-
rowFormatTable.push(tableItem);
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
shape: 'object-row-table',
|
|
34
|
-
data: rowFormatTable
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=convert-arrow-to-table.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert-arrow-to-table.js","names":["convertApacheArrowToArrowTable","arrowTable","shape","data","convertArrowToColumnarTable","table","columnarTable","field","schema","fields","arrowColumn","getChild","name","values","toArray","convertColumnarToRowFormatTable","tableKeys","Object","keys","tableRowsCount","length","rowFormatTable","index","tableItem","keyIndex","fieldName","push"],"sources":["../../src/tables/convert-arrow-to-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';\nimport type * as arrow from 'apache-arrow';\nimport type {ArrowTable} from '../lib/arrow-table';\n\n/**\n * Wrap an apache arrow table in a loaders.gl table wrapper.\n * From this additional conversions are available.\n * @param arrowTable\n * @returns\n */\nexport function convertApacheArrowToArrowTable(arrowTable: arrow.Table): ArrowTable {\n return {\n shape: 'arrow-table',\n data: arrowTable\n };\n}\n\n/**\n * Convert an Apache Arrow table to a ColumnarTable\n * @note Currently does not convert schema\n */\nexport function convertArrowToColumnarTable(table: ArrowTable): ColumnarTable {\n // TODO - avoid calling `getColumn` on columns we are not interested in?\n // Add options object?\n\n const arrowTable = table.data;\n const columnarTable = {};\n\n for (const field of arrowTable.schema.fields) {\n // This (is intended to) coalesce all record batches into a single typed array\n const arrowColumn = arrowTable.getChild(field.name);\n const values = arrowColumn?.toArray();\n columnarTable[field.name] = values;\n }\n\n return {\n shape: 'columnar-table',\n data: columnarTable\n };\n}\n\n/**\n *\n * @note - should be part of schema module\n */\nexport function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {\n const tableKeys = Object.keys(columnarTable);\n const tableRowsCount = columnarTable[tableKeys[0]].length;\n\n const rowFormatTable: {}[] = [];\n\n for (let index = 0; index < tableRowsCount; index++) {\n const tableItem = {};\n for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {\n const fieldName = tableKeys[keyIndex];\n tableItem[fieldName] = columnarTable[fieldName][index];\n }\n rowFormatTable.push(tableItem);\n }\n\n return {\n shape: 'object-row-table',\n data: rowFormatTable\n };\n}\n"],"mappings":"AAaA,OAAO,SAASA,8BAA8BA,CAACC,UAAuB,EAAc;EAClF,OAAO;IACLC,KAAK,EAAE,aAAa;IACpBC,IAAI,EAAEF;EACR,CAAC;AACH;AAMA,OAAO,SAASG,2BAA2BA,CAACC,KAAiB,EAAiB;EAI5E,MAAMJ,UAAU,GAAGI,KAAK,CAACF,IAAI;EAC7B,MAAMG,aAAa,GAAG,CAAC,CAAC;EAExB,KAAK,MAAMC,KAAK,IAAIN,UAAU,CAACO,MAAM,CAACC,MAAM,EAAE;IAE5C,MAAMC,WAAW,GAAGT,UAAU,CAACU,QAAQ,CAACJ,KAAK,CAACK,IAAI,CAAC;IACnD,MAAMC,MAAM,GAAGH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,OAAO,CAAC,CAAC;IACrCR,aAAa,CAACC,KAAK,CAACK,IAAI,CAAC,GAAGC,MAAM;EACpC;EAEA,OAAO;IACLX,KAAK,EAAE,gBAAgB;IACvBC,IAAI,EAAEG;EACR,CAAC;AACH;AAMA,OAAO,SAASS,+BAA+BA,CAACT,aAA4B,EAAkB;EAC5F,MAAMU,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACZ,aAAa,CAAC;EAC5C,MAAMa,cAAc,GAAGb,aAAa,CAACU,SAAS,CAAC,CAAC,CAAC,CAAC,CAACI,MAAM;EAEzD,MAAMC,cAAoB,GAAG,EAAE;EAE/B,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGH,cAAc,EAAEG,KAAK,EAAE,EAAE;IACnD,MAAMC,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,IAAIC,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGR,SAAS,CAACI,MAAM,EAAEI,QAAQ,EAAE,EAAE;MAC9D,MAAMC,SAAS,GAAGT,SAAS,CAACQ,QAAQ,CAAC;MACrCD,SAAS,CAACE,SAAS,CAAC,GAAGnB,aAAa,CAACmB,SAAS,CAAC,CAACH,KAAK,CAAC;IACxD;IACAD,cAAc,CAACK,IAAI,CAACH,SAAS,CAAC;EAChC;EAEA,OAAO;IACLrB,KAAK,EAAE,kBAAkB;IACzBC,IAAI,EAAEkB;EACR,CAAC;AACH"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';
|
|
2
|
-
import type {ArrowTable} from './arrow-table';
|
|
3
|
-
import {convertTable} from '@loaders.gl/schema';
|
|
4
|
-
import * as arrow from 'apache-arrow';
|
|
5
|
-
import type {ArrowLoaderOptions} from '../arrow-loader';
|
|
6
|
-
import {
|
|
7
|
-
convertApacheArrowToArrowTable,
|
|
8
|
-
convertArrowToColumnarTable
|
|
9
|
-
} from '../tables/convert-arrow-to-table';
|
|
10
|
-
|
|
11
|
-
// Parses arrow to a columnar table
|
|
12
|
-
export default function parseArrowSync(
|
|
13
|
-
arrayBuffer,
|
|
14
|
-
options?: ArrowLoaderOptions
|
|
15
|
-
): ArrowTable | ColumnarTable | ObjectRowTable {
|
|
16
|
-
const apacheArrowTable = arrow.tableFromIPC([new Uint8Array(arrayBuffer)]);
|
|
17
|
-
const arrowTable = convertApacheArrowToArrowTable(apacheArrowTable);
|
|
18
|
-
|
|
19
|
-
const shape = options?.arrow?.shape || 'arrow-table';
|
|
20
|
-
switch (shape) {
|
|
21
|
-
case 'arrow-table':
|
|
22
|
-
return arrowTable;
|
|
23
|
-
|
|
24
|
-
case 'columnar-table':
|
|
25
|
-
return convertArrowToColumnarTable(arrowTable);
|
|
26
|
-
|
|
27
|
-
case 'object-row-table':
|
|
28
|
-
const columnarTable = convertArrowToColumnarTable(arrowTable);
|
|
29
|
-
return convertTable(columnarTable, 'object-row-table');
|
|
30
|
-
|
|
31
|
-
default:
|
|
32
|
-
// TODO
|
|
33
|
-
throw new Error(shape);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// loaders.gl, MIT license
|
|
2
|
-
// Copyright (c) vis.gl contributors
|
|
3
|
-
|
|
4
|
-
import type {ColumnarTable, ObjectRowTable} from '@loaders.gl/schema';
|
|
5
|
-
import type * as arrow from 'apache-arrow';
|
|
6
|
-
import type {ArrowTable} from '../lib/arrow-table';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Wrap an apache arrow table in a loaders.gl table wrapper.
|
|
10
|
-
* From this additional conversions are available.
|
|
11
|
-
* @param arrowTable
|
|
12
|
-
* @returns
|
|
13
|
-
*/
|
|
14
|
-
export function convertApacheArrowToArrowTable(arrowTable: arrow.Table): ArrowTable {
|
|
15
|
-
return {
|
|
16
|
-
shape: 'arrow-table',
|
|
17
|
-
data: arrowTable
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Convert an Apache Arrow table to a ColumnarTable
|
|
23
|
-
* @note Currently does not convert schema
|
|
24
|
-
*/
|
|
25
|
-
export function convertArrowToColumnarTable(table: ArrowTable): ColumnarTable {
|
|
26
|
-
// TODO - avoid calling `getColumn` on columns we are not interested in?
|
|
27
|
-
// Add options object?
|
|
28
|
-
|
|
29
|
-
const arrowTable = table.data;
|
|
30
|
-
const columnarTable = {};
|
|
31
|
-
|
|
32
|
-
for (const field of arrowTable.schema.fields) {
|
|
33
|
-
// This (is intended to) coalesce all record batches into a single typed array
|
|
34
|
-
const arrowColumn = arrowTable.getChild(field.name);
|
|
35
|
-
const values = arrowColumn?.toArray();
|
|
36
|
-
columnarTable[field.name] = values;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
shape: 'columnar-table',
|
|
41
|
-
data: columnarTable
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
* @note - should be part of schema module
|
|
48
|
-
*/
|
|
49
|
-
export function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {
|
|
50
|
-
const tableKeys = Object.keys(columnarTable);
|
|
51
|
-
const tableRowsCount = columnarTable[tableKeys[0]].length;
|
|
52
|
-
|
|
53
|
-
const rowFormatTable: {}[] = [];
|
|
54
|
-
|
|
55
|
-
for (let index = 0; index < tableRowsCount; index++) {
|
|
56
|
-
const tableItem = {};
|
|
57
|
-
for (let keyIndex = 0; keyIndex < tableKeys.length; keyIndex++) {
|
|
58
|
-
const fieldName = tableKeys[keyIndex];
|
|
59
|
-
tableItem[fieldName] = columnarTable[fieldName][index];
|
|
60
|
-
}
|
|
61
|
-
rowFormatTable.push(tableItem);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return {
|
|
65
|
-
shape: 'object-row-table',
|
|
66
|
-
data: rowFormatTable
|
|
67
|
-
};
|
|
68
|
-
}
|
|
File without changes
|