@basemaps/cli-raster 8.11.1 → 8.11.5

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.
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ import assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+ import { findOptimialCoveringZoomOffset } from '../tile.cover.js';
4
+ const TileSize = 512;
5
+ function rawDataSize(imageryType) {
6
+ switch (imageryType) {
7
+ case 'uint8':
8
+ return 1;
9
+ case 'uint16':
10
+ return 2;
11
+ case 'float32':
12
+ return 4;
13
+ default:
14
+ throw new Error(`Unknown imagery type: ${imageryType}`);
15
+ }
16
+ }
17
+ function rawTileSize(sourceBands) {
18
+ let size = 0;
19
+ for (const b of sourceBands)
20
+ size += rawDataSize(b.type);
21
+ return size * TileSize * TileSize;
22
+ }
23
+ function tileCount(zoomOffset) {
24
+ let count = 0;
25
+ for (let z = 0; z < zoomOffset; z++) {
26
+ // z:0 - 1x1 - 1 tile
27
+ // z:1 - 2x2 - 4 tiles
28
+ // z:3 - 4x4 - 16 tiles
29
+ // z:3 - 8x8 - 64 tiles
30
+ count = count + 2 ** z * 2 ** z;
31
+ }
32
+ return count;
33
+ }
34
+ function estimatedCogSize(zoomOffset, sourceBands) {
35
+ const tileCountValue = tileCount(zoomOffset);
36
+ const tileSizeValue = rawTileSize(sourceBands);
37
+ return tileCountValue * tileSizeValue;
38
+ }
39
+ describe('coveringOffset', () => {
40
+ const uint8 = { type: 'uint8' };
41
+ const float32 = { type: 'float32' };
42
+ const uint16 = { type: 'uint16' };
43
+ // TODO use these estimated sizes to determine if the covering zoom level offset is ok
44
+ it('should calculate raw size of a 6 level cog correctly', () => {
45
+ assert.equal(tileCount(1), 1);
46
+ assert.equal(tileCount(2), 1 + 4);
47
+ assert.equal(tileCount(3), 1 + 4 + 16);
48
+ assert.equal(tileCount(4), 1 + 4 + 16 + 64);
49
+ assert.equal(tileCount(5), 1 + 4 + 16 + 64 + 256);
50
+ assert.equal(estimatedCogSize(1, [uint8]), 1 * 512 * 512 * 1);
51
+ assert.equal(estimatedCogSize(1, [uint16]), 1 * 512 * 512 * 2);
52
+ assert.equal(estimatedCogSize(1, [uint16, uint16]), 1 * 512 * 512 * 2 * 2);
53
+ assert.equal(estimatedCogSize(1, [float32]), 1 * 512 * 512 * 4);
54
+ rawTileSize([uint16, uint16, uint16, uint16, uint16]);
55
+ });
56
+ it('should cover singleband uint8 or uint16 correctly', () => {
57
+ for (const preset of ['lerc_1mm', 'lerc_10mm', 'zstd_17']) {
58
+ assert.equal(7, findOptimialCoveringZoomOffset(preset, [uint8]));
59
+ assert.equal(7, findOptimialCoveringZoomOffset(preset, [uint16]));
60
+ }
61
+ });
62
+ it('should cover a webp rgb(a) correctly', () => {
63
+ assert.equal(7, findOptimialCoveringZoomOffset('webp', [uint8, uint8, uint8, uint8]));
64
+ assert.equal(7, findOptimialCoveringZoomOffset('webp', [uint8, uint8, uint8]));
65
+ });
66
+ it('should cover a float32 single band correctly', () => {
67
+ assert.equal(7, findOptimialCoveringZoomOffset('lerc_1mm', [float32]));
68
+ assert.equal(7, findOptimialCoveringZoomOffset('lerc_10mm', [float32]));
69
+ });
70
+ it('should reduce the size with zstd compression', () => {
71
+ assert.equal(6, findOptimialCoveringZoomOffset('zstd_17', [float32]));
72
+ assert.equal(6, findOptimialCoveringZoomOffset('zstd_17', [uint8, uint8, uint8]));
73
+ assert.equal(6, findOptimialCoveringZoomOffset('zstd_17', [uint8, uint8, uint8, uint8]));
74
+ // RGBI+Alpha
75
+ assert.equal(6, findOptimialCoveringZoomOffset('zstd_17', [uint8, uint8, uint8, uint8, uint8]));
76
+ assert.equal(6, findOptimialCoveringZoomOffset('zstd_17', [uint16, uint16, uint16, uint16, uint16]));
77
+ });
78
+ it('should default to level 6 for lzw compression', () => {
79
+ assert.equal(6, findOptimialCoveringZoomOffset('lzw', [float32]));
80
+ assert.equal(6, findOptimialCoveringZoomOffset('lzw', [uint8, uint8, uint8]));
81
+ assert.equal(6, findOptimialCoveringZoomOffset('lzw', [uint8, uint8, uint8, uint8]));
82
+ // RGBI+Alpha - these have not been tested and are assumed to be ok
83
+ assert.equal(6, findOptimialCoveringZoomOffset('lzw', [uint8, uint8, uint8, uint8, uint8]));
84
+ assert.equal(6, findOptimialCoveringZoomOffset('lzw', [uint16, uint16, uint16, uint16, uint16]));
85
+ });
86
+ });
87
+ //# sourceMappingURL=covering.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"covering.test.js","sourceRoot":"","sources":["../../../../src/cogify/covering/__test__/covering.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Rgba } from '@basemaps/config';
1
+ import { ImageryBandType, Rgba } from '@basemaps/config';
2
2
  import { ConfigImageryTiff } from '@basemaps/config-loader';
