@basemaps/cli 6.46.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.
Files changed (184) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +10 -108
  3. package/build/cli/config/action.bundle.d.ts.map +1 -1
  4. package/build/cli/config/action.bundle.js +2 -4
  5. package/build/cli/config/action.bundle.js.map +1 -1
  6. package/build/cli/config/action.import.d.ts +3 -3
  7. package/build/cli/config/action.import.d.ts.map +1 -1
  8. package/build/cli/config/action.import.js.map +1 -1
  9. package/build/cli/index.d.ts.map +1 -1
  10. package/build/cli/index.js +4 -13
  11. package/build/cli/index.js.map +1 -1
  12. package/build/cli/overview/action.create.overview.d.ts +2 -0
  13. package/build/cli/overview/action.create.overview.d.ts.map +1 -1
  14. package/build/cli/overview/action.create.overview.js +5 -1
  15. package/build/cli/overview/action.create.overview.js.map +1 -1
  16. package/build/cli/util.d.ts +1 -6
  17. package/build/cli/util.d.ts.map +1 -1
  18. package/build/cli/util.js +19 -27
  19. package/build/cli/util.js.map +1 -1
  20. package/build/cog/builder.d.ts +1 -1
  21. package/build/cog/builder.d.ts.map +1 -1
  22. package/build/cog/builder.js +1 -1
  23. package/build/cog/builder.js.map +1 -1
  24. package/build/cog/cutline.d.ts +1 -1
  25. package/build/cog/cutline.d.ts.map +1 -1
  26. package/build/cog/cutline.js +1 -1
  27. package/build/cog/cutline.js.map +1 -1
  28. package/package.json +10 -15
  29. package/build/cli/base.cli.d.ts +0 -1
  30. package/build/cli/base.cli.d.ts.map +0 -1
  31. package/build/cli/base.cli.js +0 -2
  32. package/build/cli/base.cli.js.map +0 -1
  33. package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
  34. package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
  35. package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
  36. package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
  37. package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
  38. package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
  39. package/build/cli/cogify/__tests__/semver.test.js +0 -62
  40. package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
  41. package/build/cli/cogify/action.cog.d.ts +0 -20
  42. package/build/cli/cogify/action.cog.d.ts.map +0 -1
  43. package/build/cli/cogify/action.cog.js +0 -198
  44. package/build/cli/cogify/action.cog.js.map +0 -1
  45. package/build/cli/cogify/action.job.d.ts +0 -28
  46. package/build/cli/cogify/action.job.d.ts.map +0 -1
  47. package/build/cli/cogify/action.job.js +0 -176
  48. package/build/cli/cogify/action.job.js.map +0 -1
  49. package/build/cli/cogify/action.make.cog.d.ts +0 -23
  50. package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
  51. package/build/cli/cogify/action.make.cog.js +0 -218
  52. package/build/cli/cogify/action.make.cog.js.map +0 -1
  53. package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
  54. package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
  55. package/build/cli/cogify/action.make.cog.pr.js +0 -96
  56. package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
  57. package/build/cli/cogify/batch.job.d.ts +0 -40
  58. package/build/cli/cogify/batch.job.d.ts.map +0 -1
  59. package/build/cli/cogify/batch.job.js +0 -205
  60. package/build/cli/cogify/batch.job.js.map +0 -1
  61. package/build/cli/cogify/cutline.d.ts +0 -5
  62. package/build/cli/cogify/cutline.d.ts.map +0 -1
  63. package/build/cli/cogify/cutline.js +0 -33
  64. package/build/cli/cogify/cutline.js.map +0 -1
  65. package/build/cli/cogify/semver.util.d.ts +0 -24
  66. package/build/cli/cogify/semver.util.d.ts.map +0 -1
  67. package/build/cli/cogify/semver.util.js +0 -56
  68. package/build/cli/cogify/semver.util.js.map +0 -1
  69. package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
  70. package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
  71. package/build/cli/config/action.cog.mapsheet.js +0 -107
  72. package/build/cli/config/action.cog.mapsheet.js.map +0 -1
  73. package/build/cli/github/github.d.ts +0 -49
  74. package/build/cli/github/github.d.ts.map +0 -1
  75. package/build/cli/github/github.js +0 -107
  76. package/build/cli/github/github.js.map +0 -1
  77. package/build/cli/github/make.cog.pr.d.ts +0 -42
  78. package/build/cli/github/make.cog.pr.d.ts.map +0 -1
  79. package/build/cli/github/make.cog.pr.js +0 -173
  80. package/build/cli/github/make.cog.pr.js.map +0 -1
  81. package/build/cli/sprites/action.sprites.d.ts +0 -11
  82. package/build/cli/sprites/action.sprites.d.ts.map +0 -1
  83. package/build/cli/sprites/action.sprites.js +0 -42
  84. package/build/cli/sprites/action.sprites.js.map +0 -1
  85. package/build/cog/__tests__/builder.test.d.ts +0 -2
  86. package/build/cog/__tests__/builder.test.d.ts.map +0 -1
  87. package/build/cog/__tests__/builder.test.js +0 -81
  88. package/build/cog/__tests__/builder.test.js.map +0 -1
  89. package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
  90. package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
  91. package/build/cog/__tests__/cog.stac.job.test.js +0 -319
  92. package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
  93. package/build/cog/__tests__/cog.test.d.ts +0 -2
  94. package/build/cog/__tests__/cog.test.d.ts.map +0 -1
  95. package/build/cog/__tests__/cog.test.js +0 -91
  96. package/build/cog/__tests__/cog.test.js.map +0 -1
  97. package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
  98. package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
  99. package/build/cog/__tests__/cog.vrt.test.js +0 -229
  100. package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
  101. package/build/cog/__tests__/cutline.test.d.ts +0 -2
  102. package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
  103. package/build/cog/__tests__/cutline.test.js +0 -300
  104. package/build/cog/__tests__/cutline.test.js.map +0 -1
  105. package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
  106. package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
  107. package/build/cog/__tests__/projection.loader.test.js +0 -27
  108. package/build/cog/__tests__/projection.loader.test.js.map +0 -1
  109. package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
  110. package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
  111. package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
  112. package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
  113. package/build/cog/cog.d.ts +0 -22
  114. package/build/cog/cog.d.ts.map +0 -1
  115. package/build/cog/cog.js +0 -72
  116. package/build/cog/cog.js.map +0 -1
  117. package/build/cog/cog.stac.job.d.ts +0 -106
  118. package/build/cog/cog.stac.job.d.ts.map +0 -1
  119. package/build/cog/cog.stac.job.js +0 -257
  120. package/build/cog/cog.stac.job.js.map +0 -1
  121. package/build/cog/cog.vrt.d.ts +0 -18
  122. package/build/cog/cog.vrt.d.ts.map +0 -1
  123. package/build/cog/cog.vrt.js +0 -102
  124. package/build/cog/cog.vrt.js.map +0 -1
  125. package/build/cog/constants.d.ts +0 -5
  126. package/build/cog/constants.d.ts.map +0 -1
  127. package/build/cog/constants.js +0 -5
  128. package/build/cog/constants.js.map +0 -1
  129. package/build/cog/job.factory.d.ts +0 -10
  130. package/build/cog/job.factory.d.ts.map +0 -1
  131. package/build/cog/job.factory.js +0 -92
  132. package/build/cog/job.factory.js.map +0 -1
  133. package/build/cog/projection.loader.d.ts +0 -13
  134. package/build/cog/projection.loader.d.ts.map +0 -1
  135. package/build/cog/projection.loader.js +0 -27
  136. package/build/cog/projection.loader.js.map +0 -1
  137. package/build/cog/stac.d.ts +0 -32
  138. package/build/cog/stac.d.ts.map +0 -1
  139. package/build/cog/stac.js +0 -3
  140. package/build/cog/stac.js.map +0 -1
  141. package/build/cog/types.d.ts +0 -83
  142. package/build/cog/types.d.ts.map +0 -1
  143. package/build/cog/types.js +0 -2
  144. package/build/cog/types.js.map +0 -1
  145. package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
  146. package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
  147. package/build/gdal/__tests__/gdal.progress.test.js +0 -22
  148. package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
  149. package/build/gdal/__tests__/gdal.test.d.ts +0 -2
  150. package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
  151. package/build/gdal/__tests__/gdal.test.js +0 -52
  152. package/build/gdal/__tests__/gdal.test.js.map +0 -1
  153. package/build/gdal/gdal.cog.d.ts +0 -42
  154. package/build/gdal/gdal.cog.d.ts.map +0 -1
  155. package/build/gdal/gdal.cog.js +0 -108
  156. package/build/gdal/gdal.cog.js.map +0 -1
  157. package/build/gdal/gdal.command.d.ts +0 -44
  158. package/build/gdal/gdal.command.d.ts.map +0 -1
  159. package/build/gdal/gdal.command.js +0 -87
  160. package/build/gdal/gdal.command.js.map +0 -1
  161. package/build/gdal/gdal.config.d.ts +0 -51
  162. package/build/gdal/gdal.config.d.ts.map +0 -1
  163. package/build/gdal/gdal.config.js +0 -23
  164. package/build/gdal/gdal.config.js.map +0 -1
  165. package/build/gdal/gdal.d.ts +0 -19
  166. package/build/gdal/gdal.d.ts.map +0 -1
  167. package/build/gdal/gdal.docker.d.ts +0 -18
  168. package/build/gdal/gdal.docker.d.ts.map +0 -1
  169. package/build/gdal/gdal.docker.js +0 -82
  170. package/build/gdal/gdal.docker.js.map +0 -1
  171. package/build/gdal/gdal.js +0 -28
  172. package/build/gdal/gdal.js.map +0 -1
  173. package/build/gdal/gdal.local.d.ts +0 -10
  174. package/build/gdal/gdal.local.d.ts.map +0 -1
  175. package/build/gdal/gdal.local.js +0 -22
  176. package/build/gdal/gdal.local.js.map +0 -1
  177. package/build/gdal/gdal.progress.d.ts +0 -16
  178. package/build/gdal/gdal.progress.d.ts.map +0 -1
  179. package/build/gdal/gdal.progress.js +0 -50
  180. package/build/gdal/gdal.progress.js.map +0 -1
  181. package/build/index.d.ts +0 -6
  182. package/build/index.d.ts.map +0 -1
  183. package/build/index.js +0 -6
  184. package/build/index.js.map +0 -1
