@basemaps/config-loader 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/LICENSE +21 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +3 -0
- package/build/index.js.map +1 -0
- package/build/json/__tests__/config.loader.test.d.ts +1 -0
- package/build/json/__tests__/config.loader.test.js +105 -0
- package/build/json/__tests__/config.loader.test.js.map +1 -0
- package/build/json/__tests__/tiff.config.test.d.ts +1 -0
- package/build/json/__tests__/tiff.config.test.js +53 -0
- package/build/json/__tests__/tiff.config.test.js.map +1 -0
- package/build/json/__tests__/tiff.load.test.d.ts +1 -0
- package/build/json/__tests__/tiff.load.test.js +143 -0
- package/build/json/__tests__/tiff.load.test.js.map +1 -0
- package/build/json/imagery.config.cache.d.ts +7 -0
- package/build/json/imagery.config.cache.js +45 -0
- package/build/json/imagery.config.cache.js.map +1 -0
- package/build/json/json.config.d.ts +39 -0
- package/build/json/json.config.js +319 -0
- package/build/json/json.config.js.map +1 -0
- package/build/json/log.d.ts +17 -0
- package/build/json/log.js +2 -0
- package/build/json/log.js.map +1 -0
- package/build/json/parse.provider.d.ts +149 -0
- package/build/json/parse.provider.js +31 -0
- package/build/json/parse.provider.js.map +1 -0
- package/build/json/parse.style.d.ts +30 -0
- package/build/json/parse.style.js +13 -0
- package/build/json/parse.style.js.map +1 -0
- package/build/json/parse.tile.set.d.ts +252 -0
- package/build/json/parse.tile.set.js +47 -0
- package/build/json/parse.tile.set.js.map +1 -0
- package/build/json/tiff.config.d.ts +113 -0
- package/build/json/tiff.config.js +430 -0
- package/build/json/tiff.config.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { TileSetType } from '@basemaps/config';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare function validateColor(str: string): boolean;
|
|
4
|
+
export declare const ImageryConfigDefaults: {
|
|
5
|
+
minZoom: number;
|
|
6
|
+
maxZoom: number;
|
|
7
|
+
};
|
|
8
|
+
declare const zLayerConfig: z.ZodEffects<z.ZodObject<{
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
title: z.ZodString;
|
|
11
|
+
category: z.ZodOptional<z.ZodString>;
|
|
12
|
+
2193: z.ZodOptional<z.ZodString>;
|
|
13
|
+
3857: z.ZodOptional<z.ZodString>;
|
|
14
|
+
minZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
15
|
+
maxZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
title: string;
|
|
18
|
+
name: string;
|
|
19
|
+
category?: string | undefined;
|
|
20
|
+
2193?: string | undefined;
|
|
21
|
+
3857?: string | undefined;
|
|
22
|
+
minZoom?: number | undefined;
|
|
23
|
+
maxZoom?: number | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
title: string;
|
|
26
|
+
name: string;
|
|
27
|
+
category?: string | undefined;
|
|
28
|
+
2193?: string | undefined;
|
|
29
|
+
3857?: string | undefined;
|
|
30
|
+
minZoom?: number | undefined;
|
|
31
|
+
maxZoom?: number | undefined;
|
|
32
|
+
}>, {
|
|
33
|
+
title: string;
|
|
34
|
+
name: string;
|
|
35
|
+
category?: string | undefined;
|
|
36
|
+
2193?: string | undefined;
|
|
37
|
+
3857?: string | undefined;
|
|
38
|
+
minZoom?: number | undefined;
|
|
39
|
+
maxZoom?: number | undefined;
|
|
40
|
+
}, {
|
|
41
|
+
title: string;
|
|
42
|
+
name: string;
|
|
43
|
+
category?: string | undefined;
|
|
44
|
+
2193?: string | undefined;
|
|
45
|
+
3857?: string | undefined;
|
|
46
|
+
minZoom?: number | undefined;
|
|
47
|
+
maxZoom?: number | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const zTileSetConfig: z.ZodObject<{
|
|
50
|
+
type: z.ZodNativeEnum<typeof TileSetType>;
|
|
51
|
+
id: z.ZodString;
|
|
52
|
+
title: z.ZodString;
|
|
53
|
+
category: z.ZodOptional<z.ZodString>;
|
|
54
|
+
description: z.ZodOptional<z.ZodString>;
|
|
55
|
+
background: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
|
|
56
|
+
layers: z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
57
|
+
name: z.ZodString;
|
|
58
|
+
title: z.ZodString;
|
|
59
|
+
category: z.ZodOptional<z.ZodString>;
|
|
60
|
+
2193: z.ZodOptional<z.ZodString>;
|
|
61
|
+
3857: z.ZodOptional<z.ZodString>;
|
|
62
|
+
minZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
63
|
+
maxZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
64
|
+
}, "strip", z.ZodTypeAny, {
|
|
65
|
+
title: string;
|
|
66
|
+
name: string;
|
|
67
|
+
category?: string | undefined;
|
|
68
|
+
2193?: string | undefined;
|
|
69
|
+
3857?: string | undefined;
|
|
70
|
+
minZoom?: number | undefined;
|
|
71
|
+
maxZoom?: number | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
title: string;
|
|
74
|
+
name: string;
|
|
75
|
+
category?: string | undefined;
|
|
76
|
+
2193?: string | undefined;
|
|
77
|
+
3857?: string | undefined;
|
|
78
|
+
minZoom?: number | undefined;
|
|
79
|
+
maxZoom?: number | undefined;
|
|
80
|
+
}>, {
|
|
81
|
+
title: string;
|
|
82
|
+
name: string;
|
|
83
|
+
category?: string | undefined;
|
|
84
|
+
2193?: string | undefined;
|
|
85
|
+
3857?: string | undefined;
|
|
86
|
+
minZoom?: number | undefined;
|
|
87
|
+
maxZoom?: number | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
title: string;
|
|
90
|
+
name: string;
|
|
91
|
+
category?: string | undefined;
|
|
92
|
+
2193?: string | undefined;
|
|
93
|
+
3857?: string | undefined;
|
|
94
|
+
minZoom?: number | undefined;
|
|
95
|
+
maxZoom?: number | undefined;
|
|
96
|
+
}>, "many">;
|
|
97
|
+
minZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
98
|
+
maxZoom: z.ZodOptional<z.ZodEffects<z.ZodNumber, number, number>>;
|
|
99
|
+
format: z.ZodOptional<z.ZodString>;
|
|
100
|
+
outputs: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
101
|
+
title: z.ZodString;
|
|
102
|
+
name: z.ZodString;
|
|
103
|
+
pipeline: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
104
|
+
type: z.ZodString;
|
|
105
|
+
}, "strip", z.ZodTypeAny, {
|
|
106
|
+
type: string;
|
|
107
|
+
}, {
|
|
108
|
+
type: string;
|
|
109
|
+
}>, "many">>;
|
|
110
|
+
format: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodLiteral<"webp">, z.ZodLiteral<"png">, z.ZodLiteral<"jpeg">, z.ZodLiteral<"avif">]>, "many">>;
|
|
111
|
+
background: z.ZodOptional<z.ZodObject<{
|
|
112
|
+
r: z.ZodNumber;
|
|
113
|
+
g: z.ZodNumber;
|
|
114
|
+
b: z.ZodNumber;
|
|
115
|
+
alpha: z.ZodNumber;
|
|
116
|
+
}, "strip", z.ZodTypeAny, {
|
|
117
|
+
r: number;
|
|
118
|
+
g: number;
|
|
119
|
+
b: number;
|
|
120
|
+
alpha: number;
|
|
121
|
+
}, {
|
|
122
|
+
r: number;
|
|
123
|
+
g: number;
|
|
124
|
+
b: number;
|
|
125
|
+
alpha: number;
|
|
126
|
+
}>>;
|
|
127
|
+
resizeKernel: z.ZodOptional<z.ZodObject<{
|
|
128
|
+
in: z.ZodUnion<[z.ZodLiteral<"nearest">, z.ZodLiteral<"lanczos3">, z.ZodLiteral<"lanczos2">]>;
|
|
129
|
+
out: z.ZodUnion<[z.ZodLiteral<"nearest">, z.ZodLiteral<"lanczos3">, z.ZodLiteral<"lanczos2">]>;
|
|
130
|
+
}, "strip", z.ZodTypeAny, {
|
|
131
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
132
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
133
|
+
}, {
|
|
134
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
135
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
136
|
+
}>>;
|
|
137
|
+
}, "strip", z.ZodTypeAny, {
|
|
138
|
+
name: string;
|
|
139
|
+
title: string;
|
|
140
|
+
pipeline?: {
|
|
141
|
+
type: string;
|
|
142
|
+
}[] | undefined;
|
|
143
|
+
format?: ("webp" | "png" | "jpeg" | "avif")[] | undefined;
|
|
144
|
+
background?: {
|
|
145
|
+
r: number;
|
|
146
|
+
g: number;
|
|
147
|
+
b: number;
|
|
148
|
+
alpha: number;
|
|
149
|
+
} | undefined;
|
|
150
|
+
resizeKernel?: {
|
|
151
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
152
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
153
|
+
} | undefined;
|
|
154
|
+
}, {
|
|
155
|
+
name: string;
|
|
156
|
+
title: string;
|
|
157
|
+
pipeline?: {
|
|
158
|
+
type: string;
|
|
159
|
+
}[] | undefined;
|
|
160
|
+
format?: ("webp" | "png" | "jpeg" | "avif")[] | undefined;
|
|
161
|
+
background?: {
|
|
162
|
+
r: number;
|
|
163
|
+
g: number;
|
|
164
|
+
b: number;
|
|
165
|
+
alpha: number;
|
|
166
|
+
} | undefined;
|
|
167
|
+
resizeKernel?: {
|
|
168
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
169
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
170
|
+
} | undefined;
|
|
171
|
+
}>, "many">>;
|
|
172
|
+
}, "strip", z.ZodTypeAny, {
|
|
173
|
+
title: string;
|
|
174
|
+
type: TileSetType;
|
|
175
|
+
id: string;
|
|
176
|
+
layers: {
|
|
177
|
+
title: string;
|
|
178
|
+
name: string;
|
|
179
|
+
category?: string | undefined;
|
|
180
|
+
2193?: string | undefined;
|
|
181
|
+
3857?: string | undefined;
|
|
182
|
+
minZoom?: number | undefined;
|
|
183
|
+
maxZoom?: number | undefined;
|
|
184
|
+
}[];
|
|
185
|
+
category?: string | undefined;
|
|
186
|
+
description?: string | undefined;
|
|
187
|
+
background?: string | undefined;
|
|
188
|
+
minZoom?: number | undefined;
|
|
189
|
+
maxZoom?: number | undefined;
|
|
190
|
+
format?: string | undefined;
|
|
191
|
+
outputs?: {
|
|
192
|
+
name: string;
|
|
193
|
+
title: string;
|
|
194
|
+
pipeline?: {
|
|
195
|
+
type: string;
|
|
196
|
+
}[] | undefined;
|
|
197
|
+
format?: ("webp" | "png" | "jpeg" | "avif")[] | undefined;
|
|
198
|
+
background?: {
|
|
199
|
+
r: number;
|
|
200
|
+
g: number;
|
|
201
|
+
b: number;
|
|
202
|
+
alpha: number;
|
|
203
|
+
} | undefined;
|
|
204
|
+
resizeKernel?: {
|
|
205
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
206
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
207
|
+
} | undefined;
|
|
208
|
+
}[] | undefined;
|
|
209
|
+
}, {
|
|
210
|
+
title: string;
|
|
211
|
+
type: TileSetType;
|
|
212
|
+
id: string;
|
|
213
|
+
layers: {
|
|
214
|
+
title: string;
|
|
215
|
+
name: string;
|
|
216
|
+
category?: string | undefined;
|
|
217
|
+
2193?: string | undefined;
|
|
218
|
+
3857?: string | undefined;
|
|
219
|
+
minZoom?: number | undefined;
|
|
220
|
+
maxZoom?: number | undefined;
|
|
221
|
+
}[];
|
|
222
|
+
category?: string | undefined;
|
|
223
|
+
description?: string | undefined;
|
|
224
|
+
background?: string | undefined;
|
|
225
|
+
minZoom?: number | undefined;
|
|
226
|
+
maxZoom?: number | undefined;
|
|
227
|
+
format?: string | undefined;
|
|
228
|
+
outputs?: {
|
|
229
|
+
name: string;
|
|
230
|
+
title: string;
|
|
231
|
+
pipeline?: {
|
|
232
|
+
type: string;
|
|
233
|
+
}[] | undefined;
|
|
234
|
+
format?: ("webp" | "png" | "jpeg" | "avif")[] | undefined;
|
|
235
|
+
background?: {
|
|
236
|
+
r: number;
|
|
237
|
+
g: number;
|
|
238
|
+
b: number;
|
|
239
|
+
alpha: number;
|
|
240
|
+
} | undefined;
|
|
241
|
+
resizeKernel?: {
|
|
242
|
+
in: "nearest" | "lanczos3" | "lanczos2";
|
|
243
|
+
out: "nearest" | "lanczos3" | "lanczos2";
|
|
244
|
+
} | undefined;
|
|
245
|
+
}[] | undefined;
|
|
246
|
+
}>;
|
|
247
|
+
export type TileSetConfigSchemaLayer = z.infer<typeof zLayerConfig>;
|
|
248
|
+
/**
|
|
249
|
+
* The Configuration for all the imagery in a TileSet
|
|
250
|
+
*/
|
|
251
|
+
export type TileSetConfigSchema = z.infer<typeof zTileSetConfig>;
|
|
252
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ConfigTileSetOutputParser, parseRgba, TileSetType } from '@basemaps/config';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export function validateColor(str) {
|
|
4
|
+
try {
|
|
5
|
+
parseRgba(str);
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const zBackground = z.string().refine(validateColor, { message: 'Invalid hex color' });
|
|
13
|
+
export const ImageryConfigDefaults = {
|
|
14
|
+
minZoom: 0,
|
|
15
|
+
maxZoom: 32,
|
|
16
|
+
};
|
|
17
|
+
const zZoom = z.number().refine((val) => val >= ImageryConfigDefaults.minZoom && val <= ImageryConfigDefaults.maxZoom, {
|
|
18
|
+
message: `must be between ${ImageryConfigDefaults.minZoom} and ${ImageryConfigDefaults.maxZoom}`,
|
|
19
|
+
});
|
|
20
|
+
const zLayerConfig = z
|
|
21
|
+
.object({
|
|
22
|
+
name: z.string(),
|
|
23
|
+
title: z.string(),
|
|
24
|
+
category: z.string().optional(),
|
|
25
|
+
2193: z.string().optional(),
|
|
26
|
+
3857: z.string().optional(),
|
|
27
|
+
minZoom: zZoom.optional(),
|
|
28
|
+
maxZoom: zZoom.optional(),
|
|
29
|
+
})
|
|
30
|
+
.refine(({ minZoom, maxZoom }) => (minZoom ? minZoom : ImageryConfigDefaults.minZoom) <= (maxZoom ? maxZoom : ImageryConfigDefaults.maxZoom), {
|
|
31
|
+
message: 'minZoom may no be greater than maxZoom',
|
|
32
|
+
path: ['minZoom'],
|
|
33
|
+
});
|
|
34
|
+
export const zTileSetConfig = z.object({
|
|
35
|
+
type: z.nativeEnum(TileSetType),
|
|
36
|
+
id: z.string(),
|
|
37
|
+
title: z.string(),
|
|
38
|
+
category: z.string().optional(),
|
|
39
|
+
description: z.string().optional(),
|
|
40
|
+
background: zBackground.optional(),
|
|
41
|
+
layers: z.array(zLayerConfig),
|
|
42
|
+
minZoom: zZoom.optional(),
|
|
43
|
+
maxZoom: zZoom.optional(),
|
|
44
|
+
format: z.string().optional(),
|
|
45
|
+
outputs: z.array(ConfigTileSetOutputParser).optional(),
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=parse.tile.set.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.tile.set.js","sourceRoot":"","sources":["../../src/json/parse.tile.set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,SAAS,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,qBAAqB,CAAC,OAAO,IAAI,GAAG,IAAI,qBAAqB,CAAC,OAAO,EAAE;IACrH,OAAO,EAAE,mBAAmB,qBAAqB,CAAC,OAAO,QAAQ,qBAAqB,CAAC,OAAO,EAAE;CACjG,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IACzB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;CAC1B,CAAC;KACD,MAAM,CACL,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACvB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC5G;IACE,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CACF,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;IAC/B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,WAAW,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IACzB,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;CACvD,CAAC,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { ConfigImagery, ConfigProviderMemory, ConfigTileSetRaster, ImageryBandType } from '@basemaps/config';
|
|
3
|
+
import { BoundingBox, NamedBounds } from '@basemaps/geo';
|
|
4
|
+
import { Tiff } from '@basemaps/shared';
|
|
5
|
+
import { LimitFunction } from 'p-limit';
|
|
6
|
+
import { StacCollection } from 'stac-ts';
|
|
7
|
+
import { LogType } from './log.js';
|
|
8
|
+
/** Summary of a collection of tiffs */
|
|
9
|
+
interface TiffSummary {
|
|
10
|
+
/** List of tiffs and their extents */
|
|
11
|
+
files: NamedBounds[];
|
|
12
|
+
/** Overall bounding box */
|
|
13
|
+
bounds: BoundingBox;
|
|
14
|
+
/** EpsgCode for the tiffs */
|
|
15
|
+
projection: number;
|
|
16
|
+
/** Ground sample distance, number of meters per pixel */
|
|
17
|
+
gsd: number;
|
|
18
|
+
/** no data value if present */
|
|
19
|
+
noData?: number;
|
|
20
|
+
/** STAC collection if it was found with the imagery */
|
|
21
|
+
collection?: StacCollection;
|
|
22
|
+
/** URL to the base of the imagery */
|
|
23
|
+
url: URL;
|
|
24
|
+
bands?: ImageryBandType[];
|
|
25
|
+
}
|
|
26
|
+
export type ConfigImageryTiff = ConfigImagery & TiffSummary;
|
|
27
|
+
/**
|
|
28
|
+
* Attempt to read a stac collection.json from the target path if it exists or return null if anything goes wrong.
|
|
29
|
+
*/
|
|
30
|
+
export declare function loadStacFromURL(target: URL): Promise<StacCollection | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Guess a better imagery name from a target URL
|
|
33
|
+
*
|
|
34
|
+
* A lot of our source paths include the type of imagery eg "rgb", "rgbi" or "dem_1m",
|
|
35
|
+
* these names are not super helpful and often there are better names further up the pathname
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* getImageryName('s3://linz-imagery/auckland/auckland_sn5600_1979_0.375m/2193/rgb/')
|
|
40
|
+
* // auckland_sn5600_1979_0.375m
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* The list of paths ignored are from
|
|
44
|
+
*
|
|
45
|
+
* @see {IgnoredTitles}
|
|
46
|
+
*
|
|
47
|
+
* For common imagery paths see:
|
|
48
|
+
*
|
|
49
|
+
* @see {@link https://github.com/linz/imagery}
|
|
50
|
+
* @see {@link https://github.com/linz/elevation}
|
|
51
|
+
*/
|
|
52
|
+
export declare function getImageryName(target: URL): string;
|
|
53
|
+
export declare function loadTiffsFromPaths(sourceFiles: URL[], Q: LimitFunction): Promise<Tiff[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Attempt to load all imagery inside of a path and create a configuration from it
|
|
56
|
+
*
|
|
57
|
+
* @param target path that contains the imagery
|
|
58
|
+
* @param Q limit the number of requests per second to the imagery
|
|
59
|
+
* @param configCache optional location to cache the configuration objects
|
|
60
|
+
*
|
|
61
|
+
* @returns Imagery configuration generated from the path
|
|
62
|
+
*/
|
|
63
|
+
export declare function initImageryFromTiffUrl(target: URL, Q: LimitFunction, configCache?: URL, log?: LogType): Promise<ConfigImageryTiff>;
|
|
64
|
+
/**
|
|
65
|
+
* Create configuration from a folder full of tiffs or a folder of folders of tiffs
|
|
66
|
+
*
|
|
67
|
+
* Given the following folder structure
|
|
68
|
+
*
|
|
69
|
+
* ```typescript
|
|
70
|
+
* "/imagery/invercargill_2022_0.05m/*.tiff"
|
|
71
|
+
* "/imagery/wellington_2022_0.05/*.tiff"
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* A. A single imagery datasets
|
|
75
|
+
*
|
|
76
|
+
* ```typescript
|
|
77
|
+
* target = ["/imagery/invercargill_2022_0.05m/"]
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* will load all tiffs from the resulting folder into a single tile set `aerial`
|
|
81
|
+
*
|
|
82
|
+
* B: A tree of imagery datasets
|
|
83
|
+
*
|
|
84
|
+
* ```typescript
|
|
85
|
+
* target = ["/imagery/invercargill_2022_0.05m/*.tiff", "/imagery/wellington_2022_0.05/*.tiff"]
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* will load all tiffs from all folders targets into a single tile set "aerial",
|
|
89
|
+
* then load each folder into their own tile set.
|
|
90
|
+
*
|
|
91
|
+
* The rendering order will be the order of the target locations
|
|
92
|
+
*
|
|
93
|
+
* tile sets: aerial, wellington_2022_0.05, invercargill_2022_0.05m
|
|
94
|
+
*
|
|
95
|
+
* @param provider where to store all the configuration generated
|
|
96
|
+
* @param targets the target location
|
|
97
|
+
* @param concurrency number of tiff files to load at a time
|
|
98
|
+
* @returns
|
|
99
|
+
*/
|
|
100
|
+
export declare function initConfigFromUrls(provider: ConfigProviderMemory, targets: URL[], concurrency?: number, configCache?: URL, log?: LogType): Promise<{
|
|
101
|
+
tileSet: ConfigTileSetRaster;
|
|
102
|
+
tileSets: ConfigTileSetRaster[];
|
|
103
|
+
imagery: ConfigImageryTiff[];
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* Attempt to guess if this configuration contains RGB or RGBA imagery
|
|
107
|
+
* by validating the image is either 3 or 4 band uint8
|
|
108
|
+
*
|
|
109
|
+
* @param img Imagery to check
|
|
110
|
+
* @returns true if imagery looks like rgb(a), false otherwise
|
|
111
|
+
*/
|
|
112
|
+
export declare function isRgbOrRgba(img: ConfigImagery): boolean;
|
|
113
|
+
export {};
|