3
3
  import { TileMatrixSet } from '@basemaps/geo';
4
4
  import { LogType } from '@basemaps/shared';
@@ -39,5 +39,20 @@ export interface TileCoverResult {
39
39
  source: GeoJSON.FeatureCollection;
40
40
  }
41
41
  export declare const TargetZoomOffsetDefault = 7;
42
- export declare const TargetZoomOffset: Partial<Record<PresetName, number>>;
42
+ /**
43
+ * We are trying to find a zoom level that will create COGS that are optimally sized for the preset,
44
+ * We are looking for cogs that are around 1GB in size on average and keeping under 4GB when maximally filled
45
+ *
46
+ * There are lots of different presets and source imagery bands which affect the final size of the COGs,
47
+ * for examples:
48
+ * - RGB(A) `uint8` imagery compressed with webp this preset is approximately 7 levels from the base zoom level.
49
+ * - Elevation `float32` compressed with zstd is less effective the offset is reduced to 6 levels
50
+ *
51
+ * @param preset target compression preset
52
+ * @param targetBaseZoom the base zoom level to use
53
+ * @param sourceBands bands present in the source dataset
54
+ *
55
+ * @returns a zoom level offset to use for the covering
56
+ */
57
+ export declare function findOptimialCoveringZoomOffset(preset: PresetName, sourceBands: ImageryBandType[]): number;
43
58
  export declare function createTileCover(ctx: TileCoverContext): Promise<TileCoverResult>;
@@ -31,25 +31,52 @@ function getTargetBaseZoom(tileMatrix, resolution, targetZoomOffset) {
31
31
  return Projection.getTiffResZoom(tileMatrix, resolution);
32
32
  return Projection.getTiffResZoom(tileMatrix, resolution) + targetZoomOffset;
33
33
  }
34
- // The base zoom is 256x256 pixels at its resolution, we are trying to find a image that is <32k pixels wide/high
35
- // zooming out 7 levels converts a 256x256 image into 32k x 32k image
36
- // 256 * 2 ** 7 = 32,768 - 256x256 tile
37
- // 512 * 2 ** 6 = 32,768 - 512x512 tile
38
- // This math only works for highly compressed RGB imagery, for multispectrial imagery small tiles need to be made
39
34
  export const TargetZoomOffsetDefault = 7;
