Socket
Socket
Sign inDemoInstall

lerc

Package Overview
Dependencies
0
Maintainers
3
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    lerc

Rapid decoding of Lerc compressed raster data for any standard pixel type.


Version published
Weekly downloads
265K
increased by5.36%
Maintainers
3
Install size
217 kB
Created
Weekly downloads
 

Readme

Source

npm version

Lerc JS

Rapid decoding of Lerc compressed raster data for any standard pixel type, not just rgb or byte.

Breaking changes

  • Web Assembly support is now required.
  • Lerc.load() must be invoked and the returned promise must be resolved prior to Lerc.decode. This only needs to be done once per worker (or the main thread). There's no extra cost when invoked multiple times as the internal wasm loading promise is cached.

Get started

npm install lerc

// es module
import * as Lerc from 'lerc';

// commonJS
const Lerc = require('lerc');
// use umd via a script tag
<script type="text/javascript" src="https://unpkg.com/lerc@latest/LercDecode.min.js"></script>

Sample usage

await Lerc.load();

const arrayBuffer = await fetch('http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer/tile/0/0/0')
  .then(response => response.arrayBuffer());
const pixelBlock = Lerc.decode(arrayBuffer);
const { height, width, pixels, mask } = pixelBlock;
for (let i = 0; i < height; i++) {
  for (let j = 0; j < width; j++) {
    if (!mask || mask[i * width + j]) {
      // do something with valid pixel (i,j)
    }
  }
}

// use options
const pixelBlock = Lerc.decode(arrayBuffer, {
  inputOffset: 10, // start from the 10th byte (default is 0)
  returnInterleaved: true // only applicable to n-depth lerc blobs (default is false)
});

API Reference

Lerc

A module for decoding LERC blobs.

load([options]) ⇒ Promise

Load the dependencies (web assembly). Check whether dependencies has been loaded using Lerc.isLoaded(). The loading promise is cached so it can be invoked multiple times if needed.

Kind: Exported function

ParamTypeDescription
[options.locateFile](wasmFileName?: string, scriptDir?: string) => stringThe function to locate lerc-wasm.wasm. Used when the web assembly file is moved to a different location.

decode(input, [options]) ⇒ Object

A function for decoding both LERC1 and LERC2 byte streams capable of handling multiband pixel blocks for various pixel types.

Kind: Exported function

ParamTypeDescription
inputArrayBufferThe LERC input byte stream
[options]objectThe decoding options below are optional.
[options.inputOffset]numberThe number of bytes to skip in the input byte stream. A valid Lerc file is expected at that position.
[options.noDataValue]numberIt is recommended to use the returned mask instead of setting this value.
(Deprecated) [options.returnPixelInterleavedDims]booleanwill be removed in next release, use returnInterleaved instead.
[options.returnInterleaved]boolean(ndepth LERC2 only) If true, returned depth values are pixel-interleaved.

Result Object Properties

NameTypeDescription
widthnumberWidth of decoded image.
heightnumberHeight of decoded image.
pixelsarray[band1, band2, …] Each band is a typed array of width * height * depthCount.
pixelTypestringThe type of pixels represented in the output.
maskmaskTyped array with a size of width*height, or null if all pixels are valid.
statisticsarray[statistics_band1, statistics_band2, …] Each element is a statistics object representing min and max values
(Deprecated) dimCountnumberWill be removed in next release, use depthCount instead.
depthCountnumberDepth count
[bandMasks]array[band1_mask, band2_mask, …] Each band is a Uint8Array of width * height * depthCount.

Licensing

Copyright © 2017-2023 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A local copy of the license and additional notices are located with the source distribution at:

http://github.com/Esri/lerc/

Keywords

FAQs

Last updated on 30 Oct 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc