@basemaps/cli 6.46.0 → 7.1.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/README.md +10 -108
- package/build/cli/__tests__/util.test.d.ts +0 -1
- package/build/cli/__tests__/util.test.js +11 -10
- package/build/cli/__tests__/util.test.js.map +1 -1
- package/build/cli/bin.d.ts +0 -1
- package/build/cli/config/action.bundle.assets.d.ts +5 -7
- package/build/cli/config/action.bundle.assets.js +34 -21
- package/build/cli/config/action.bundle.assets.js.map +1 -1
- package/build/cli/config/action.bundle.d.ts +1 -1
- package/build/cli/config/action.bundle.js +40 -12
- package/build/cli/config/action.bundle.js.map +1 -1
- package/build/cli/config/action.import.d.ts +4 -9
- package/build/cli/config/action.import.js +131 -110
- package/build/cli/config/action.import.js.map +1 -1
- package/build/cli/config/config.diff.d.ts +2 -2
- package/build/cli/config/config.diff.js +6 -4
- package/build/cli/config/config.diff.js.map +1 -1
- package/build/cli/config/config.update.d.ts +3 -5
- package/build/cli/config/config.update.js +42 -7
- package/build/cli/config/config.update.js.map +1 -1
- package/build/cli/folder.d.ts +0 -1
- package/build/cli/folder.js +1 -2
- package/build/cli/folder.js.map +1 -1
- package/build/cli/index.d.ts +0 -2
- package/build/cli/index.js +2 -17
- package/build/cli/index.js.map +1 -1
- package/build/cli/server/action.serve.d.ts +0 -1
- package/build/cli/server/action.serve.js +27 -4
- package/build/cli/server/action.serve.js.map +1 -1
- package/build/cli/util.d.ts +3 -8
- package/build/cli/util.js +48 -55
- package/build/cli/util.js.map +1 -1
- package/package.json +20 -24
- package/CHANGELOG.md +0 -1589
- package/build/cli/__tests__/util.test.d.ts.map +0 -1
- package/build/cli/base.cli.d.ts +0 -1
- package/build/cli/base.cli.d.ts.map +0 -1
- package/build/cli/base.cli.js +0 -2
- package/build/cli/base.cli.js.map +0 -1
- package/build/cli/bin.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/batch.job.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/batch.job.test.js +0 -92
- package/build/cli/cogify/__tests__/batch.job.test.js.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.d.ts +0 -2
- package/build/cli/cogify/__tests__/semver.test.d.ts.map +0 -1
- package/build/cli/cogify/__tests__/semver.test.js +0 -62
- package/build/cli/cogify/__tests__/semver.test.js.map +0 -1
- package/build/cli/cogify/action.cog.d.ts +0 -20
- package/build/cli/cogify/action.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.cog.js +0 -198
- package/build/cli/cogify/action.cog.js.map +0 -1
- package/build/cli/cogify/action.job.d.ts +0 -28
- package/build/cli/cogify/action.job.d.ts.map +0 -1
- package/build/cli/cogify/action.job.js +0 -176
- package/build/cli/cogify/action.job.js.map +0 -1
- package/build/cli/cogify/action.make.cog.d.ts +0 -23
- package/build/cli/cogify/action.make.cog.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.js +0 -218
- package/build/cli/cogify/action.make.cog.js.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.d.ts +0 -25
- package/build/cli/cogify/action.make.cog.pr.d.ts.map +0 -1
- package/build/cli/cogify/action.make.cog.pr.js +0 -96
- package/build/cli/cogify/action.make.cog.pr.js.map +0 -1
- package/build/cli/cogify/batch.job.d.ts +0 -40
- package/build/cli/cogify/batch.job.d.ts.map +0 -1
- package/build/cli/cogify/batch.job.js +0 -205
- package/build/cli/cogify/batch.job.js.map +0 -1
- package/build/cli/cogify/cutline.d.ts +0 -5
- package/build/cli/cogify/cutline.d.ts.map +0 -1
- package/build/cli/cogify/cutline.js +0 -33
- package/build/cli/cogify/cutline.js.map +0 -1
- package/build/cli/cogify/semver.util.d.ts +0 -24
- package/build/cli/cogify/semver.util.d.ts.map +0 -1
- package/build/cli/cogify/semver.util.js +0 -56
- package/build/cli/cogify/semver.util.js.map +0 -1
- package/build/cli/config/action.bundle.assets.d.ts.map +0 -1
- package/build/cli/config/action.bundle.d.ts.map +0 -1
- package/build/cli/config/action.cog.mapsheet.d.ts +0 -12
- package/build/cli/config/action.cog.mapsheet.d.ts.map +0 -1
- package/build/cli/config/action.cog.mapsheet.js +0 -107
- package/build/cli/config/action.cog.mapsheet.js.map +0 -1
- package/build/cli/config/action.imagery.config.d.ts +0 -11
- package/build/cli/config/action.imagery.config.d.ts.map +0 -1
- package/build/cli/config/action.imagery.config.js +0 -142
- package/build/cli/config/action.imagery.config.js.map +0 -1
- package/build/cli/config/action.import.d.ts.map +0 -1
- package/build/cli/config/config.diff.d.ts.map +0 -1
- package/build/cli/config/config.update.d.ts.map +0 -1
- package/build/cli/folder.d.ts.map +0 -1
- package/build/cli/github/github.d.ts +0 -49
- package/build/cli/github/github.d.ts.map +0 -1
- package/build/cli/github/github.js +0 -107
- package/build/cli/github/github.js.map +0 -1
- package/build/cli/github/make.cog.pr.d.ts +0 -42
- package/build/cli/github/make.cog.pr.d.ts.map +0 -1
- package/build/cli/github/make.cog.pr.js +0 -173
- package/build/cli/github/make.cog.pr.js.map +0 -1
- package/build/cli/index.d.ts.map +0 -1
- package/build/cli/overview/__test__/wmts.overview.test.d.ts +0 -2
- package/build/cli/overview/__test__/wmts.overview.test.d.ts.map +0 -1
- package/build/cli/overview/__test__/wmts.overview.test.js +0 -24
- package/build/cli/overview/__test__/wmts.overview.test.js.map +0 -1
- package/build/cli/overview/action.create.overview.d.ts +0 -17
- package/build/cli/overview/action.create.overview.d.ts.map +0 -1
- package/build/cli/overview/action.create.overview.js +0 -174
- package/build/cli/overview/action.create.overview.js.map +0 -1
- package/build/cli/overview/overview.wmts.d.ts +0 -3
- package/build/cli/overview/overview.wmts.d.ts.map +0 -1
- package/build/cli/overview/overview.wmts.js +0 -29
- package/build/cli/overview/overview.wmts.js.map +0 -1
- package/build/cli/overview/tile.generator.d.ts +0 -13
- package/build/cli/overview/tile.generator.d.ts.map +0 -1
- package/build/cli/overview/tile.generator.js +0 -86
- package/build/cli/overview/tile.generator.js.map +0 -1
- package/build/cli/overview/timer.d.ts +0 -14
- package/build/cli/overview/timer.d.ts.map +0 -1
- package/build/cli/overview/timer.js +0 -21
- package/build/cli/overview/timer.js.map +0 -1
- package/build/cli/server/action.serve.d.ts.map +0 -1
- package/build/cli/sprites/action.sprites.d.ts +0 -11
- package/build/cli/sprites/action.sprites.d.ts.map +0 -1
- package/build/cli/sprites/action.sprites.js +0 -42
- package/build/cli/sprites/action.sprites.js.map +0 -1
- package/build/cli/util.d.ts.map +0 -1
- package/build/cog/__tests__/builder.test.d.ts +0 -2
- package/build/cog/__tests__/builder.test.d.ts.map +0 -1
- package/build/cog/__tests__/builder.test.js +0 -81
- package/build/cog/__tests__/builder.test.js.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.d.ts +0 -2
- package/build/cog/__tests__/cog.stac.job.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.stac.job.test.js +0 -319
- package/build/cog/__tests__/cog.stac.job.test.js.map +0 -1
- package/build/cog/__tests__/cog.test.d.ts +0 -2
- package/build/cog/__tests__/cog.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.test.js +0 -91
- package/build/cog/__tests__/cog.test.js.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.d.ts +0 -2
- package/build/cog/__tests__/cog.vrt.test.d.ts.map +0 -1
- package/build/cog/__tests__/cog.vrt.test.js +0 -229
- package/build/cog/__tests__/cog.vrt.test.js.map +0 -1
- package/build/cog/__tests__/cutline.test.d.ts +0 -2
- package/build/cog/__tests__/cutline.test.d.ts.map +0 -1
- package/build/cog/__tests__/cutline.test.js +0 -300
- package/build/cog/__tests__/cutline.test.js.map +0 -1
- package/build/cog/__tests__/projection.loader.test.d.ts +0 -2
- package/build/cog/__tests__/projection.loader.test.d.ts.map +0 -1
- package/build/cog/__tests__/projection.loader.test.js +0 -27
- package/build/cog/__tests__/projection.loader.test.js.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.d.ts +0 -8
- package/build/cog/__tests__/source.tiff.testhelper.d.ts.map +0 -1
- package/build/cog/__tests__/source.tiff.testhelper.js +0 -41
- package/build/cog/__tests__/source.tiff.testhelper.js.map +0 -1
- package/build/cog/builder.d.ts +0 -49
- package/build/cog/builder.d.ts.map +0 -1
- package/build/cog/builder.js +0 -177
- package/build/cog/builder.js.map +0 -1
- package/build/cog/cog.d.ts +0 -22
- package/build/cog/cog.d.ts.map +0 -1
- package/build/cog/cog.js +0 -72
- package/build/cog/cog.js.map +0 -1
- package/build/cog/cog.stac.job.d.ts +0 -106
- package/build/cog/cog.stac.job.d.ts.map +0 -1
- package/build/cog/cog.stac.job.js +0 -257
- package/build/cog/cog.stac.job.js.map +0 -1
- package/build/cog/cog.vrt.d.ts +0 -18
- package/build/cog/cog.vrt.d.ts.map +0 -1
- package/build/cog/cog.vrt.js +0 -102
- package/build/cog/cog.vrt.js.map +0 -1
- package/build/cog/constants.d.ts +0 -5
- package/build/cog/constants.d.ts.map +0 -1
- package/build/cog/constants.js +0 -5
- package/build/cog/constants.js.map +0 -1
- package/build/cog/cutline.d.ts +0 -75
- package/build/cog/cutline.d.ts.map +0 -1
- package/build/cog/cutline.js +0 -250
- package/build/cog/cutline.js.map +0 -1
- package/build/cog/job.factory.d.ts +0 -10
- package/build/cog/job.factory.d.ts.map +0 -1
- package/build/cog/job.factory.js +0 -92
- package/build/cog/job.factory.js.map +0 -1
- package/build/cog/projection.loader.d.ts +0 -13
- package/build/cog/projection.loader.d.ts.map +0 -1
- package/build/cog/projection.loader.js +0 -27
- package/build/cog/projection.loader.js.map +0 -1
- package/build/cog/stac.d.ts +0 -32
- package/build/cog/stac.d.ts.map +0 -1
- package/build/cog/stac.js +0 -3
- package/build/cog/stac.js.map +0 -1
- package/build/cog/types.d.ts +0 -83
- package/build/cog/types.d.ts.map +0 -1
- package/build/cog/types.js +0 -2
- package/build/cog/types.js.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.progress.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.progress.test.js +0 -22
- package/build/gdal/__tests__/gdal.progress.test.js.map +0 -1
- package/build/gdal/__tests__/gdal.test.d.ts +0 -2
- package/build/gdal/__tests__/gdal.test.d.ts.map +0 -1
- package/build/gdal/__tests__/gdal.test.js +0 -52
- package/build/gdal/__tests__/gdal.test.js.map +0 -1
- package/build/gdal/gdal.cog.d.ts +0 -42
- package/build/gdal/gdal.cog.d.ts.map +0 -1
- package/build/gdal/gdal.cog.js +0 -108
- package/build/gdal/gdal.cog.js.map +0 -1
- package/build/gdal/gdal.command.d.ts +0 -44
- package/build/gdal/gdal.command.d.ts.map +0 -1
- package/build/gdal/gdal.command.js +0 -87
- package/build/gdal/gdal.command.js.map +0 -1
- package/build/gdal/gdal.config.d.ts +0 -51
- package/build/gdal/gdal.config.d.ts.map +0 -1
- package/build/gdal/gdal.config.js +0 -23
- package/build/gdal/gdal.config.js.map +0 -1
- package/build/gdal/gdal.d.ts +0 -19
- package/build/gdal/gdal.d.ts.map +0 -1
- package/build/gdal/gdal.docker.d.ts +0 -18
- package/build/gdal/gdal.docker.d.ts.map +0 -1
- package/build/gdal/gdal.docker.js +0 -82
- package/build/gdal/gdal.docker.js.map +0 -1
- package/build/gdal/gdal.js +0 -28
- package/build/gdal/gdal.js.map +0 -1
- package/build/gdal/gdal.local.d.ts +0 -10
- package/build/gdal/gdal.local.d.ts.map +0 -1
- package/build/gdal/gdal.local.js +0 -22
- package/build/gdal/gdal.local.js.map +0 -1
- package/build/gdal/gdal.progress.d.ts +0 -16
- package/build/gdal/gdal.progress.d.ts.map +0 -1
- package/build/gdal/gdal.progress.js +0 -50
- package/build/gdal/gdal.progress.js.map +0 -1
- package/build/index.d.ts +0 -6
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -6
- package/build/index.js.map +0 -1
|
@@ -1,257 +0,0 @@
|
|
|
1
|
-
import { Bounds, Projection, Stac, TileMatrixSets, } from '@basemaps/geo';
|
|
2
|
-
import { CompositeError, extractYearRangeFromName, fsa, titleizeImageryName, } from '@basemaps/shared';
|
|
3
|
-
import { CliInfo } from '@basemaps/shared/build/cli/info.js';
|
|
4
|
-
import { toFeatureCollection, toFeatureMultiPolygon } from '@linzjs/geojson';
|
|
5
|
-
import { GdalCogBuilderDefaults } from '../gdal/gdal.config.js';
|
|
6
|
-
import { ProjectionLoader } from './projection.loader.js';
|
|
7
|
-
import { CogStacItemExtensions, CogStacKeywords } from './stac.js';
|
|
8
|
-
export const MaxConcurrencyDefault = 50;
|
|
9
|
-
/**
|
|
10
|
-
* Information needed to create cogs
|
|
11
|
-
*/
|
|
12
|
-
export class CogStacJob {
|
|
13
|
-
/**
|
|
14
|
-
* Load the job.json
|
|
15
|
-
|
|
16
|
-
* @param jobpath where to load the job.json from
|
|
17
|
-
*/
|
|
18
|
-
static async load(jobpath) {
|
|
19
|
-
const job = new CogStacJob(await fsa.readJson(jobpath));
|
|
20
|
-
await ProjectionLoader.load(job.source.epsg);
|
|
21
|
-
return job;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Create job.json, collection.json, source.geojson, covering.geojson, cutlint.geojson.gz and
|
|
25
|
-
* stac descriptions of the target COGs
|
|
26
|
-
*/
|
|
27
|
-
static async create({ id, imageryName, metadata, ctx, cutlinePoly, addAlpha, }) {
|
|
28
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
29
|
-
let description;
|
|
30
|
-
const providers = [];
|
|
31
|
-
const links = [
|
|
32
|
-
{
|
|
33
|
-
href: fsa.join(ctx.outputLocation.path, 'collection.json'),
|
|
34
|
-
type: 'application/json',
|
|
35
|
-
rel: 'self',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
href: 'job.json',
|
|
39
|
-
type: 'application/json',
|
|
40
|
-
rel: 'linz.basemaps.job',
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
let sourceStac = {};
|
|
44
|
-
const interval = [];
|
|
45
|
-
try {
|
|
46
|
-
const sourceCollectionPath = fsa.join(ctx.sourceLocation.path, 'collection.json');
|
|
47
|
-
sourceStac = await fsa.readJson(sourceCollectionPath);
|
|
48
|
-
description = sourceStac.description;
|
|
49
|
-
interval.push(...((_c = (_b = (_a = sourceStac.extent) === null || _a === void 0 ? void 0 : _a.temporal) === null || _b === void 0 ? void 0 : _b.interval) !== null && _c !== void 0 ? _c : []));
|
|
50
|
-
links.push({ href: sourceCollectionPath, rel: 'sourceImagery', type: 'application/json' });
|
|
51
|
-
if (sourceStac.providers != null) {
|
|
52
|
-
for (const p of sourceStac.providers) {
|
|
53
|
-
if (p.roles.indexOf('host') === -1) {
|
|
54
|
-
if (p.url === 'unknown') {
|
|
55
|
-
// LINZ LDS has put unknown in some urls
|
|
56
|
-
p.url = undefined;
|
|
57
|
-
}
|
|
58
|
-
providers.push(p);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
if (!CompositeError.isCompositeError(err) || err.code !== 404) {
|
|
65
|
-
throw err;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
const keywords = (_d = sourceStac.keywords) !== null && _d !== void 0 ? _d : CogStacKeywords.slice();
|
|
69
|
-
const license = (_e = sourceStac.license) !== null && _e !== void 0 ? _e : Stac.License;
|
|
70
|
-
const title = (_f = sourceStac.title) !== null && _f !== void 0 ? _f : titleizeImageryName(imageryName);
|
|
71
|
-
if (description == null) {
|
|
72
|
-
description = 'No description';
|
|
73
|
-
}
|
|
74
|
-
await ProjectionLoader.load(metadata.projection);
|
|
75
|
-
const job = new CogStacJob({
|
|
76
|
-
id,
|
|
77
|
-
name: imageryName,
|
|
78
|
-
title,
|
|
79
|
-
description,
|
|
80
|
-
source: {
|
|
81
|
-
gsd: metadata.pixelScale,
|
|
82
|
-
epsg: metadata.projection,
|
|
83
|
-
files: metadata.bounds,
|
|
84
|
-
location: ctx.sourceLocation,
|
|
85
|
-
},
|
|
86
|
-
output: {
|
|
87
|
-
gsd: ctx.tileMatrix.pixelScale(metadata.resZoom),
|
|
88
|
-
tileMatrix: ctx.tileMatrix.identifier,
|
|
89
|
-
epsg: ctx.tileMatrix.projection.code,
|
|
90
|
-
files: metadata.files,
|
|
91
|
-
location: ctx.outputLocation,
|
|
92
|
-
resampling: (_h = (_g = ctx.override) === null || _g === void 0 ? void 0 : _g.resampling) !== null && _h !== void 0 ? _h : GdalCogBuilderDefaults.resampling,
|
|
93
|
-
quality: (_k = (_j = ctx.override) === null || _j === void 0 ? void 0 : _j.quality) !== null && _k !== void 0 ? _k : GdalCogBuilderDefaults.quality,
|
|
94
|
-
cutline: ctx.cutline,
|
|
95
|
-
addAlpha,
|
|
96
|
-
nodata: metadata.nodata,
|
|
97
|
-
bounds: metadata.targetBounds,
|
|
98
|
-
oneCogCovering: ctx.oneCogCovering,
|
|
99
|
-
},
|
|
100
|
-
});
|
|
101
|
-
const nowStr = new Date().toISOString();
|
|
102
|
-
const sourceProj = Projection.get(job.source.epsg);
|
|
103
|
-
const bbox = [
|
|
104
|
-
sourceProj.boundsToWgs84BoundingBox(metadata.bounds.map((a) => Bounds.fromJson(a)).reduce((sum, a) => sum.union(a))),
|
|
105
|
-
];
|
|
106
|
-
if (interval.length === 0) {
|
|
107
|
-
const years = extractYearRangeFromName(imageryName);
|
|
108
|
-
if (years == null)
|
|
109
|
-
throw new Error('Missing date in imagery name: ' + imageryName);
|
|
110
|
-
interval.push(years.map((y) => `${y}-01-01T00:00:00Z`));
|
|
111
|
-
}
|
|
112
|
-
if (ctx.cutline) {
|
|
113
|
-
links.push({ href: 'cutline.geojson.gz', type: 'application/geo+json+gzip', rel: 'linz.basemaps.cutline' });
|
|
114
|
-
}
|
|
115
|
-
links.push({ href: 'covering.geojson', type: 'application/geo+json', rel: 'linz.basemaps.covering' });
|
|
116
|
-
links.push({ href: 'source.geojson', type: 'application/geo+json', rel: 'linz.basemaps.source' });
|
|
117
|
-
const temporal = { interval };
|
|
118
|
-
const jobFile = job.getJobPath(`job.json`);
|
|
119
|
-
const stac = {
|
|
120
|
-
id,
|
|
121
|
-
title,
|
|
122
|
-
description,
|
|
123
|
-
stac_version: Stac.Version,
|
|
124
|
-
stac_extensions: [Stac.BaseMapsExtension],
|
|
125
|
-
extent: {
|
|
126
|
-
spatial: { bbox },
|
|
127
|
-
temporal,
|
|
128
|
-
},
|
|
129
|
-
license,
|
|
130
|
-
keywords,
|
|
131
|
-
providers,
|
|
132
|
-
summaries: {
|
|
133
|
-
gsd: [metadata.pixelScale],
|
|
134
|
-
'proj:epsg': [ctx.tileMatrix.projection.code],
|
|
135
|
-
'linz:output': [
|
|
136
|
-
{
|
|
137
|
-
resampling: (_m = (_l = ctx.override) === null || _l === void 0 ? void 0 : _l.resampling) !== null && _m !== void 0 ? _m : GdalCogBuilderDefaults.resampling,
|
|
138
|
-
quality: (_p = (_o = ctx.override) === null || _o === void 0 ? void 0 : _o.quality) !== null && _p !== void 0 ? _p : GdalCogBuilderDefaults.quality,
|
|
139
|
-
cutlineBlend: (_q = ctx.cutline) === null || _q === void 0 ? void 0 : _q.blend,
|
|
140
|
-
addAlpha,
|
|
141
|
-
nodata: metadata.nodata,
|
|
142
|
-
},
|
|
143
|
-
],
|
|
144
|
-
'linz:generated': [
|
|
145
|
-
{
|
|
146
|
-
...CliInfo,
|
|
147
|
-
datetime: nowStr,
|
|
148
|
-
},
|
|
149
|
-
],
|
|
150
|
-
},
|
|
151
|
-
links,
|
|
152
|
-
};
|
|
153
|
-
await fsa.writeJson(jobFile, job.json);
|
|
154
|
-
const covering = Projection.get(job.tileMatrix).toGeoJson(metadata.files);
|
|
155
|
-
const roles = ['data'];
|
|
156
|
-
const collectionLink = { href: 'collection.json', rel: 'collection' };
|
|
157
|
-
for (const f of covering.features) {
|
|
158
|
-
const { name } = f.properties;
|
|
159
|
-
const href = name + '.json';
|
|
160
|
-
links.push({ href, type: 'application/geo+json', rel: 'item' });
|
|
161
|
-
const item = {
|
|
162
|
-
...f,
|
|
163
|
-
id: job.id + '/' + name,
|
|
164
|
-
collection: job.id,
|
|
165
|
-
stac_version: Stac.Version,
|
|
166
|
-
stac_extensions: CogStacItemExtensions,
|
|
167
|
-
properties: {
|
|
168
|
-
...f.properties,
|
|
169
|
-
datetime: nowStr,
|
|
170
|
-
gsd: job.output.gsd,
|
|
171
|
-
'proj:epsg': job.tileMatrix.projection.code,
|
|
172
|
-
},
|
|
173
|
-
links: [{ href: job.getJobPath(href), rel: 'self' }, collectionLink],
|
|
174
|
-
assets: {
|
|
175
|
-
cog: {
|
|
176
|
-
href: name + '.tiff',
|
|
177
|
-
type: 'image/tiff; application=geotiff; profile=cloud-optimized',
|
|
178
|
-
roles,
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
};
|
|
182
|
-
await fsa.writeJson(job.getJobPath(href), item);
|
|
183
|
-
}
|
|
184
|
-
if (ctx.cutline != null) {
|
|
185
|
-
const geoJsonCutlineOutput = job.getJobPath(`cutline.geojson.gz`);
|
|
186
|
-
await fsa.writeJson(geoJsonCutlineOutput, this.toGeoJson(cutlinePoly, ctx.tileMatrix.projection));
|
|
187
|
-
}
|
|
188
|
-
const geoJsonSourceOutput = job.getJobPath(`source.geojson`);
|
|
189
|
-
await fsa.writeJson(geoJsonSourceOutput, Projection.get(job.source.epsg).toGeoJson(metadata.bounds));
|
|
190
|
-
const geoJsonCoveringOutput = job.getJobPath(`covering.geojson`);
|
|
191
|
-
await fsa.writeJson(geoJsonCoveringOutput, covering);
|
|
192
|
-
await fsa.writeJson(job.getJobPath(`collection.json`), stac);
|
|
193
|
-
return job;
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* build a FeatureCollection from MultiPolygon
|
|
197
|
-
*/
|
|
198
|
-
static toGeoJson(poly, epsg) {
|
|
199
|
-
const feature = toFeatureCollection([toFeatureMultiPolygon(poly)]);
|
|
200
|
-
feature.crs = {
|
|
201
|
-
type: 'name',
|
|
202
|
-
properties: { name: epsg.toUrn() },
|
|
203
|
-
};
|
|
204
|
-
return feature;
|
|
205
|
-
}
|
|
206
|
-
constructor(json) {
|
|
207
|
-
this.json = json;
|
|
208
|
-
}
|
|
209
|
-
get id() {
|
|
210
|
-
return this.json.id;
|
|
211
|
-
}
|
|
212
|
-
get name() {
|
|
213
|
-
return this.json.name;
|
|
214
|
-
}
|
|
215
|
-
get title() {
|
|
216
|
-
return this.json.title;
|
|
217
|
-
}
|
|
218
|
-
get description() {
|
|
219
|
-
return this.json.description;
|
|
220
|
-
}
|
|
221
|
-
get source() {
|
|
222
|
-
return this.json.source;
|
|
223
|
-
}
|
|
224
|
-
get output() {
|
|
225
|
-
return this.json.output;
|
|
226
|
-
}
|
|
227
|
-
get tileMatrix() {
|
|
228
|
-
if (this.json.output.tileMatrix) {
|
|
229
|
-
const tileMatrix = TileMatrixSets.find(this.json.output.tileMatrix);
|
|
230
|
-
if (tileMatrix == null)
|
|
231
|
-
throw new Error(`Failed to find TileMatrixSet "${this.json.output.tileMatrix}"`);
|
|
232
|
-
return tileMatrix;
|
|
233
|
-
}
|
|
234
|
-
return TileMatrixSets.get(this.json.output.epsg);
|
|
235
|
-
}
|
|
236
|
-
get targetZoom() {
|
|
237
|
-
var _a;
|
|
238
|
-
const { gsd } = this.source;
|
|
239
|
-
if (((_a = this.cacheTargetZoom) === null || _a === void 0 ? void 0 : _a.gsd) !== gsd) {
|
|
240
|
-
this.cacheTargetZoom = { gsd, zoom: Projection.getTiffResZoom(this.tileMatrix, gsd) };
|
|
241
|
-
}
|
|
242
|
-
return this.cacheTargetZoom.zoom;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Get a nicely formatted folder path based on the job
|
|
246
|
-
*
|
|
247
|
-
* @param key optional file key inside of the job folder
|
|
248
|
-
*/
|
|
249
|
-
getJobPath(key) {
|
|
250
|
-
const parts = [this.tileMatrix.projection.code, this.name, this.id];
|
|
251
|
-
if (key != null) {
|
|
252
|
-
parts.push(key);
|
|
253
|
-
}
|
|
254
|
-
return fsa.join(this.output.location.path, parts.join('/'));
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
//# sourceMappingURL=cog.stac.job.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cog.stac.job.js","sourceRoot":"","sources":["../../src/cog/cog.stac.job.ts"],"names":[],"mappings":"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"}
|
package/build/cog/cog.vrt.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { LogType } from '@basemaps/shared';
|
|
2
|
-
import { Cutline } from './cutline.js';
|
|
3
|
-
import { CogJob } from './types.js';
|
|
4
|
-
export declare const CogVrt: {
|
|
5
|
-
/**
|
|
6
|
-
* Build a vrt file for a COG `name` that transforms the source imagery with a cutline
|
|
7
|
-
*
|
|
8
|
-
* @param tmpFolder temporary `vrt` and `cutline.geojson` will be written here
|
|
9
|
-
* @param job
|
|
10
|
-
* @param cutline Used to filter the source imagery
|
|
11
|
-
* @param name COG tile to reduce vrt and cutline
|
|
12
|
-
* @param logger
|
|
13
|
-
*
|
|
14
|
-
* @return the path to the vrt file
|
|
15
|
-
*/
|
|
16
|
-
buildVrt(tmpFolder: string, job: CogJob, cutline: Cutline, name: string, logger: LogType): Promise<string | null>;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=cog.vrt.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cog.vrt.d.ts","sourceRoot":"","sources":["../../src/cog/cog.vrt.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,OAAO,EAAa,MAAM,kBAAkB,CAAC;AAIhF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAgEpC,eAAO,MAAM,MAAM;IACjB;;;;;;;;;;OAUG;wBAEU,MAAM,OACZ,MAAM,WACF,OAAO,QACV,MAAM,UACJ,OAAO,GACd,QAAQ,MAAM,GAAG,IAAI,CAAC;CAuD1B,CAAC"}
|
package/build/cog/cog.vrt.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { Epsg } from '@basemaps/geo';
|
|
2
|
-
import { Env, fsa, isConfigS3Role, s3ToVsis3 } from '@basemaps/shared';
|
|
3
|
-
import { Gdal } from '../gdal/gdal.js';
|
|
4
|
-
import { onProgress } from './cog.js';
|
|
5
|
-
import { AwsCredentials } from '@chunkd/source-aws-v2';
|
|
6
|
-
/**
|
|
7
|
-
* Build the VRT for the needed source imagery
|
|
8
|
-
*/
|
|
9
|
-
async function buildPlainVrt(job, sourceFiles, vrtPath, gdalCommand, logger) {
|
|
10
|
-
const buildOpts = ['-hidenodata', '-allow_projection_difference'];
|
|
11
|
-
if (job.output.addAlpha) {
|
|
12
|
-
buildOpts.push('-addalpha');
|
|
13
|
-
}
|
|
14
|
-
logger.debug({ buildOpts: buildOpts.join(' ') }, 'gdalbuildvrt');
|
|
15
|
-
await gdalCommand.run('gdalbuildvrt', [...buildOpts, vrtPath, ...sourceFiles], logger);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Warp the source vrt to target projection using an optional cutline
|
|
19
|
-
*/
|
|
20
|
-
async function buildWarpVrt(job, sourceVrtPath, gdalCommand, cogVrtPath, tr, logger, cutlineTarget) {
|
|
21
|
-
const warpOpts = [
|
|
22
|
-
'-of',
|
|
23
|
-
'VRT',
|
|
24
|
-
'-multi',
|
|
25
|
-
'-wo',
|
|
26
|
-
'NUM_THREADS=ALL_CPUS',
|
|
27
|
-
'-s_srs',
|
|
28
|
-
Epsg.get(job.source.epsg).toEpsgString(),
|
|
29
|
-
'-t_srs',
|
|
30
|
-
job.tileMatrix.projection.toEpsgString(),
|
|
31
|
-
'-tr',
|
|
32
|
-
tr,
|
|
33
|
-
tr,
|
|
34
|
-
'-tap',
|
|
35
|
-
];
|
|
36
|
-
if (job.output.cutline != null) {
|
|
37
|
-
warpOpts.push('-cutline', cutlineTarget);
|
|
38
|
-
if (job.output.cutline.blend !== 0)
|
|
39
|
-
warpOpts.push('-cblend', String(job.output.cutline.blend));
|
|
40
|
-
}
|
|
41
|
-
if (job.output.nodata != null) {
|
|
42
|
-
warpOpts.push('-srcnodata', String(job.output.nodata), '-dstnodata', String(job.output.nodata));
|
|
43
|
-
}
|
|
44
|
-
if (job.output.resampling) {
|
|
45
|
-
warpOpts.push('-r', job.output.resampling.warp);
|
|
46
|
-
}
|
|
47
|
-
logger.debug({ warpOpts: warpOpts.join(' ') }, 'gdalwarp');
|
|
48
|
-
await gdalCommand.run('gdalwarp', [...warpOpts, cogVrtPath, sourceVrtPath], logger);
|
|
49
|
-
}
|
|
50
|
-
export const CogVrt = {
|
|
51
|
-
/**
|
|
52
|
-
* Build a vrt file for a COG `name` that transforms the source imagery with a cutline
|
|
53
|
-
*
|
|
54
|
-
* @param tmpFolder temporary `vrt` and `cutline.geojson` will be written here
|
|
55
|
-
* @param job
|
|
56
|
-
* @param cutline Used to filter the source imagery
|
|
57
|
-
* @param name COG tile to reduce vrt and cutline
|
|
58
|
-
* @param logger
|
|
59
|
-
*
|
|
60
|
-
* @return the path to the vrt file
|
|
61
|
-
*/
|
|
62
|
-
async buildVrt(tmpFolder, job, cutline, name, logger) {
|
|
63
|
-
logger.info({ name }, 'buildCogVrt');
|
|
64
|
-
const sourceFiles = cutline.filterSourcesForName(name, job).map(s3ToVsis3);
|
|
65
|
-
if (sourceFiles.length === 0) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
const sourceVrtPath = fsa.join(tmpFolder, `source.vrt`);
|
|
69
|
-
const cogVrtPath = fsa.join(tmpFolder, `cog.vrt`);
|
|
70
|
-
let cutlineTarget = '';
|
|
71
|
-
if (cutline.clipPoly.length !== 0) {
|
|
72
|
-
cutlineTarget = fsa.join(tmpFolder, 'cutline.geojson');
|
|
73
|
-
await fsa.writeJson(cutlineTarget, cutline.toGeoJson());
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
job.output.cutline = undefined;
|
|
77
|
-
}
|
|
78
|
-
logger.info({
|
|
79
|
-
inputTotal: job.source.files.length,
|
|
80
|
-
outputTotal: sourceFiles.length,
|
|
81
|
-
cutlinePolygons: cutline.clipPoly.length,
|
|
82
|
-
}, 'Tiff count');
|
|
83
|
-
const gdalCommand = Gdal.create();
|
|
84
|
-
const sourceLocation = job.source.location;
|
|
85
|
-
// If required assume role
|
|
86
|
-
if (isConfigS3Role(sourceLocation)) {
|
|
87
|
-
const credentials = AwsCredentials.role(sourceLocation.roleArn, sourceLocation.externalId, Env.getNumber(Env.AwsRoleDurationHours, 8) * 60 * 60);
|
|
88
|
-
gdalCommand.setCredentials(credentials);
|
|
89
|
-
}
|
|
90
|
-
if (gdalCommand.mount != null) {
|
|
91
|
-
gdalCommand.mount(tmpFolder);
|
|
92
|
-
for (const file of job.source.files)
|
|
93
|
-
gdalCommand.mount(file.name);
|
|
94
|
-
}
|
|
95
|
-
const tr = job.output.gsd.toString();
|
|
96
|
-
onProgress(gdalCommand, { target: `vrt.${job.tileMatrix.projection.code}` }, logger);
|
|
97
|
-
await buildPlainVrt(job, sourceFiles, sourceVrtPath, gdalCommand, logger);
|
|
98
|
-
await buildWarpVrt(job, cogVrtPath, gdalCommand, sourceVrtPath, tr, logger, cutlineTarget);
|
|
99
|
-
return cogVrtPath;
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
//# sourceMappingURL=cog.vrt.js.map
|
package/build/cog/cog.vrt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cog.vrt.js","sourceRoot":"","sources":["../../src/cog/cog.vrt.ts"],"names":[],"mappings":"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"}
|
package/build/cog/constants.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/** Default Aligned levels between resolution zoom level and cog zoom level */
|
|
2
|
-
export declare const AlignedLevel = 7;
|
|
3
|
-
/** When a tile has at least this much covering merge it up to parent */
|
|
4
|
-
export declare const CoveringFraction = 0.25;
|
|
5
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC"}
|
package/build/cog/constants.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/cog/constants.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC"}
|
package/build/cog/cutline.d.ts
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Bounds, NamedBounds, TileMatrixSet } from '@basemaps/geo';
|
|
2
|
-
import { MultiPolygon } from '@linzjs/geojson';
|
|
3
|
-
import { FeatureCollection } from 'geojson';
|
|
4
|
-
import { CogJob, FeatureCollectionWithCrs, SourceMetadata } from './types.js';
|
|
5
|
-
export declare function polyContainsBounds(poly: MultiPolygon, bounds: Bounds): boolean;
|
|
6
|
-
export declare class Cutline {
|
|
7
|
-
/** The polygon to clip source imagery to */
|
|
8
|
-
clipPoly: MultiPolygon;
|
|
9
|
-
tileMatrix: TileMatrixSet;
|
|
10
|
-
/** How much blending to apply at the clip line boundary */
|
|
11
|
-
blend: number;
|
|
12
|
-
/** the polygon outlining a area covered by the source imagery and clip polygon */
|
|
13
|
-
srcPoly: MultiPolygon;
|
|
14
|
-
/**
|
|
15
|
-
* Create a Cutline instance from a `GeoJSON FeatureCollection`.
|
|
16
|
-
|
|
17
|
-
* @param tileMatrix the tileMatrix the COGs will be created in.
|
|
18
|
-
|
|
19
|
-
* @param clipPoly the optional cutline. The source imagery outline used by default. This
|
|
20
|
-
* `FeatureCollection` is converted to one `MultiPolygon` with any holes removed and the
|
|
21
|
-
* coordinates transposed from `Wgs84` to the target projection (unless already in target projection).
|
|
22
|
-
|
|
23
|
-
* @param blend How much blending to consider when working out boundaries.
|
|
24
|
-
*/
|
|
25
|
-
constructor(tileMatrix: TileMatrixSet, clipPoly?: FeatureCollection, blend?: number);
|
|
26
|
-
/**
|
|
27
|
-
* Load a geojson cutline from the file-system.
|
|
28
|
-
*
|
|
29
|
-
* @param path the path of the cutline to load. Can be `s3://` or local file path.
|
|
30
|
-
*/
|
|
31
|
-
static loadCutline(path: string): Promise<FeatureCollection>;
|
|
32
|
-
/**
|
|
33
|
-
* For the given tile `name`, filter `job.source.files` and cutline polygons that are within bounds plus
|
|
34
|
-
* padding
|
|
35
|
-
*
|
|
36
|
-
* @param name
|
|
37
|
-
* @param job
|
|
38
|
-
* @returns names of source files required to render Cog
|
|
39
|
-
*/
|
|
40
|
-
filterSourcesForName(name: string, job: CogJob): string[];
|
|
41
|
-
/**
|
|
42
|
-
* Generate an optimized WebMercator tile cover for the supplied source images
|
|
43
|
-
* @param sourceMetadata contains images bounds and projection info
|
|
44
|
-
*/
|
|
45
|
-
optimizeCovering(sourceMetadata: SourceMetadata, alignedLevel?: number): NamedBounds[];
|
|
46
|
-
/**
|
|
47
|
-
* Convert JobCutline to geojson FeatureCollection
|
|
48
|
-
*/
|
|
49
|
-
toGeoJson(clipPoly?: MultiPolygon): FeatureCollectionWithCrs;
|
|
50
|
-
/**
|
|
51
|
-
* Merge child nodes that have at least a covering fraction
|
|
52
|
-
* @param tile the tile to descend
|
|
53
|
-
* @param srcArea the area of interest
|
|
54
|
-
* @param minZ Only produce tiles for zoom levels at least `minZ` and no sibling tiles
|
|
55
|
-
* greater than `minZ + 4`
|
|
56
|
-
* @param coveringFraction merge tiles that cover at least this fraction
|
|
57
|
-
* @return the tiles and fraction covered of the tile by this srcArea
|
|
58
|
-
*/
|
|
59
|
-
private makeTiles;
|
|
60
|
-
/**
|
|
61
|
-
* Find the polygon covering of source imagery and a (optional) clip cutline. Truncates the
|
|
62
|
-
* cutline to match.
|
|
63
|
-
*
|
|
64
|
-
* @param sourceMetadata
|
|
65
|
-
*/
|
|
66
|
-
private findCovering;
|
|
67
|
-
/**
|
|
68
|
-
* Pad the bounds to take in to consideration blending and 100 pixels of adjacent image data
|
|
69
|
-
*
|
|
70
|
-
* @param bounds
|
|
71
|
-
* @param resZoom the imagery resolution target zoom level
|
|
72
|
-
*/
|
|
73
|
-
private padBounds;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=cutline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cutline.d.ts","sourceRoot":"","sources":["../../src/cog/cutline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAQ,WAAW,EAAoB,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3F,OAAO,EAIL,YAAY,EAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgB9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAK9E;AAqBD,qBAAa,OAAO;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,aAAa,CAAC;IAC1B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IAEd,kFAAkF;IAClF,OAAO,EAAE,YAAY,CAAM;IAE3B;;;;;;;;;;SAUK;gBACO,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,KAAK,SAAI;IAqB9E;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5D;;;;;;;OAOG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAoCzD;;;OAGG;IACH,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,GAAE,MAAqB,GAAG,WAAW,EAAE;IA8BpG;;OAEG;IACH,SAAS,CAAC,QAAQ,eAAgB,GAAG,wBAAwB;IAS7D;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IA0CjB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAqCpB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CAOlB"}
|