{"_id":"@afterrealism/deck.gl-raster","_rev":"4-a4713ddd486c10eaa7710dc7f23cd77e","name":"@afterrealism/deck.gl-raster","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@afterrealism/deck.gl-raster","version":"0.1.0","keywords":["deck.gl","geotiff","cog","cloud-optimized-geotiff","raster","visualization","webgl","gpu"],"author":{"name":"Development Seed"},"license":"MIT","_id":"@afterrealism/deck.gl-raster@0.1.0","maintainers":[{"name":"afterrealism","email":"contact@afterrealism.com"}],"homepage":"https://github.com/developmentseed/deck.gl-raster#readme","bugs":{"url":"https://github.com/developmentseed/deck.gl-raster/issues"},"dist":{"shasum":"a08a42ce97a169529f7e74abb26fb8545ec5a5ab","tarball":"https://registry.npmjs.org/@afterrealism/deck.gl-raster/-/deck.gl-raster-0.1.0.tgz","fileCount":147,"integrity":"sha512-SRi2o3WBhb/WLBJaTyC6qVunJmivhVjRUMK/HgS4F73pCAbYP1d/gKFh+BrjHIHcogZ+CA4o0rnJOeI2BOGJEg==","signatures":[{"sig":"MEUCIDi2jHfvNfQspFVKnGxWYRvHlfDokGsFb7TZDFe3CkgvAiEAyrhpB9VGxbXcJroLwIMbBaEVWj1M/4gs+oie6vfT64U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325393},"main":"./dist/index.js","pnpm":{"overrides":{"@luma.gl/core":"9.2.5","@luma.gl/gltf":"9.2.5","@luma.gl/webgl":"9.2.5","@luma.gl/engine":"9.2.5","@luma.gl/constants":"9.2.5","@luma.gl/shadertools":"9.2.5"}},"type":"module","types":"./dist/index.d.ts","volta":{"node":"24.11.1","pnpm":"10.25.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./affine":{"types":"./dist/reproject/affine/index.d.ts","default":"./dist/reproject/affine/index.js"},"./gpu-modules":{"types":"./dist/gpu-modules/index.d.ts","default":"./dist/gpu-modules/index.js"}},"gitHead":"c1f8343fd68e492217f4f224abd5a36f4317785d","scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc --build tsconfig.build.json","check":"biome check .","clean":"rm -rf dist","format":"biome format .","lint:fix":"biome lint --write .","check:fix":"biome check --write .","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"vitest","build:watch":"tsc --build tsconfig.build.json --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"afterrealism","email":"contact@afterrealism.com"},"repository":{"url":"git+https://github.com/developmentseed/deck.gl-raster.git","type":"git"},"_npmVersion":"11.6.2","description":"GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"geotiff":"^2.1.3","@math.gl/core":"^4.1.0","@math.gl/culling":"^4.1.0","@math.gl/web-mercator":"^4.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.25.0","devDependencies":{"jsdom":"^27.4.0","vitest":"^4.0.16","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^25.0.3","@luma.gl/core":"9.2.5","@biomejs/biome":"^2.3.10","@luma.gl/shadertools":"9.2.5"},"peerDependencies":{"@deck.gl/core":"^9.2.5","@luma.gl/core":"^9.2.5","@deck.gl/layers":"^9.2.5","@deck.gl/geo-layers":"^9.2.5","@deck.gl/mesh-layers":"^9.2.5","@luma.gl/shadertools":"^9.2.5"},"_npmOperationalInternal":{"tmp":"tmp/deck.gl-raster_0.1.0_1768080154248_0.8173040385305388","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@afterrealism/deck.gl-raster","version":"0.1.1","keywords":["deck.gl","geotiff","cog","cloud-optimized-geotiff","raster","visualization","webgl","gpu"],"author":{"name":"Development Seed"},"license":"MIT","_id":"@afterrealism/deck.gl-raster@0.1.1","maintainers":[{"name":"afterrealism","email":"contact@afterrealism.com"}],"homepage":"https://github.com/developmentseed/deck.gl-raster#readme","bugs":{"url":"https://github.com/developmentseed/deck.gl-raster/issues"},"dist":{"shasum":"8ccccfb9b03e964533421a2c92ac7b3768a0b5d3","tarball":"https://registry.npmjs.org/@afterrealism/deck.gl-raster/-/deck.gl-raster-0.1.1.tgz","fileCount":147,"integrity":"sha512-XpZj3MTxfW1phizuqpxC7m7bUBDiGX16Xv5FJ3MfN99N1HyxglG5+dmgdvGSMHEtpp05CKx8Jb31ZVuEjrZKUg==","signatures":[{"sig":"MEUCIQDdn6tcAtvs4r4ENVyJ+dx/BLV0krjxNpM9Z3iefMU9SwIgJJoog/jmaag3Ux6EPhqJtGouVTZnEWu5NclBuj+5FGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325393},"main":"./dist/index.js","pnpm":{"overrides":{"@luma.gl/core":"9.2.5","@luma.gl/gltf":"9.2.5","@luma.gl/webgl":"9.2.5","@luma.gl/engine":"9.2.5","@luma.gl/constants":"9.2.5","@luma.gl/shadertools":"9.2.5"}},"type":"module","types":"./dist/index.d.ts","volta":{"node":"24.11.1","pnpm":"10.25.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./affine":{"types":"./dist/reproject/affine/index.d.ts","default":"./dist/reproject/affine/index.js"},"./gpu-modules":{"types":"./dist/gpu-modules/index.d.ts","default":"./dist/gpu-modules/index.js"}},"gitHead":"44db9f8790a3abf7def905551854c095846111e0","scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc --build tsconfig.build.json","check":"biome check .","clean":"rm -rf dist","format":"biome format .","lint:fix":"biome lint --write .","check:fix":"biome check --write .","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"vitest","build:watch":"tsc --build tsconfig.build.json --watch","prepublishOnly":"npm run build"},"_npmUser":{"name":"afterrealism","email":"contact@afterrealism.com"},"repository":{"url":"git+https://github.com/developmentseed/deck.gl-raster.git","type":"git"},"_npmVersion":"11.6.2","description":"GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)","directories":{},"sideEffects":false,"_nodeVersion":"25.1.0","dependencies":{"geotiff":"^2.1.3","@math.gl/core":"^4.1.0","@math.gl/culling":"^4.1.0","@math.gl/web-mercator":"^4.1.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.25.0","devDependencies":{"jsdom":"^27.4.0","vitest":"^4.0.16","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^25.0.3","@luma.gl/core":"9.2.5","@biomejs/biome":"^2.3.10","@luma.gl/shadertools":"9.2.5"},"peerDependencies":{"@deck.gl/core":"^9.2.5","@luma.gl/core":"^9.2.5","@deck.gl/layers":"^9.2.5","@deck.gl/geo-layers":"^9.2.5","@deck.gl/mesh-layers":"^9.2.5","@luma.gl/shadertools":"^9.2.5"},"_npmOperationalInternal":{"tmp":"tmp/deck.gl-raster_0.1.1_1768080376522_0.049218547413585334","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@afterrealism/deck.gl-raster","version":"0.1.3","keywords":["deck.gl","geotiff","cog","cloud-optimized-geotiff","raster","visualization","webgl","gpu"],"author":{"name":"Development Seed"},"license":"MIT","_id":"@afterrealism/deck.gl-raster@0.1.3","maintainers":[{"name":"afterrealism","email":"contact@afterrealism.com"}],"homepage":"https://github.com/afterrealism/deck.gl-raster#readme","bugs":{"url":"https://github.com/afterrealism/deck.gl-raster/issues"},"dist":{"shasum":"eef9e6d8100bb5d51943d1d5647e1c627af8863f","tarball":"https://registry.npmjs.org/@afterrealism/deck.gl-raster/-/deck.gl-raster-0.1.3.tgz","fileCount":147,"integrity":"sha512-xMFLdHDvc+sl/S/l+9f7DcdqGTk8hD7Tod8xHDU3Yt9rJjfN8uTNa8fOcsa8mE1Zwnyo/WQQtHXEge369VqOWA==","signatures":[{"sig":"MEYCIQDSIYP5SQXq/Lr7oBXWunDCo5BqetlbWSrAcYi8aQsHdAIhAPKExaMCNZyc+ECQsHohkiXNte8UIdwggbvYdW58DvVq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afterrealism%2fdeck.gl-raster@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324817},"main":"./dist/index.js","type":"module","_from":"file:afterrealism-deck.gl-raster-0.1.3.tgz","types":"./dist/index.d.ts","volta":{"node":"24.11.1","pnpm":"10.25.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./affine":{"types":"./dist/reproject/affine/index.d.ts","default":"./dist/reproject/affine/index.js"},"./gpu-modules":{"types":"./dist/gpu-modules/index.d.ts","default":"./dist/gpu-modules/index.js"}},"scripts":{"test":"vitest run","build":"tsc --build tsconfig.build.json","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"vitest","build:watch":"tsc --build tsconfig.build.json --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac31dda8-d0db-4d83-af66-0d8bb7e1d5ea"}},"_resolved":"/tmp/a84ab2285272cb1b3e26f87862c0dc33/afterrealism-deck.gl-raster-0.1.3.tgz","_integrity":"sha512-xMFLdHDvc+sl/S/l+9f7DcdqGTk8hD7Tod8xHDU3Yt9rJjfN8uTNa8fOcsa8mE1Zwnyo/WQQtHXEge369VqOWA==","repository":{"url":"git+https://github.com/afterrealism/deck.gl-raster.git","type":"git"},"_npmVersion":"11.6.2","description":"GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"geotiff":"^2.1.3","@math.gl/core":"^4.1.0","@math.gl/culling":"^4.1.0","@math.gl/web-mercator":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^27.4.0","vitest":"^4.0.16","publint":"^0.3.16","typescript":"^5.9.3","@types/node":"^25.0.3","@luma.gl/core":"9.2.5","@luma.gl/shadertools":"9.2.5"},"peerDependencies":{"@deck.gl/core":"^9.2.5","@luma.gl/core":"^9.2.5","@deck.gl/layers":"^9.2.5","@deck.gl/geo-layers":"^9.2.5","@deck.gl/mesh-layers":"^9.2.5","@luma.gl/shadertools":"^9.2.5"},"_npmOperationalInternal":{"tmp":"tmp/deck.gl-raster_0.1.3_1768110668335_0.2377917430565546","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@afterrealism/deck.gl-raster","version":"0.1.4","description":"GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./gpu-modules":{"types":"./dist/gpu-modules/index.d.ts","default":"./dist/gpu-modules/index.js"},"./affine":{"types":"./dist/reproject/affine/index.d.ts","default":"./dist/reproject/affine/index.js"}},"sideEffects":false,"keywords":["deck.gl","geotiff","cog","cloud-optimized-geotiff","raster","visualization","webgl","gpu"],"author":{"name":"Development Seed"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/afterrealism/deck.gl-raster.git"},"devDependencies":{"@luma.gl/core":"9.2.5","@luma.gl/shadertools":"9.2.5","@types/node":"^25.0.3","jsdom":"^27.4.0","publint":"^0.3.16","typescript":"^5.9.3","vitest":"^4.0.16"},"peerDependencies":{"@deck.gl/core":"^9.2.5","@deck.gl/geo-layers":"^9.2.5","@deck.gl/layers":"^9.2.5","@deck.gl/mesh-layers":"^9.2.5","@luma.gl/core":"^9.2.5","@luma.gl/shadertools":"^9.2.5"},"dependencies":{"@math.gl/core":"^4.1.0","@math.gl/culling":"^4.1.0","@math.gl/web-mercator":"^4.1.0","geotiff":"^2.1.3"},"volta":{"node":"24.11.1","pnpm":"10.25.0"},"scripts":{"build":"tsc --build tsconfig.build.json","build:watch":"tsc --build tsconfig.build.json --watch","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"_id":"@afterrealism/deck.gl-raster@0.1.4","bugs":{"url":"https://github.com/afterrealism/deck.gl-raster/issues"},"homepage":"https://github.com/afterrealism/deck.gl-raster#readme","_integrity":"sha512-3N4P3utdTTKhv6E6yW0Okqm3OyoKEkQe+inGEmck4YGmmTFvXT1CNf2+fS/O3Z8FRUwbe4dsNqWXoMXXX/hong==","_resolved":"/tmp/865ebd4e76cc8a641456c25fa472300b/afterrealism-deck.gl-raster-0.1.4.tgz","_from":"file:afterrealism-deck.gl-raster-0.1.4.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-3N4P3utdTTKhv6E6yW0Okqm3OyoKEkQe+inGEmck4YGmmTFvXT1CNf2+fS/O3Z8FRUwbe4dsNqWXoMXXX/hong==","shasum":"664cffd845eb89449dda67e05a27e5f24828b022","tarball":"https://registry.npmjs.org/@afterrealism/deck.gl-raster/-/deck.gl-raster-0.1.4.tgz","fileCount":155,"unpackedSize":430401,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@afterrealism%2fdeck.gl-raster@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJxEJbJQ0oSzHvvBUSnIC5Sy1janGu5zT4onYTugO+fgIgcFyylzqpxzereRr9HouYg2ppfMv70XmIdxStUZyzA8g="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ac31dda8-d0db-4d83-af66-0d8bb7e1d5ea"}},"directories":{},"maintainers":[{"name":"afterrealism","email":"contact@afterrealism.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/deck.gl-raster_0.1.4_1775830330192_0.20329134102047086"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-10T21:22:34.156Z","modified":"2026-04-10T14:12:10.585Z","0.1.0":"2026-01-10T21:22:34.409Z","0.1.1":"2026-01-10T21:26:16.730Z","0.1.3":"2026-01-11T05:51:08.471Z","0.1.4":"2026-04-10T14:12:10.327Z"},"bugs":{"url":"https://github.com/afterrealism/deck.gl-raster/issues"},"author":{"name":"Development Seed"},"license":"MIT","homepage":"https://github.com/afterrealism/deck.gl-raster#readme","keywords":["deck.gl","geotiff","cog","cloud-optimized-geotiff","raster","visualization","webgl","gpu"],"repository":{"type":"git","url":"git+https://github.com/afterrealism/deck.gl-raster.git"},"description":"GPU-accelerated Cloud-Optimized GeoTIFF visualization in deck.gl (Web Mercator only)","maintainers":[{"name":"afterrealism","email":"contact@afterrealism.com"}],"readme":"# deck.gl-raster\n\n> **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](https://github.com/developmentseed/deck.gl-raster).\n\nGPU-accelerated [Cloud-Optimized GeoTIFF][cogeo] (COG) visualization in [deck.gl].\n\n[cogeo]: https://cogeo.org/\n[deck.gl]: https://deck.gl/\n\n## Installation\n\n```bash\nnpm install @afterrealism/deck.gl-raster\n```\n\n## Quick Start\n\n```typescript\nimport { Deck } from '@deck.gl/core';\nimport { COGLayer } from '@afterrealism/deck.gl-raster';\n\nnew Deck({\n  initialViewState: {\n    longitude: 0,\n    latitude: 0,\n    zoom: 2\n  },\n  controller: true,\n  layers: [\n    new COGLayer({\n      id: 'cog-layer',\n      geotiff: 'https://example.com/my-cog.tif'\n    })\n  ]\n});\n```\n\n## Single-band colormap\n\nFor continuous single-band float rasters (DEM, NDVI, temperature, SAR backscatter), pass a named ramp and a data range:\n\n```typescript\nnew COGLayer({\n  id: 'dem',\n  geotiff: 'https://example.com/dem.tif',    // float32 single-band\n  colormap: 'viridis',                        // or 'magma' | 'plasma' | 'turbo' | 'terrain'\n  rescaleRange: [0, 4000],                    // meters; use [-1, 1] for NDVI\n});\n```\n\n`colormap` also accepts a custom 256-entry RGBA8 `Uint8Array`, or a pre-built luma.gl `Texture` for fully custom LUTs:\n\n```typescript\nimport { createColormapTexture } from '@afterrealism/deck.gl-raster/gpu-modules';\n\n// Custom LUT: 256 * 4 bytes, RGBA8\nconst customLut = new Uint8Array(256 * 4);\n// ... fill with your colors ...\n\nnew COGLayer({\n  geotiff: 'https://example.com/ndvi.tif',\n  colormap: customLut,\n  rescaleRange: [-1, 1],\n});\n```\n\nRuntime colormap changes rebuild the render pipeline without re-fetching the COG. Previous LUT textures are destroyed automatically on swap and on layer teardown.\n\n**Caveats:**\n- 8-bit paletted COGs use the embedded palette — `colormap` is ignored.\n- Multi-band float and signed-integer rasters are not yet supported.\n- `GeoTIFFLayer` (non-tiled) does not yet support these props.\n- Float pipelines require `rescaleRange`; missing it throws at parse time.\n\n## Examples\n\nSvelteKit examples are included:\n\n| Example | Description |\n| ------- | ----------- |\n| `cog-basic-sveltekit` | Basic COG visualization |\n| `land-cover-sveltekit` | Land cover COG with colormap |\n| `drone-sveltekit` | Drone orthophoto visualization |\n\n### Running Examples\n\n```bash\n# Install and build\npnpm install\npnpm build\n\n# Run an example\ncd examples/cog-basic-sveltekit\npnpm dev\n```\n\nDev server starts at `http://localhost:5173`.\n\n## Development\n\n```bash\npnpm install      # Install dependencies\npnpm build        # Build\npnpm build:watch  # Watch mode\npnpm test         # Run tests\npnpm check:fix    # Lint and format\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}