@@ -1,28 +0,0 @@
1
- import { FileConfig } from '@basemaps/shared';
2
- import { CommandLineAction, CommandLineStringParameter } from '@rushstack/ts-command-line';
3
- export declare class CLiInputData {
4
- path: CommandLineStringParameter;
5
- roleArn: CommandLineStringParameter;
6
- externalId: CommandLineStringParameter;
7
- constructor(parent: CommandLineAction, prefix: string);
8
- }
9
- export declare class CommandJobCreate extends CommandLineAction {
10
- private source;
11
- private output;
12
- private maxConcurrency;
13
- private cutline;
14
- private cutlineBlend;
15
- private overrideId;
16
- private overrideWarpReample;
17
- private submitBatch;
18
- private quality;
19
- private sourceProjection;
20
- private tileMatrix;
21
- private oneCog;
22
- private fileList;
23
- constructor();
24
- fsConfig(source: CLiInputData): FileConfig;
25
- onExecute(): Promise<void>;
26
- protected onDefineParameters(): void;
27
- }
28
- //# sourceMappingURL=action.job.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action.job.d.ts","sourceRoot":"","sources":["../../../src/cli/cogify/action.job.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAuB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,iBAAiB,EAGjB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,YAAY;IACvB,IAAI,EAAE,0BAA0B,CAAC;IACjC,OAAO,EAAE,0BAA0B,CAAC;IACpC,UAAU,EAAE,0BAA0B,CAAC;gBAE3B,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;CAsBtD;AAED,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAA6B;;IAU7C,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU;IAkBpC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDhC,SAAS,CAAC,kBAAkB,IAAI,IAAI;CAkFrC"}
@@ -1,176 +0,0 @@
1
- import { Epsg, GoogleTms, TileMatrixSets } from '@basemaps/geo';
2
- import { fsa } from '@basemaps/shared';
3
- import { CommandLineAction, } from '@rushstack/ts-command-line';
4
- import { CogJobFactory, MaxConcurrencyDefault } from '../../cog/job.factory.js';
5
- import { GdalCogBuilderDefaults, GdalResamplingOptions } from '../../gdal/gdal.config.js';
6
- import { CliId } from '@basemaps/shared/build/cli/info.js';
7
- export class CLiInputData {
8
- constructor(parent, prefix) {
9
- this.path = parent.defineStringParameter({
10
- argumentName: prefix.toUpperCase(),
11
- parameterLongName: `--${prefix}`,
12
- description: 'Folder or S3 Bucket location to use',
13
- required: true,
14
- });
15
- this.roleArn = parent.defineStringParameter({
16
- argumentName: prefix.toUpperCase() + '_ARN',
17
- parameterLongName: `--${prefix}-role-arn`,
18
- description: 'Role to be assumed to access the data',
19
- required: false,
20
- });
21
- this.externalId = parent.defineStringParameter({
22
- argumentName: prefix.toUpperCase() + '_EXTERNAL_ID',
23
- parameterLongName: `--${prefix}-role-external-id`,
24
- description: 'Role external id to be assumed to access the data',
25
- required: false,
26
- });
27
- }
28
- }
29
- export class CommandJobCreate extends CommandLineAction {
30
- constructor() {
31
- super({
32
- actionName: 'job',
33
- summary: 'create a list of cogs that need to be processed',
34
- documentation: 'List a folder/bucket full of cogs and determine a optimal processing pipeline',
35
- });
36
- }
37
- fsConfig(source) {
38
- if (source.path.value == null) {
39
- throw new Error('Invalid path');
40
- }
41
- if (!source.path.value.startsWith('s3://')) {
42
- return { type: 'local', path: source.path.value };
43
- }
44
- if (source.roleArn.value == null) {
45
- return { type: 's3', path: source.path.value };
46
- }
47
- return {
48
- path: source.path.value,
49
- type: 's3',
50
- roleArn: source.roleArn.value,
51
- externalId: source.externalId.value,
52
- };
53
- }
54
- async onExecute() {
55
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
56
- const sourceLocation = this.fsConfig(this.source);
57
- const outputLocation = this.fsConfig(this.output);
58
- fsa.configure(this.fsConfig(this.source));
59
- fsa.configure(this.fsConfig(this.output));
60
- let cutline = undefined;
61
- if ((_a = this.cutline) === null || _a === void 0 ? void 0 : _a.value) {
62
- cutline = { href: this.cutline.value, blend: (_b = this.cutlineBlend.value) !== null && _b !== void 0 ? _b : 20 };
63
- }
64
- const tileMatrix = TileMatrixSets.find((_c = this.tileMatrix.value) !== null && _c !== void 0 ? _c : GoogleTms.identifier);
65
- if (tileMatrix == null)
66
- throw new Error('Invalid target-projection');
67
- let resampling;
68
- if (((_d = this.overrideWarpReample) === null || _d === void 0 ? void 0 : _d.value) != null) {
69
- const warp = GdalResamplingOptions[(_e = this.overrideWarpReample) === null || _e === void 0 ? void 0 : _e.value];
70
- if (warp == null) {
71
- throw new Error('Invalid override-warp-resampling');
72
- }
73
- resampling = {
74
- warp,
75
- overview: 'lanczos',
76
- };
77
- }
78
- const fileListPath = (_f = this.fileList) === null || _f === void 0 ? void 0 : _f.value;
79
- if (fileListPath != null) {
80
- const fileData = await fsa.read(fileListPath);
81
- sourceLocation.files = fileData
82
- .toString()
83
- .trim()
84
- .split('\n')
85
- .map((fn) => sourceLocation.path + '/' + fn);
86
- }
87
- const ctx = {
88
- sourceLocation,
89
- outputLocation,
90
- cutline,
91
- tileMatrix,
92
- override: {
93
- concurrency: (_h = (_g = this.maxConcurrency) === null || _g === void 0 ? void 0 : _g.value) !== null && _h !== void 0 ? _h : MaxConcurrencyDefault,
94
- quality: (_k = (_j = this.quality) === null || _j === void 0 ? void 0 : _j.value) !== null && _k !== void 0 ? _k : GdalCogBuilderDefaults.quality,
95
- id: (_m = (_l = this.overrideId) === null || _l === void 0 ? void 0 : _l.value) !== null && _m !== void 0 ? _m : CliId,
96
- projection: Epsg.tryGet((_o = this.sourceProjection) === null || _o === void 0 ? void 0 : _o.value),
97
- resampling,
98
- },
99
- batch: (_q = (_p = this.submitBatch) === null || _p === void 0 ? void 0 : _p.value) !== null && _q !== void 0 ? _q : false,
100
- oneCogCovering: (_s = (_r = this.oneCog) === null || _r === void 0 ? void 0 : _r.value) !== null && _s !== void 0 ? _s : false,
101
- };
102
- await CogJobFactory.create(ctx);
103
- }
104
- onDefineParameters() {
105
- this.source = new CLiInputData(this, 'source');
106
- this.output = new CLiInputData(this, 'output');
107
- this.maxConcurrency = this.defineIntegerParameter({
108
- argumentName: 'MAX_CONCURRENCY',
109
- parameterLongName: '--concurrency',
110
- parameterShortName: '-c',
111
- description: 'Maximum number of requests to use at one time',
112
- defaultValue: MaxConcurrencyDefault,
113
- required: false,
114
- });
115
- this.cutline = this.defineStringParameter({
116
- argumentName: 'CUTLINE',
117
- parameterLongName: '--cutline',
118
- description: 'use a shapefile to crop the COGs',
119
- required: false,
120
- });
121
- this.cutlineBlend = this.defineIntegerParameter({
122
- argumentName: 'CUTLINE_BLEND',
123
- parameterLongName: '--cblend',
124
- description: 'Set a blend distance to use to blend over cutlines (in pixels)',
125
- required: false,
126
- });
127
- this.overrideId = this.defineStringParameter({
128
- argumentName: 'OVERRIDE_ID',
129
- parameterLongName: '--override-id',
130
- description: 'create job with a pre determined job id',
131
- required: false,
132
- });
133
- this.overrideWarpReample = this.defineStringParameter({
134
- argumentName: 'METHOD',
135
- parameterLongName: '--override-warp-resampling',
136
- description: 'Defaults to bilinear. Common options are: nearest, lanczos, cubic',
137
- required: false,
138
- });
139
- this.submitBatch = this.defineFlagParameter({
140
- parameterLongName: `--batch`,
141
- description: 'Submit the job to AWS Batch',
142
- required: false,
143
- });
144
- this.quality = this.defineIntegerParameter({
145
- argumentName: 'QUALITY',
146
- parameterLongName: '--quality',
147
- description: 'Compression quality (0-100)',
148
- required: false,
149
- });
150
- this.sourceProjection = this.defineIntegerParameter({
151
- argumentName: 'SOURCE_PROJECTION',
152
- parameterLongName: '--source-projection',
153
- description: 'The EPSG code of the source imagery',
154
- required: false,
155
- });
156
- this.tileMatrix = this.defineStringParameter({
157
- argumentName: 'TILE_MATRIX',
158
- parameterLongName: '--target-tile-matrix-set',
159
- description: 'The TileMatrixSet to generate the COGS for',
160
- defaultValue: GoogleTms.identifier,
161
- required: false,
162
- });
163
- this.oneCog = this.defineFlagParameter({
164
- parameterLongName: '--one-cog',
165
- description: 'ignore target projection window and just produce one big COG.',
166
- required: false,
167
- });
168
- this.fileList = this.defineStringParameter({
169
- argumentName: 'FILE_LIST',
170
- parameterLongName: '--filelist',
171
- description: 'supply a list of files to use as source imagery',
172
- required: false,
173
- });
174
- }
175
- }
176
- //# sourceMappingURL=action.job.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action.job.js","sourceRoot":"","sources":["../../../src/cli/cogify/action.job.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { TileMatrixSet } from '@basemaps/geo';
2
- import { FileConfig, LogType } from '@basemaps/shared';
3
- import { CommandLineAction } from '@rushstack/ts-command-line';
4
- import { CogStacJob } from '../../cog/cog.stac.job.js';
5
- export declare class CommandMakeCog extends CommandLineAction {
6
- private imagery;
7
- private tileMatrix;
8
- private name;
9
- private target;
10
- private cutline;
11
- private blend;
12
- private alignedLevel;
13
- private maxChunkUnit;
14
- private output;
15
- private aws;
16
- constructor();
17
- protected onDefineParameters(): void;
18
- onExecute(): Promise<void>;
19
- makeCog(id: string, imageryName: string, tileMatrix: TileMatrixSet, uri: string): Promise<CogStacJob>;
20
- splitJob(job: CogStacJob, logger: LogType): Promise<string[][]>;
21
- findLocation(path: string): Promise<FileConfig>;
22
- }
23
- //# sourceMappingURL=action.make.cog.d.ts.map
@@ -1 +0,0 @@
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;AACpE,OAAO,EAAO,UAAU,EAAkB,OAAO,EAAuB,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,iBAAiB,EAIlB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,UAAU,EAAsB,MAAM,2BAA2B,CAAC;AAgB3E,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,YAAY,CAA8B;IAClD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAA2B;;IAUtC,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAkE9B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD1B,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmDrG,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAiB/D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CActD"}
@@ -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":"AAAA,OAAO,EAAE,IAAI,EAAiB,cAAc,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,GAAG,EAAc,GAAG,EAAE,SAAS,EAAW,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EACL,iBAAiB,GAIlB,MAAM,4BAA4B,CAAC;AAEpC,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;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAOtD,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IAYnD;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,qBAAqB;YAClC,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,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAC9C,YAAY,EAAE,eAAe;YAC7B,iBAAiB,EAAE,iBAAiB;YACpC,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAC9C,YAAY,EAAE,gBAAgB;YAC9B,iBAAiB,EAAE,kBAAkB;YACrC,WAAW,EAAE,+CAA+C;YAC5D,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;QACH,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAClC,iBAAiB,EAAE,OAAO;YAC1B,WAAW,EAAE,wBAAwB;YACrC,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,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAChE,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,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QACzC,IAAI,UAAU,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;YACvF,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,MAAM,UAAU,GAAiB,EAAE,CAAC;QACpC,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE;YACvC,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,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YAE9B,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/C,oCAAoC;YACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACrD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;gBAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;aAC9C;YAED,8BAA8B;YAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAClD,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACrE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAClE;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,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC9G,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,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACpE,IAAI,WAAW,IAAI,KAAK;YAAE,OAAO,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;aAC5D,IAAI,WAAW;YAAE,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;;YACrE,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,OAAO,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAC;QAEvG,MAAM,YAAY,GAAG,MAAA,IAAI,CAAC,YAAY,CAAC,KAAK,mCAAI,YAAY,CAAC;QAE7D,MAAM,GAAG,GAAuB;YAC9B,WAAW;YACX,QAAQ,EAAE;gBACR,EAAE;gBACF,UAAU,EAAE,IAAI,CAAC,QAAQ;gBACzB,UAAU;gBACV,YAAY;aACb;YACD,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;gBAC5B,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,IAAI,EAAE,GAAG,EAAE;YACzC,cAAc,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAC5C,OAAO;YACP,KAAK,EAAE,KAAK;YACZ,UAAU;YACV,cAAc,EAAE,KAAK;SACtB,CAAC;QAEF,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAe,EAAE,MAAe;QAC7C,oCAAoC;QACpC,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC1C,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,EAAE;YACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;SACpE;QAED,+DAA+D;QAC/D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAClD,IAAI,UAAU,IAAI,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAuB,UAAU,CAAC,CAAC;YACrE,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;oBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;aAC1F;SACF;aAAM;YACL,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACtC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -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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"}