@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
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
import { Epsg, TileMatrixSets } from '@basemaps/geo';
|
|
2
|
-
import { Env, fsa, LogConfig, titleizeImageryName } from '@basemaps/shared';
|
|
3
|
-
import { CommandLineAction, } from '@rushstack/ts-command-line';
|
|
4
|
-
import { ProjectionLoader } from '../../cog/projection.loader.js';
|
|
5
|
-
import * as ulid from 'ulid';
|
|
6
|
-
import { getCutline } from './cutline.js';
|
|
7
|
-
import { CogJobFactory } from '../../cog/job.factory.js';
|
|
8
|
-
import { basename } from 'path';
|
|
9
|
-
import { BatchJob } from './batch.job.js';
|
|
10
|
-
import { AlignedLevel } from '../../cog/constants.js';
|
|
11
|
-
export class CommandMakeCog extends CommandLineAction {
|
|
12
|
-
constructor() {
|
|
13
|
-
super({
|
|
14
|
-
actionName: 'make-cog',
|
|
15
|
-
summary: 'Import Basemaps imagery from s3 buckets',
|
|
16
|
-
documentation: 'Given a valid path of raw imagery and import into basemaps',
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
onDefineParameters() {
|
|
20
|
-
this.imagery = this.defineStringParameter({
|
|
21
|
-
argumentName: 'IMAGERY',
|
|
22
|
-
parameterShortName: '-i',
|
|
23
|
-
parameterLongName: '--imagery',
|
|
24
|
-
description: 'Path of source imagery to import.',
|
|
25
|
-
required: true,
|
|
26
|
-
});
|
|
27
|
-
this.target = this.defineStringParameter({
|
|
28
|
-
argumentName: 'BUCKET',
|
|
29
|
-
parameterShortName: '-t',
|
|
30
|
-
parameterLongName: '--target',
|
|
31
|
-
description: 'Target bucket for job.json',
|
|
32
|
-
required: true,
|
|
33
|
-
});
|
|
34
|
-
this.name = this.defineStringParameter({
|
|
35
|
-
argumentName: 'NAME',
|
|
36
|
-
parameterShortName: '-n',
|
|
37
|
-
parameterLongName: '--name',
|
|
38
|
-
description: 'Custom imagery name',
|
|
39
|
-
required: false,
|
|
40
|
-
});
|
|
41
|
-
this.tileMatrix = this.defineStringParameter({
|
|
42
|
-
argumentName: 'TILE_MATRIX',
|
|
43
|
-
parameterLongName: '--tile-matrix',
|
|
44
|
-
description: 'Target tile matrix',
|
|
45
|
-
required: false,
|
|
46
|
-
});
|
|
47
|
-
this.cutline = this.defineStringParameter({
|
|
48
|
-
argumentName: 'CUTLINE',
|
|
49
|
-
parameterLongName: '--cutline',
|
|
50
|
-
description: 'Path of import cutline',
|
|
51
|
-
required: false,
|
|
52
|
-
});
|
|
53
|
-
this.blend = this.defineIntegerParameter({
|
|
54
|
-
argumentName: 'BLEND',
|
|
55
|
-
parameterLongName: '--blend',
|
|
56
|
-
description: 'Cutline blend',
|
|
57
|
-
required: false,
|
|
58
|
-
});
|
|
59
|
-
this.alignedLevel = this.defineIntegerParameter({
|
|
60
|
-
argumentName: 'ALIGNED_LEVEL',
|
|
61
|
-
parameterLongName: '--aligned-level',
|
|
62
|
-
description: 'Aligned level between resolution and cog',
|
|
63
|
-
required: false,
|
|
64
|
-
});
|
|
65
|
-
this.maxChunkUnit = this.defineIntegerParameter({
|
|
66
|
-
argumentName: 'MAX_CHUNK_UNIT',
|
|
67
|
-
parameterLongName: '--max-chunk-unit',
|
|
68
|
-
description: 'Number of small jobs are chunked into one job',
|
|
69
|
-
required: false,
|
|
70
|
-
});
|
|
71
|
-
this.output = this.defineStringParameter({
|
|
72
|
-
argumentName: 'OUTPUT',
|
|
73
|
-
parameterShortName: '-o',
|
|
74
|
-
parameterLongName: '--output',
|
|
75
|
-
description: 'Output job.json path',
|
|
76
|
-
required: false,
|
|
77
|
-
});
|
|
78
|
-
this.aws = this.defineFlagParameter({
|
|
79
|
-
parameterLongName: '--aws',
|
|
80
|
-
description: 'Running the job on aws',
|
|
81
|
-
required: false,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
async onExecute() {
|
|
85
|
-
const logger = LogConfig.get();
|
|
86
|
-
const imagery = this.imagery.value;
|
|
87
|
-
let name = this.name.value === '' ? undefined : this.name.value;
|
|
88
|
-
if (imagery == null)
|
|
89
|
-
throw new Error('Please provide a valid imagery source');
|
|
90
|
-
await Promise.all([3791, 3790, 3789, 3788].map((code) => ProjectionLoader.load(code)));
|
|
91
|
-
const source = imagery.endsWith('/') ? imagery : imagery + '/';
|
|
92
|
-
logger.info({ imagery: source }, 'FindImagery');
|
|
93
|
-
if (name == null)
|
|
94
|
-
name = source.split('/').filter(Boolean).pop();
|
|
95
|
-
if (name == null)
|
|
96
|
-
throw new Error('Failed to find imagery set name');
|
|
97
|
-
let tileMatrixSets = [];
|
|
98
|
-
const tileMatrix = this.tileMatrix.value;
|
|
99
|
-
if (tileMatrix == null)
|
|
100
|
-
throw new Error('Please provide valid tile set matrix.');
|
|
101
|
-
if (tileMatrix.includes('/'))
|
|
102
|
-
tileMatrixSets = tileMatrixSets.concat(tileMatrix.split('/'));
|
|
103
|
-
else
|
|
104
|
-
tileMatrixSets.push(tileMatrix);
|
|
105
|
-
const outputJobs = [];
|
|
106
|
-
const configLayer = { name, title: titleizeImageryName(name) };
|
|
107
|
-
const paths = [];
|
|
108
|
-
for (const identifier of tileMatrixSets) {
|
|
109
|
-
const id = ulid.ulid();
|
|
110
|
-
const tileMatrix = TileMatrixSets.find(identifier);
|
|
111
|
-
if (tileMatrix == null)
|
|
112
|
-
throw new Error(`Cannot find tile matrix: ${identifier}`);
|
|
113
|
-
logger.info({ id, tileMatrix: tileMatrix.identifier }, 'SetTileMatrix');
|
|
114
|
-
const job = await this.makeCog(id, name, tileMatrix, source);
|
|
115
|
-
configLayer.title = job.title;
|
|
116
|
-
const jobLocation = job.getJobPath('job.json');
|
|
117
|
-
// Split the jobs into chunked tasks
|
|
118
|
-
const chunkedJobs = await this.splitJob(job, logger);
|
|
119
|
-
for (const names of chunkedJobs) {
|
|
120
|
-
outputJobs.push({ job: jobLocation, names });
|
|
121
|
-
}
|
|
122
|
-
// Set config layer for output
|
|
123
|
-
const path = jobLocation.replace('/job.json', '');
|
|
124
|
-
configLayer[tileMatrix.projection.code] = path;
|
|
125
|
-
paths.push(path);
|
|
126
|
-
}
|
|
127
|
-
const output = this.output.value;
|
|
128
|
-
if (output) {
|
|
129
|
-
fsa.write(fsa.join(output, 'jobs.json'), JSON.stringify(outputJobs));
|
|
130
|
-
fsa.write(fsa.join(output, 'layer.json'), JSON.stringify(configLayer));
|
|
131
|
-
fsa.write(fsa.join(output, 'paths.json'), JSON.stringify(paths));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
async makeCog(id, imageryName, tileMatrix, uri) {
|
|
135
|
-
var _a;
|
|
136
|
-
const bucket = this.target.value;
|
|
137
|
-
if (bucket == null && this.aws.value)
|
|
138
|
-
throw new Error('Please provide a validate bucket for output job.json');
|
|
139
|
-
let resampling;
|
|
140
|
-
/** Process Gebco 2193 as one cog of full extent to avoid antimeridian problems */
|
|
141
|
-
if (tileMatrix.projection === Epsg.Nztm2000 && imageryName.includes('gebco')) {
|
|
142
|
-
resampling = {
|
|
143
|
-
warp: 'nearest',
|
|
144
|
-
overview: 'lanczos',
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
if (imageryName.includes('geographx')) {
|
|
148
|
-
resampling = {
|
|
149
|
-
warp: 'bilinear',
|
|
150
|
-
overview: 'bilinear',
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
// Prepare the cutline
|
|
154
|
-
let cutline;
|
|
155
|
-
const cutlinePath = this.cutline.value === '' ? undefined : this.cutline.value;
|
|
156
|
-
const blend = this.blend.value === 0 ? undefined : this.blend.value;
|
|
157
|
-
if (cutlinePath && blend)
|
|
158
|
-
cutline = { href: cutlinePath, blend };
|
|
159
|
-
else if (cutlinePath)
|
|
160
|
-
new Error('Please provide a blend for the cutline');
|
|
161
|
-
else
|
|
162
|
-
cutline = getCutline(imageryName);
|
|
163
|
-
if (cutline == null)
|
|
164
|
-
throw new Error(`Cannot found default cutline from imagery name: ${imageryName}`);
|
|
165
|
-
const alignedLevel = (_a = this.alignedLevel.value) !== null && _a !== void 0 ? _a : AlignedLevel;
|
|
166
|
-
const ctx = {
|
|
167
|
-
imageryName,
|
|
168
|
-
override: {
|
|
169
|
-
id,
|
|
170
|
-
projection: Epsg.Nztm2000,
|
|
171
|
-
resampling,
|
|
172
|
-
alignedLevel,
|
|
173
|
-
},
|
|
174
|
-
outputLocation: this.aws.value
|
|
175
|
-
? await this.findLocation(`s3://${bucket}/`)
|
|
176
|
-
: { type: 'local', path: '.' },
|
|
177
|
-
sourceLocation: await this.findLocation(uri),
|
|
178
|
-
cutline,
|
|
179
|
-
batch: false,
|
|
180
|
-
tileMatrix,
|
|
181
|
-
oneCogCovering: false,
|
|
182
|
-
};
|
|
183
|
-
return await CogJobFactory.create(ctx);
|
|
184
|
-
}
|
|
185
|
-
async splitJob(job, logger) {
|
|
186
|
-
// Get all the existing output tiffs
|
|
187
|
-
const existTiffs = new Set();
|
|
188
|
-
for await (const fileName of fsa.list(job.getJobPath())) {
|
|
189
|
-
if (fileName.endsWith('.tiff'))
|
|
190
|
-
existTiffs.add(basename(fileName));
|
|
191
|
-
}
|
|
192
|
-
// Prepare chunk job and individual jobs based on imagery size.
|
|
193
|
-
const jobs = await BatchJob.getJobs(job, existTiffs, logger, this.maxChunkUnit.value);
|
|
194
|
-
if (jobs.length === 0) {
|
|
195
|
-
logger.info('NoJobs');
|
|
196
|
-
return [];
|
|
197
|
-
}
|
|
198
|
-
logger.info({ jobTotal: job.output.files.length, jobLeft: jobs.length }, 'SplitJob:ChunkedJobs');
|
|
199
|
-
return jobs;
|
|
200
|
-
}
|
|
201
|
-
async findLocation(path) {
|
|
202
|
-
if (path.startsWith('s3://')) {
|
|
203
|
-
const configPath = Env.get(Env.AwsRoleConfigPath);
|
|
204
|
-
if (configPath == null)
|
|
205
|
-
throw new Error('No aws config path provided');
|
|
206
|
-
const configs = await fsa.readJson(configPath);
|
|
207
|
-
for (const prefix of configs.prefixes) {
|
|
208
|
-
if (path.startsWith(prefix.prefix))
|
|
209
|
-
return { type: 's3', path, roleArn: prefix.roleArn };
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
return { type: 'local', path: path };
|
|
214
|
-
}
|
|
215
|
-
throw new Error(`No valid role to find the path: ${path}`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
//# sourceMappingURL=action.make.cog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.make.cog.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.make.cog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
2
|
-
export declare enum Category {
|
|
3
|
-
Urban = "Urban Aerial Photos",
|
|
4
|
-
Rural = "Rural Aerial Photos",
|
|
5
|
-
Satellite = "Satellite Imagery",
|
|
6
|
-
Event = "Event",
|
|
7
|
-
Other = "New Aerial Photos"
|
|
8
|
-
}
|
|
9
|
-
export interface CategorySetting {
|
|
10
|
-
minZoom?: number;
|
|
11
|
-
individual?: boolean;
|
|
12
|
-
}
|
|
13
|
-
export declare const DefaultCategorySetting: Record<Category, CategorySetting>;
|
|
14
|
-
export declare function parseCategory(category: string): Category;
|
|
15
|
-
export declare class CommandCogPullRequest extends CommandLineAction {
|
|
16
|
-
private layer;
|
|
17
|
-
private category;
|
|
18
|
-
private repository;
|
|
19
|
-
private individual;
|
|
20
|
-
private vector;
|
|
21
|
-
constructor();
|
|
22
|
-
protected onDefineParameters(): void;
|
|
23
|
-
onExecute(): Promise<void>;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=action.make.cog.pr.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.make.cog.pr.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/action.make.cog.pr.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAwD,MAAM,4BAA4B,CAAC;AAGrH,oBAAY,QAAQ;IAClB,KAAK,wBAAwB;IAC7B,KAAK,wBAAwB;IAC7B,SAAS,sBAAsB;IAC/B,KAAK,UAAU;IACf,KAAK,sBAAsB;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe,CAMpE,CAAC;AAEF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAMxD;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,MAAM,CAA2B;;IAUzC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAgC9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAqBjC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { standardizeLayerName } from '@basemaps/config';
|
|
2
|
-
import { LogConfig } from '@basemaps/shared';
|
|
3
|
-
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
4
|
-
import { MakeCogGithub } from '../github/make.cog.pr.js';
|
|
5
|
-
export var Category;
|
|
6
|
-
(function (Category) {
|
|
7
|
-
Category["Urban"] = "Urban Aerial Photos";
|
|
8
|
-
Category["Rural"] = "Rural Aerial Photos";
|
|
9
|
-
Category["Satellite"] = "Satellite Imagery";
|
|
10
|
-
Category["Event"] = "Event";
|
|
11
|
-
Category["Other"] = "New Aerial Photos";
|
|
12
|
-
})(Category || (Category = {}));
|
|
13
|
-
export const DefaultCategorySetting = {
|
|
14
|
-
[Category.Urban]: { minZoom: 14, individual: false },
|
|
15
|
-
[Category.Rural]: { minZoom: 13, individual: false },
|
|
16
|
-
[Category.Satellite]: { minZoom: 5, individual: false },
|
|
17
|
-
[Category.Event]: { individual: true },
|
|
18
|
-
[Category.Other]: { individual: true },
|
|
19
|
-
};
|
|
20
|
-
export function parseCategory(category) {
|
|
21
|
-
const c = category.toLocaleLowerCase();
|
|
22
|
-
if (c.includes('urban'))
|
|
23
|
-
return Category.Urban;
|
|
24
|
-
else if (c.includes('rural'))
|
|
25
|
-
return Category.Rural;
|
|
26
|
-
else if (c.includes('satellite'))
|
|
27
|
-
return Category.Satellite;
|
|
28
|
-
else
|
|
29
|
-
return Category.Other;
|
|
30
|
-
}
|
|
31
|
-
export class CommandCogPullRequest extends CommandLineAction {
|
|
32
|
-
constructor() {
|
|
33
|
-
super({
|
|
34
|
-
actionName: 'cog-pr',
|
|
35
|
-
summary: 'create a github pull request for the import cog workflow',
|
|
36
|
-
documentation: 'Given a output of make-cog command and create pull request for the imagery config.',
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
onDefineParameters() {
|
|
40
|
-
this.layer = this.defineStringParameter({
|
|
41
|
-
argumentName: 'LAYER',
|
|
42
|
-
parameterLongName: '--layer',
|
|
43
|
-
description: 'Input config layer',
|
|
44
|
-
required: false,
|
|
45
|
-
});
|
|
46
|
-
this.category = this.defineStringParameter({
|
|
47
|
-
argumentName: 'CATEGORY',
|
|
48
|
-
parameterLongName: '--category',
|
|
49
|
-
description: 'New Imagery Category, like Rural Aerial Photos, Urban Aerial Photos, Satellite Imagery',
|
|
50
|
-
required: false,
|
|
51
|
-
});
|
|
52
|
-
this.repository = this.defineStringParameter({
|
|
53
|
-
argumentName: 'REPOSITORY',
|
|
54
|
-
parameterLongName: '--repository',
|
|
55
|
-
description: 'Github repository reference',
|
|
56
|
-
defaultValue: 'linz/basemaps-config',
|
|
57
|
-
required: false,
|
|
58
|
-
});
|
|
59
|
-
this.individual = this.defineFlagParameter({
|
|
60
|
-
parameterLongName: '--individual',
|
|
61
|
-
description: 'Import imagery as individual layer in basemaps.',
|
|
62
|
-
required: false,
|
|
63
|
-
});
|
|
64
|
-
this.vector = this.defineFlagParameter({
|
|
65
|
-
parameterLongName: '--vector',
|
|
66
|
-
description: 'Commit changes for vector map',
|
|
67
|
-
required: false,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
async onExecute() {
|
|
71
|
-
var _a;
|
|
72
|
-
const logger = LogConfig.get();
|
|
73
|
-
const layerStr = this.layer.value;
|
|
74
|
-
const category = this.category.value ? parseCategory(this.category.value) : Category.Other;
|
|
75
|
-
const repo = (_a = this.repository.value) !== null && _a !== void 0 ? _a : this.repository.defaultValue;
|
|
76
|
-
if (layerStr == null)
|
|
77
|
-
throw new Error('Please provide a valid input layer and urls');
|
|
78
|
-
if (repo == null)
|
|
79
|
-
throw new Error('Please provide a repository');
|
|
80
|
-
let layer;
|
|
81
|
-
try {
|
|
82
|
-
layer = JSON.parse(layerStr);
|
|
83
|
-
}
|
|
84
|
-
catch (_b) {
|
|
85
|
-
throw new Error('Please provide a valid input layer');
|
|
86
|
-
}
|
|
87
|
-
//Make sure the imagery name is standardized before update the config
|
|
88
|
-
layer.name = standardizeLayerName(layer.name);
|
|
89
|
-
const git = new MakeCogGithub(layer.name, repo, logger);
|
|
90
|
-
if (this.vector.value)
|
|
91
|
-
await git.updateVectorTileSet('topographic', layer);
|
|
92
|
-
else
|
|
93
|
-
await git.updateRasterTileSet('aerial', layer, category, this.individual.value);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=action.make.cog.pr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action.make.cog.pr.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.make.cog.pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { LogType } from '@basemaps/shared';
|
|
2
|
-
import Batch from 'aws-sdk/clients/batch.js';
|
|
3
|
-
import { CogJob } from '../../cog/types.js';
|
|
4
|
-
/**
|
|
5
|
-
* Attempt to parse a resolution from a imagery name
|
|
6
|
-
* @example `wellington_urban_2017_0.10m` -> 100
|
|
7
|
-
* @param name Imagery name to parse
|
|
8
|
-
* @returns resolution (millimeters), -1 for failure to parse
|
|
9
|
-
*/
|
|
10
|
-
export declare function extractResolutionFromName(name: string): number;
|
|
11
|
-
export declare class BatchJob {
|
|
12
|
-
static _batch: Batch;
|
|
13
|
-
static get batch(): Batch;
|
|
14
|
-
/**
|
|
15
|
-
* Create a id for a job
|
|
16
|
-
*
|
|
17
|
-
* This needs to be within `[a-Z_-]` upto 128 characters log
|
|
18
|
-
* @param job job to process
|
|
19
|
-
* @param fileNames output filename
|
|
20
|
-
* @returns job id
|
|
21
|
-
*/
|
|
22
|
-
static id(job: CogJob, fileNames?: string[]): string;
|
|
23
|
-
static batchOne(jobPath: string, job: CogJob, names: string[], isCommit: boolean): Promise<{
|
|
24
|
-
jobName: string;
|
|
25
|
-
jobId: string;
|
|
26
|
-
memory: number;
|
|
27
|
-
}>;
|
|
28
|
-
/**
|
|
29
|
-
* List all the current jobs in batch and their statuses
|
|
30
|
-
* @returns a map of JobName to if their status is "ok" (not failed)
|
|
31
|
-
*/
|
|
32
|
-
static getCurrentJobList(job: CogJob, logger: LogType): Promise<Set<string>>;
|
|
33
|
-
static batchJob(job: CogJob, commit: boolean | undefined, logger: LogType): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Prepare the jobs from job files, and chunk the small images into single
|
|
36
|
-
* @returns List of jobs including single job and chunk jobs.
|
|
37
|
-
*/
|
|
38
|
-
static getJobs(job: CogJob, existing: Set<string>, log: LogType, maxChunkUnit?: number): string[][];
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=batch.job.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch.job.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/batch.job.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,MAAM,0BAA0B,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAa5C;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,qBAAa,QAAQ;IACnB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IACrB,MAAM,KAAK,KAAK,IAAI,KAAK,CAKxB;IACD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;WAQvC,QAAQ,CACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC9D;;;OAGG;WACU,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;WA0CrE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,qBAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ClF;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,SAAc,GAAG,MAAM,EAAE,EAAE;CAmCzG"}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { Projection, TileMatrixSet } from '@basemaps/geo';
|
|
2
|
-
import { Env, fsa, LogConfig } from '@basemaps/shared';
|
|
3
|
-
import Batch from 'aws-sdk/clients/batch.js';
|
|
4
|
-
import { createHash } from 'crypto';
|
|
5
|
-
import { basename } from 'path';
|
|
6
|
-
const JobQueue = 'CogBatchJobQueue';
|
|
7
|
-
const JobDefinition = 'CogBatchJob';
|
|
8
|
-
const ChunkJobMax = 2000;
|
|
9
|
-
const ChunkLargeUnit = 200; // Up to 10 large files in one job
|
|
10
|
-
const ChunkMiddleUnit = 50; // Up to 40 middle files in one job
|
|
11
|
-
const ChunkSmallUnit = 20; // Up to 100 small files in one job
|
|
12
|
-
/** The base alignment level used by GDAL, Tiffs that are bigger or smaller than this should scale the compute resources */
|
|
13
|
-
const MagicAlignmentLevel = 7;
|
|
14
|
-
const ResolutionRegex = /((?:\d[\.\-])?\d+)m/;
|
|
15
|
-
/**
|
|
16
|
-
* Attempt to parse a resolution from a imagery name
|
|
17
|
-
* @example `wellington_urban_2017_0.10m` -> 100
|
|
18
|
-
* @param name Imagery name to parse
|
|
19
|
-
* @returns resolution (millimeters), -1 for failure to parse
|
|
20
|
-
*/
|
|
21
|
-
export function extractResolutionFromName(name) {
|
|
22
|
-
const matches = name.match(ResolutionRegex);
|
|
23
|
-
if (matches == null)
|
|
24
|
-
return -1;
|
|
25
|
-
return parseFloat(matches[1].replace('-', '.')) * 1000;
|
|
26
|
-
}
|
|
27
|
-
export class BatchJob {
|
|
28
|
-
static get batch() {
|
|
29
|
-
var _a, _b;
|
|
30
|
-
if (this._batch)
|
|
31
|
-
return this._batch;
|
|
32
|
-
const region = (_b = (_a = Env.get('AWS_REGION')) !== null && _a !== void 0 ? _a : Env.get('AWS_DEFAULT_REGION')) !== null && _b !== void 0 ? _b : 'ap-southeast-2';
|
|
33
|
-
this._batch = new Batch({ region });
|
|
34
|
-
return this._batch;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Create a id for a job
|
|
38
|
-
*
|
|
39
|
-
* This needs to be within `[a-Z_-]` upto 128 characters log
|
|
40
|
-
* @param job job to process
|
|
41
|
-
* @param fileNames output filename
|
|
42
|
-
* @returns job id
|
|
43
|
-
*/
|
|
44
|
-
static id(job, fileNames) {
|
|
45
|
-
// Job names are uncontrolled so hash the name and grab a small slice to use as a identifier
|
|
46
|
-
const jobName = createHash('sha256').update(job.name).digest('hex').slice(0, 16);
|
|
47
|
-
if (fileNames == null)
|
|
48
|
-
return `${job.id}-${jobName}-`;
|
|
49
|
-
fileNames.sort((a, b) => a.localeCompare(b));
|
|
50
|
-
return `${job.id}-${jobName}-${fileNames.length}x-${fileNames.join('_')}`.slice(0, 128);
|
|
51
|
-
}
|
|
52
|
-
static async batchOne(jobPath, job, names, isCommit) {
|
|
53
|
-
const jobName = BatchJob.id(job, names);
|
|
54
|
-
let memory = 3900;
|
|
55
|
-
if (names.length === 1) {
|
|
56
|
-
// Calculate the larger file to provision memory if there is only one imagery in job.
|
|
57
|
-
const tile = TileMatrixSet.nameToTile(names[0]);
|
|
58
|
-
const alignmentLevels = Projection.findAlignmentLevels(job.tileMatrix, tile, job.source.gsd);
|
|
59
|
-
// Give 25% more memory to larger jobs
|
|
60
|
-
const resDiff = 1 + Math.max(alignmentLevels - MagicAlignmentLevel, 0) * 0.25;
|
|
61
|
-
memory *= resDiff;
|
|
62
|
-
}
|
|
63
|
-
if (!isCommit) {
|
|
64
|
-
return { jobName, jobId: '', memory };
|
|
65
|
-
}
|
|
66
|
-
let commandStr = ['-V', 'cog', '--job', jobPath, '--commit'];
|
|
67
|
-
for (const name of names)
|
|
68
|
-
commandStr = commandStr.concat(['--name', name]);
|
|
69
|
-
const batchJob = await this.batch
|
|
70
|
-
.submitJob({
|
|
71
|
-
jobName,
|
|
72
|
-
jobQueue: JobQueue,
|
|
73
|
-
jobDefinition: JobDefinition,
|
|
74
|
-
containerOverrides: {
|
|
75
|
-
memory,
|
|
76
|
-
command: commandStr,
|
|
77
|
-
},
|
|
78
|
-
retryStrategy: { attempts: 3 },
|
|
79
|
-
})
|
|
80
|
-
.promise();
|
|
81
|
-
return { jobName, jobId: batchJob.jobId, memory };
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* List all the current jobs in batch and their statuses
|
|
85
|
-
* @returns a map of JobName to if their status is "ok" (not failed)
|
|
86
|
-
*/
|
|
87
|
-
static async getCurrentJobList(job, logger) {
|
|
88
|
-
var _a;
|
|
89
|
-
const jobPrefix = BatchJob.id(job);
|
|
90
|
-
// For some reason AWS only lets us query one status at a time.
|
|
91
|
-
const allStatuses = ['SUBMITTED', 'PENDING', 'RUNNABLE', 'STARTING', 'RUNNING' /* 'SUCCEEDED' */];
|
|
92
|
-
// Succeeded is not needed as we check to see if the output file exists, if it succeeds and the output file doesn't exist then something has gone wrong
|
|
93
|
-
const allJobs = await Promise.all(allStatuses.map((jobStatus) => this.batch.listJobs({ jobQueue: JobQueue, jobStatus }).promise()));
|
|
94
|
-
const jobIds = new Set();
|
|
95
|
-
// Find all the relevant jobs that start with our job prefix
|
|
96
|
-
for (const status of allJobs) {
|
|
97
|
-
for (const job of status.jobSummaryList) {
|
|
98
|
-
if (!job.jobName.startsWith(jobPrefix))
|
|
99
|
-
continue;
|
|
100
|
-
jobIds.add(job.jobId);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Inspect all the jobs for what files are being "processed"
|
|
104
|
-
const tiffs = new Set();
|
|
105
|
-
let allJobIds = [...jobIds];
|
|
106
|
-
while (allJobIds.length > 0) {
|
|
107
|
-
logger.info({ jobCount: allJobIds.length }, 'JobFetch');
|
|
108
|
-
const jobList = allJobIds.slice(0, 100);
|
|
109
|
-
allJobIds = allJobIds.slice(100);
|
|
110
|
-
const describedJobs = await this.batch.describeJobs({ jobs: jobList }).promise();
|
|
111
|
-
if (describedJobs.jobs == null)
|
|
112
|
-
continue;
|
|
113
|
-
for (const job of describedJobs.jobs) {
|
|
114
|
-
const jobCommand = (_a = job.container) === null || _a === void 0 ? void 0 : _a.command;
|
|
115
|
-
if (jobCommand == null)
|
|
116
|
-
continue;
|
|
117
|
-
// Extract the tiff names from the job command
|
|
118
|
-
for (let i = 0; i < jobCommand.length; i++) {
|
|
119
|
-
if (jobCommand[i] === '--name')
|
|
120
|
-
tiffs.add(jobCommand[i + 1]);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return tiffs;
|
|
125
|
-
}
|
|
126
|
-
static async batchJob(job, commit = false, logger) {
|
|
127
|
-
const jobPath = job.getJobPath('job.json');
|
|
128
|
-
if (!jobPath.startsWith('s3://')) {
|
|
129
|
-
throw new Error(`AWS Batch collection.json have to be in S3, jobPath:${jobPath}`);
|
|
130
|
-
}
|
|
131
|
-
LogConfig.set(logger.child({ correlationId: job.id, imageryName: job.name }));
|
|
132
|
-
fsa.configure(job.output.location);
|
|
133
|
-
// Get all the existing output tiffs
|
|
134
|
-
const existTiffs = new Set();
|
|
135
|
-
for await (const fileName of fsa.list(job.getJobPath())) {
|
|
136
|
-
if (fileName.endsWith('.tiff'))
|
|
137
|
-
existTiffs.add(basename(fileName));
|
|
138
|
-
}
|
|
139
|
-
const runningJobs = await this.getCurrentJobList(job, logger);
|
|
140
|
-
for (const tiffName of runningJobs)
|
|
141
|
-
existTiffs.add(`${tiffName}.tiff`);
|
|
142
|
-
// Prepare chunk job and individual jobs based on imagery size.
|
|
143
|
-
const jobs = await this.getJobs(job, existTiffs, logger);
|
|
144
|
-
if (jobs.length === 0) {
|
|
145
|
-
logger.info('NoJobs');
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
logger.info({
|
|
149
|
-
jobTotal: job.output.files.length,
|
|
150
|
-
jobLeft: jobs.length,
|
|
151
|
-
jobQueue: JobQueue,
|
|
152
|
-
jobDefinition: JobDefinition,
|
|
153
|
-
}, 'JobSubmit');
|
|
154
|
-
for (const names of jobs) {
|
|
155
|
-
const jobStatus = await BatchJob.batchOne(jobPath, job, names, commit);
|
|
156
|
-
logger.info(jobStatus, 'JobSubmitted');
|
|
157
|
-
}
|
|
158
|
-
if (!commit) {
|
|
159
|
-
logger.warn('DryRun:Done');
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Prepare the jobs from job files, and chunk the small images into single
|
|
165
|
-
* @returns List of jobs including single job and chunk jobs.
|
|
166
|
-
*/
|
|
167
|
-
static getJobs(job, existing, log, maxChunkUnit = ChunkJobMax) {
|
|
168
|
-
const jobs = [];
|
|
169
|
-
let chunkJob = [];
|
|
170
|
-
let chunkUnit = 0; // Calculate the chunkUnit based on the size
|
|
171
|
-
for (const file of job.output.files) {
|
|
172
|
-
const outputFile = `${file.name}.tiff`;
|
|
173
|
-
if (existing.has(outputFile)) {
|
|
174
|
-
log.debug({ fileName: outputFile }, 'Skip:Exists');
|
|
175
|
-
continue;
|
|
176
|
-
}
|
|
177
|
-
const imageSize = file.width / job.output.gsd;
|
|
178
|
-
if (imageSize > 16385) {
|
|
179
|
-
chunkJob.push(file.name);
|
|
180
|
-
chunkUnit += ChunkJobMax;
|
|
181
|
-
}
|
|
182
|
-
else if (imageSize > 8193) {
|
|
183
|
-
chunkJob.push(file.name);
|
|
184
|
-
chunkUnit += ChunkLargeUnit;
|
|
185
|
-
}
|
|
186
|
-
else if (imageSize > 4097) {
|
|
187
|
-
chunkJob.push(file.name);
|
|
188
|
-
chunkUnit += ChunkMiddleUnit;
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
chunkJob.push(file.name);
|
|
192
|
-
chunkUnit += ChunkSmallUnit;
|
|
193
|
-
}
|
|
194
|
-
if (chunkUnit >= maxChunkUnit) {
|
|
195
|
-
jobs.push(chunkJob);
|
|
196
|
-
chunkJob = [];
|
|
197
|
-
chunkUnit = 0;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
if (chunkJob.length > 0)
|
|
201
|
-
jobs.push(chunkJob);
|
|
202
|
-
return jobs;
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
//# sourceMappingURL=batch.job.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch.job.js","sourceRoot":"","sources":["../../../src/cli/cogify/batch.job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cutline.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/cutline.ts"],"names":[],"mappings":"AA+BA,wBAAgB,UAAU,CAAC,WAAW,SAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAExF"}
|