@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.
Files changed (187) hide show
  1. package/CHANGELOG.md +31 -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/config/config.update.d.ts.map +1 -1
  10. package/build/cli/config/config.update.js +2 -2
  11. package/build/cli/config/config.update.js.map +1 -1
  12. package/build/cli/index.d.ts.map +1 -1
  13. package/build/cli/index.js +4 -13
  14. package/build/cli/index.js.map +1 -1
  15. package/build/cli/overview/action.create.overview.d.ts +2 -0
  16. package/build/cli/overview/action.create.overview.d.ts.map +1 -1
  17. package/build/cli/overview/action.create.overview.js +5 -1
  18. package/build/cli/overview/action.create.overview.js.map +1 -1
  19. package/build/cli/util.d.ts +1 -6
  20. package/build/cli/util.d.ts.map +1 -1
  21. package/build/cli/util.js +19 -27
  22. package/build/cli/util.js.map +1 -1
  23. package/build/cog/builder.d.ts +1 -1
  24. package/build/cog/builder.d.ts.map +1 -1
  25. package/build/cog/builder.js +1 -1
  26. package/build/cog/builder.js.map +1 -1
  27. package/build/cog/cutline.d.ts +1 -1
  28. package/build/cog/cutline.d.ts.map +1 -1
  29. package/build/cog/cutline.js +1 -1
  30. package/build/cog/cutline.js.map +1 -1
  31. package/package.json +10 -15
  32. package/build/cli/base.cli.d.ts +0 -1
  33. package/build/cli/base.cli.d.ts.map +0 -1
  34. package/build/cli/base.cli.js +0 -2
  35. package/build/cli/base.cli.js.map +0 -1
  36. package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
  37. package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
  38. package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
  39. package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
  40. package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
  41. package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
  42. package/build/cli/cogify/__tests__/semver.test.js +0 -62
  43. package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
  44. package/build/cli/cogify/action.cog.d.ts +0 -20
  45. package/build/cli/cogify/action.cog.d.ts.map +0 -1
  46. package/build/cli/cogify/action.cog.js +0 -198
  47. package/build/cli/cogify/action.cog.js.map +0 -1
  48. package/build/cli/cogify/action.job.d.ts +0 -28
  49. package/build/cli/cogify/action.job.d.ts.map +0 -1
  50. package/build/cli/cogify/action.job.js +0 -176
  51. package/build/cli/cogify/action.job.js.map +0 -1
  52. package/build/cli/cogify/action.make.cog.d.ts +0 -23
  53. package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
  54. package/build/cli/cogify/action.make.cog.js +0 -218
  55. package/build/cli/cogify/action.make.cog.js.map +0 -1
  56. package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
  57. package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
  58. package/build/cli/cogify/action.make.cog.pr.js +0 -96
  59. package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
  60. package/build/cli/cogify/batch.job.d.ts +0 -40
  61. package/build/cli/cogify/batch.job.d.ts.map +0 -1
  62. package/build/cli/cogify/batch.job.js +0 -205
  63. package/build/cli/cogify/batch.job.js.map +0 -1
  64. package/build/cli/cogify/cutline.d.ts +0 -5
  65. package/build/cli/cogify/cutline.d.ts.map +0 -1
  66. package/build/cli/cogify/cutline.js +0 -33
  67. package/build/cli/cogify/cutline.js.map +0 -1
  68. package/build/cli/cogify/semver.util.d.ts +0 -24
  69. package/build/cli/cogify/semver.util.d.ts.map +0 -1
  70. package/build/cli/cogify/semver.util.js +0 -56
  71. package/build/cli/cogify/semver.util.js.map +0 -1
  72. package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
  73. package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
  74. package/build/cli/config/action.cog.mapsheet.js +0 -107
  75. package/build/cli/config/action.cog.mapsheet.js.map +0 -1
  76. package/build/cli/github/github.d.ts +0 -49
  77. package/build/cli/github/github.d.ts.map +0 -1
  78. package/build/cli/github/github.js +0 -107
  79. package/build/cli/github/github.js.map +0 -1
  80. package/build/cli/github/make.cog.pr.d.ts +0 -42
  81. package/build/cli/github/make.cog.pr.d.ts.map +0 -1
  82. package/build/cli/github/make.cog.pr.js +0 -173
  83. package/build/cli/github/make.cog.pr.js.map +0 -1
  84. package/build/cli/sprites/action.sprites.d.ts +0 -11
  85. package/build/cli/sprites/action.sprites.d.ts.map +0 -1
  86. package/build/cli/sprites/action.sprites.js +0 -42
  87. package/build/cli/sprites/action.sprites.js.map +0 -1
  88. package/build/cog/__tests__/builder.test.d.ts +0 -2
  89. package/build/cog/__tests__/builder.test.d.ts.map +0 -1
  90. package/build/cog/__tests__/builder.test.js +0 -81
  91. package/build/cog/__tests__/builder.test.js.map +0 -1
  92. package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
  93. package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
  94. package/build/cog/__tests__/cog.stac.job.test.js +0 -319
  95. package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
  96. package/build/cog/__tests__/cog.test.d.ts +0 -2
  97. package/build/cog/__tests__/cog.test.d.ts.map +0 -1
  98. package/build/cog/__tests__/cog.test.js +0 -91
  99. package/build/cog/__tests__/cog.test.js.map +0 -1
  100. package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
  101. package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
  102. package/build/cog/__tests__/cog.vrt.test.js +0 -229
  103. package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
  104. package/build/cog/__tests__/cutline.test.d.ts +0 -2
  105. package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
  106. package/build/cog/__tests__/cutline.test.js +0 -300
  107. package/build/cog/__tests__/cutline.test.js.map +0 -1
  108. package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
  109. package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
  110. package/build/cog/__tests__/projection.loader.test.js +0 -27
  111. package/build/cog/__tests__/projection.loader.test.js.map +0 -1
  112. package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
  113. package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
  114. package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
  115. package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
  116. package/build/cog/cog.d.ts +0 -22
  117. package/build/cog/cog.d.ts.map +0 -1
  118. package/build/cog/cog.js +0 -72
  119. package/build/cog/cog.js.map +0 -1
  120. package/build/cog/cog.stac.job.d.ts +0 -106
  121. package/build/cog/cog.stac.job.d.ts.map +0 -1
  122. package/build/cog/cog.stac.job.js +0 -257
  123. package/build/cog/cog.stac.job.js.map +0 -1
  124. package/build/cog/cog.vrt.d.ts +0 -18
  125. package/build/cog/cog.vrt.d.ts.map +0 -1
  126. package/build/cog/cog.vrt.js +0 -102
  127. package/build/cog/cog.vrt.js.map +0 -1
  128. package/build/cog/constants.d.ts +0 -5
  129. package/build/cog/constants.d.ts.map +0 -1
  130. package/build/cog/constants.js +0 -5
  131. package/build/cog/constants.js.map +0 -1
  132. package/build/cog/job.factory.d.ts +0 -10
  133. package/build/cog/job.factory.d.ts.map +0 -1
  134. package/build/cog/job.factory.js +0 -92
  135. package/build/cog/job.factory.js.map +0 -1
  136. package/build/cog/projection.loader.d.ts +0 -13
  137. package/build/cog/projection.loader.d.ts.map +0 -1
  138. package/build/cog/projection.loader.js +0 -27
  139. package/build/cog/projection.loader.js.map +0 -1
  140. package/build/cog/stac.d.ts +0 -32
  141. package/build/cog/stac.d.ts.map +0 -1
  142. package/build/cog/stac.js +0 -3
  143. package/build/cog/stac.js.map +0 -1
  144. package/build/cog/types.d.ts +0 -83
  145. package/build/cog/types.d.ts.map +0 -1
  146. package/build/cog/types.js +0 -2
  147. package/build/cog/types.js.map +0 -1
  148. package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
  149. package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
  150. package/build/gdal/__tests__/gdal.progress.test.js +0 -22
  151. package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
  152. package/build/gdal/__tests__/gdal.test.d.ts +0 -2
  153. package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
  154. package/build/gdal/__tests__/gdal.test.js +0 -52
  155. package/build/gdal/__tests__/gdal.test.js.map +0 -1
  156. package/build/gdal/gdal.cog.d.ts +0 -42
  157. package/build/gdal/gdal.cog.d.ts.map +0 -1
  158. package/build/gdal/gdal.cog.js +0 -108
  159. package/build/gdal/gdal.cog.js.map +0 -1
  160. package/build/gdal/gdal.command.d.ts +0 -44
  161. package/build/gdal/gdal.command.d.ts.map +0 -1
  162. package/build/gdal/gdal.command.js +0 -87
  163. package/build/gdal/gdal.command.js.map +0 -1
  164. package/build/gdal/gdal.config.d.ts +0 -51
  165. package/build/gdal/gdal.config.d.ts.map +0 -1
  166. package/build/gdal/gdal.config.js +0 -23
  167. package/build/gdal/gdal.config.js.map +0 -1
  168. package/build/gdal/gdal.d.ts +0 -19
  169. package/build/gdal/gdal.d.ts.map +0 -1
  170. package/build/gdal/gdal.docker.d.ts +0 -18
  171. package/build/gdal/gdal.docker.d.ts.map +0 -1
  172. package/build/gdal/gdal.docker.js +0 -82
  173. package/build/gdal/gdal.docker.js.map +0 -1
  174. package/build/gdal/gdal.js +0 -28
  175. package/build/gdal/gdal.js.map +0 -1
  176. package/build/gdal/gdal.local.d.ts +0 -10
  177. package/build/gdal/gdal.local.d.ts.map +0 -1
  178. package/build/gdal/gdal.local.js +0 -22
  179. package/build/gdal/gdal.local.js.map +0 -1
  180. package/build/gdal/gdal.progress.d.ts +0 -16
  181. package/build/gdal/gdal.progress.d.ts.map +0 -1
  182. package/build/gdal/gdal.progress.js +0 -50
  183. package/build/gdal/gdal.progress.js.map +0 -1
  184. package/build/index.d.ts +0 -6
  185. package/build/index.d.ts.map +0 -1
  186. package/build/index.js +0 -6
  187. 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,5 +0,0 @@
1
- export declare function getCutline(imageryName?: string): {
2
- href: string;
3
- blend: number;
4
- } | undefined;
5
- //# sourceMappingURL=cutline.d.ts.map
@@ -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"}