@basemaps/cli 6.34.0 → 6.35.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 +26 -0
- package/README.md +6 -0
- package/build/cli/cogify/action.cog.d.ts.map +1 -1
- package/build/cli/cogify/action.cog.js +11 -11
- package/build/cli/cogify/action.cog.js.map +1 -1
- package/build/cli/cogify/action.make.cog.d.ts +17 -0
- package/build/cli/cogify/action.make.cog.d.ts.map +1 -0
- package/build/cli/cogify/action.make.cog.js +136 -0
- package/build/cli/cogify/action.make.cog.js.map +1 -0
- package/build/cli/cogify/cutline.d.ts +5 -0
- package/build/cli/cogify/cutline.d.ts.map +1 -0
- package/build/cli/cogify/cutline.js +33 -0
- package/build/cli/cogify/cutline.js.map +1 -0
- package/build/cli/cogify/imagery.config.d.ts +3 -2
- package/build/cli/cogify/imagery.config.d.ts.map +1 -1
- package/build/cli/cogify/imagery.config.js +10 -10
- package/build/cli/cogify/imagery.config.js.map +1 -1
- package/build/cli/config/action.cog.mapsheet.d.ts +10 -0
- package/build/cli/config/action.cog.mapsheet.d.ts.map +1 -0
- package/build/cli/config/action.cog.mapsheet.js +89 -0
- package/build/cli/config/action.cog.mapsheet.js.map +1 -0
- package/build/cli/config/action.imagery.config.d.ts +1 -1
- package/build/cli/config/action.imagery.config.d.ts.map +1 -1
- package/build/cli/config/action.imagery.config.js +33 -21
- package/build/cli/config/action.imagery.config.js.map +1 -1
- package/build/cli/config/action.import.d.ts.map +1 -1
- package/build/cli/config/action.import.js +11 -10
- package/build/cli/config/action.import.js.map +1 -1
- package/build/cli/config/config.update.d.ts +3 -2
- package/build/cli/config/config.update.d.ts.map +1 -1
- package/build/cli/config/config.update.js +9 -7
- 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 -4
- package/build/cli/index.js.map +1 -1
- package/build/cli/server/action.serve.d.ts.map +1 -1
- package/build/cli/server/action.serve.js +2 -8
- package/build/cli/server/action.serve.js.map +1 -1
- package/package.json +7 -8
- package/build/cli/aws/__tests__/action.aws.test.d.ts +0 -2
- package/build/cli/aws/__tests__/action.aws.test.d.ts.map +0 -1
- package/build/cli/aws/__tests__/action.aws.test.js +0 -78
- package/build/cli/aws/__tests__/action.aws.test.js.map +0 -1
- package/build/cli/aws/__tests__/size.test.d.ts +0 -2
- package/build/cli/aws/__tests__/size.test.d.ts.map +0 -1
- package/build/cli/aws/__tests__/size.test.js +0 -51
- package/build/cli/aws/__tests__/size.test.js.map +0 -1
- package/build/cli/aws/action.aws.list.d.ts +0 -22
- package/build/cli/aws/action.aws.list.d.ts.map +0 -1
- package/build/cli/aws/action.aws.list.js +0 -116
- package/build/cli/aws/action.aws.list.js.map +0 -1
- package/build/cli/aws/sizes.d.ts +0 -8
- package/build/cli/aws/sizes.d.ts.map +0 -1
- package/build/cli/aws/sizes.js +0 -30
- package/build/cli/aws/sizes.js.map +0 -1
- package/build/cli/screenshot/action.screenshot.d.ts +0 -19
- package/build/cli/screenshot/action.screenshot.d.ts.map +0 -1
- package/build/cli/screenshot/action.screenshot.js +0 -115
- package/build/cli/screenshot/action.screenshot.js.map +0 -1
- package/build/cli/screenshot/test.tiles.d.ts +0 -48
- package/build/cli/screenshot/test.tiles.d.ts.map +0 -1
- package/build/cli/screenshot/test.tiles.js +0 -115
- package/build/cli/screenshot/test.tiles.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,32 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.35.0](https://github.com/linz/basemaps/compare/v6.34.0...v6.35.0) (2022-09-14)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **cli:** Add a year at end of imagery name to fix the broken attribution ([#2455](https://github.com/linz/basemaps/issues/2455)) ([05b5ec8](https://github.com/linz/basemaps/commit/05b5ec8621244fe2b210a31e5495e6578bc3910f))
|
|
12
|
+
* **cli:** Filter out the removed layers with minZoom:32. ([#2477](https://github.com/linz/basemaps/issues/2477)) ([d3c9adb](https://github.com/linz/basemaps/commit/d3c9adb8e2f254731243d5bb29ce8d1fc8a8d261))
|
|
13
|
+
* **cli:** Fix the output url to include the -year at end, and add debug into url. ([#2467](https://github.com/linz/basemaps/issues/2467)) ([8481e8d](https://github.com/linz/basemaps/commit/8481e8db1a9eebbd4f10eee96294981468f71068))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **cli:** New cli to make cog and create job.json for it. ([#2497](https://github.com/linz/basemaps/issues/2497)) ([41f1379](https://github.com/linz/basemaps/commit/41f1379ca3265e985f316baa13c99546495a89e1))
|
|
19
|
+
* switch to aws role provider from chunkd ([#2473](https://github.com/linz/basemaps/issues/2473)) ([87be0e0](https://github.com/linz/basemaps/commit/87be0e08610f02003cb4ec3f6ced9b2051ee1617))
|
|
20
|
+
* **cli:** Add a output for written url to argo workflow output. ([#2459](https://github.com/linz/basemaps/issues/2459)) ([d1bcc95](https://github.com/linz/basemaps/commit/d1bcc95ca4c6b00dccb0ba0c3a70161890bfd1a2))
|
|
21
|
+
* **cli:** Config creation cli to include centre location in the output url. ([#2453](https://github.com/linz/basemaps/issues/2453)) ([06a9e5b](https://github.com/linz/basemaps/commit/06a9e5baacf57eb00e47c89b31585ba7ef14aea7))
|
|
22
|
+
* **cli:** include url for processed imagery ([#2447](https://github.com/linz/basemaps/issues/2447)) ([150550e](https://github.com/linz/basemaps/commit/150550e06b7ce0382157196b03ed9cfb36e49972))
|
|
23
|
+
* **cli:** move screenshot tool into linz/basemaps-screenshot ([#2429](https://github.com/linz/basemaps/issues/2429)) ([27463d3](https://github.com/linz/basemaps/commit/27463d35b424669d6f2e945184a0b15ca3067801))
|
|
24
|
+
* **cli:** New cli to create cog map sheet from a give fgb file and config. ([#2472](https://github.com/linz/basemaps/issues/2472)) ([6cf2563](https://github.com/linz/basemaps/commit/6cf25638e2ae4fe365aa78ab77cd0d319c02d7a0))
|
|
25
|
+
* **cli:** Remove the role config parameter as confusing with config, pass it with env. ([#2474](https://github.com/linz/basemaps/issues/2474)) ([79619ee](https://github.com/linz/basemaps/commit/79619ee2797563bc768abdd4ce20a0302149180f))
|
|
26
|
+
* allow loading config from ?config ([#2442](https://github.com/linz/basemaps/issues/2442)) ([8f946d8](https://github.com/linz/basemaps/commit/8f946d8ffb155304b80c26aca0faf4c64136390f))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
6
32
|
# [6.34.0](https://github.com/linz/basemaps/compare/v6.33.0...v6.34.0) (2022-08-17)
|
|
7
33
|
|
|
8
34
|
|
package/README.md
CHANGED
|
@@ -82,6 +82,12 @@ Build a specific COG
|
|
|
82
82
|
./bin/bmc.js -V cog --job ./cogs/01DYREBEEFFXEPBAYBED2TMAFJ/job.json --name 1-2-3 --commit
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
Make cog job json
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
./bin/bmc.js -V make-cog --imagery s3://imagery_path --target destination_bucket --name imagery_name --tile-matrix NZTM2000Quad --output ./jobs.json
|
|
89
|
+
```
|
|
90
|
+
|
|
85
91
|
## Advanced Job creation
|
|
86
92
|
|
|
87
93
|
Useful configuration options for `cogify job`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.cog.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/action.cog.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"action.cog.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/action.cog.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEpG,OAAO,EACL,iBAAiB,EAKlB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQ5C,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD,OAAO,CAAC,GAAG,CAAC,CAA6B;IACzC,OAAO,CAAC,IAAI,CAAC,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAC,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAkC;;IAUnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IA0CnC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD1B,WAAW,CACf,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IA2ChB,2DAA2D;IACrD,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCrE,SAAS,CAAC,kBAAkB,IAAI,IAAI;CA4BrC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Env, fsa, getDefaultConfig, LogConfig, LoggerFatalError } from '@basemaps/shared';
|
|
2
2
|
import { CliId } from '@basemaps/shared/build/cli/base.js';
|
|
3
3
|
import { CommandLineAction, } from '@rushstack/ts-command-line';
|
|
4
4
|
import { createReadStream, promises as fs } from 'fs';
|
|
@@ -59,6 +59,7 @@ export class CommandCogCreate extends CommandLineAction {
|
|
|
59
59
|
const jobLocation = (_a = this.job) === null || _a === void 0 ? void 0 : _a.value;
|
|
60
60
|
if (jobLocation == null)
|
|
61
61
|
throw new Error('Missing job name');
|
|
62
|
+
const cfg = getDefaultConfig();
|
|
62
63
|
const isCommit = (_c = (_b = this.commit) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : false;
|
|
63
64
|
const job = await CogStacJob.load(jobLocation);
|
|
64
65
|
const logger = LogConfig.get().child({
|
|
@@ -84,14 +85,14 @@ export class CommandCogCreate extends CommandLineAction {
|
|
|
84
85
|
const processingId = job.json.processingId;
|
|
85
86
|
if (processingId != null) {
|
|
86
87
|
// Update job status if this is the processing job.
|
|
87
|
-
const jobConfig = await
|
|
88
|
+
const jobConfig = await cfg.ProcessingJob.get(processingId);
|
|
88
89
|
if (jobConfig == null)
|
|
89
90
|
throw new Error('Unable to find Job Processing Config:' + processingId);
|
|
90
91
|
const jobFailed = jobConfig;
|
|
91
92
|
jobFailed.status = JobStatus.Fail;
|
|
92
93
|
jobFailed.error = String(e);
|
|
93
|
-
if (
|
|
94
|
-
await
|
|
94
|
+
if (cfg.ProcessingJob.isWriteable())
|
|
95
|
+
await cfg.ProcessingJob.put(jobFailed);
|
|
95
96
|
else
|
|
96
97
|
throw new Error('Unable update the Processing Job status:' + jobFailed.id);
|
|
97
98
|
}
|
|
@@ -156,24 +157,23 @@ export class CommandCogCreate extends CommandLineAction {
|
|
|
156
157
|
continue;
|
|
157
158
|
expectedTiffs.delete(basename);
|
|
158
159
|
}
|
|
160
|
+
const cfg = getDefaultConfig();
|
|
159
161
|
if (expectedTiffs.size === 0) {
|
|
160
162
|
// Insert Imagery and TileSet Config
|
|
161
|
-
await insertConfigImagery(job, logger);
|
|
162
|
-
await insertConfigTileSet(job, logger);
|
|
163
|
+
await insertConfigImagery(cfg, job, logger);
|
|
164
|
+
await insertConfigTileSet(cfg, job, logger);
|
|
163
165
|
// Update job status if this is the processing job.
|
|
164
166
|
const url = await prepareUrl(job);
|
|
165
167
|
const processingId = job.json.processingId;
|
|
166
168
|
if (processingId != null) {
|
|
167
|
-
const jobConfig = await
|
|
169
|
+
const jobConfig = await cfg.ProcessingJob.get(processingId);
|
|
168
170
|
if (jobConfig == null)
|
|
169
171
|
throw new Error('Unable to find Job Processing Config:' + processingId);
|
|
170
172
|
const jobComplete = jobConfig;
|
|
171
173
|
jobComplete.status = JobStatus.Complete;
|
|
172
174
|
jobComplete.url = url;
|
|
173
|
-
if (
|
|
174
|
-
await
|
|
175
|
-
else
|
|
176
|
-
throw new Error('Unable update the Processing Job status:' + jobConfig.id);
|
|
175
|
+
if (cfg.ProcessingJob.isWriteable())
|
|
176
|
+
await cfg.ProcessingJob.put(jobConfig);
|
|
177
177
|
}
|
|
178
178
|
logger.info({ tiffCount: jobSize, tiffTotal: jobSize, url }, 'CogCreate:JobComplete');
|
|
179
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.cog.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.cog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"action.cog.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.cog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TileMatrixSet } from '@basemaps/geo';
|
|
2
|
+
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
3
|
+
import { CogStacJob } from '../../cog/cog.stac.job.js';
|
|
4
|
+
export declare class CommandMakeCog extends CommandLineAction {
|
|
5
|
+
private imagery;
|
|
6
|
+
private tileMatrix;
|
|
7
|
+
private name;
|
|
8
|
+
private target;
|
|
9
|
+
private cutline;
|
|
10
|
+
private blend;
|
|
11
|
+
private output;
|
|
12
|
+
constructor();
|
|
13
|
+
protected onDefineParameters(): void;
|
|
14
|
+
onExecute(): Promise<void>;
|
|
15
|
+
makeCog(id: string, imageryName: string, tileMatrix: TileMatrixSet, uri: string): Promise<CogStacJob>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=action.make.cog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.make.cog.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/action.make.cog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAkB,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAA2D,MAAM,4BAA4B,CAAC;AACxH,OAAO,EAAE,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAM3E,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAA6B;;IAU3C,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAiD9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B1B,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAuC5G"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Epsg, TileMatrixSets } from '@basemaps/geo';
|
|
2
|
+
import { fsa, LogConfig } 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
|
+
export class CommandMakeCog extends CommandLineAction {
|
|
9
|
+
constructor() {
|
|
10
|
+
super({
|
|
11
|
+
actionName: 'make-cog',
|
|
12
|
+
summary: 'Import Basemaps imagery from s3 buckets',
|
|
13
|
+
documentation: 'Given a valid path of raw imagery and import into basemaps',
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
onDefineParameters() {
|
|
17
|
+
this.imagery = this.defineStringParameter({
|
|
18
|
+
argumentName: 'IMAGERY',
|
|
19
|
+
parameterShortName: '-i',
|
|
20
|
+
parameterLongName: '--imagery',
|
|
21
|
+
description: 'Path of source imagery to import.',
|
|
22
|
+
required: true,
|
|
23
|
+
});
|
|
24
|
+
this.target = this.defineStringParameter({
|
|
25
|
+
argumentName: 'BUCKET',
|
|
26
|
+
parameterShortName: '-t',
|
|
27
|
+
parameterLongName: '--target',
|
|
28
|
+
description: 'Target bucket for job.json',
|
|
29
|
+
required: true,
|
|
30
|
+
});
|
|
31
|
+
this.name = this.defineStringParameter({
|
|
32
|
+
argumentName: 'NAME',
|
|
33
|
+
parameterShortName: '-n',
|
|
34
|
+
parameterLongName: '--name',
|
|
35
|
+
description: 'Custome imagery name',
|
|
36
|
+
required: false,
|
|
37
|
+
});
|
|
38
|
+
this.tileMatrix = this.defineStringParameter({
|
|
39
|
+
argumentName: 'TILE_MATRIX',
|
|
40
|
+
parameterLongName: '--tile-matrix',
|
|
41
|
+
description: 'Target tile matrix',
|
|
42
|
+
required: false,
|
|
43
|
+
});
|
|
44
|
+
this.cutline = this.defineStringParameter({
|
|
45
|
+
argumentName: 'CUTLINE',
|
|
46
|
+
parameterLongName: '--cutline',
|
|
47
|
+
description: 'Path of import cutline',
|
|
48
|
+
required: false,
|
|
49
|
+
});
|
|
50
|
+
this.blend = this.defineIntegerParameter({
|
|
51
|
+
argumentName: 'BLEND',
|
|
52
|
+
parameterLongName: '--blend',
|
|
53
|
+
description: 'Cutline blend',
|
|
54
|
+
required: false,
|
|
55
|
+
});
|
|
56
|
+
this.output = this.defineStringParameter({
|
|
57
|
+
argumentName: 'OUTPUT',
|
|
58
|
+
parameterShortName: '-o',
|
|
59
|
+
parameterLongName: '--output',
|
|
60
|
+
description: 'Output job.json path',
|
|
61
|
+
required: false,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async onExecute() {
|
|
65
|
+
const logger = LogConfig.get();
|
|
66
|
+
const imagery = this.imagery.value;
|
|
67
|
+
let name = this.name.value;
|
|
68
|
+
if (imagery == null)
|
|
69
|
+
throw new Error('Please provide a valid imagery source');
|
|
70
|
+
await Promise.all([3791, 3790, 3789, 3788].map((code) => ProjectionLoader.load(code)));
|
|
71
|
+
const source = imagery.endsWith('/') ? imagery : imagery + '/';
|
|
72
|
+
logger.info({ imagery: source }, 'FindImagery');
|
|
73
|
+
if (name == null)
|
|
74
|
+
name = source.split('/').filter(Boolean).pop();
|
|
75
|
+
if (name == null)
|
|
76
|
+
throw new Error('Failed to find imagery set name');
|
|
77
|
+
const tileMatrix = this.tileMatrix.value ? [this.tileMatrix.value] : ['NZTM2000Quad', 'WebMercatorQuad'];
|
|
78
|
+
const outputs = [];
|
|
79
|
+
for (const identifier of tileMatrix) {
|
|
80
|
+
const id = ulid.ulid();
|
|
81
|
+
const tileMatrix = TileMatrixSets.find(identifier);
|
|
82
|
+
if (tileMatrix == null)
|
|
83
|
+
throw new Error(`Cannot find tile matrix: ${identifier}`);
|
|
84
|
+
logger.info({ id, tileMatrix: tileMatrix.identifier }, 'SetTileMatrix');
|
|
85
|
+
const job = await this.makeCog(id, name, tileMatrix, source);
|
|
86
|
+
outputs.push(job.getJobPath('job.json'));
|
|
87
|
+
}
|
|
88
|
+
// Write the output job json
|
|
89
|
+
const output = this.output.value;
|
|
90
|
+
if (output) {
|
|
91
|
+
fsa.write(output, JSON.stringify(outputs));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async makeCog(id, imageryName, tileMatrix, uri) {
|
|
95
|
+
const bucket = this.target.value;
|
|
96
|
+
if (bucket == null)
|
|
97
|
+
throw new Error('Please provide a validate bucket for output job.json');
|
|
98
|
+
let resampling;
|
|
99
|
+
/** Process Gebco 2193 as one cog of full extent to avoid antimeridian problems */
|
|
100
|
+
if (tileMatrix.projection === Epsg.Nztm2000 && imageryName.includes('gebco')) {
|
|
101
|
+
resampling = {
|
|
102
|
+
warp: 'nearest',
|
|
103
|
+
overview: 'lanczos',
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
if (imageryName.includes('geographx')) {
|
|
107
|
+
resampling = {
|
|
108
|
+
warp: 'bilinear',
|
|
109
|
+
overview: 'bilinear',
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Prepare the cutline
|
|
113
|
+
let cutline;
|
|
114
|
+
if (this.cutline.value && this.blend.value)
|
|
115
|
+
cutline = { href: this.cutline.value, blend: this.blend.value };
|
|
116
|
+
else if (this.cutline.value)
|
|
117
|
+
new Error('Please provide a blend for the cutline');
|
|
118
|
+
else
|
|
119
|
+
cutline = getCutline(imageryName);
|
|
120
|
+
if (cutline == null)
|
|
121
|
+
throw new Error(`Cannot found default cutline from imagery name: ${imageryName}`);
|
|
122
|
+
const ctx = {
|
|
123
|
+
imageryName,
|
|
124
|
+
override: { id, projection: Epsg.Nztm2000, resampling },
|
|
125
|
+
outputLocation: { type: 's3', path: `s3://${bucket}` },
|
|
126
|
+
sourceLocation: { type: 's3', path: uri },
|
|
127
|
+
cutline,
|
|
128
|
+
batch: false,
|
|
129
|
+
tileMatrix,
|
|
130
|
+
oneCogCovering: false,
|
|
131
|
+
};
|
|
132
|
+
const job = (await CogJobFactory.create(ctx));
|
|
133
|
+
return job;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=action.make.cog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.make.cog.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.make.cog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAA2D,MAAM,4BAA4B,CAAC;AAExH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IASnD;QACE,KAAK,CAAC;YACJ,UAAU,EAAE,UAAU;YACtB,OAAO,EAAE,yCAAyC;YAClD,aAAa,EAAE,4DAA4D;SAC5E,CAAC,CAAC;IACL,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACxC,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,IAAI;YACxB,iBAAiB,EAAE,WAAW;YAC9B,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvC,YAAY,EAAE,QAAQ;YACtB,kBAAkB,EAAE,IAAI;YACxB,iBAAiB,EAAE,UAAU;YAC7B,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACrC,YAAY,EAAE,MAAM;YACpB,kBAAkB,EAAE,IAAI;YACxB,iBAAiB,EAAE,QAAQ;YAC3B,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC;YAC3C,YAAY,EAAE,aAAa;YAC3B,iBAAiB,EAAE,eAAe;YAClC,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACxC,YAAY,EAAE,SAAS;YACvB,iBAAiB,EAAE,WAAW;YAC9B,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACvC,YAAY,EAAE,OAAO;YACrB,iBAAiB,EAAE,SAAS;YAC5B,WAAW,EAAE,eAAe;YAC5B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvC,YAAY,EAAE,QAAQ;YACtB,kBAAkB,EAAE,IAAI;YACxB,iBAAiB,EAAE,UAAU;YAC7B,WAAW,EAAE,sBAAsB;YACnC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,OAAO,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC9E,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;QACjE,IAAI,IAAI,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAErE,MAAM,UAAU,GAAa,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAEnH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE;YACnC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,IAAI,UAAU,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,EAAE,eAAe,CAAC,CAAC;YACxE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;SAC1C;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,WAAmB,EAAE,UAAyB,EAAE,GAAW;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC5F,IAAI,UAAU,CAAC;QACf,kFAAkF;QAClF,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5E,UAAU,GAAG;gBACX,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS;aACX,CAAC;SACZ;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACrC,UAAU,GAAG;gBACX,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,UAAU;aACZ,CAAC;SACZ;QAED,sBAAsB;QACtB,IAAI,OAAoD,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACvG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;;YAC5E,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,OAAO,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAC;QAEvG,MAAM,GAAG,GAAuB;YAC9B,WAAW;YACX,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;YACvD,cAAc,EAAE,EAAE,IAAI,EAAE,IAAa,EAAE,IAAI,EAAE,QAAQ,MAAM,EAAE,EAAE;YAC/D,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACzC,OAAO;YACP,KAAK,EAAE,KAAK;YACZ,UAAU;YACV,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAe,CAAC;QAC5D,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const UrbanRuralCutLine = {
|
|
2
|
+
href: 's3://linz-basemaps-source/cutline/2020-05-07-cutline-nz-coasts-rural-and-urban.geojson',
|
|
3
|
+
blend: 20,
|
|
4
|
+
};
|
|
5
|
+
const DefaultCutlines = [
|
|
6
|
+
{
|
|
7
|
+
filter: 'sentinel',
|
|
8
|
+
cutline: { href: 's3://linz-basemaps-source/cutline/2020-05-12-cutline-nz-ci.geojson.gz', blend: 5 },
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
filter: 'chatham',
|
|
12
|
+
cutline: { href: 's3://linz-basemaps-source/cutline/2020-05-12-cutline-nz-ci.geojson.gz', blend: 5 },
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
filter: 'geographx',
|
|
16
|
+
cutline: {
|
|
17
|
+
href: 's3://linz-basemaps-source/cutline/2021-11-10-cutline-51153-nz-coastlines-and-islands-polygons-topo-150k.geojson.gz',
|
|
18
|
+
blend: 0,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
filter: 'topo50',
|
|
23
|
+
cutline: { href: 's3://linz-basemaps-source/cutline/2020-08-10-cutline-topo50.geojson.gz', blend: 0 },
|
|
24
|
+
},
|
|
25
|
+
{ filter: 'satellite', cutline: UrbanRuralCutLine },
|
|
26
|
+
{ filter: 'urban', cutline: UrbanRuralCutLine },
|
|
27
|
+
{ filter: 'rural', cutline: UrbanRuralCutLine },
|
|
28
|
+
];
|
|
29
|
+
export function getCutline(imageryName = '') {
|
|
30
|
+
var _a;
|
|
31
|
+
return (_a = DefaultCutlines.find((f) => imageryName.toLowerCase().includes(f.filter))) === null || _a === void 0 ? void 0 : _a.cutline;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=cutline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cutline.js","sourceRoot":"","sources":["../../../src/cli/cogify/cutline.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,wFAAwF;IAC9F,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB;QACE,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,EAAE,IAAI,EAAE,uEAAuE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrG;IACD;QACE,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,EAAE,IAAI,EAAE,uEAAuE,EAAE,KAAK,EAAE,CAAC,EAAE;KACrG;IACD;QACE,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE;YACP,IAAI,EAAE,oHAAoH;YAC1H,KAAK,EAAE,CAAC;SACT;KACF;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,EAAE,IAAI,EAAE,wEAAwE,EAAE,KAAK,EAAE,CAAC,EAAE;KACtG;IAED,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;IACnD,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;IAC/C,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE;CAChD,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,WAAW,GAAG,EAAE;;IACzC,OAAO,MAAA,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,0CAAE,OAAO,CAAC;AAC5F,CAAC"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { BasemapsConfigProvider } from '@basemaps/config';
|
|
1
2
|
import { LogType } from '@basemaps/shared';
|
|
2
3
|
import { CogStacJob } from '../../cog/cog.stac.job';
|
|
3
4
|
/**
|
|
4
5
|
* Prepare and insert Imagery Config for the cog creation job.
|
|
5
6
|
* @returns
|
|
6
7
|
*/
|
|
7
|
-
export declare function insertConfigImagery(job: CogStacJob, logger: LogType): Promise<void>;
|
|
8
|
+
export declare function insertConfigImagery(cfg: BasemapsConfigProvider, job: CogStacJob, logger: LogType): Promise<void>;
|
|
8
9
|
/**
|
|
9
10
|
* Prepare and insert TileSet Config for the cog creation job.
|
|
10
11
|
* @returns
|
|
11
12
|
*/
|
|
12
|
-
export declare function insertConfigTileSet(job: CogStacJob, logger: LogType): Promise<void>;
|
|
13
|
+
export declare function insertConfigTileSet(cfg: BasemapsConfigProvider, job: CogStacJob, logger: LogType): Promise<void>;
|
|
13
14
|
//# sourceMappingURL=imagery.config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagery.config.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/imagery.config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"imagery.config.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/imagery.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAA6C,MAAM,kBAAkB,CAAC;AAErG,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TileSetType } from '@basemaps/config';
|
|
2
2
|
import { ImageFormat } from '@basemaps/geo';
|
|
3
3
|
/**
|
|
4
4
|
* Prepare and insert Imagery Config for the cog creation job.
|
|
5
5
|
* @returns
|
|
6
6
|
*/
|
|
7
|
-
export async function insertConfigImagery(job, logger) {
|
|
7
|
+
export async function insertConfigImagery(cfg, job, logger) {
|
|
8
8
|
const now = Date.now();
|
|
9
|
-
const imgId =
|
|
9
|
+
const imgId = cfg.Imagery.id(job.id);
|
|
10
10
|
const configImagery = {
|
|
11
11
|
id: imgId,
|
|
12
12
|
name: job.name,
|
|
@@ -17,18 +17,18 @@ export async function insertConfigImagery(job, logger) {
|
|
|
17
17
|
bounds: job.output.bounds,
|
|
18
18
|
files: job.output.files,
|
|
19
19
|
};
|
|
20
|
-
if (
|
|
21
|
-
|
|
20
|
+
if (cfg.Imagery.isWriteable())
|
|
21
|
+
cfg.Imagery.put(configImagery);
|
|
22
22
|
logger.info({ imgId }, 'CogCreate:InsertConfigImagery');
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Prepare and insert TileSet Config for the cog creation job.
|
|
26
26
|
* @returns
|
|
27
27
|
*/
|
|
28
|
-
export async function insertConfigTileSet(job, logger) {
|
|
28
|
+
export async function insertConfigTileSet(cfg, job, logger) {
|
|
29
29
|
const now = Date.now();
|
|
30
|
-
const tsId =
|
|
31
|
-
const imId =
|
|
30
|
+
const tsId = cfg.TileSet.id(job.id);
|
|
31
|
+
const imId = cfg.Imagery.id(job.id);
|
|
32
32
|
const tileSet = {
|
|
33
33
|
type: TileSetType.Raster,
|
|
34
34
|
format: ImageFormat.Webp,
|
|
@@ -38,8 +38,8 @@ export async function insertConfigTileSet(job, logger) {
|
|
|
38
38
|
background: { r: 0, g: 0, b: 0, alpha: 0 },
|
|
39
39
|
updatedAt: now,
|
|
40
40
|
};
|
|
41
|
-
if (
|
|
42
|
-
|
|
41
|
+
if (cfg.TileSet.isWriteable())
|
|
42
|
+
cfg.TileSet.put(tileSet);
|
|
43
43
|
logger.info({ tsId }, 'CogCreate:InsertConfigTileSet');
|
|
44
44
|
}
|
|
45
45
|
//# sourceMappingURL=imagery.config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imagery.config.js","sourceRoot":"","sources":["../../../src/cli/cogify/imagery.config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"imagery.config.js","sourceRoot":"","sources":["../../../src/cli/cogify/imagery.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwD,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAA2B,EAC3B,GAAe,EACf,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,aAAa,GAAkB;QACnC,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI;QAC1C,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU;QACrC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE;QACrB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;KACxB,CAAC;IACF,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE;QAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,+BAA+B,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAA2B,EAC3B,GAAe,EACf,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAkB;QAC7B,IAAI,EAAE,WAAW,CAAC,MAAM;QACxB,MAAM,EAAE,WAAW,CAAC,IAAI;QACxB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,GAAG,CAAC,EAAE;QACZ,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAC3F,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;QAC1C,SAAS,EAAE,GAAG;KACf,CAAC;IACF,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE;QAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
2
|
+
export declare class CommandCogMapSheet extends CommandLineAction {
|
|
3
|
+
private path;
|
|
4
|
+
private config;
|
|
5
|
+
private output;
|
|
6
|
+
constructor();
|
|
7
|
+
protected onDefineParameters(): void;
|
|
8
|
+
onExecute(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=action.cog.mapsheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.cog.mapsheet.d.ts","sourceRoot":"","sources":["../../../src/cli/config/action.cog.mapsheet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,4BAA4B,CAAC;AAS3F,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAA6B;;IAU3C,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAqB9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAsDjC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
|
+
import { Bounds } from '@basemaps/geo';
|
|
3
|
+
import { fsa, LogConfig } from '@basemaps/shared';
|
|
4
|
+
import { CommandLineAction } from '@rushstack/ts-command-line';
|
|
5
|
+
import * as fgb from 'flatgeobuf/lib/mjs/geojson.js';
|
|
6
|
+
export class CommandCogMapSheet extends CommandLineAction {
|
|
7
|
+
constructor() {
|
|
8
|
+
super({
|
|
9
|
+
actionName: 'create-mapsheet',
|
|
10
|
+
summary: 'Create a cog mapsheet from provided flatgeobuf',
|
|
11
|
+
documentation: 'Given a valid path of raw imagery and create a config bundle file',
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
onDefineParameters() {
|
|
15
|
+
this.path = this.defineStringParameter({
|
|
16
|
+
argumentName: 'PATH',
|
|
17
|
+
parameterLongName: '--path',
|
|
18
|
+
description: 'Path of flatgeobuf, this can be both a local path or s3 location',
|
|
19
|
+
required: true,
|
|
20
|
+
});
|
|
21
|
+
this.config = this.defineStringParameter({
|
|
22
|
+
argumentName: 'CONFIG',
|
|
23
|
+
parameterLongName: '--config',
|
|
24
|
+
description: 'Path of basemaps config json, this can be both a local path or s3 location',
|
|
25
|
+
required: true,
|
|
26
|
+
});
|
|
27
|
+
this.output = this.defineStringParameter({
|
|
28
|
+
argumentName: 'OUTPUT',
|
|
29
|
+
parameterLongName: '--output',
|
|
30
|
+
description: 'Output of the mapsheet file',
|
|
31
|
+
required: true,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
async onExecute() {
|
|
35
|
+
const logger = LogConfig.get();
|
|
36
|
+
const path = this.path.value;
|
|
37
|
+
if (path == null)
|
|
38
|
+
throw new Error('Please provide valid a fgb path.');
|
|
39
|
+
const config = this.config.value;
|
|
40
|
+
if (config == null)
|
|
41
|
+
throw new Error('Please provide valid a config path.');
|
|
42
|
+
const outputPath = this.output.value;
|
|
43
|
+
if (outputPath == null)
|
|
44
|
+
throw new Error('Please provide valid a output path.');
|
|
45
|
+
logger.info({ path }, 'MapSheet:LoadFgb');
|
|
46
|
+
const buf = await fsa.read(path);
|
|
47
|
+
logger.info({ config }, 'MapSheet:LoadConfig');
|
|
48
|
+
const configJson = await fsa.readJson(config);
|
|
49
|
+
const men = ConfigProviderMemory.fromJson(configJson);
|
|
50
|
+
const rest = fgb.deserialize(buf);
|
|
51
|
+
const aerial = await men.TileSet.get('ts_aerial');
|
|
52
|
+
if (aerial == null)
|
|
53
|
+
throw new Error('Invalid config file.');
|
|
54
|
+
const layers = aerial.layers.filter((c) => c[2193] != null && (c.maxZoom == null || c.maxZoom > 19) && (c.minZoom == null || c.minZoom < 32));
|
|
55
|
+
const imageryIds = new Set();
|
|
56
|
+
for (const layer of layers) {
|
|
57
|
+
if (layer[2193] != null)
|
|
58
|
+
imageryIds.add(layer[2193]);
|
|
59
|
+
}
|
|
60
|
+
const imagery = await men.Imagery.getAll(imageryIds);
|
|
61
|
+
const output = [];
|
|
62
|
+
logger.info({ path, config }, 'MapSheet:CreateMapSheet');
|
|
63
|
+
for (const feature of rest.features) {
|
|
64
|
+
if (feature.properties == null)
|
|
65
|
+
continue;
|
|
66
|
+
const sheetCode = feature.properties.sheet_code_id;
|
|
67
|
+
const current = { sheetCode, files: [] };
|
|
68
|
+
output.push(current);
|
|
69
|
+
const bounds = Bounds.fromMultiPolygon(feature.geometry.coordinates);
|
|
70
|
+
for (const layer of layers) {
|
|
71
|
+
if (layer[2193] == null)
|
|
72
|
+
continue;
|
|
73
|
+
const img = imagery.get(layer[2193]);
|
|
74
|
+
if (img == null)
|
|
75
|
+
continue;
|
|
76
|
+
if (img.bounds == null || Bounds.fromJson(img.bounds).intersects(bounds)) {
|
|
77
|
+
for (const file of img.files) {
|
|
78
|
+
if (bounds.intersects(Bounds.fromJson(file))) {
|
|
79
|
+
current.files.push(`${img.uri}/${file.name}.tiff`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
logger.info({ outputPath }, 'MapSheet:WriteOutput');
|
|
86
|
+
fsa.write(outputPath, JSON.stringify(output, null, 2));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=action.cog.mapsheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.cog.mapsheet.js","sourceRoot":"","sources":["../../../src/cli/config/action.cog.mapsheet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action.imagery.config.d.ts","sourceRoot":"","sources":["../../../src/cli/config/action.imagery.config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAwD,MAAM,4BAA4B,CAAC;AAGrH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAA2B;;IAUzC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAmB9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"action.imagery.config.d.ts","sourceRoot":"","sources":["../../../src/cli/config/action.imagery.config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAwD,MAAM,4BAA4B,CAAC;AAGrH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAA2B;;IAUzC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAmB9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAwFjC"}
|