UNPKG

@loaders.gl/geoarrow

Version:

GeoArrow columnar geometry encoding and decoding

32 lines (31 loc) 1.31 kB
// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import * as arrow from 'apache-arrow'; import { getDataTypeFromArray, deserializeArrowType } from '@loaders.gl/schema-utils'; export function isListFixedSizeList(vector) { return vector.type instanceof arrow.FixedSizeList; } export function getListFixedSizeListSize(vector) { return vector.type instanceof arrow.FixedSizeList ? vector.type.listSize : 1; } /** Get Arrow FixedSizeList vector from a typed array */ export function getListFixedSizeListVector(indexes, typedArray, stride) { const data = getFixedSizeListData(typedArray, stride); return new arrow.Vector([data]); } /** Get Arrow FixedSizeList vector from a typed array */ export function getFixedSizeListData(typedArray, stride) { const listType = getFixedSizeListType(typedArray, stride); const data = new arrow.Data(listType, 0, typedArray.length / stride, 0, [ typedArray ]); return data; } /** Get Arrow FixedSizeList vector from a typed array */ export function getFixedSizeListType(typedArray, stride) { const { type } = getDataTypeFromArray(typedArray); const arrowType = deserializeArrowType(type); const listType = new arrow.FixedSizeList(stride, new arrow.Field('value', arrowType)); return listType; }