@afterrealism/deck.gl-raster
v0.1.4
Published
GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)
Downloads
81
Maintainers
Readme
deck.gl-raster
Note: This is an experimental fork that only accepts data in Web Mercator (EPSG:3857) and aggressively loads tiles. For the original library with full projection support, use developmentseed/deck.gl-raster.
GPU-accelerated Cloud-Optimized GeoTIFF (COG) visualization in deck.gl.
Installation
npm install @afterrealism/deck.gl-rasterQuick Start
import { Deck } from '@deck.gl/core';
import { COGLayer } from '@afterrealism/deck.gl-raster';
new Deck({
initialViewState: {
longitude: 0,
latitude: 0,
zoom: 2
},
controller: true,
layers: [
new COGLayer({
id: 'cog-layer',
geotiff: 'https://example.com/my-cog.tif'
})
]
});Single-band colormap
For continuous single-band float rasters (DEM, NDVI, temperature, SAR backscatter), pass a named ramp and a data range:
new COGLayer({
id: 'dem',
geotiff: 'https://example.com/dem.tif', // float32 single-band
colormap: 'viridis', // or 'magma' | 'plasma' | 'turbo' | 'terrain'
rescaleRange: [0, 4000], // meters; use [-1, 1] for NDVI
});colormap also accepts a custom 256-entry RGBA8 Uint8Array, or a pre-built luma.gl Texture for fully custom LUTs:
import { createColormapTexture } from '@afterrealism/deck.gl-raster/gpu-modules';
// Custom LUT: 256 * 4 bytes, RGBA8
const customLut = new Uint8Array(256 * 4);
// ... fill with your colors ...
new COGLayer({
geotiff: 'https://example.com/ndvi.tif',
colormap: customLut,
rescaleRange: [-1, 1],
});Runtime colormap changes rebuild the render pipeline without re-fetching the COG. Previous LUT textures are destroyed automatically on swap and on layer teardown.
Caveats:
- 8-bit paletted COGs use the embedded palette —
colormapis ignored. - Multi-band float and signed-integer rasters are not yet supported.
GeoTIFFLayer(non-tiled) does not yet support these props.- Float pipelines require
rescaleRange; missing it throws at parse time.
Examples
SvelteKit examples are included:
| Example | Description |
| ------- | ----------- |
| cog-basic-sveltekit | Basic COG visualization |
| land-cover-sveltekit | Land cover COG with colormap |
| drone-sveltekit | Drone orthophoto visualization |
Running Examples
# Install and build
pnpm install
pnpm build
# Run an example
cd examples/cog-basic-sveltekit
pnpm devDev server starts at http://localhost:5173.
Development
pnpm install # Install dependencies
pnpm build # Build
pnpm build:watch # Watch mode
pnpm test # Run tests
pnpm check:fix # Lint and formatLicense
MIT
