@developmentseed/geotiff 0.3.0-beta.3 → 0.3.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 +64 -0
- package/dist/array.d.ts +12 -27
- package/dist/array.d.ts.map +1 -1
- package/dist/array.js.map +1 -1
- package/dist/codecs/lerc.d.ts +2 -2
- package/dist/codecs/lerc.d.ts.map +1 -1
- package/dist/codecs/lerc.js +23 -2
- package/dist/codecs/lerc.js.map +1 -1
- package/dist/codecs/lzw.d.ts.map +1 -1
- package/dist/codecs/lzw.js +2 -1
- package/dist/codecs/lzw.js.map +1 -1
- package/dist/codecs/predictor.d.ts +1 -2
- package/dist/codecs/predictor.d.ts.map +1 -1
- package/dist/codecs/predictor.js +1 -2
- package/dist/codecs/predictor.js.map +1 -1
- package/dist/codecs/utils.d.ts +2 -0
- package/dist/codecs/utils.d.ts.map +1 -0
- package/dist/codecs/utils.js +11 -0
- package/dist/codecs/utils.js.map +1 -0
- package/dist/codecs/zstd.d.ts +2 -0
- package/dist/codecs/zstd.d.ts.map +1 -0
- package/dist/codecs/zstd.js +7 -0
- package/dist/codecs/zstd.js.map +1 -0
- package/dist/decode.d.ts +32 -6
- package/dist/decode.d.ts.map +1 -1
- package/dist/decode.js +35 -15
- package/dist/decode.js.map +1 -1
- package/dist/fetch.d.ts +6 -2
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +178 -34
- package/dist/fetch.js.map +1 -1
- package/dist/gdal-metadata.d.ts +17 -0
- package/dist/gdal-metadata.d.ts.map +1 -0
- package/dist/gdal-metadata.js +59 -0
- package/dist/gdal-metadata.js.map +1 -0
- package/dist/geotiff.d.ts +91 -11
- package/dist/geotiff.d.ts.map +1 -1
- package/dist/geotiff.js +140 -43
- package/dist/geotiff.js.map +1 -1
- package/dist/ifd.d.ts +8 -8
- package/dist/ifd.d.ts.map +1 -1
- package/dist/ifd.js +21 -13
- package/dist/ifd.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/overview.d.ts +33 -3
- package/dist/overview.d.ts.map +1 -1
- package/dist/overview.js +35 -2
- package/dist/overview.js.map +1 -1
- package/dist/pool/pool.d.ts +71 -0
- package/dist/pool/pool.d.ts.map +1 -0
- package/dist/pool/pool.js +100 -0
- package/dist/pool/pool.js.map +1 -0
- package/dist/pool/worker.d.ts +23 -0
- package/dist/pool/worker.d.ts.map +1 -0
- package/dist/pool/worker.js +37 -0
- package/dist/pool/worker.js.map +1 -0
- package/dist/pool/wrapper.d.ts +37 -0
- package/dist/pool/wrapper.d.ts.map +1 -0
- package/dist/pool/wrapper.js +46 -0
- package/dist/pool/wrapper.js.map +1 -0
- package/dist/tile-matrix-set.d.ts.map +1 -1
- package/dist/tile-matrix-set.js +12 -12
- package/dist/tile-matrix-set.js.map +1 -1
- package/dist/transform.d.ts +7 -0
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +40 -1
- package/dist/transform.js.map +1 -1
- package/package.json +18 -12
- package/dist/api.d.ts +0 -34
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js +0 -84
- package/dist/api.js.map +0 -1
- package/dist/decode/api.d.ts +0 -28
- package/dist/decode/api.d.ts.map +0 -1
- package/dist/decode/api.js +0 -80
- package/dist/decode/api.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/geotiff.js
CHANGED
|
@@ -1,34 +1,48 @@
|
|
|
1
|
-
import { SourceCache } from "@chunkd/middleware";
|
|
2
|
-
import { SourceChunk } from "@chunkd/middleware/build/src/middleware/chunk.js";
|
|
1
|
+
import { SourceCache, SourceChunk } from "@chunkd/middleware";
|
|
3
2
|
import { SourceView } from "@chunkd/source";
|
|
4
3
|
import { SourceHttp } from "@chunkd/source-http";
|
|
5
4
|
import { SourceMemory } from "@chunkd/source-memory";
|
|
6
5
|
import { Photometric, SubFileType, Tiff, TiffTag } from "@cogeotiff/core";
|
|
7
6
|
import { crsFromGeoKeys } from "./crs.js";
|
|
8
7
|
import { fetchTile } from "./fetch.js";
|
|
8
|
+
import { parseGDALMetadata } from "./gdal-metadata.js";
|
|
9
9
|
import { extractGeoKeyDirectory, prefetchTags } from "./ifd.js";
|
|
10
10
|
import { Overview } from "./overview.js";
|
|
11
|
-
import { index, xy } from "./transform.js";
|
|
11
|
+
import { createTransform, index, xy } from "./transform.js";
|
|
12
12
|
/**
|
|
13
|
-
* A
|
|
13
|
+
* A high-level GeoTIFF abstraction built on
|
|
14
|
+
* {@link https://github.com/blacha/cogeotiff | @cogeotiff/core}'s `Tiff` and
|
|
15
|
+
* `TiffImage` classes.
|
|
14
16
|
*
|
|
15
|
-
*
|
|
16
|
-
* and exposes sorted overviews.
|
|
17
|
+
* This class separates data IFDs from mask IFDs, pairs them by resolution
|
|
18
|
+
* level, and exposes sorted overviews. Intentionally mirrors the Python
|
|
19
|
+
* {@link https://github.com/developmentseed/async-geotiff | async-geotiff} API
|
|
20
|
+
* as closely as possible.
|
|
17
21
|
*
|
|
18
|
-
* Construct via
|
|
22
|
+
* Construct via {@link GeoTIFF.fromUrl}, {@link GeoTIFF.fromArrayBuffer},
|
|
23
|
+
* {@link GeoTIFF.open} or {@link GeoTIFF.fromTiff}.
|
|
24
|
+
*
|
|
25
|
+
* @see {@link Overview} for reduced-resolution overview images.
|
|
19
26
|
*/
|
|
20
27
|
export class GeoTIFF {
|
|
21
28
|
/**
|
|
22
29
|
* Reduced-resolution overview levels, sorted finest-to-coarsest.
|
|
23
30
|
*
|
|
24
|
-
* Does not include the full-resolution image — use
|
|
25
|
-
*
|
|
31
|
+
* Does not include the full-resolution image — use {@link fetchTile} on the
|
|
32
|
+
* GeoTIFF instance itself for that.
|
|
26
33
|
*/
|
|
27
34
|
overviews;
|
|
28
35
|
/** A cached CRS value. */
|
|
29
36
|
_crs;
|
|
30
37
|
/** Cached TIFF tags that are pre-fetched when opening the GeoTIFF. */
|
|
31
38
|
cachedTags;
|
|
39
|
+
/** The data source used for fetching tile data.
|
|
40
|
+
*
|
|
41
|
+
* This is typically the raw source (e.g. HTTP or memory) rather than a
|
|
42
|
+
* layered source with caching and chunking, to avoid unnecessary copying of
|
|
43
|
+
* tile data through cache layers.
|
|
44
|
+
*/
|
|
45
|
+
dataSource;
|
|
32
46
|
/** The underlying Tiff instance. */
|
|
33
47
|
tiff;
|
|
34
48
|
/** The primary (full-resolution) TiffImage. */
|
|
@@ -37,30 +51,43 @@ export class GeoTIFF {
|
|
|
37
51
|
maskImage;
|
|
38
52
|
/** The GeoKeyDirectory of the primary IFD. */
|
|
39
53
|
gkd;
|
|
40
|
-
|
|
54
|
+
/** Parsed GDALMetadata tag, if present. */
|
|
55
|
+
gdalMetadata;
|
|
56
|
+
constructor(tiff, image, maskImage, gkd, overviews, cachedTags, dataSource, gdalMetadata) {
|
|
41
57
|
this.tiff = tiff;
|
|
42
58
|
this.image = image;
|
|
43
59
|
this.maskImage = maskImage;
|
|
44
60
|
this.gkd = gkd;
|
|
45
61
|
this.overviews = overviews;
|
|
46
62
|
this.cachedTags = cachedTags;
|
|
63
|
+
this.dataSource = dataSource;
|
|
64
|
+
this.gdalMetadata = gdalMetadata;
|
|
47
65
|
}
|
|
48
66
|
/**
|
|
49
67
|
* Open a GeoTIFF from a @cogeotiff/core Source.
|
|
50
68
|
*
|
|
51
69
|
* This creates and initialises the underlying Tiff, then classifies IFDs.
|
|
70
|
+
*
|
|
71
|
+
* @param options.dataSource A source for fetching tile data. This is separate from the source used to construct the TIFF to allow for separate caching implementations.
|
|
72
|
+
* @param options.headerSource The source used to construct the TIFF. This is typically a layered source with caching and chunking, to optimise access to TIFF tags and IFDs.
|
|
73
|
+
* @param options.prefetch Number of bytes to prefetch when reading TIFF tags and IFDs. Defaults to 32KB, which is enough for most tags and small IFDs. Increase if you have many tags or large IFDs.
|
|
52
74
|
*/
|
|
53
|
-
static async open(
|
|
54
|
-
const
|
|
55
|
-
|
|
75
|
+
static async open(options) {
|
|
76
|
+
const { dataSource, headerSource, prefetch = 32 * 1024 } = options;
|
|
77
|
+
const tiff = await Tiff.create(headerSource, {
|
|
78
|
+
defaultReadSize: prefetch,
|
|
79
|
+
});
|
|
80
|
+
return GeoTIFF.fromTiff(tiff, dataSource);
|
|
56
81
|
}
|
|
57
82
|
/**
|
|
58
83
|
* Create a GeoTIFF from an already-initialised Tiff instance.
|
|
59
84
|
*
|
|
60
85
|
* All IFDs are walked; mask IFDs are matched to data IFDs by matching
|
|
61
86
|
* (width, height). Overviews are sorted from finest to coarsest resolution.
|
|
87
|
+
*
|
|
88
|
+
* @param dataSource A source for fetching tile data. This is separate from the source used to construct the TIFF to allow for separate caching implementations.
|
|
62
89
|
*/
|
|
63
|
-
static async fromTiff(tiff) {
|
|
90
|
+
static async fromTiff(tiff, dataSource) {
|
|
64
91
|
const images = tiff.images;
|
|
65
92
|
if (images.length === 0) {
|
|
66
93
|
throw new Error("TIFF does not contain any IFDs");
|
|
@@ -97,29 +124,72 @@ export class GeoTIFF {
|
|
|
97
124
|
return sb.width * sb.height - sa.width * sa.height;
|
|
98
125
|
});
|
|
99
126
|
const cachedTags = await prefetchTags(primaryImage);
|
|
127
|
+
const gdalMetadata = parseGDALMetadata(cachedTags.gdalMetadata, {
|
|
128
|
+
count: cachedTags.samplesPerPixel,
|
|
129
|
+
});
|
|
100
130
|
// Two-phase construction: create the GeoTIFF first (with empty overviews),
|
|
101
131
|
// then build Overviews that reference back to it.
|
|
102
|
-
const geotiff = new GeoTIFF(tiff, primaryImage, primaryMask, gkd, [], cachedTags);
|
|
132
|
+
const geotiff = new GeoTIFF(tiff, primaryImage, primaryMask, gkd, [], cachedTags, dataSource, gdalMetadata);
|
|
103
133
|
const overviews = dataEntries.map(([key, dataImage]) => {
|
|
104
134
|
const maskImage = maskIFDs.get(key) ?? null;
|
|
105
|
-
return new Overview(geotiff, gkd, dataImage, maskImage, cachedTags);
|
|
135
|
+
return new Overview(geotiff, gkd, dataImage, maskImage, cachedTags, dataSource);
|
|
106
136
|
});
|
|
107
137
|
// Mutate the readonly field — safe here because we're still in the factory.
|
|
108
138
|
geotiff.overviews = overviews;
|
|
109
139
|
return geotiff;
|
|
110
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a GeoTIFF from an ArrayBuffer containing the entire file.
|
|
143
|
+
*
|
|
144
|
+
* This is a convenience method that wraps the ArrayBuffer in a memory source
|
|
145
|
+
* and calls {@link GeoTIFF.open}. For large files, consider using
|
|
146
|
+
* {@link GeoTIFF.fromUrl} or {@link GeoTIFF.open} with a chunked HTTP source
|
|
147
|
+
* to avoid loading the entire file into memory at once.
|
|
148
|
+
*
|
|
149
|
+
* @param input The ArrayBuffer containing the GeoTIFF file data.
|
|
150
|
+
* @returns A Promise that resolves to a GeoTIFF instance.
|
|
151
|
+
*/
|
|
111
152
|
static async fromArrayBuffer(input) {
|
|
112
153
|
const source = new SourceMemory("memory://input.tif", input);
|
|
113
|
-
return await GeoTIFF.open(
|
|
154
|
+
return await GeoTIFF.open({
|
|
155
|
+
dataSource: source,
|
|
156
|
+
headerSource: source,
|
|
157
|
+
});
|
|
114
158
|
}
|
|
115
|
-
|
|
159
|
+
/**
|
|
160
|
+
* Create a new GeoTIFF from a URL.
|
|
161
|
+
*
|
|
162
|
+
* @param url The URL of the GeoTIFF to open.
|
|
163
|
+
* @param options Optional parameters for chunk size and cache size.
|
|
164
|
+
* @param options.chunkSize The minimum size for each request made to the source while reading header metadata. Defaults to 32KB.
|
|
165
|
+
* @param options.cacheSize The size of the cache for recently accessed header chunks. Currently no caching is applied to data fetches. Defaults to 1MB.
|
|
166
|
+
* @returns A Promise that resolves to a GeoTIFF instance.
|
|
167
|
+
*/
|
|
168
|
+
static async fromUrl(url, { chunkSize = 32 * 1024, cacheSize = 1024 * 1024, } = {}) {
|
|
169
|
+
// Bypass Chrome disk cache, which serializes multiple range requests to the
|
|
170
|
+
// same URL.
|
|
171
|
+
// https://www.chromium.org/developers/design-documents/network-stack/http-cache/
|
|
172
|
+
// > The cache implements a single writer - multiple reader lock so that
|
|
173
|
+
// > only one network request for the same resource is in flight at any
|
|
174
|
+
// > given time.
|
|
175
|
+
const source = new SourceHttp(url, {
|
|
176
|
+
cache: "public, no-store, s-maxage=86400",
|
|
177
|
+
});
|
|
178
|
+
// Figure out optimal defaults in light of
|
|
179
|
+
// https://github.com/blacha/cogeotiff/issues/1431
|
|
180
|
+
// Defaulting to 32KB chunks is too small for tile data.
|
|
181
|
+
// https://github.com/developmentseed/deck.gl-raster/issues/294
|
|
116
182
|
// read files in chunks
|
|
117
183
|
const chunk = new SourceChunk({ size: chunkSize });
|
|
118
|
-
//
|
|
184
|
+
// 10MB cache for recently accessed chunks
|
|
119
185
|
const cache = new SourceCache({ size: cacheSize });
|
|
120
|
-
const source = new SourceHttp(url);
|
|
121
186
|
const view = new SourceView(source, [chunk, cache]);
|
|
122
|
-
return await GeoTIFF.open(
|
|
187
|
+
return await GeoTIFF.open({
|
|
188
|
+
// Use raw source for tile data to avoid unnecessary copying through the
|
|
189
|
+
// cache and chunk layers.
|
|
190
|
+
dataSource: source,
|
|
191
|
+
headerSource: view,
|
|
192
|
+
});
|
|
123
193
|
}
|
|
124
194
|
// ── Properties from the primary image ─────────────────────────────────
|
|
125
195
|
/**
|
|
@@ -144,6 +214,10 @@ export class GeoTIFF {
|
|
|
144
214
|
get height() {
|
|
145
215
|
return this.image.size.height;
|
|
146
216
|
}
|
|
217
|
+
/** The number of tiles in the x and y directions */
|
|
218
|
+
get tileCount() {
|
|
219
|
+
return this.image.tileCount;
|
|
220
|
+
}
|
|
147
221
|
/** Tile width in pixels. */
|
|
148
222
|
get tileWidth() {
|
|
149
223
|
return this.image.tileSize.width;
|
|
@@ -152,7 +226,7 @@ export class GeoTIFF {
|
|
|
152
226
|
get tileHeight() {
|
|
153
227
|
return this.image.tileSize.height;
|
|
154
228
|
}
|
|
155
|
-
/** The
|
|
229
|
+
/** The no data value, or null if not set. */
|
|
156
230
|
get nodata() {
|
|
157
231
|
return this.image.noData;
|
|
158
232
|
}
|
|
@@ -160,6 +234,34 @@ export class GeoTIFF {
|
|
|
160
234
|
get isTiled() {
|
|
161
235
|
return this.image.isTiled();
|
|
162
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* The pre-existing statistics for each band, if available.
|
|
239
|
+
*
|
|
240
|
+
* Extracted from the GDALMetadata TIFF tag; never computed on demand.
|
|
241
|
+
* Keys are **1-based** band indices to match GDAL's convention.
|
|
242
|
+
*
|
|
243
|
+
* Returns `null` if no statistics are stored in the file.
|
|
244
|
+
*/
|
|
245
|
+
get storedStats() {
|
|
246
|
+
const stats = this.gdalMetadata?.bandStatistics;
|
|
247
|
+
return stats && stats.size > 0 ? stats : null;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* The offset for each band (0-indexed), defaulting to 0.
|
|
251
|
+
*
|
|
252
|
+
* Extracted from the GDALMetadata TIFF tag.
|
|
253
|
+
*/
|
|
254
|
+
get offsets() {
|
|
255
|
+
return this.gdalMetadata?.offsets ?? Array(this.count).fill(0);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* The scale for each band (0-indexed), defaulting to 1.
|
|
259
|
+
*
|
|
260
|
+
* Extracted from the GDALMetadata TIFF tag.
|
|
261
|
+
*/
|
|
262
|
+
get scales() {
|
|
263
|
+
return this.gdalMetadata?.scales ?? Array(this.count).fill(1);
|
|
264
|
+
}
|
|
163
265
|
/** Number of bands (samples per pixel). */
|
|
164
266
|
get count() {
|
|
165
267
|
return this.image.value(TiffTag.SamplesPerPixel) ?? 1;
|
|
@@ -172,29 +274,24 @@ export class GeoTIFF {
|
|
|
172
274
|
* Return the dataset's georeferencing transformation matrix.
|
|
173
275
|
*/
|
|
174
276
|
get transform() {
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
let d = 0; // column rotation
|
|
183
|
-
if (modelTransformation != null && modelTransformation.length >= 16) {
|
|
184
|
-
b = modelTransformation[1];
|
|
185
|
-
d = modelTransformation[4];
|
|
186
|
-
}
|
|
187
|
-
return [
|
|
188
|
-
resolution[0], // a: pixel width (x per col)
|
|
189
|
-
b, // b: row rotation
|
|
190
|
-
origin[0], // c: x origin
|
|
191
|
-
d, // d: column rotation
|
|
192
|
-
resolution[1], // e: pixel height (negative = north-up)
|
|
193
|
-
origin[1], // f: y origin
|
|
194
|
-
];
|
|
277
|
+
const { modelPixelScale, modelTiepoint, modelTransformation } = this.cachedTags;
|
|
278
|
+
return createTransform({
|
|
279
|
+
modelTiepoint,
|
|
280
|
+
modelPixelScale,
|
|
281
|
+
modelTransformation,
|
|
282
|
+
rasterType: this.gkd.rasterType,
|
|
283
|
+
});
|
|
195
284
|
}
|
|
196
285
|
// Mixins
|
|
197
|
-
/** Fetch a single tile from the full-resolution image.
|
|
286
|
+
/** Fetch a single tile from the full-resolution image.
|
|
287
|
+
*
|
|
288
|
+
* @param x The tile column index (0-based).
|
|
289
|
+
* @param y The tile row index (0-based).
|
|
290
|
+
* @param options Optional parameters for fetching the tile.
|
|
291
|
+
* @param options.boundless Whether to clip tiles that are partially outside the image bounds. When `true`, no clipping is applied. Defaults to `true`.
|
|
292
|
+
* @param options.pool An optional {@link DecoderPool} for decoding the tile data. If not provided, a new decoder will be created for each tile.
|
|
293
|
+
* @param options.signal An optional {@link AbortSignal} to cancel the fetch request.
|
|
294
|
+
*/
|
|
198
295
|
async fetchTile(x, y, options = {}) {
|
|
199
296
|
return await fetchTile(this, x, y, options);
|
|
200
297
|
}
|
package/dist/geotiff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geotiff.js","sourceRoot":"","sources":["../src/geotiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"geotiff.js","sourceRoot":"","sources":["../src/geotiff.ts"],"names":[],"mappings":"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"}
|
package/dist/ifd.d.ts
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import type { TiffImage, TiffTagGeoType, TiffTagType } from "@cogeotiff/core";
|
|
2
|
-
import { TiffTag, TiffTagGeo } from "@cogeotiff/core";
|
|
3
|
-
export declare enum Predictor {
|
|
4
|
-
None = 1,
|
|
5
|
-
/** Horizontal differencing */
|
|
6
|
-
Horizontal = 2,
|
|
7
|
-
/** Floating point */
|
|
8
|
-
FloatingPoint = 3
|
|
9
|
-
}
|
|
2
|
+
import { Predictor, TiffTag, TiffTagGeo } from "@cogeotiff/core";
|
|
10
3
|
/** Subset of TIFF tags that we pre-fetch for easier visualization. */
|
|
11
4
|
export interface CachedTags {
|
|
12
5
|
bitsPerSample: Uint16Array;
|
|
13
6
|
colorMap?: Uint16Array;
|
|
14
7
|
compression: TiffTagType[TiffTag.Compression];
|
|
8
|
+
gdalMetadata: TiffTagType[TiffTag.GdalMetadata] | null;
|
|
9
|
+
lercParameters: TiffTagType[TiffTag.LercParameters] | null;
|
|
10
|
+
modelTiepoint: TiffTagType[TiffTag.ModelTiePoint] | null;
|
|
11
|
+
modelPixelScale: TiffTagType[TiffTag.ModelPixelScale] | null;
|
|
12
|
+
modelTransformation: TiffTagType[TiffTag.ModelTransformation] | null;
|
|
15
13
|
nodata: number | null;
|
|
16
14
|
photometric: TiffTagType[TiffTag.Photometric];
|
|
17
15
|
/** https://web.archive.org/web/20240329145322/https://www.awaresystems.be/imaging/tiff/tifftags/photometricinterpretation.html */
|
|
@@ -19,6 +17,8 @@ export interface CachedTags {
|
|
|
19
17
|
predictor: Predictor;
|
|
20
18
|
sampleFormat: TiffTagType[TiffTag.SampleFormat];
|
|
21
19
|
samplesPerPixel: TiffTagType[TiffTag.SamplesPerPixel];
|
|
20
|
+
tileByteCounts: TiffTagType[TiffTag.TileByteCounts] | null;
|
|
21
|
+
tileOffsets: TiffTagType[TiffTag.TileOffsets] | null;
|
|
22
22
|
}
|
|
23
23
|
/** Pre-fetch TIFF tags for easier visualization. */
|
|
24
24
|
export declare function prefetchTags(image: TiffImage): Promise<CachedTags>;
|
package/dist/ifd.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifd.d.ts","sourceRoot":"","sources":["../src/ifd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAgB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ifd.d.ts","sourceRoot":"","sources":["../src/ifd.ts"],"names":[],"mappings":"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"}
|
package/dist/ifd.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import { SampleFormat, TiffTag, TiffTagGeo } from "@cogeotiff/core";
|
|
2
|
-
// TODO: use upstream: https://github.com/blacha/cogeotiff/pull/1412
|
|
3
|
-
export var Predictor;
|
|
4
|
-
(function (Predictor) {
|
|
5
|
-
Predictor[Predictor["None"] = 1] = "None";
|
|
6
|
-
/** Horizontal differencing */
|
|
7
|
-
Predictor[Predictor["Horizontal"] = 2] = "Horizontal";
|
|
8
|
-
/** Floating point */
|
|
9
|
-
Predictor[Predictor["FloatingPoint"] = 3] = "FloatingPoint";
|
|
10
|
-
})(Predictor || (Predictor = {}));
|
|
1
|
+
import { Predictor, SampleFormat, TiffTag, TiffTagGeo } from "@cogeotiff/core";
|
|
11
2
|
/** Pre-fetch TIFF tags for easier visualization. */
|
|
12
3
|
export async function prefetchTags(image) {
|
|
13
4
|
// Compression is pre-fetched in init
|
|
@@ -15,15 +6,25 @@ export async function prefetchTags(image) {
|
|
|
15
6
|
if (compression === null) {
|
|
16
7
|
throw new Error("Compression tag should always exist.");
|
|
17
8
|
}
|
|
18
|
-
const
|
|
19
|
-
const [bitsPerSample, colorMap, photometric, planarConfiguration, predictor, sampleFormat, samplesPerPixel,] = await Promise.all([
|
|
9
|
+
const [bitsPerSample, colorMap, gdalNoData, gdalMetadata, lercParameters, modelPixelScale, modelTiepoint, modelTransformation, photometric, planarConfiguration, predictor, sampleFormat, samplesPerPixel, tileByteCounts, tileOffsets,] = await Promise.all([
|
|
20
10
|
image.fetch(TiffTag.BitsPerSample),
|
|
21
11
|
image.fetch(TiffTag.ColorMap),
|
|
12
|
+
image.fetch(TiffTag.GdalNoData),
|
|
13
|
+
image.fetch(TiffTag.GdalMetadata),
|
|
14
|
+
image.fetch(TiffTag.LercParameters),
|
|
15
|
+
image.fetch(TiffTag.ModelPixelScale),
|
|
16
|
+
image.fetch(TiffTag.ModelTiePoint),
|
|
17
|
+
image.fetch(TiffTag.ModelTransformation),
|
|
22
18
|
image.fetch(TiffTag.Photometric),
|
|
23
19
|
image.fetch(TiffTag.PlanarConfiguration),
|
|
24
20
|
image.fetch(TiffTag.Predictor),
|
|
25
21
|
image.fetch(TiffTag.SampleFormat),
|
|
26
22
|
image.fetch(TiffTag.SamplesPerPixel),
|
|
23
|
+
// Pre-fetch tile offsets and byte counts. If we don't prefetch them,
|
|
24
|
+
// TiffImage.getTileSize will have to fetch them for each tile, which
|
|
25
|
+
// results in many redundant requests.
|
|
26
|
+
image.fetch(TiffTag.TileByteCounts),
|
|
27
|
+
image.fetch(TiffTag.TileOffsets),
|
|
27
28
|
]);
|
|
28
29
|
const missingTag = (tagName) => {
|
|
29
30
|
throw new Error(`${tagName} tag should always exist.`);
|
|
@@ -44,7 +45,12 @@ export async function prefetchTags(image) {
|
|
|
44
45
|
bitsPerSample: new Uint16Array(bitsPerSample),
|
|
45
46
|
colorMap: colorMap ? new Uint16Array(colorMap) : undefined,
|
|
46
47
|
compression,
|
|
47
|
-
|
|
48
|
+
gdalMetadata,
|
|
49
|
+
lercParameters,
|
|
50
|
+
modelTiepoint,
|
|
51
|
+
modelPixelScale,
|
|
52
|
+
modelTransformation,
|
|
53
|
+
nodata: gdalNoData !== null ? Number(gdalNoData) : null,
|
|
48
54
|
photometric,
|
|
49
55
|
planarConfiguration,
|
|
50
56
|
predictor: predictor ?? Predictor.None,
|
|
@@ -52,6 +58,8 @@ export async function prefetchTags(image) {
|
|
|
52
58
|
// https://web.archive.org/web/20240329145340/https://www.awaresystems.be/imaging/tiff/tifftags/sampleformat.html
|
|
53
59
|
sampleFormat: sampleFormat ?? [SampleFormat.Uint],
|
|
54
60
|
samplesPerPixel,
|
|
61
|
+
tileByteCounts,
|
|
62
|
+
tileOffsets,
|
|
55
63
|
};
|
|
56
64
|
}
|
|
57
65
|
export function extractGeoKeyDirectory(image) {
|
package/dist/ifd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifd.js","sourceRoot":"","sources":["../src/ifd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ifd.js","sourceRoot":"","sources":["../src/ifd.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
export type { RasterArray } from "./array.js";
|
|
1
|
+
export type { RasterArray, RasterArrayBandSeparate, RasterArrayBase, RasterArrayPixelInterleaved, RasterTypedArray, } from "./array.js";
|
|
2
2
|
export { parseColormap } from "./colormap.js";
|
|
3
3
|
export type { ProjJson } from "./crs.js";
|
|
4
|
-
export type { DecodedPixels, Decoder, DecoderMetadata } from "./decode.js";
|
|
5
|
-
export {
|
|
4
|
+
export type { DecodedBandSeparate, DecodedPixelInterleaved, DecodedPixels, Decoder, DecoderMetadata, } from "./decode.js";
|
|
5
|
+
export { DECODER_REGISTRY } from "./decode.js";
|
|
6
6
|
export { GeoTIFF } from "./geotiff.js";
|
|
7
|
+
export type { CachedTags, GeoKeyDirectory } from "./ifd.js";
|
|
7
8
|
export { Overview } from "./overview.js";
|
|
9
|
+
export type { DecoderPoolOptions } from "./pool/pool.js";
|
|
10
|
+
export { DecoderPool, defaultDecoderPool } from "./pool/pool.js";
|
|
8
11
|
export type { Tile } from "./tile.js";
|
|
9
12
|
export { generateTileMatrixSet } from "./tile-matrix-set.js";
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,OAAO,EACP,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { parseColormap } from "./colormap.js";
|
|
2
|
-
export {
|
|
2
|
+
export { DECODER_REGISTRY } from "./decode.js";
|
|
3
3
|
export { GeoTIFF } from "./geotiff.js";
|
|
4
4
|
export { Overview } from "./overview.js";
|
|
5
|
+
export { DecoderPool, defaultDecoderPool } from "./pool/pool.js";
|
|
5
6
|
export { generateTileMatrixSet } from "./tile-matrix-set.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAS9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/overview.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { TiffImage } from "@cogeotiff/core";
|
|
1
|
+
import type { Source, TiffImage, TiffImageTileCount } from "@cogeotiff/core";
|
|
2
2
|
import type { Affine } from "@developmentseed/affine";
|
|
3
3
|
import type { ProjJson } from "./crs.js";
|
|
4
4
|
import type { GeoTIFF } from "./geotiff.js";
|
|
5
5
|
import type { CachedTags, GeoKeyDirectory } from "./ifd.js";
|
|
6
|
+
import type { DecoderPool } from "./pool/pool.js";
|
|
6
7
|
import type { Tile } from "./tile.js";
|
|
7
8
|
/**
|
|
8
9
|
* A single resolution level of a GeoTIFF — either the full-resolution image
|
|
@@ -11,6 +12,8 @@ import type { Tile } from "./tile.js";
|
|
|
11
12
|
*/
|
|
12
13
|
export declare class Overview {
|
|
13
14
|
readonly cachedTags: CachedTags;
|
|
15
|
+
/** The data source used for fetching tile data. */
|
|
16
|
+
readonly dataSource: Pick<Source, "fetch">;
|
|
14
17
|
/** A reference to the parent GeoTIFF object. */
|
|
15
18
|
readonly geotiff: GeoTIFF;
|
|
16
19
|
/** The GeoKeyDirectory of the primary IFD. */
|
|
@@ -19,17 +22,44 @@ export declare class Overview {
|
|
|
19
22
|
readonly image: TiffImage;
|
|
20
23
|
/** The IFD for the mask associated with this overview level, if any. */
|
|
21
24
|
readonly maskImage: TiffImage | null;
|
|
22
|
-
constructor(geotiff: GeoTIFF, gkd: GeoKeyDirectory, image: TiffImage, maskImage: TiffImage | null, cachedTags: CachedTags);
|
|
25
|
+
constructor(geotiff: GeoTIFF, gkd: GeoKeyDirectory, image: TiffImage, maskImage: TiffImage | null, cachedTags: CachedTags, dataSource: Pick<Source, "fetch">);
|
|
26
|
+
/**
|
|
27
|
+
* The CRS parsed from the GeoKeyDirectory.
|
|
28
|
+
*
|
|
29
|
+
* Returns an EPSG code (number) for EPSG-coded CRSes, or a PROJJSON object
|
|
30
|
+
* for user-defined CRSes. The result is cached after the first access.
|
|
31
|
+
*
|
|
32
|
+
* See also {@link GeoTIFF.epsg} for the EPSG code directly from the TIFF tags.
|
|
33
|
+
*/
|
|
23
34
|
get crs(): number | ProjJson;
|
|
35
|
+
/** Image height in pixels. */
|
|
24
36
|
get height(): number;
|
|
37
|
+
/** The no data value, or null if not set. */
|
|
25
38
|
get nodata(): number | null;
|
|
39
|
+
/** The number of tiles in the x and y directions */
|
|
40
|
+
get tileCount(): TiffImageTileCount;
|
|
41
|
+
/** Tile height in pixels. */
|
|
26
42
|
get tileHeight(): number;
|
|
43
|
+
/** Tile width in pixels. */
|
|
27
44
|
get tileWidth(): number;
|
|
45
|
+
/**
|
|
46
|
+
* Return the dataset's georeferencing transformation matrix.
|
|
47
|
+
*/
|
|
28
48
|
get transform(): Affine;
|
|
49
|
+
/** Image width in pixels. */
|
|
29
50
|
get width(): number;
|
|
30
|
-
/** Fetch a single tile from the full-resolution image.
|
|
51
|
+
/** Fetch a single tile from the full-resolution image.
|
|
52
|
+
*
|
|
53
|
+
* @param x The tile column index (0-based).
|
|
54
|
+
* @param y The tile row index (0-based).
|
|
55
|
+
* @param options Optional parameters for fetching the tile.
|
|
56
|
+
* @param options.boundless Whether to clip tiles that are partially outside the image bounds. When `true`, no clipping is applied. Defaults to `true`.
|
|
57
|
+
* @param options.pool An optional {@link DecoderPool} for decoding the tile data. If not provided, a new decoder will be created for each tile.
|
|
58
|
+
* @param options.signal An optional {@link AbortSignal} to cancel the fetch request.
|
|
59
|
+
*/
|
|
31
60
|
fetchTile(x: number, y: number, options?: {
|
|
32
61
|
boundless?: boolean;
|
|
62
|
+
pool?: DecoderPool;
|
|
33
63
|
signal?: AbortSignal;
|
|
34
64
|
}): Promise<Tile>;
|
|
35
65
|
/**
|
package/dist/overview.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../src/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../src/overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC;IAE9B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAE1B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAG1C,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;IAUnC;;;;;;;OAOG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,QAAQ,CAE3B;IAED,8BAA8B;IAC9B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,6CAA6C;IAC7C,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAED,oDAAoD;IACpD,IAAI,SAAS,IAAI,kBAAkB,CAElC;IAED,6BAA6B;IAC7B,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,4BAA4B;IAC5B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAKtB;IAED,6BAA6B;IAC7B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;;;;;;;OAQG;IACG,SAAS,CACb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;KACjB,GACL,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;;OAQG;IACH,KAAK,CACH,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAmB,GACrC,CAAC,MAAM,EAAE,MAAM,CAAC;IAInB;;;;;;;OAOG;IACH,EAAE,CACA,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAe,GACtD,CAAC,MAAM,EAAE,MAAM,CAAC;CAGpB"}
|