40
- // ZSTD files are generally larger than webp or LERC
41
- export const TargetZoomOffset = {
42
- zstd_17: 6,
43
- lzw: 6,
44
- };
35
+ /**
36
+ * We are trying to find a zoom level that will create COGS that are optimally sized for the preset,
37
+ * We are looking for cogs that are around 1GB in size on average and keeping under 4GB when maximally filled
38
+ *
39
+ * There are lots of different presets and source imagery bands which affect the final size of the COGs,
40
+ * for examples:
41
+ * - RGB(A) `uint8` imagery compressed with webp this preset is approximately 7 levels from the base zoom level.
42
+ * - Elevation `float32` compressed with zstd is less effective the offset is reduced to 6 levels
43
+ *
44
+ * @param preset target compression preset
45
+ * @param targetBaseZoom the base zoom level to use
46
+ * @param sourceBands bands present in the source dataset
47
+ *
48
+ * @returns a zoom level offset to use for the covering
49
+ */
50
+ export function findOptimialCoveringZoomOffset(preset, sourceBands) {
51
+ // Webp is very efficient at compressing RGB(A) imagery so we can keep the default offset
52
+ if (preset === 'webp')
53
+ return TargetZoomOffsetDefault;
54
+ // LZW is not very effective at compressing most imagery so we reduce the offset by one
55
+ if (preset === 'lzw')
56
+ return TargetZoomOffsetDefault - 1;
57
+ const sourceBandText = sourceBands.map((m) => m.type).join(',');
58
+ // Single band float32 imagery tends to be elevation data which compresses well with lossy lerc and less so with lossless zstd
59
+ if (sourceBandText === 'float32') {
60
+ if (preset === 'lerc_1mm' || preset === 'lerc_10mm')
61
+ return TargetZoomOffsetDefault;
62
+ // all other compressors are lossless
63
+ return TargetZoomOffsetDefault - 1;
64
+ }
65
+ // Single band uint8 or uint16 compresses generally very effectively with most presets
66
+ if (sourceBandText === 'uint8')
67
+ return TargetZoomOffsetDefault;
68
+ if (sourceBandText === 'uint16')
69
+ return TargetZoomOffsetDefault;
70
+ // Unknown preset so assume one level offset is ok
71
+ return TargetZoomOffsetDefault - 1;
72
+ }
45
73
  export async function createTileCover(ctx) {
46
74
  // Ensure we have the projection loaded for the source imagery
47
75
  await ProjectionLoader.load(ctx.imagery.projection);
48
76
  await ProjectionLoader.load(EpsgCode.Wgs84);
49
77
  // Find the zoom level that is at least as good as the source imagery
50
78
  const targetBaseZoom = getTargetBaseZoom(ctx.tileMatrix, ctx.imagery.gsd, ctx.targetZoomOffset);
51
- const targetZoomOffset = TargetZoomOffset[ctx.preset] ?? 7;
52
- const optimalCoveringZoom = Math.max(1, targetBaseZoom - targetZoomOffset); // z12 from z19
79
+ const optimalCoveringZoom = Math.max(1, targetBaseZoom - findOptimialCoveringZoomOffset(ctx.preset, ctx.imagery.bands));
53
80
  ctx.logger?.debug({ targetBaseZoom, cogOverZoom: optimalCoveringZoom }, 'Imagery:ZoomLevel');
54
81
  const sourceBounds = projectPolygon(polygonFromBounds(ctx.imagery.files), ctx.imagery.projection, ctx.tileMatrix.projection.code);
55
82
  ctx.logger?.debug('Cutline:Apply');
@@ -1 +1 @@
1
- {"version":3,"file":"tile.cover.js","sourceRoot":"","sources":["../../../src/cogify/covering/tile.cover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tile.cover.js","sourceRoot":"","sources":["../../../src/cogify/covering/tile.cover.ts"],"names":[],"mappings":"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"}