@basemaps/cli 6.45.0 → 7.0.0
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.
- package/CHANGELOG.md +31 -0
- package/README.md +10 -108
- package/build/cli/config/action.bundle.d.ts.map +1 -1
- package/build/cli/config/action.bundle.js +2 -4
- package/build/cli/config/action.bundle.js.map +1 -1
- package/build/cli/config/action.import.d.ts +3 -3
- package/build/cli/config/action.import.d.ts.map +1 -1
- package/build/cli/config/action.import.js.map +1 -1
- package/build/cli/config/config.update.d.ts.map +1 -1
- package/build/cli/config/config.update.js +2 -2
- package/build/cli/config/config.update.js.map +1 -1
- package/build/cli/index.d.ts.map +1 -1
- package/build/cli/index.js +4 -13
- package/build/cli/index.js.map +1 -1
- package/build/cli/overview/action.create.overview.d.ts +2 -0
- package/build/cli/overview/action.create.overview.d.ts.map +1 -1
- package/build/cli/overview/action.create.overview.js +5 -1
- package/build/cli/overview/action.create.overview.js.map +1 -1
- package/build/cli/util.d.ts +1 -6
- package/build/cli/util.d.ts.map +1 -1
- package/build/cli/util.js +19 -27
- package/build/cli/util.js.map +1 -1
- package/build/cog/builder.d.ts +1 -1
- package/build/cog/builder.d.ts.map +1 -1
- package/build/cog/builder.js +1 -1
- package/build/cog/builder.js.map +1 -1
- package/build/cog/cutline.d.ts +1 -1
- package/build/cog/cutline.d.ts.map +1 -1
- package/build/cog/cutline.js +1 -1
- package/build/cog/cutline.js.map +1 -1
- package/package.json +10 -15
- package/build/cli/base.cli.d.ts +0 -1
- package/build/cli/base.cli.d.ts.map +0 -1
- package/build/cli/base.cli.js +0 -2
- package/build/cli/base.cli.js.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
- package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.js +0 -62
- package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
- package/build/cli/cogify/action.cog.d.ts +0 -20
- package/build/cli/cogify/action.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.cog.js +0 -198
- package/build/cli/cogify/action.cog.js.map +0 -1
- package/build/cli/cogify/action.job.d.ts +0 -28
- package/build/cli/cogify/action.job.d.ts.map +0 -1
- package/build/cli/cogify/action.job.js +0 -176
- package/build/cli/cogify/action.job.js.map +0 -1
- package/build/cli/cogify/action.make.cog.d.ts +0 -23
- package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.js +0 -218
- package/build/cli/cogify/action.make.cog.js.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
- package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.js +0 -96
- package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
- package/build/cli/cogify/batch.job.d.ts +0 -40
- package/build/cli/cogify/batch.job.d.ts.map +0 -1
- package/build/cli/cogify/batch.job.js +0 -205
- package/build/cli/cogify/batch.job.js.map +0 -1
- package/build/cli/cogify/cutline.d.ts +0 -5
- package/build/cli/cogify/cutline.d.ts.map +0 -1
- package/build/cli/cogify/cutline.js +0 -33
- package/build/cli/cogify/cutline.js.map +0 -1
- package/build/cli/cogify/semver.util.d.ts +0 -24
- package/build/cli/cogify/semver.util.d.ts.map +0 -1
- package/build/cli/cogify/semver.util.js +0 -56
- package/build/cli/cogify/semver.util.js.map +0 -1
- package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
- package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
- package/build/cli/config/action.cog.mapsheet.js +0 -107
- package/build/cli/config/action.cog.mapsheet.js.map +0 -1
- package/build/cli/github/github.d.ts +0 -49
- package/build/cli/github/github.d.ts.map +0 -1
- package/build/cli/github/github.js +0 -107
- package/build/cli/github/github.js.map +0 -1
- package/build/cli/github/make.cog.pr.d.ts +0 -42
- package/build/cli/github/make.cog.pr.d.ts.map +0 -1
- package/build/cli/github/make.cog.pr.js +0 -173
- package/build/cli/github/make.cog.pr.js.map +0 -1
- package/build/cli/sprites/action.sprites.d.ts +0 -11
- package/build/cli/sprites/action.sprites.d.ts.map +0 -1
- package/build/cli/sprites/action.sprites.js +0 -42
- package/build/cli/sprites/action.sprites.js.map +0 -1
- package/build/cog/__tests__/builder.test.d.ts +0 -2
- package/build/cog/__tests__/builder.test.d.ts.map +0 -1
- package/build/cog/__tests__/builder.test.js +0 -81
- package/build/cog/__tests__/builder.test.js.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
- package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.js +0 -319
- package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
- package/build/cog/__tests__/cog.test.d.ts +0 -2
- package/build/cog/__tests__/cog.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.test.js +0 -91
- package/build/cog/__tests__/cog.test.js.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
- package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.js +0 -229
- package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
- package/build/cog/__tests__/cutline.test.d.ts +0 -2
- package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
- package/build/cog/__tests__/cutline.test.js +0 -300
- package/build/cog/__tests__/cutline.test.js.map +0 -1
- package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
- package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
- package/build/cog/__tests__/projection.loader.test.js +0 -27
- package/build/cog/__tests__/projection.loader.test.js.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
- package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
- package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
- package/build/cog/cog.d.ts +0 -22
- package/build/cog/cog.d.ts.map +0 -1
- package/build/cog/cog.js +0 -72
- package/build/cog/cog.js.map +0 -1
- package/build/cog/cog.stac.job.d.ts +0 -106
- package/build/cog/cog.stac.job.d.ts.map +0 -1
- package/build/cog/cog.stac.job.js +0 -257
- package/build/cog/cog.stac.job.js.map +0 -1
- package/build/cog/cog.vrt.d.ts +0 -18
- package/build/cog/cog.vrt.d.ts.map +0 -1
- package/build/cog/cog.vrt.js +0 -102
- package/build/cog/cog.vrt.js.map +0 -1
- package/build/cog/constants.d.ts +0 -5
- package/build/cog/constants.d.ts.map +0 -1
- package/build/cog/constants.js +0 -5
- package/build/cog/constants.js.map +0 -1
- package/build/cog/job.factory.d.ts +0 -10
- package/build/cog/job.factory.d.ts.map +0 -1
- package/build/cog/job.factory.js +0 -92
- package/build/cog/job.factory.js.map +0 -1
- package/build/cog/projection.loader.d.ts +0 -13
- package/build/cog/projection.loader.d.ts.map +0 -1
- package/build/cog/projection.loader.js +0 -27
- package/build/cog/projection.loader.js.map +0 -1
- package/build/cog/stac.d.ts +0 -32
- package/build/cog/stac.d.ts.map +0 -1
- package/build/cog/stac.js +0 -3
- package/build/cog/stac.js.map +0 -1
- package/build/cog/types.d.ts +0 -83
- package/build/cog/types.d.ts.map +0 -1
- package/build/cog/types.js +0 -2
- package/build/cog/types.js.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.js +0 -22
- package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
- package/build/gdal/__tests__/gdal.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.test.js +0 -52
- package/build/gdal/__tests__/gdal.test.js.map +0 -1
- package/build/gdal/gdal.cog.d.ts +0 -42
- package/build/gdal/gdal.cog.d.ts.map +0 -1
- package/build/gdal/gdal.cog.js +0 -108
- package/build/gdal/gdal.cog.js.map +0 -1
- package/build/gdal/gdal.command.d.ts +0 -44
- package/build/gdal/gdal.command.d.ts.map +0 -1
- package/build/gdal/gdal.command.js +0 -87
- package/build/gdal/gdal.command.js.map +0 -1
- package/build/gdal/gdal.config.d.ts +0 -51
- package/build/gdal/gdal.config.d.ts.map +0 -1
- package/build/gdal/gdal.config.js +0 -23
- package/build/gdal/gdal.config.js.map +0 -1
- package/build/gdal/gdal.d.ts +0 -19
- package/build/gdal/gdal.d.ts.map +0 -1
- package/build/gdal/gdal.docker.d.ts +0 -18
- package/build/gdal/gdal.docker.d.ts.map +0 -1
- package/build/gdal/gdal.docker.js +0 -82
- package/build/gdal/gdal.docker.js.map +0 -1
- package/build/gdal/gdal.js +0 -28
- package/build/gdal/gdal.js.map +0 -1
- package/build/gdal/gdal.local.d.ts +0 -10
- package/build/gdal/gdal.local.d.ts.map +0 -1
- package/build/gdal/gdal.local.js +0 -22
- package/build/gdal/gdal.local.js.map +0 -1
- package/build/gdal/gdal.progress.d.ts +0 -16
- package/build/gdal/gdal.progress.d.ts.map +0 -1
- package/build/gdal/gdal.progress.js +0 -50
- package/build/gdal/gdal.progress.js.map +0 -1
- package/build/index.d.ts +0 -6
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -6
- package/build/index.js.map +0 -1
package/build/cog/cog.vrt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cog.vrt.js","sourceRoot":"","sources":["../../src/cog/cog.vrt.ts"],"names":[],"mappings":"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"}
|
package/build/cog/constants.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/** Default Aligned levels between resolution zoom level and cog zoom level */
|
|
2
|
-
export declare const AlignedLevel = 7;
|
|
3
|
-
/** When a tile has at least this much covering merge it up to parent */
|
|
4
|
-
export declare const CoveringFraction = 0.25;
|
|
5
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC"}
|
package/build/cog/constants.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CogStacJob, JobCreationContext } from './cog.stac.job.js';
|
|
2
|
-
export declare const MaxConcurrencyDefault = 50;
|
|
3
|
-
export declare function filterTiff(a: string): boolean;
|
|
4
|
-
export declare const CogJobFactory: {
|
|
5
|
-
/**
|
|
6
|
-
* Create a COG Job and potentially submit it to AWS Batch for processing
|
|
7
|
-
*/
|
|
8
|
-
create(ctx: JobCreationContext): Promise<CogStacJob>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=job.factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"job.factory.d.ts","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG7C;AAYD,eAAO,MAAM,aAAa;IACxB;;OAEG;gBACe,kBAAkB,GAAG,QAAQ,UAAU,CAAC;CAyF3D,CAAC"}
|
package/build/cog/job.factory.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { Bounds } from '@basemaps/geo';
|
|
2
|
-
import { fsa, isConfigS3Role, isFileConfigPath, LogConfig } from '@basemaps/shared';
|
|
3
|
-
import { basename } from 'path';
|
|
4
|
-
import * as ulid from 'ulid';
|
|
5
|
-
import { BatchJob } from '../cli/cogify/batch.job.js';
|
|
6
|
-
import { CogBuilder } from '../index.js';
|
|
7
|
-
import { CogStacJob } from './cog.stac.job.js';
|
|
8
|
-
import { Cutline } from './cutline.js';
|
|
9
|
-
export const MaxConcurrencyDefault = 50;
|
|
10
|
-
export function filterTiff(a) {
|
|
11
|
-
const lowerA = a.toLowerCase();
|
|
12
|
-
return lowerA.endsWith('.tiff') || lowerA.endsWith('.tif');
|
|
13
|
-
}
|
|
14
|
-
/** Group a file list by its zoom */
|
|
15
|
-
function groupFiles(files) {
|
|
16
|
-
var _a;
|
|
17
|
-
const fileCounts = {};
|
|
18
|
-
for (const f of files) {
|
|
19
|
-
const zoom = f.name.split('-')[0];
|
|
20
|
-
fileCounts[zoom] = ((_a = fileCounts[zoom]) !== null && _a !== void 0 ? _a : 0) + 1;
|
|
21
|
-
}
|
|
22
|
-
return fileCounts;
|
|
23
|
-
}
|
|
24
|
-
export const CogJobFactory = {
|
|
25
|
-
/**
|
|
26
|
-
* Create a COG Job and potentially submit it to AWS Batch for processing
|
|
27
|
-
*/
|
|
28
|
-
async create(ctx) {
|
|
29
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
30
|
-
const id = (_b = (_a = ctx.override) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ulid.ulid();
|
|
31
|
-
let imageryName = ctx.imageryName;
|
|
32
|
-
if (imageryName == null)
|
|
33
|
-
imageryName = basename(ctx.sourceLocation.path);
|
|
34
|
-
const logger = LogConfig.get().child({ id, imageryName });
|
|
35
|
-
const { sourceLocation } = ctx;
|
|
36
|
-
logger.info({ source: ctx.sourceLocation.path, sourceRole: isConfigS3Role(sourceLocation) && sourceLocation.roleArn }, 'ListTiffs');
|
|
37
|
-
fsa.configure(sourceLocation);
|
|
38
|
-
const tiffList = isFileConfigPath(sourceLocation)
|
|
39
|
-
? sourceLocation.files
|
|
40
|
-
: (await fsa.toArray(fsa.list(sourceLocation.path))).filter(filterTiff);
|
|
41
|
-
const tiffSource = tiffList.map((path) => fsa.source(path));
|
|
42
|
-
const maxConcurrency = (_d = (_c = ctx.override) === null || _c === void 0 ? void 0 : _c.concurrency) !== null && _d !== void 0 ? _d : MaxConcurrencyDefault;
|
|
43
|
-
logger.info({ source: sourceLocation.path, tiffCount: tiffList.length }, 'LoadingTiffs');
|
|
44
|
-
const cutline = new Cutline(ctx.tileMatrix, ctx.cutline && (await Cutline.loadCutline(ctx.cutline.href)), (_e = ctx.cutline) === null || _e === void 0 ? void 0 : _e.blend);
|
|
45
|
-
const builder = new CogBuilder(ctx.tileMatrix, maxConcurrency, logger, (_f = ctx.override) === null || _f === void 0 ? void 0 : _f.projection);
|
|
46
|
-
const metadata = await builder.build(tiffSource, cutline, (_g = ctx.override) === null || _g === void 0 ? void 0 : _g.alignedLevel);
|
|
47
|
-
if (cutline.clipPoly.length === 0) {
|
|
48
|
-
// no cutline needed for this imagery set
|
|
49
|
-
ctx.cutline = undefined;
|
|
50
|
-
}
|
|
51
|
-
const files = metadata.files.sort(Bounds.compareArea);
|
|
52
|
-
if (files.length > 0) {
|
|
53
|
-
const bigArea = files[files.length - 1];
|
|
54
|
-
const smallArea = files[0];
|
|
55
|
-
logger.info({
|
|
56
|
-
tileMatrix: ctx.tileMatrix.identifier,
|
|
57
|
-
// Size of the biggest image
|
|
58
|
-
big: bigArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
|
|
59
|
-
// Size of the smallest image
|
|
60
|
-
small: smallArea.width / cutline.tileMatrix.pixelScale(metadata.resZoom),
|
|
61
|
-
}, 'Covers');
|
|
62
|
-
}
|
|
63
|
-
// Don't log bounds as it is huge
|
|
64
|
-
logger.info({
|
|
65
|
-
...metadata,
|
|
66
|
-
tileMatrix: ctx.tileMatrix.identifier,
|
|
67
|
-
bounds: undefined,
|
|
68
|
-
files: undefined,
|
|
69
|
-
fileCount: files.length,
|
|
70
|
-
fileGroups: groupFiles(metadata.files),
|
|
71
|
-
}, 'CoveringGenerated');
|
|
72
|
-
let addAlpha = true;
|
|
73
|
-
// -addalpha to vrt adds extra alpha layers even if one already exist
|
|
74
|
-
if (metadata.bands > 3) {
|
|
75
|
-
logger.info({ bandCount: metadata.bands }, 'Vrt:DetectedAlpha, Disabling -addalpha');
|
|
76
|
-
addAlpha = false;
|
|
77
|
-
}
|
|
78
|
-
const job = await CogStacJob.create({
|
|
79
|
-
id,
|
|
80
|
-
imageryName,
|
|
81
|
-
metadata,
|
|
82
|
-
ctx,
|
|
83
|
-
addAlpha,
|
|
84
|
-
cutlinePoly: cutline.clipPoly,
|
|
85
|
-
});
|
|
86
|
-
if (ctx.batch)
|
|
87
|
-
await BatchJob.batchJob(job, true, logger);
|
|
88
|
-
logger.info({ tileMatrix: ctx.tileMatrix.identifier, job: job.getJobPath() }, 'Done');
|
|
89
|
-
return job;
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=job.factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"job.factory.js","sourceRoot":"","sources":["../../src/cog/job.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Epsg } from '@basemaps/geo';
|
|
2
|
-
import fetch from 'node-fetch';
|
|
3
|
-
export declare class ProjectionLoader {
|
|
4
|
-
static _fetch: typeof fetch;
|
|
5
|
-
/**
|
|
6
|
-
* Ensure that a projection EPSG code is avialable for use in Proj4js
|
|
7
|
-
*
|
|
8
|
-
* If its not already loaded, lookup definition from spatialreference.org
|
|
9
|
-
* @param code
|
|
10
|
-
*/
|
|
11
|
-
static load(code: number): Promise<Epsg>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=projection.loader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projection.loader.d.ts","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,MAAM,eAAS;IAEtB;;;;;OAKG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAc/C"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Epsg, Projection } from '@basemaps/geo';
|
|
2
|
-
import fetch from 'node-fetch';
|
|
3
|
-
export class ProjectionLoader {
|
|
4
|
-
/**
|
|
5
|
-
* Ensure that a projection EPSG code is avialable for use in Proj4js
|
|
6
|
-
*
|
|
7
|
-
* If its not already loaded, lookup definition from spatialreference.org
|
|
8
|
-
* @param code
|
|
9
|
-
*/
|
|
10
|
-
static async load(code) {
|
|
11
|
-
if (Projection.tryGet(code) != null)
|
|
12
|
-
return Epsg.get(code);
|
|
13
|
-
const url = `https://spatialreference.org/ref/epsg/${code}/ogcwkt/`;
|
|
14
|
-
const res = await this._fetch(url);
|
|
15
|
-
if (!res.ok)
|
|
16
|
-
throw new Error('Failed to load projection information for:' + code);
|
|
17
|
-
let epsg = Epsg.tryGet(code);
|
|
18
|
-
if (epsg == null)
|
|
19
|
-
epsg = new Epsg(code);
|
|
20
|
-
const text = await res.text();
|
|
21
|
-
Projection.define(epsg, text);
|
|
22
|
-
return epsg;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Exposed for testing
|
|
26
|
-
ProjectionLoader._fetch = fetch;
|
|
27
|
-
//# sourceMappingURL=projection.loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"projection.loader.js","sourceRoot":"","sources":["../../src/cog/projection.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,OAAO,gBAAgB;IAI3B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY;QAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,yCAAyC,IAAI,UAAU,CAAC;QAEpE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;QAElF,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;;AAtBD,sBAAsB;AACf,uBAAM,GAAG,KAAK,CAAC"}
|
package/build/cog/stac.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { EpsgCode, StacCollection, StacItem } from '@basemaps/geo';
|
|
2
|
-
import { CogGdalSettings } from './types.js';
|
|
3
|
-
export interface CogGenerated {
|
|
4
|
-
/** ISO date string */
|
|
5
|
-
datetime: string;
|
|
6
|
-
/** Package name of the generator */
|
|
7
|
-
package: string;
|
|
8
|
-
version: string;
|
|
9
|
-
/** Commit hash of the generator */
|
|
10
|
-
hash: string | undefined;
|
|
11
|
-
}
|
|
12
|
-
export interface CogOutputSummery extends CogGdalSettings {
|
|
13
|
-
cutlineBlend?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface CogSummaries {
|
|
16
|
-
'proj:epsg': EpsgCode[];
|
|
17
|
-
/** Ground Sampling Distance in meters per pixel of the generated imagery */
|
|
18
|
-
gsd: number[];
|
|
19
|
-
'linz:output': CogOutputSummery[];
|
|
20
|
-
'linz:generated': CogGenerated[];
|
|
21
|
-
}
|
|
22
|
-
export declare const CogStacKeywords: string[];
|
|
23
|
-
export declare const CogStacItemExtensions: string[];
|
|
24
|
-
/** STAC compliant structure for storing Job instructions */
|
|
25
|
-
export type CogStac = StacCollection<CogSummaries>;
|
|
26
|
-
export interface CogStacItemProperties {
|
|
27
|
-
datetime: string;
|
|
28
|
-
gsd: number;
|
|
29
|
-
'proj:epsg': EpsgCode;
|
|
30
|
-
}
|
|
31
|
-
export type CogStacItem = StacItem<CogStacItemProperties>;
|
|
32
|
-
//# sourceMappingURL=stac.d.ts.map
|
package/build/cog/stac.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stac.d.ts","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,gBAAgB,EAAE,YAAY,EAAE,CAAC;CAGlC;AAED,eAAO,MAAM,eAAe,UAA6B,CAAC;AAC1D,eAAO,MAAM,qBAAqB,UAAiB,CAAC;AAEpD,4DAA4D;AAC5D,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC"}
|
package/build/cog/stac.js
DELETED
package/build/cog/stac.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stac.js","sourceRoot":"","sources":["../../src/cog/stac.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,YAAY,CAAC,CAAC"}
|
package/build/cog/types.d.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { BoundingBox, EpsgCode, NamedBounds, TileMatrixSet } from '@basemaps/geo';
|
|
2
|
-
import { FileConfig } from '@basemaps/shared';
|
|
3
|
-
import { GdalCogBuilderResampling } from '../gdal/gdal.config.js';
|
|
4
|
-
export interface FeatureCollectionWithCrs extends GeoJSON.FeatureCollection {
|
|
5
|
-
crs: {
|
|
6
|
-
type: string;
|
|
7
|
-
properties: {
|
|
8
|
-
name: string;
|
|
9
|
-
};
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export interface ImageryProperties {
|
|
13
|
-
/** Ground Sampling Distance in meters per pixel */
|
|
14
|
-
gsd: number;
|
|
15
|
-
/** File access details */
|
|
16
|
-
location: FileConfig;
|
|
17
|
-
/** List of input files */
|
|
18
|
-
files: NamedBounds[];
|
|
19
|
-
}
|
|
20
|
-
export interface CogSourceProperties extends ImageryProperties {
|
|
21
|
-
epsg: EpsgCode;
|
|
22
|
-
}
|
|
23
|
-
export interface CogGdalSettings {
|
|
24
|
-
resampling: GdalCogBuilderResampling;
|
|
25
|
-
nodata?: number;
|
|
26
|
-
/**
|
|
27
|
-
* Quality level to use
|
|
28
|
-
* @default 90
|
|
29
|
-
*/
|
|
30
|
-
quality: number;
|
|
31
|
-
/** Vrts will add a second alpha layer if one exists, so dont always add one */
|
|
32
|
-
addAlpha: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface CogOutputProperties extends CogGdalSettings, ImageryProperties {
|
|
35
|
-
/** The bounds of all the cogs */
|
|
36
|
-
bounds: BoundingBox;
|
|
37
|
-
/** Identifier of the tile matrix to use */
|
|
38
|
-
tileMatrix?: string;
|
|
39
|
-
epsg: EpsgCode;
|
|
40
|
-
/** Cutline options */
|
|
41
|
-
cutline?: {
|
|
42
|
-
href: string;
|
|
43
|
-
blend: number;
|
|
44
|
-
};
|
|
45
|
-
/** Should this job ignore source coverage and just produce one big COG for EPSG extent */
|
|
46
|
-
oneCogCovering: boolean;
|
|
47
|
-
}
|
|
48
|
-
export interface CogJobJson {
|
|
49
|
-
/** Unique processing Id */
|
|
50
|
-
id: string;
|
|
51
|
-
/** Imagery set name */
|
|
52
|
-
name: string;
|
|
53
|
-
title: string;
|
|
54
|
-
description?: string;
|
|
55
|
-
source: CogSourceProperties;
|
|
56
|
-
output: CogOutputProperties;
|
|
57
|
-
}
|
|
58
|
-
export interface CogJob extends CogJobJson {
|
|
59
|
-
tileMatrix: TileMatrixSet;
|
|
60
|
-
targetZoom: number;
|
|
61
|
-
getJobPath(key?: string): string;
|
|
62
|
-
}
|
|
63
|
-
export interface SourceMetadata {
|
|
64
|
-
/** Number of imagery bands generally RGB (3) or RGBA (4) */
|
|
65
|
-
bands: number;
|
|
66
|
-
/** Bounding box for polygons */
|
|
67
|
-
bounds: NamedBounds[];
|
|
68
|
-
/** The number of pixels per meter for the best source image */
|
|
69
|
-
pixelScale: number;
|
|
70
|
-
/** Highest quality zoom level for the images */
|
|
71
|
-
resZoom: number;
|
|
72
|
-
/** EPSG projection number */
|
|
73
|
-
projection: EpsgCode;
|
|
74
|
-
/** GDAL_NODATA value */
|
|
75
|
-
nodata?: number;
|
|
76
|
-
}
|
|
77
|
-
export interface CogBuilderMetadata extends SourceMetadata {
|
|
78
|
-
/** the bounding box of all the COGs */
|
|
79
|
-
targetBounds: BoundingBox;
|
|
80
|
-
/** list of file basenames and their bounding box */
|
|
81
|
-
files: NamedBounds[];
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=types.d.ts.map
|
package/build/cog/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,wBAAyB,SAAQ,OAAO,CAAC,iBAAiB;IACzE,GAAG,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE;YACV,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IAEZ,0BAA0B;IAC1B,QAAQ,EAAE,UAAU,CAAC;IAErB,0BAA0B;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,wBAAwB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,eAAe,EAAE,iBAAiB;IAC7E,iCAAiC;IACjC,MAAM,EAAE,WAAW,CAAC;IAEpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,sBAAsB;IACtB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,0FAA0F;IAC1F,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,EAAE,WAAW,EAAE,CAAC;IAEtB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAEhB,6BAA6B;IAC7B,UAAU,EAAE,QAAQ,CAAC;IAErB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,uCAAuC;IACvC,YAAY,EAAE,WAAW,CAAC;IAE1B,oDAAoD;IACpD,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB"}
|
package/build/cog/types.js
DELETED
package/build/cog/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cog/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.progress.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import o from 'ospec';
|
|
2
|
-
import { GdalProgressParser } from '../gdal.progress.js';
|
|
3
|
-
o.spec('GdalProgressParser', () => {
|
|
4
|
-
o('should emit on progress', () => {
|
|
5
|
-
const prog = new GdalProgressParser();
|
|
6
|
-
o(prog.progress).equals(0);
|
|
7
|
-
prog.data(Buffer.from('\n.'));
|
|
8
|
-
o(prog.progress.toFixed(2)).equals('3.23');
|
|
9
|
-
});
|
|
10
|
-
o('should take 31 dots to finish', () => {
|
|
11
|
-
const prog = new GdalProgressParser();
|
|
12
|
-
let processCount = 0;
|
|
13
|
-
prog.data(Buffer.from('\n'));
|
|
14
|
-
prog.on('progress', () => processCount++);
|
|
15
|
-
for (let i = 0; i < 31; i++) {
|
|
16
|
-
prog.data(Buffer.from('.'));
|
|
17
|
-
o(processCount).equals(i + 1);
|
|
18
|
-
}
|
|
19
|
-
o(prog.progress.toFixed(2)).equals('100.00');
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=gdal.progress.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.progress.test.js","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.progress.test.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACtB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,CAAC,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/B;QACD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.test.d.ts","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import o from 'ospec';
|
|
2
|
-
import { GdalCogBuilder } from '../gdal.cog.js';
|
|
3
|
-
import { normalizeAwsEnv } from '../gdal.command.js';
|
|
4
|
-
import { GdalCogBuilderDefaults } from '../gdal.config.js';
|
|
5
|
-
import { GdalDocker } from '../gdal.docker.js';
|
|
6
|
-
o.spec('GdalCogBuilder', () => {
|
|
7
|
-
o('should default all options', () => {
|
|
8
|
-
const builder = new GdalCogBuilder('/foo', 'bar.tiff');
|
|
9
|
-
o(builder.config.bbox).equals(undefined);
|
|
10
|
-
o(builder.config.compression).equals('webp');
|
|
11
|
-
o(builder.config.resampling).deepEquals({ warp: 'bilinear', overview: 'lanczos' });
|
|
12
|
-
o(builder.config.blockSize).equals(512);
|
|
13
|
-
o(builder.config.alignmentLevels).equals(1);
|
|
14
|
-
o(builder.config).deepEquals({ ...GdalCogBuilderDefaults, bbox: undefined });
|
|
15
|
-
});
|
|
16
|
-
o('should create a docker command', () => {
|
|
17
|
-
const builder = new GdalCogBuilder('/foo/foo.tiff', '/bar/bar.tiff');
|
|
18
|
-
const args = builder.args;
|
|
19
|
-
o(args.includes('TILING_SCHEME=GoogleMapsCompatible')).equals(true);
|
|
20
|
-
o(args.includes('COMPRESS=webp')).equals(true);
|
|
21
|
-
o(builder.args.includes('BLOCKSIZE=512')).equals(true);
|
|
22
|
-
builder.config.compression = 'jpeg';
|
|
23
|
-
o(builder.args.includes('COMPRESS=jpeg')).equals(true);
|
|
24
|
-
builder.config.blockSize = 256;
|
|
25
|
-
o(builder.args.includes('BLOCKSIZE=256')).equals(true);
|
|
26
|
-
});
|
|
27
|
-
o('should mount folders', () => {
|
|
28
|
-
const gdalDocker = new GdalDocker();
|
|
29
|
-
gdalDocker.mount('/foo/bar');
|
|
30
|
-
o(gdalDocker.mounts).deepEquals(['/foo']);
|
|
31
|
-
});
|
|
32
|
-
o('should not duplicate folders', () => {
|
|
33
|
-
const gdalDocker = new GdalDocker();
|
|
34
|
-
gdalDocker.mount('/foo/bar.html');
|
|
35
|
-
gdalDocker.mount('/foo/bar.tiff');
|
|
36
|
-
o(gdalDocker.mounts).deepEquals(['/foo']);
|
|
37
|
-
});
|
|
38
|
-
o('should ignore s3 uris', () => {
|
|
39
|
-
const gdalDocker = new GdalDocker();
|
|
40
|
-
gdalDocker.mount('s3://foo/bar.html');
|
|
41
|
-
gdalDocker.mount('s3://foo/bar.tiff');
|
|
42
|
-
o(gdalDocker.mounts).deepEquals([]);
|
|
43
|
-
});
|
|
44
|
-
o('should normalize aws environment vars', () => {
|
|
45
|
-
const env = normalizeAwsEnv({ AWS_PROFILE: 'lake' });
|
|
46
|
-
o(env).deepEquals({ AWS_PROFILE: 'lake', AWS_DEFAULT_PROFILE: 'lake' });
|
|
47
|
-
});
|
|
48
|
-
o('should error if aws config is not sane', () => {
|
|
49
|
-
o(() => normalizeAwsEnv({ AWS_PROFILE: 'lake', AWS_DEFAULT_PROFILE: 'other-lake' })).throws(Error);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=gdal.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.test.js","sourceRoot":"","sources":["../../../src/gdal/__tests__/gdal.test.ts"],"names":[],"mappings":"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"}
|
package/build/gdal/gdal.cog.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { LogType } from '@basemaps/shared';
|
|
3
|
-
import { ChildProcessWithoutNullStreams } from 'child_process';
|
|
4
|
-
import { GdalCommand } from './gdal.command.js';
|
|
5
|
-
import { GdalCogBuilderOptions } from './gdal.config.js';
|
|
6
|
-
/** 1% Buffer to the tiff to help prevent gaps between tiles */
|
|
7
|
-
/**
|
|
8
|
-
* A docker based GDAL Cog Builder
|
|
9
|
-
*
|
|
10
|
-
* This uses the new 3.1 COG Driver https://gdal.org/drivers/raster/cog.html
|
|
11
|
-
*
|
|
12
|
-
* When GDAL 3.1 is released docker could be removed from this process.
|
|
13
|
-
*/
|
|
14
|
-
export declare class GdalCogBuilder {
|
|
15
|
-
config: GdalCogBuilderOptions;
|
|
16
|
-
/**
|
|
17
|
-
* Source file generally a .vrt
|
|
18
|
-
*/
|
|
19
|
-
source: string;
|
|
20
|
-
/**
|
|
21
|
-
* Output file
|
|
22
|
-
*/
|
|
23
|
-
target: string;
|
|
24
|
-
/**
|
|
25
|
-
* Current running child process
|
|
26
|
-
*/
|
|
27
|
-
child: ChildProcessWithoutNullStreams | null;
|
|
28
|
-
/**
|
|
29
|
-
* Promise waiting for child process to finish
|
|
30
|
-
*/
|
|
31
|
-
promise: Promise<void> | null;
|
|
32
|
-
/** When the process started */
|
|
33
|
-
startTime: number;
|
|
34
|
-
/** Gdal process */
|
|
35
|
-
gdal: GdalCommand;
|
|
36
|
-
constructor(source: string, target: string, config?: Partial<GdalCogBuilderOptions>);
|
|
37
|
-
getBounds(): string[];
|
|
38
|
-
get tileMatrixFileName(): string;
|
|
39
|
-
get args(): string[];
|
|
40
|
-
convert(log: LogType): Promise<void>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=gdal.cog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.cog.d.ts","sourceRoot":"","sources":["../../src/gdal/gdal.cog.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAA0B,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEjF,+DAA+D;AAG/D;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,qBAAqB,CAAC;IAE9B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC7C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;gBAEN,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAmBvF,SAAS,IAAI,MAAM,EAAE;IAYrB,IAAI,kBAAkB,IAAI,MAAM,CAO/B;IAED,IAAI,IAAI,IAAI,MAAM,EAAE,CAuDnB;IAEK,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
|
package/build/gdal/gdal.cog.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { GoogleTms, Nztm2000Tms } from '@basemaps/geo';
|
|
2
|
-
import { Gdal } from './gdal.js';
|
|
3
|
-
import { GdalCogBuilderDefaults } from './gdal.config.js';
|
|
4
|
-
/** 1% Buffer to the tiff to help prevent gaps between tiles */
|
|
5
|
-
// const TiffBuffer = 1.01;
|
|
6
|
-
/**
|
|
7
|
-
* A docker based GDAL Cog Builder
|
|
8
|
-
*
|
|
9
|
-
* This uses the new 3.1 COG Driver https://gdal.org/drivers/raster/cog.html
|
|
10
|
-
*
|
|
11
|
-
* When GDAL 3.1 is released docker could be removed from this process.
|
|
12
|
-
*/
|
|
13
|
-
export class GdalCogBuilder {
|
|
14
|
-
constructor(source, target, config = {}) {
|
|
15
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
16
|
-
this.source = source;
|
|
17
|
-
this.target = target;
|
|
18
|
-
this.config = {
|
|
19
|
-
bbox: config.bbox,
|
|
20
|
-
alignmentLevels: (_a = config.alignmentLevels) !== null && _a !== void 0 ? _a : GdalCogBuilderDefaults.alignmentLevels,
|
|
21
|
-
compression: (_b = config.compression) !== null && _b !== void 0 ? _b : GdalCogBuilderDefaults.compression,
|
|
22
|
-
tileMatrix: (_c = config.tileMatrix) !== null && _c !== void 0 ? _c : GdalCogBuilderDefaults.tileMatrix,
|
|
23
|
-
resampling: (_d = config.resampling) !== null && _d !== void 0 ? _d : GdalCogBuilderDefaults.resampling,
|
|
24
|
-
blockSize: (_e = config.blockSize) !== null && _e !== void 0 ? _e : GdalCogBuilderDefaults.blockSize,
|
|
25
|
-
targetRes: (_f = config.targetRes) !== null && _f !== void 0 ? _f : GdalCogBuilderDefaults.targetRes,
|
|
26
|
-
quality: (_g = config.quality) !== null && _g !== void 0 ? _g : GdalCogBuilderDefaults.quality,
|
|
27
|
-
};
|
|
28
|
-
this.gdal = Gdal.create();
|
|
29
|
-
(_j = (_h = this.gdal).mount) === null || _j === void 0 ? void 0 : _j.call(_h, source);
|
|
30
|
-
(_l = (_k = this.gdal).mount) === null || _l === void 0 ? void 0 : _l.call(_k, target);
|
|
31
|
-
}
|
|
32
|
-
getBounds() {
|
|
33
|
-
if (this.config.bbox == null) {
|
|
34
|
-
return [];
|
|
35
|
-
}
|
|
36
|
-
// TODO in theory this should be clamped to the lower right of the imagery, as there is no point generating large empty tiffs
|
|
37
|
-
const [ulX, ulY, lrX, lrY] = this.config.bbox;
|
|
38
|
-
return ['-projwin', ulX, ulY, lrX, lrY, '-projwin_srs', this.config.tileMatrix.projection.toEpsgString()].map(String);
|
|
39
|
-
}
|
|
40
|
-
get tileMatrixFileName() {
|
|
41
|
-
const tileMatrix = this.config.tileMatrix;
|
|
42
|
-
// Gdal built in TileMatrixSets
|
|
43
|
-
if (tileMatrix.identifier === GoogleTms.identifier)
|
|
44
|
-
return 'GoogleMapsCompatible';
|
|
45
|
-
if (tileMatrix.identifier === Nztm2000Tms.identifier)
|
|
46
|
-
return 'NZTM2000';
|
|
47
|
-
return 'https://raw.githubusercontent.com/linz/NZTM2000TileMatrixSet/master/raw/NZTM2000Quad.json';
|
|
48
|
-
}
|
|
49
|
-
get args() {
|
|
50
|
-
const tr = this.config.targetRes.toString();
|
|
51
|
-
return [
|
|
52
|
-
// Force output using COG Driver
|
|
53
|
-
'-of',
|
|
54
|
-
'COG',
|
|
55
|
-
// Force GoogleMaps tiling
|
|
56
|
-
'-co',
|
|
57
|
-
`TILING_SCHEME=${this.tileMatrixFileName}`,
|
|
58
|
-
// Max CPU POWER
|
|
59
|
-
'-co',
|
|
60
|
-
'NUM_THREADS=ALL_CPUS',
|
|
61
|
-
// in GDAL 3.7.x NUM_THREADS will also set GDAL_NUM_THREADS
|
|
62
|
-
'--config',
|
|
63
|
-
'GDAL_NUM_THREADS',
|
|
64
|
-
'ALL_CPUS',
|
|
65
|
-
// Force big tiff the extra few bytes savings of using little tiffs does not affect us
|
|
66
|
-
'-co',
|
|
67
|
-
'BIGTIFF=YES',
|
|
68
|
-
// Force a alpha layer
|
|
69
|
-
'-co',
|
|
70
|
-
'ADD_ALPHA=YES',
|
|
71
|
-
// User configured output block size
|
|
72
|
-
'-co',
|
|
73
|
-
`BLOCKSIZE=${this.config.blockSize}`,
|
|
74
|
-
// Configured resampling methods
|
|
75
|
-
'-co',
|
|
76
|
-
`WARP_RESAMPLING=${this.config.resampling.warp}`,
|
|
77
|
-
'-co',
|
|
78
|
-
`OVERVIEW_RESAMPLING=${this.config.resampling.overview}`,
|
|
79
|
-
// User configured compression
|
|
80
|
-
'-co',
|
|
81
|
-
`COMPRESS=${this.config.compression}`,
|
|
82
|
-
// Number of levels to align to web mercator
|
|
83
|
-
'-co',
|
|
84
|
-
`ALIGNED_LEVELS=${this.config.alignmentLevels}`,
|
|
85
|
-
// Default quality of 75 is too low for our needs
|
|
86
|
-
'-co',
|
|
87
|
-
`QUALITY=${this.config.quality}`,
|
|
88
|
-
// most of the imagery contains a lot of empty tiles, no need to output them
|
|
89
|
-
'-co',
|
|
90
|
-
`SPARSE_OK=YES`,
|
|
91
|
-
// Do not attempt to read sidecar files
|
|
92
|
-
'--config',
|
|
93
|
-
`GDAL_DISABLE_READDIR_ON_OPEN`,
|
|
94
|
-
`EMPTY_DIR`,
|
|
95
|
-
// Force a target resolution to be better than the imagery not worse
|
|
96
|
-
'-tr',
|
|
97
|
-
tr,
|
|
98
|
-
tr,
|
|
99
|
-
...this.getBounds(),
|
|
100
|
-
this.source,
|
|
101
|
-
this.target,
|
|
102
|
-
];
|
|
103
|
-
}
|
|
104
|
-
async convert(log) {
|
|
105
|
-
await this.gdal.run('gdal_translate', this.args, log);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=gdal.cog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gdal.cog.js","sourceRoot":"","sources":["../../src/gdal/gdal.cog.ts"],"names":[],"mappings":"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"}
|