whitebox-wasm 0.1.0 → 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/whitebox_wasm.js CHANGED
@@ -1,8 +1,1028 @@
1
1
  /* @ts-self-types="./whitebox_wasm.d.ts" */
2
2
 
3
3
  /**
4
- * Decode a GeoTIFF and return only its georeferencing/shape metadata as JSON:
5
- * `{"ok":true,"width":W,"height":H,"bands":B,"epsg":E|null,"nodata":V|null}`.
4
+ * Builder for encoding a Cloud Optimized GeoTIFF (tiled, with overviews and
5
+ * GDAL ghost metadata) to bytes. A COG is also a valid plain GeoTIFF.
6
+ *
7
+ * Configure with the `set_*` methods, then call one of `write_*` with the
8
+ * pixel data to get a `Uint8Array` of the encoded file.
9
+ */
10
+ export class CogBuilder {
11
+ __destroy_into_raw() {
12
+ const ptr = this.__wbg_ptr;
13
+ this.__wbg_ptr = 0;
14
+ CogBuilderFinalization.unregister(this);
15
+ return ptr;
16
+ }
17
+ free() {
18
+ const ptr = this.__destroy_into_raw();
19
+ wasm.__wbg_cogbuilder_free(ptr, 0);
20
+ }
21
+ /**
22
+ * New builder for a `width` x `height` raster with `bands` bands.
23
+ * @param {number} width
24
+ * @param {number} height
25
+ * @param {number} bands
26
+ */
27
+ constructor(width, height, bands) {
28
+ const ret = wasm.cogbuilder_new(width, height, bands);
29
+ this.__wbg_ptr = ret;
30
+ CogBuilderFinalization.register(this, this.__wbg_ptr, this);
31
+ return this;
32
+ }
33
+ /**
34
+ * Force BigTIFF (64-bit offsets) for very large outputs.
35
+ * @param {boolean} on
36
+ */
37
+ set_bigtiff(on) {
38
+ wasm.cogbuilder_set_bigtiff(this.__wbg_ptr, on);
39
+ }
40
+ /**
41
+ * Compression: `none`, `lzw`, `deflate`, `packbits`, `webp`, `jpeg`, `jpegxl`.
42
+ * @param {string} name
43
+ */
44
+ set_compression(name) {
45
+ try {
46
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
47
+ const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
48
+ const len0 = WASM_VECTOR_LEN;
49
+ wasm.cogbuilder_set_compression(retptr, this.__wbg_ptr, ptr0, len0);
50
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
51
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
52
+ if (r1) {
53
+ throw takeObject(r0);
54
+ }
55
+ } finally {
56
+ wasm.__wbindgen_add_to_stack_pointer(16);
57
+ }
58
+ }
59
+ /**
60
+ * Set the EPSG code (1..=65535).
61
+ * @param {number} epsg
62
+ */
63
+ set_epsg(epsg) {
64
+ wasm.cogbuilder_set_epsg(this.__wbg_ptr, epsg);
65
+ }
66
+ /**
67
+ * Set the full affine geo-transform:
68
+ * `[x_origin, pixel_width, row_rotation, y_origin, col_rotation, pixel_height]`.
69
+ * @param {Float64Array} gt
70
+ */
71
+ set_geo_transform(gt) {
72
+ try {
73
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
74
+ const ptr0 = passArrayF64ToWasm0(gt, wasm.__wbindgen_export2);
75
+ const len0 = WASM_VECTOR_LEN;
76
+ wasm.cogbuilder_set_geo_transform(retptr, this.__wbg_ptr, ptr0, len0);
77
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
78
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
79
+ if (r1) {
80
+ throw takeObject(r0);
81
+ }
82
+ } finally {
83
+ wasm.__wbindgen_add_to_stack_pointer(16);
84
+ }
85
+ }
86
+ /**
87
+ * Set the no-data sentinel value.
88
+ * @param {number} v
89
+ */
90
+ set_nodata(v) {
91
+ wasm.cogbuilder_set_nodata(this.__wbg_ptr, v);
92
+ }
93
+ /**
94
+ * Convenience: north-up geo-transform from upper-left origin and pixel size.
95
+ * @param {number} x_min
96
+ * @param {number} y_max
97
+ * @param {number} pixel_size
98
+ */
99
+ set_origin(x_min, y_max, pixel_size) {
100
+ wasm.cogbuilder_set_origin(this.__wbg_ptr, x_min, y_max, pixel_size);
101
+ }
102
+ /**
103
+ * Explicit overview decimation factors (e.g. `[2,4,8]`); empty disables overviews.
104
+ * @param {Uint32Array} levels
105
+ */
106
+ set_overview_levels(levels) {
107
+ const ptr0 = passArray32ToWasm0(levels, wasm.__wbindgen_export2);
108
+ const len0 = WASM_VECTOR_LEN;
109
+ wasm.cogbuilder_set_overview_levels(this.__wbg_ptr, ptr0, len0);
110
+ }
111
+ /**
112
+ * Internal tile size in pixels (default 512).
113
+ * @param {number} px
114
+ */
115
+ set_tile_size(px) {
116
+ wasm.cogbuilder_set_tile_size(this.__wbg_ptr, px);
117
+ }
118
+ /**
119
+ * Encode `f32` pixel data to a COG. `Uint8Array`.
120
+ * @param {Float32Array} data
121
+ * @returns {Uint8Array}
122
+ */
123
+ write_f32(data) {
124
+ try {
125
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
126
+ const ptr0 = passArrayF32ToWasm0(data, wasm.__wbindgen_export2);
127
+ const len0 = WASM_VECTOR_LEN;
128
+ wasm.cogbuilder_write_f32(retptr, this.__wbg_ptr, ptr0, len0);
129
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
130
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
131
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
132
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
133
+ if (r3) {
134
+ throw takeObject(r2);
135
+ }
136
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
137
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
138
+ return v2;
139
+ } finally {
140
+ wasm.__wbindgen_add_to_stack_pointer(16);
141
+ }
142
+ }
143
+ /**
144
+ * Encode `f64` pixel data to a COG. `Uint8Array`.
145
+ * @param {Float64Array} data
146
+ * @returns {Uint8Array}
147
+ */
148
+ write_f64(data) {
149
+ try {
150
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
151
+ const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_export2);
152
+ const len0 = WASM_VECTOR_LEN;
153
+ wasm.cogbuilder_write_f64(retptr, this.__wbg_ptr, ptr0, len0);
154
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
155
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
156
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
157
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
158
+ if (r3) {
159
+ throw takeObject(r2);
160
+ }
161
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
162
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
163
+ return v2;
164
+ } finally {
165
+ wasm.__wbindgen_add_to_stack_pointer(16);
166
+ }
167
+ }
168
+ /**
169
+ * Encode `u8` pixel data to a COG. `Uint8Array`.
170
+ * @param {Uint8Array} data
171
+ * @returns {Uint8Array}
172
+ */
173
+ write_u8(data) {
174
+ try {
175
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
176
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
177
+ const len0 = WASM_VECTOR_LEN;
178
+ wasm.cogbuilder_write_u8(retptr, this.__wbg_ptr, ptr0, len0);
179
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
180
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
181
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
182
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
183
+ if (r3) {
184
+ throw takeObject(r2);
185
+ }
186
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
187
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
188
+ return v2;
189
+ } finally {
190
+ wasm.__wbindgen_add_to_stack_pointer(16);
191
+ }
192
+ }
193
+ }
194
+ if (Symbol.dispose) CogBuilder.prototype[Symbol.dispose] = CogBuilder.prototype.free;
195
+
196
+ /**
197
+ * Range-request reader for a (tiled) Cloud Optimized GeoTIFF.
198
+ *
199
+ * The wasm module does no network I/O itself; this class parses the header and
200
+ * tells the JS host exactly which byte ranges to fetch, then decodes the tiles
201
+ * the host fetches. Typical flow:
202
+ *
203
+ * 1. Range-fetch the first chunk of the file (e.g. 0..1 MiB) and
204
+ * `new CogStream(headerBytes)`. If it throws "need more header bytes", fetch
205
+ * a larger prefix and retry.
206
+ * 2. Pick a level (0 = full res, higher = overviews) and a pixel window.
207
+ * 3. `tiles_for_window(level, x, y, w, h)` returns the tiles and their byte
208
+ * ranges; range-fetch each, then `decode_tile_f64(level, bytes)`.
209
+ */
210
+ export class CogStream {
211
+ __destroy_into_raw() {
212
+ const ptr = this.__wbg_ptr;
213
+ this.__wbg_ptr = 0;
214
+ CogStreamFinalization.unregister(this);
215
+ return ptr;
216
+ }
217
+ free() {
218
+ const ptr = this.__destroy_into_raw();
219
+ wasm.__wbg_cogstream_free(ptr, 0);
220
+ }
221
+ /**
222
+ * Bounding box `[min_x, min_y, max_x, max_y]` in the dataset CRS, or empty.
223
+ * @returns {Float64Array}
224
+ */
225
+ bounding_box() {
226
+ try {
227
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
228
+ wasm.cogstream_bounding_box(retptr, this.__wbg_ptr);
229
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
230
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
231
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
232
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
233
+ return v1;
234
+ } finally {
235
+ wasm.__wbindgen_add_to_stack_pointer(16);
236
+ }
237
+ }
238
+ /**
239
+ * Bounds `[min_lon, min_lat, max_lon, max_lat]` in WGS84 degrees, or empty.
240
+ * @returns {Float64Array}
241
+ */
242
+ bounds_lonlat() {
243
+ try {
244
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
245
+ wasm.cogstream_bounds_lonlat(retptr, this.__wbg_ptr);
246
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
247
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
248
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
249
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
250
+ return v1;
251
+ } finally {
252
+ wasm.__wbindgen_add_to_stack_pointer(16);
253
+ }
254
+ }
255
+ /**
256
+ * Image center `[x, y]` in the dataset CRS, or empty.
257
+ * @returns {Float64Array}
258
+ */
259
+ center() {
260
+ try {
261
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
262
+ wasm.cogstream_center(retptr, this.__wbg_ptr);
263
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
264
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
265
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
266
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
267
+ return v1;
268
+ } finally {
269
+ wasm.__wbindgen_add_to_stack_pointer(16);
270
+ }
271
+ }
272
+ /**
273
+ * Image center `[lon, lat]` in WGS84 degrees, or empty if not convertible.
274
+ * @returns {Float64Array}
275
+ */
276
+ center_lonlat() {
277
+ try {
278
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
279
+ wasm.cogstream_center_lonlat(retptr, this.__wbg_ptr);
280
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
281
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
282
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
283
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
284
+ return v1;
285
+ } finally {
286
+ wasm.__wbindgen_add_to_stack_pointer(16);
287
+ }
288
+ }
289
+ /**
290
+ * Decode one tile's fetched (compressed) bytes into an `f64` `Float64Array`,
291
+ * pixel-interleaved, length `tile_width * tile_height * bands`. Edge tiles
292
+ * come back full-size; clip to the image/window on the JS side.
293
+ * @param {number} level
294
+ * @param {Uint8Array} tile_bytes
295
+ * @returns {Float64Array}
296
+ */
297
+ decode_tile_f64(level, tile_bytes) {
298
+ try {
299
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
300
+ const ptr0 = passArray8ToWasm0(tile_bytes, wasm.__wbindgen_export2);
301
+ const len0 = WASM_VECTOR_LEN;
302
+ wasm.cogstream_decode_tile_f64(retptr, this.__wbg_ptr, level, ptr0, len0);
303
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
304
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
305
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
306
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
307
+ if (r3) {
308
+ throw takeObject(r2);
309
+ }
310
+ var v2 = getArrayF64FromWasm0(r0, r1).slice();
311
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
312
+ return v2;
313
+ } finally {
314
+ wasm.__wbindgen_add_to_stack_pointer(16);
315
+ }
316
+ }
317
+ /**
318
+ * EPSG code of the full-resolution level, if any.
319
+ * @returns {number | undefined}
320
+ */
321
+ get epsg() {
322
+ const ret = wasm.cogstream_epsg(this.__wbg_ptr);
323
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
324
+ }
325
+ /**
326
+ * Level-0 geo-transform `[x_origin, pixel_width, row_rot, y_origin, col_rot,
327
+ * pixel_height]`, or empty if not georeferenced.
328
+ * @returns {Float64Array}
329
+ */
330
+ geo_transform() {
331
+ try {
332
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
333
+ wasm.cogstream_geo_transform(retptr, this.__wbg_ptr);
334
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
335
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
336
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
337
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
338
+ return v1;
339
+ } finally {
340
+ wasm.__wbindgen_add_to_stack_pointer(16);
341
+ }
342
+ }
343
+ /**
344
+ * JSON array describing every level: `[{level,width,height,tile_width,
345
+ * tile_height,tiles_x,tiles_y,bands,bits_per_sample,sample_format,compression}]`.
346
+ * @returns {string}
347
+ */
348
+ levels_json() {
349
+ let deferred1_0;
350
+ let deferred1_1;
351
+ try {
352
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
353
+ wasm.cogstream_levels_json(retptr, this.__wbg_ptr);
354
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
355
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
356
+ deferred1_0 = r0;
357
+ deferred1_1 = r1;
358
+ return getStringFromWasm0(r0, r1);
359
+ } finally {
360
+ wasm.__wbindgen_add_to_stack_pointer(16);
361
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
362
+ }
363
+ }
364
+ /**
365
+ * Parse a COG's tile layout from front-of-file header bytes.
366
+ * @param {Uint8Array} header_bytes
367
+ */
368
+ constructor(header_bytes) {
369
+ try {
370
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
371
+ const ptr0 = passArray8ToWasm0(header_bytes, wasm.__wbindgen_export2);
372
+ const len0 = WASM_VECTOR_LEN;
373
+ wasm.cogstream_new(retptr, ptr0, len0);
374
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
375
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
376
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
377
+ if (r2) {
378
+ throw takeObject(r1);
379
+ }
380
+ this.__wbg_ptr = r0;
381
+ CogStreamFinalization.register(this, this.__wbg_ptr, this);
382
+ return this;
383
+ } finally {
384
+ wasm.__wbindgen_add_to_stack_pointer(16);
385
+ }
386
+ }
387
+ /**
388
+ * No-data sentinel, if declared.
389
+ * @returns {number | undefined}
390
+ */
391
+ get nodata() {
392
+ try {
393
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
394
+ wasm.cogstream_nodata(retptr, this.__wbg_ptr);
395
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
396
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
397
+ return r0 === 0 ? undefined : r2;
398
+ } finally {
399
+ wasm.__wbindgen_add_to_stack_pointer(16);
400
+ }
401
+ }
402
+ /**
403
+ * Number of resolution levels (1 + overview count).
404
+ * @returns {number}
405
+ */
406
+ get num_levels() {
407
+ const ret = wasm.cogstream_num_levels(this.__wbg_ptr);
408
+ return ret >>> 0;
409
+ }
410
+ /**
411
+ * `[offset, length]` byte range of the tile at `(col, row)` on `level`.
412
+ * @param {number} level
413
+ * @param {number} col
414
+ * @param {number} row
415
+ * @returns {Float64Array}
416
+ */
417
+ tile_range(level, col, row) {
418
+ try {
419
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
420
+ wasm.cogstream_tile_range(retptr, this.__wbg_ptr, level, col, row);
421
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
422
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
423
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
424
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
425
+ if (r3) {
426
+ throw takeObject(r2);
427
+ }
428
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
429
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
430
+ return v1;
431
+ } finally {
432
+ wasm.__wbindgen_add_to_stack_pointer(16);
433
+ }
434
+ }
435
+ /**
436
+ * Tiles covering a pixel window on `level`, as a JSON array of
437
+ * `{col,row,offset,length}`. Fetch each byte range, then `decode_tile_f64`.
438
+ * @param {number} level
439
+ * @param {number} x
440
+ * @param {number} y
441
+ * @param {number} w
442
+ * @param {number} h
443
+ * @returns {string}
444
+ */
445
+ tiles_for_window(level, x, y, w, h) {
446
+ let deferred2_0;
447
+ let deferred2_1;
448
+ try {
449
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
450
+ wasm.cogstream_tiles_for_window(retptr, this.__wbg_ptr, level, x, y, w, h);
451
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
452
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
453
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
454
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
455
+ var ptr1 = r0;
456
+ var len1 = r1;
457
+ if (r3) {
458
+ ptr1 = 0; len1 = 0;
459
+ throw takeObject(r2);
460
+ }
461
+ deferred2_0 = ptr1;
462
+ deferred2_1 = len1;
463
+ return getStringFromWasm0(ptr1, len1);
464
+ } finally {
465
+ wasm.__wbindgen_add_to_stack_pointer(16);
466
+ wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
467
+ }
468
+ }
469
+ }
470
+ if (Symbol.dispose) CogStream.prototype[Symbol.dispose] = CogStream.prototype.free;
471
+
472
+ /**
473
+ * A parsed GeoTIFF held in memory. Construct once, then call the accessor and
474
+ * `read_*` methods many times without re-parsing the file.
475
+ */
476
+ export class GeoTiffReader {
477
+ __destroy_into_raw() {
478
+ const ptr = this.__wbg_ptr;
479
+ this.__wbg_ptr = 0;
480
+ GeoTiffReaderFinalization.unregister(this);
481
+ return ptr;
482
+ }
483
+ free() {
484
+ const ptr = this.__destroy_into_raw();
485
+ wasm.__wbg_geotiffreader_free(ptr, 0);
486
+ }
487
+ /**
488
+ * @returns {number}
489
+ */
490
+ get bands() {
491
+ const ret = wasm.geotiffreader_bands(this.__wbg_ptr);
492
+ return ret >>> 0;
493
+ }
494
+ /**
495
+ * @returns {number}
496
+ */
497
+ get bits_per_sample() {
498
+ const ret = wasm.geotiffreader_bits_per_sample(this.__wbg_ptr);
499
+ return ret;
500
+ }
501
+ /**
502
+ * Bounding box as `[min_x, min_y, max_x, max_y]`, or empty if not georeferenced.
503
+ * @returns {Float64Array}
504
+ */
505
+ bounding_box() {
506
+ try {
507
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
508
+ wasm.geotiffreader_bounding_box(retptr, this.__wbg_ptr);
509
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
510
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
511
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
512
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
513
+ return v1;
514
+ } finally {
515
+ wasm.__wbindgen_add_to_stack_pointer(16);
516
+ }
517
+ }
518
+ /**
519
+ * Bounds `[min_lon, min_lat, max_lon, max_lat]` in WGS84 degrees, or empty
520
+ * if not convertible.
521
+ * @returns {Float64Array}
522
+ */
523
+ bounds_lonlat() {
524
+ try {
525
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
526
+ wasm.geotiffreader_bounds_lonlat(retptr, this.__wbg_ptr);
527
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
528
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
529
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
530
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
531
+ return v1;
532
+ } finally {
533
+ wasm.__wbindgen_add_to_stack_pointer(16);
534
+ }
535
+ }
536
+ /**
537
+ * Image center `[x, y]` in the dataset CRS, or empty if not georeferenced.
538
+ * @returns {Float64Array}
539
+ */
540
+ center() {
541
+ try {
542
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
543
+ wasm.geotiffreader_center(retptr, this.__wbg_ptr);
544
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
545
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
546
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
547
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
548
+ return v1;
549
+ } finally {
550
+ wasm.__wbindgen_add_to_stack_pointer(16);
551
+ }
552
+ }
553
+ /**
554
+ * Image center `[lon, lat]` in WGS84 degrees, or empty if not georeferenced
555
+ * or the CRS is not convertible.
556
+ * @returns {Float64Array}
557
+ */
558
+ center_lonlat() {
559
+ try {
560
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
561
+ wasm.geotiffreader_center_lonlat(retptr, this.__wbg_ptr);
562
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
563
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
564
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
565
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
566
+ return v1;
567
+ } finally {
568
+ wasm.__wbindgen_add_to_stack_pointer(16);
569
+ }
570
+ }
571
+ /**
572
+ * @returns {string}
573
+ */
574
+ get compression() {
575
+ let deferred1_0;
576
+ let deferred1_1;
577
+ try {
578
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
579
+ wasm.geotiffreader_compression(retptr, this.__wbg_ptr);
580
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
581
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
582
+ deferred1_0 = r0;
583
+ deferred1_1 = r1;
584
+ return getStringFromWasm0(r0, r1);
585
+ } finally {
586
+ wasm.__wbindgen_add_to_stack_pointer(16);
587
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
588
+ }
589
+ }
590
+ /**
591
+ * EPSG code, or `undefined` if the file is not georeferenced by EPSG.
592
+ * @returns {number | undefined}
593
+ */
594
+ get epsg() {
595
+ const ret = wasm.geotiffreader_epsg(this.__wbg_ptr);
596
+ return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
597
+ }
598
+ /**
599
+ * Affine geo-transform as `[x_origin, pixel_width, row_rotation,
600
+ * y_origin, col_rotation, pixel_height]`, or an empty array if absent.
601
+ * @returns {Float64Array}
602
+ */
603
+ geo_transform() {
604
+ try {
605
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
606
+ wasm.geotiffreader_geo_transform(retptr, this.__wbg_ptr);
607
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
608
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
609
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
610
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
611
+ return v1;
612
+ } finally {
613
+ wasm.__wbindgen_add_to_stack_pointer(16);
614
+ }
615
+ }
616
+ /**
617
+ * @returns {number}
618
+ */
619
+ get height() {
620
+ const ret = wasm.geotiffreader_height(this.__wbg_ptr);
621
+ return ret >>> 0;
622
+ }
623
+ /**
624
+ * Full metadata as a JSON string (same shape as [`geotiff_info`]).
625
+ * @returns {string}
626
+ */
627
+ info_json() {
628
+ let deferred1_0;
629
+ let deferred1_1;
630
+ try {
631
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
632
+ wasm.geotiffreader_info_json(retptr, this.__wbg_ptr);
633
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
634
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
635
+ deferred1_0 = r0;
636
+ deferred1_1 = r1;
637
+ return getStringFromWasm0(r0, r1);
638
+ } finally {
639
+ wasm.__wbindgen_add_to_stack_pointer(16);
640
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
641
+ }
642
+ }
643
+ /**
644
+ * @returns {boolean}
645
+ */
646
+ get is_bigtiff() {
647
+ const ret = wasm.geotiffreader_is_bigtiff(this.__wbg_ptr);
648
+ return ret !== 0;
649
+ }
650
+ /**
651
+ * Parse a GeoTIFF / BigTIFF / COG from raw bytes.
652
+ * @param {Uint8Array} data
653
+ */
654
+ constructor(data) {
655
+ try {
656
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
657
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
658
+ const len0 = WASM_VECTOR_LEN;
659
+ wasm.geotiffreader_new(retptr, ptr0, len0);
660
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
661
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
662
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
663
+ if (r2) {
664
+ throw takeObject(r1);
665
+ }
666
+ this.__wbg_ptr = r0;
667
+ GeoTiffReaderFinalization.register(this, this.__wbg_ptr, this);
668
+ return this;
669
+ } finally {
670
+ wasm.__wbindgen_add_to_stack_pointer(16);
671
+ }
672
+ }
673
+ /**
674
+ * No-data sentinel, or `undefined` if none is declared.
675
+ * @returns {number | undefined}
676
+ */
677
+ get nodata() {
678
+ try {
679
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
680
+ wasm.geotiffreader_nodata(retptr, this.__wbg_ptr);
681
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
682
+ var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
683
+ return r0 === 0 ? undefined : r2;
684
+ } finally {
685
+ wasm.__wbindgen_add_to_stack_pointer(16);
686
+ }
687
+ }
688
+ /**
689
+ * Read every band as `f64`, interleaved per pixel (`band0,band1,...`).
690
+ * @returns {Float64Array}
691
+ */
692
+ read_all_f64() {
693
+ try {
694
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
695
+ wasm.geotiffreader_read_all_f64(retptr, this.__wbg_ptr);
696
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
697
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
698
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
699
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
700
+ if (r3) {
701
+ throw takeObject(r2);
702
+ }
703
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
704
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
705
+ return v1;
706
+ } finally {
707
+ wasm.__wbindgen_add_to_stack_pointer(16);
708
+ }
709
+ }
710
+ /**
711
+ * Read a band's raw, undecoded-to-native bytes. `Uint8Array`.
712
+ * @param {number} band
713
+ * @returns {Uint8Array}
714
+ */
715
+ read_band_bytes(band) {
716
+ try {
717
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
718
+ wasm.geotiffreader_read_band_bytes(retptr, this.__wbg_ptr, band);
719
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
720
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
721
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
722
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
723
+ if (r3) {
724
+ throw takeObject(r2);
725
+ }
726
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
727
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
728
+ return v1;
729
+ } finally {
730
+ wasm.__wbindgen_add_to_stack_pointer(16);
731
+ }
732
+ }
733
+ /**
734
+ * Native `f32` band. `Float32Array`.
735
+ * @param {number} band
736
+ * @returns {Float32Array}
737
+ */
738
+ read_band_f32(band) {
739
+ try {
740
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
741
+ wasm.geotiffreader_read_band_f32(retptr, this.__wbg_ptr, band);
742
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
743
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
744
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
745
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
746
+ if (r3) {
747
+ throw takeObject(r2);
748
+ }
749
+ var v1 = getArrayF32FromWasm0(r0, r1).slice();
750
+ wasm.__wbindgen_export(r0, r1 * 4, 4);
751
+ return v1;
752
+ } finally {
753
+ wasm.__wbindgen_add_to_stack_pointer(16);
754
+ }
755
+ }
756
+ /**
757
+ * Read a band as `f64`, converting from any on-disk type. `Float64Array`.
758
+ * @param {number} band
759
+ * @returns {Float64Array}
760
+ */
761
+ read_band_f64(band) {
762
+ try {
763
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
764
+ wasm.geotiffreader_read_band_f64(retptr, this.__wbg_ptr, band);
765
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
766
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
767
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
768
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
769
+ if (r3) {
770
+ throw takeObject(r2);
771
+ }
772
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
773
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
774
+ return v1;
775
+ } finally {
776
+ wasm.__wbindgen_add_to_stack_pointer(16);
777
+ }
778
+ }
779
+ /**
780
+ * Native `i16` band. `Int16Array`.
781
+ * @param {number} band
782
+ * @returns {Int16Array}
783
+ */
784
+ read_band_i16(band) {
785
+ try {
786
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
787
+ wasm.geotiffreader_read_band_i16(retptr, this.__wbg_ptr, band);
788
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
789
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
790
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
791
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
792
+ if (r3) {
793
+ throw takeObject(r2);
794
+ }
795
+ var v1 = getArrayI16FromWasm0(r0, r1).slice();
796
+ wasm.__wbindgen_export(r0, r1 * 2, 2);
797
+ return v1;
798
+ } finally {
799
+ wasm.__wbindgen_add_to_stack_pointer(16);
800
+ }
801
+ }
802
+ /**
803
+ * Native `i32` band. `Int32Array`.
804
+ * @param {number} band
805
+ * @returns {Int32Array}
806
+ */
807
+ read_band_i32(band) {
808
+ try {
809
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
810
+ wasm.geotiffreader_read_band_i32(retptr, this.__wbg_ptr, band);
811
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
812
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
813
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
814
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
815
+ if (r3) {
816
+ throw takeObject(r2);
817
+ }
818
+ var v1 = getArrayI32FromWasm0(r0, r1).slice();
819
+ wasm.__wbindgen_export(r0, r1 * 4, 4);
820
+ return v1;
821
+ } finally {
822
+ wasm.__wbindgen_add_to_stack_pointer(16);
823
+ }
824
+ }
825
+ /**
826
+ * Native `i8` band. `Int8Array`.
827
+ * @param {number} band
828
+ * @returns {Int8Array}
829
+ */
830
+ read_band_i8(band) {
831
+ try {
832
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
833
+ wasm.geotiffreader_read_band_i8(retptr, this.__wbg_ptr, band);
834
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
835
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
836
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
837
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
838
+ if (r3) {
839
+ throw takeObject(r2);
840
+ }
841
+ var v1 = getArrayI8FromWasm0(r0, r1).slice();
842
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
843
+ return v1;
844
+ } finally {
845
+ wasm.__wbindgen_add_to_stack_pointer(16);
846
+ }
847
+ }
848
+ /**
849
+ * Native `u16` band. `Uint16Array`.
850
+ * @param {number} band
851
+ * @returns {Uint16Array}
852
+ */
853
+ read_band_u16(band) {
854
+ try {
855
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
856
+ wasm.geotiffreader_read_band_u16(retptr, this.__wbg_ptr, band);
857
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
858
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
859
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
860
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
861
+ if (r3) {
862
+ throw takeObject(r2);
863
+ }
864
+ var v1 = getArrayU16FromWasm0(r0, r1).slice();
865
+ wasm.__wbindgen_export(r0, r1 * 2, 2);
866
+ return v1;
867
+ } finally {
868
+ wasm.__wbindgen_add_to_stack_pointer(16);
869
+ }
870
+ }
871
+ /**
872
+ * Native `u32` band. `Uint32Array`.
873
+ * @param {number} band
874
+ * @returns {Uint32Array}
875
+ */
876
+ read_band_u32(band) {
877
+ try {
878
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
879
+ wasm.geotiffreader_read_band_u32(retptr, this.__wbg_ptr, band);
880
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
881
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
882
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
883
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
884
+ if (r3) {
885
+ throw takeObject(r2);
886
+ }
887
+ var v1 = getArrayU32FromWasm0(r0, r1).slice();
888
+ wasm.__wbindgen_export(r0, r1 * 4, 4);
889
+ return v1;
890
+ } finally {
891
+ wasm.__wbindgen_add_to_stack_pointer(16);
892
+ }
893
+ }
894
+ /**
895
+ * Native `u8` band. `Uint8Array`.
896
+ * @param {number} band
897
+ * @returns {Uint8Array}
898
+ */
899
+ read_band_u8(band) {
900
+ try {
901
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
902
+ wasm.geotiffreader_read_band_u8(retptr, this.__wbg_ptr, band);
903
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
904
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
905
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
906
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
907
+ if (r3) {
908
+ throw takeObject(r2);
909
+ }
910
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
911
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
912
+ return v1;
913
+ } finally {
914
+ wasm.__wbindgen_add_to_stack_pointer(16);
915
+ }
916
+ }
917
+ /**
918
+ * @returns {string}
919
+ */
920
+ get sample_format() {
921
+ let deferred1_0;
922
+ let deferred1_1;
923
+ try {
924
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
925
+ wasm.geotiffreader_sample_format(retptr, this.__wbg_ptr);
926
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
927
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
928
+ deferred1_0 = r0;
929
+ deferred1_1 = r1;
930
+ return getStringFromWasm0(r0, r1);
931
+ } finally {
932
+ wasm.__wbindgen_add_to_stack_pointer(16);
933
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
934
+ }
935
+ }
936
+ /**
937
+ * Band-0 statistics as a JSON string (same shape as [`geotiff_stats`]).
938
+ * @returns {string}
939
+ */
940
+ stats_json() {
941
+ let deferred1_0;
942
+ let deferred1_1;
943
+ try {
944
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
945
+ wasm.geotiffreader_stats_json(retptr, this.__wbg_ptr);
946
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
947
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
948
+ deferred1_0 = r0;
949
+ deferred1_1 = r1;
950
+ return getStringFromWasm0(r0, r1);
951
+ } finally {
952
+ wasm.__wbindgen_add_to_stack_pointer(16);
953
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
954
+ }
955
+ }
956
+ /**
957
+ * GDAL value transform as `[scale, offset]` (physical = raw*scale+offset),
958
+ * or empty if none. Apply to `read_*` outputs to get physical values.
959
+ * @returns {Float64Array}
960
+ */
961
+ value_transform() {
962
+ try {
963
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
964
+ wasm.geotiffreader_value_transform(retptr, this.__wbg_ptr);
965
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
966
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
967
+ var v1 = getArrayF64FromWasm0(r0, r1).slice();
968
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
969
+ return v1;
970
+ } finally {
971
+ wasm.__wbindgen_add_to_stack_pointer(16);
972
+ }
973
+ }
974
+ /**
975
+ * @returns {number}
976
+ */
977
+ get width() {
978
+ const ret = wasm.geotiffreader_width(this.__wbg_ptr);
979
+ return ret >>> 0;
980
+ }
981
+ }
982
+ if (Symbol.dispose) GeoTiffReader.prototype[Symbol.dispose] = GeoTiffReader.prototype.free;
983
+
984
+ /**
985
+ * Install a panic hook so Rust panics surface as readable `console.error`
986
+ * messages instead of an opaque `RuntimeError: unreachable`.
987
+ */
988
+ export function __start() {
989
+ wasm.__start();
990
+ }
991
+
992
+ /**
993
+ * Convex hull of a 2D point set. Input is `[x0,y0,x1,y1,...]`; output is the
994
+ * hull ring as `[x0,y0,...]` (closed). Needs at least 3 points.
995
+ * @param {Float64Array} points_xy
996
+ * @returns {Float64Array}
997
+ */
998
+ export function convex_hull(points_xy) {
999
+ try {
1000
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1001
+ const ptr0 = passArrayF64ToWasm0(points_xy, wasm.__wbindgen_export2);
1002
+ const len0 = WASM_VECTOR_LEN;
1003
+ wasm.convex_hull(retptr, ptr0, len0);
1004
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1005
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1006
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1007
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1008
+ if (r3) {
1009
+ throw takeObject(r2);
1010
+ }
1011
+ var v2 = getArrayF64FromWasm0(r0, r1).slice();
1012
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
1013
+ return v2;
1014
+ } finally {
1015
+ wasm.__wbindgen_add_to_stack_pointer(16);
1016
+ }
1017
+ }
1018
+
1019
+ /**
1020
+ * Decode only a GeoTIFF's header and return its metadata as JSON. O(header)
1021
+ * memory, so it works on multi-gigabyte rasters that whole-image reads cannot
1022
+ * fit in WASM's 4 GiB address space.
1023
+ *
1024
+ * `{"ok":true,"width","height","bands","epsg"|null,"nodata"|null,
1025
+ * "bits_per_sample","sample_format","compression","tiled","bigtiff"}`
6
1026
  * @param {Uint8Array} data
7
1027
  * @returns {string}
8
1028
  */
@@ -11,7 +1031,7 @@ export function geotiff_info(data) {
11
1031
  let deferred2_1;
12
1032
  try {
13
1033
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
14
- const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
1034
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
15
1035
  const len0 = WASM_VECTOR_LEN;
16
1036
  wasm.geotiff_info(retptr, ptr0, len0);
17
1037
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
@@ -21,19 +1041,41 @@ export function geotiff_info(data) {
21
1041
  return getStringFromWasm0(r0, r1);
22
1042
  } finally {
23
1043
  wasm.__wbindgen_add_to_stack_pointer(16);
24
- wasm.__wbindgen_export2(deferred2_0, deferred2_1, 1);
1044
+ wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
25
1045
  }
26
1046
  }
27
1047
 
28
1048
  /**
29
- * Decode a GeoTIFF from raw bytes and return summary statistics as a JSON string.
30
- *
31
- * The returned JSON has the shape:
32
- * `{"ok":true,"width":W,"height":H,"bands":B,"epsg":E|null,"valid":N,
33
- * "min":..,"max":..,"mean":..}` on success, or
34
- * `{"ok":false,"error":"..."}` on failure.
35
- *
36
- * Statistics are computed over band 0, skipping NaN and the nodata value.
1049
+ * Read a single band of pixel values as an `f64` `Float64Array` (any on-disk
1050
+ * sample format is converted), row-major, length `width * height`.
1051
+ * @param {Uint8Array} data
1052
+ * @param {number} band
1053
+ * @returns {Float64Array}
1054
+ */
1055
+ export function geotiff_read_band_f64(data, band) {
1056
+ try {
1057
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1058
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1059
+ const len0 = WASM_VECTOR_LEN;
1060
+ wasm.geotiff_read_band_f64(retptr, ptr0, len0, band);
1061
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1062
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1063
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1064
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1065
+ if (r3) {
1066
+ throw takeObject(r2);
1067
+ }
1068
+ var v2 = getArrayF64FromWasm0(r0, r1).slice();
1069
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
1070
+ return v2;
1071
+ } finally {
1072
+ wasm.__wbindgen_add_to_stack_pointer(16);
1073
+ }
1074
+ }
1075
+
1076
+ /**
1077
+ * Decode a GeoTIFF and return band-0 summary statistics as JSON:
1078
+ * `{"ok":true,"width","height","bands","epsg","valid","min","max","mean"}`.
37
1079
  * @param {Uint8Array} data
38
1080
  * @returns {string}
39
1081
  */
@@ -42,7 +1084,7 @@ export function geotiff_stats(data) {
42
1084
  let deferred2_1;
43
1085
  try {
44
1086
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
45
- const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
1087
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
46
1088
  const len0 = WASM_VECTOR_LEN;
47
1089
  wasm.geotiff_stats(retptr, ptr0, len0);
48
1090
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
@@ -52,7 +1094,333 @@ export function geotiff_stats(data) {
52
1094
  return getStringFromWasm0(r0, r1);
53
1095
  } finally {
54
1096
  wasm.__wbindgen_add_to_stack_pointer(16);
55
- wasm.__wbindgen_export2(deferred2_0, deferred2_1, 1);
1097
+ wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
1098
+ }
1099
+ }
1100
+
1101
+ /**
1102
+ * LiDAR formats this build can read from memory.
1103
+ * @returns {string}
1104
+ */
1105
+ export function lidar_formats() {
1106
+ let deferred1_0;
1107
+ let deferred1_1;
1108
+ try {
1109
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1110
+ wasm.lidar_formats(retptr);
1111
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1112
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1113
+ deferred1_0 = r0;
1114
+ deferred1_1 = r1;
1115
+ return getStringFromWasm0(r0, r1);
1116
+ } finally {
1117
+ wasm.__wbindgen_add_to_stack_pointer(16);
1118
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
1119
+ }
1120
+ }
1121
+
1122
+ /**
1123
+ * Read a LiDAR file's metadata as JSON without loading all points where
1124
+ * possible (LAS/LAZ report count and bounds from the header):
1125
+ * `{"ok":true,"format","points","epsg"|null,"point_format"|null,
1126
+ * "bounds":[min_x,min_y,min_z,max_x,max_y,max_z]|null}`.
1127
+ * @param {Uint8Array} data
1128
+ * @param {string} format
1129
+ * @returns {string}
1130
+ */
1131
+ export function lidar_info(data, format) {
1132
+ let deferred4_0;
1133
+ let deferred4_1;
1134
+ try {
1135
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1136
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1137
+ const len0 = WASM_VECTOR_LEN;
1138
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1139
+ const len1 = WASM_VECTOR_LEN;
1140
+ wasm.lidar_info(retptr, ptr0, len0, ptr1, len1);
1141
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1142
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1143
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1144
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1145
+ var ptr3 = r0;
1146
+ var len3 = r1;
1147
+ if (r3) {
1148
+ ptr3 = 0; len3 = 0;
1149
+ throw takeObject(r2);
1150
+ }
1151
+ deferred4_0 = ptr3;
1152
+ deferred4_1 = len3;
1153
+ return getStringFromWasm0(ptr3, len3);
1154
+ } finally {
1155
+ wasm.__wbindgen_add_to_stack_pointer(16);
1156
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
1157
+ }
1158
+ }
1159
+
1160
+ /**
1161
+ * Read per-point classification codes as a `Uint8Array` (length `point_count`).
1162
+ * @param {Uint8Array} data
1163
+ * @param {string} format
1164
+ * @returns {Uint8Array}
1165
+ */
1166
+ export function lidar_read_classification(data, format) {
1167
+ try {
1168
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1169
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1170
+ const len0 = WASM_VECTOR_LEN;
1171
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1172
+ const len1 = WASM_VECTOR_LEN;
1173
+ wasm.lidar_read_classification(retptr, ptr0, len0, ptr1, len1);
1174
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1175
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1176
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1177
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1178
+ if (r3) {
1179
+ throw takeObject(r2);
1180
+ }
1181
+ var v3 = getArrayU8FromWasm0(r0, r1).slice();
1182
+ wasm.__wbindgen_export(r0, r1 * 1, 1);
1183
+ return v3;
1184
+ } finally {
1185
+ wasm.__wbindgen_add_to_stack_pointer(16);
1186
+ }
1187
+ }
1188
+
1189
+ /**
1190
+ * Read per-point intensity as a `Uint16Array` (length `point_count`).
1191
+ * @param {Uint8Array} data
1192
+ * @param {string} format
1193
+ * @returns {Uint16Array}
1194
+ */
1195
+ export function lidar_read_intensity(data, format) {
1196
+ try {
1197
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1198
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1199
+ const len0 = WASM_VECTOR_LEN;
1200
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1201
+ const len1 = WASM_VECTOR_LEN;
1202
+ wasm.lidar_read_intensity(retptr, ptr0, len0, ptr1, len1);
1203
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1204
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1205
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1206
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1207
+ if (r3) {
1208
+ throw takeObject(r2);
1209
+ }
1210
+ var v3 = getArrayU16FromWasm0(r0, r1).slice();
1211
+ wasm.__wbindgen_export(r0, r1 * 2, 2);
1212
+ return v3;
1213
+ } finally {
1214
+ wasm.__wbindgen_add_to_stack_pointer(16);
1215
+ }
1216
+ }
1217
+
1218
+ /**
1219
+ * Read all point coordinates as an interleaved `Float64Array`
1220
+ * `[x0,y0,z0, x1,y1,z1, ...]` (length `3 * point_count`).
1221
+ *
1222
+ * Guarded against 32-bit memory blowup; very large clouds return a clean error
1223
+ * (read the header with `lidar_info`, or downsample on your side).
1224
+ * @param {Uint8Array} data
1225
+ * @param {string} format
1226
+ * @returns {Float64Array}
1227
+ */
1228
+ export function lidar_read_xyz(data, format) {
1229
+ try {
1230
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1231
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1232
+ const len0 = WASM_VECTOR_LEN;
1233
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1234
+ const len1 = WASM_VECTOR_LEN;
1235
+ wasm.lidar_read_xyz(retptr, ptr0, len0, ptr1, len1);
1236
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1237
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1238
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1239
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1240
+ if (r3) {
1241
+ throw takeObject(r2);
1242
+ }
1243
+ var v3 = getArrayF64FromWasm0(r0, r1).slice();
1244
+ wasm.__wbindgen_export(r0, r1 * 8, 8);
1245
+ return v3;
1246
+ } finally {
1247
+ wasm.__wbindgen_add_to_stack_pointer(16);
1248
+ }
1249
+ }
1250
+
1251
+ /**
1252
+ * Global Moran's I spatial autocorrelation for point data, using a binary
1253
+ * distance-band spatial weights matrix (neighbors within `distance_threshold`).
1254
+ *
1255
+ * `points_xy` is `[x0,y0,...]`, `values` is one value per point. Returns JSON:
1256
+ * `{"ok":true,"morans_i","expected","variance","z_score","p_value","n"}`.
1257
+ *
1258
+ * Builds neighbors in O(n^2); intended for up to a few thousand points.
1259
+ * @param {Float64Array} points_xy
1260
+ * @param {Float64Array} values
1261
+ * @param {number} distance_threshold
1262
+ * @returns {string}
1263
+ */
1264
+ export function morans_i(points_xy, values, distance_threshold) {
1265
+ let deferred4_0;
1266
+ let deferred4_1;
1267
+ try {
1268
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1269
+ const ptr0 = passArrayF64ToWasm0(points_xy, wasm.__wbindgen_export2);
1270
+ const len0 = WASM_VECTOR_LEN;
1271
+ const ptr1 = passArrayF64ToWasm0(values, wasm.__wbindgen_export2);
1272
+ const len1 = WASM_VECTOR_LEN;
1273
+ wasm.morans_i(retptr, ptr0, len0, ptr1, len1, distance_threshold);
1274
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1275
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1276
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1277
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1278
+ var ptr3 = r0;
1279
+ var len3 = r1;
1280
+ if (r3) {
1281
+ ptr3 = 0; len3 = 0;
1282
+ throw takeObject(r2);
1283
+ }
1284
+ deferred4_0 = ptr3;
1285
+ deferred4_1 = len3;
1286
+ return getStringFromWasm0(ptr3, len3);
1287
+ } finally {
1288
+ wasm.__wbindgen_add_to_stack_pointer(16);
1289
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
1290
+ }
1291
+ }
1292
+
1293
+ /**
1294
+ * Vector formats this build can read from memory (comma-separated).
1295
+ * @returns {string}
1296
+ */
1297
+ export function vector_formats() {
1298
+ let deferred1_0;
1299
+ let deferred1_1;
1300
+ try {
1301
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1302
+ wasm.vector_formats(retptr);
1303
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1304
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1305
+ deferred1_0 = r0;
1306
+ deferred1_1 = r1;
1307
+ return getStringFromWasm0(r0, r1);
1308
+ } finally {
1309
+ wasm.__wbindgen_add_to_stack_pointer(16);
1310
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
1311
+ }
1312
+ }
1313
+
1314
+ /**
1315
+ * Read a vector dataset and return metadata as JSON:
1316
+ * `{"ok":true,"name","features","geometry","epsg"|null,"fields":[...],
1317
+ * "bbox":[min_x,min_y,max_x,max_y]|null}`.
1318
+ * @param {Uint8Array} data
1319
+ * @param {string} format
1320
+ * @returns {string}
1321
+ */
1322
+ export function vector_info(data, format) {
1323
+ let deferred4_0;
1324
+ let deferred4_1;
1325
+ try {
1326
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1327
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1328
+ const len0 = WASM_VECTOR_LEN;
1329
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1330
+ const len1 = WASM_VECTOR_LEN;
1331
+ wasm.vector_info(retptr, ptr0, len0, ptr1, len1);
1332
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1333
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1334
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1335
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1336
+ var ptr3 = r0;
1337
+ var len3 = r1;
1338
+ if (r3) {
1339
+ ptr3 = 0; len3 = 0;
1340
+ throw takeObject(r2);
1341
+ }
1342
+ deferred4_0 = ptr3;
1343
+ deferred4_1 = len3;
1344
+ return getStringFromWasm0(ptr3, len3);
1345
+ } finally {
1346
+ wasm.__wbindgen_add_to_stack_pointer(16);
1347
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
1348
+ }
1349
+ }
1350
+
1351
+ /**
1352
+ * Read a vector dataset and return it as a GeoJSON `FeatureCollection` string.
1353
+ * @param {Uint8Array} data
1354
+ * @param {string} format
1355
+ * @returns {string}
1356
+ */
1357
+ export function vector_to_geojson(data, format) {
1358
+ let deferred4_0;
1359
+ let deferred4_1;
1360
+ try {
1361
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1362
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1363
+ const len0 = WASM_VECTOR_LEN;
1364
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1365
+ const len1 = WASM_VECTOR_LEN;
1366
+ wasm.vector_to_geojson(retptr, ptr0, len0, ptr1, len1);
1367
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1368
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1369
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1370
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1371
+ var ptr3 = r0;
1372
+ var len3 = r1;
1373
+ if (r3) {
1374
+ ptr3 = 0; len3 = 0;
1375
+ throw takeObject(r2);
1376
+ }
1377
+ deferred4_0 = ptr3;
1378
+ deferred4_1 = len3;
1379
+ return getStringFromWasm0(ptr3, len3);
1380
+ } finally {
1381
+ wasm.__wbindgen_add_to_stack_pointer(16);
1382
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
1383
+ }
1384
+ }
1385
+
1386
+ /**
1387
+ * Read a vector dataset, reproject it to `dst_epsg`, and return GeoJSON.
1388
+ * Uses the bundled pure-Rust projection engine (full EPSG support).
1389
+ *
1390
+ * `src_epsg` overrides the source CRS: pass `0` to use the layer's own CRS, or
1391
+ * fall back to EPSG:4326 if it declares none (GeoJSON is WGS84 by RFC 7946).
1392
+ * @param {Uint8Array} data
1393
+ * @param {string} format
1394
+ * @param {number} dst_epsg
1395
+ * @param {number} src_epsg
1396
+ * @returns {string}
1397
+ */
1398
+ export function vector_to_geojson_reproject(data, format, dst_epsg, src_epsg) {
1399
+ let deferred4_0;
1400
+ let deferred4_1;
1401
+ try {
1402
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1403
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
1404
+ const len0 = WASM_VECTOR_LEN;
1405
+ const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1406
+ const len1 = WASM_VECTOR_LEN;
1407
+ wasm.vector_to_geojson_reproject(retptr, ptr0, len0, ptr1, len1, dst_epsg, src_epsg);
1408
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1409
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1410
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
1411
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
1412
+ var ptr3 = r0;
1413
+ var len3 = r1;
1414
+ if (r3) {
1415
+ ptr3 = 0; len3 = 0;
1416
+ throw takeObject(r2);
1417
+ }
1418
+ deferred4_0 = ptr3;
1419
+ deferred4_1 = len3;
1420
+ return getStringFromWasm0(ptr3, len3);
1421
+ } finally {
1422
+ wasm.__wbindgen_add_to_stack_pointer(16);
1423
+ wasm.__wbindgen_export(deferred4_0, deferred4_1, 1);
56
1424
  }
57
1425
  }
58
1426
 
@@ -73,12 +1441,45 @@ export function version() {
73
1441
  return getStringFromWasm0(r0, r1);
74
1442
  } finally {
75
1443
  wasm.__wbindgen_add_to_stack_pointer(16);
76
- wasm.__wbindgen_export2(deferred1_0, deferred1_1, 1);
1444
+ wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
77
1445
  }
78
1446
  }
79
1447
  function __wbg_get_imports() {
80
1448
  const import0 = {
81
1449
  __proto__: null,
1450
+ __wbg___wbindgen_throw_ea4887a5f8f9a9db: function(arg0, arg1) {
1451
+ throw new Error(getStringFromWasm0(arg0, arg1));
1452
+ },
1453
+ __wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {
1454
+ let deferred0_0;
1455
+ let deferred0_1;
1456
+ try {
1457
+ deferred0_0 = arg0;
1458
+ deferred0_1 = arg1;
1459
+ console.error(getStringFromWasm0(arg0, arg1));
1460
+ } finally {
1461
+ wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
1462
+ }
1463
+ },
1464
+ __wbg_new_227d7c05414eb861: function() {
1465
+ const ret = new Error();
1466
+ return addHeapObject(ret);
1467
+ },
1468
+ __wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {
1469
+ const ret = getObject(arg1).stack;
1470
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
1471
+ const len1 = WASM_VECTOR_LEN;
1472
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1473
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1474
+ },
1475
+ __wbindgen_cast_0000000000000001: function(arg0, arg1) {
1476
+ // Cast intrinsic for `Ref(String) -> Externref`.
1477
+ const ret = getStringFromWasm0(arg0, arg1);
1478
+ return addHeapObject(ret);
1479
+ },
1480
+ __wbindgen_object_drop_ref: function(arg0) {
1481
+ takeObject(arg0);
1482
+ },
82
1483
  };
83
1484
  return {
84
1485
  __proto__: null,
@@ -86,6 +1487,71 @@ function __wbg_get_imports() {
86
1487
  };
87
1488
  }
88
1489
 
1490
+ const CogBuilderFinalization = (typeof FinalizationRegistry === 'undefined')
1491
+ ? { register: () => {}, unregister: () => {} }
1492
+ : new FinalizationRegistry(ptr => wasm.__wbg_cogbuilder_free(ptr, 1));
1493
+ const CogStreamFinalization = (typeof FinalizationRegistry === 'undefined')
1494
+ ? { register: () => {}, unregister: () => {} }
1495
+ : new FinalizationRegistry(ptr => wasm.__wbg_cogstream_free(ptr, 1));
1496
+ const GeoTiffReaderFinalization = (typeof FinalizationRegistry === 'undefined')
1497
+ ? { register: () => {}, unregister: () => {} }
1498
+ : new FinalizationRegistry(ptr => wasm.__wbg_geotiffreader_free(ptr, 1));
1499
+
1500
+ function addHeapObject(obj) {
1501
+ if (heap_next === heap.length) heap.push(heap.length + 1);
1502
+ const idx = heap_next;
1503
+ heap_next = heap[idx];
1504
+
1505
+ heap[idx] = obj;
1506
+ return idx;
1507
+ }
1508
+
1509
+ function dropObject(idx) {
1510
+ if (idx < 1028) return;
1511
+ heap[idx] = heap_next;
1512
+ heap_next = idx;
1513
+ }
1514
+
1515
+ function getArrayF32FromWasm0(ptr, len) {
1516
+ ptr = ptr >>> 0;
1517
+ return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
1518
+ }
1519
+
1520
+ function getArrayF64FromWasm0(ptr, len) {
1521
+ ptr = ptr >>> 0;
1522
+ return getFloat64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
1523
+ }
1524
+
1525
+ function getArrayI16FromWasm0(ptr, len) {
1526
+ ptr = ptr >>> 0;
1527
+ return getInt16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
1528
+ }
1529
+
1530
+ function getArrayI32FromWasm0(ptr, len) {
1531
+ ptr = ptr >>> 0;
1532
+ return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
1533
+ }
1534
+
1535
+ function getArrayI8FromWasm0(ptr, len) {
1536
+ ptr = ptr >>> 0;
1537
+ return getInt8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
1538
+ }
1539
+
1540
+ function getArrayU16FromWasm0(ptr, len) {
1541
+ ptr = ptr >>> 0;
1542
+ return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
1543
+ }
1544
+
1545
+ function getArrayU32FromWasm0(ptr, len) {
1546
+ ptr = ptr >>> 0;
1547
+ return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
1548
+ }
1549
+
1550
+ function getArrayU8FromWasm0(ptr, len) {
1551
+ ptr = ptr >>> 0;
1552
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
1553
+ }
1554
+
89
1555
  let cachedDataViewMemory0 = null;
90
1556
  function getDataViewMemory0() {
91
1557
  if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
@@ -94,10 +1560,66 @@ function getDataViewMemory0() {
94
1560
  return cachedDataViewMemory0;
95
1561
  }
96
1562
 
1563
+ let cachedFloat32ArrayMemory0 = null;
1564
+ function getFloat32ArrayMemory0() {
1565
+ if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
1566
+ cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
1567
+ }
1568
+ return cachedFloat32ArrayMemory0;
1569
+ }
1570
+
1571
+ let cachedFloat64ArrayMemory0 = null;
1572
+ function getFloat64ArrayMemory0() {
1573
+ if (cachedFloat64ArrayMemory0 === null || cachedFloat64ArrayMemory0.byteLength === 0) {
1574
+ cachedFloat64ArrayMemory0 = new Float64Array(wasm.memory.buffer);
1575
+ }
1576
+ return cachedFloat64ArrayMemory0;
1577
+ }
1578
+
1579
+ let cachedInt16ArrayMemory0 = null;
1580
+ function getInt16ArrayMemory0() {
1581
+ if (cachedInt16ArrayMemory0 === null || cachedInt16ArrayMemory0.byteLength === 0) {
1582
+ cachedInt16ArrayMemory0 = new Int16Array(wasm.memory.buffer);
1583
+ }
1584
+ return cachedInt16ArrayMemory0;
1585
+ }
1586
+
1587
+ let cachedInt32ArrayMemory0 = null;
1588
+ function getInt32ArrayMemory0() {
1589
+ if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {
1590
+ cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);
1591
+ }
1592
+ return cachedInt32ArrayMemory0;
1593
+ }
1594
+
1595
+ let cachedInt8ArrayMemory0 = null;
1596
+ function getInt8ArrayMemory0() {
1597
+ if (cachedInt8ArrayMemory0 === null || cachedInt8ArrayMemory0.byteLength === 0) {
1598
+ cachedInt8ArrayMemory0 = new Int8Array(wasm.memory.buffer);
1599
+ }
1600
+ return cachedInt8ArrayMemory0;
1601
+ }
1602
+
97
1603
  function getStringFromWasm0(ptr, len) {
98
1604
  return decodeText(ptr >>> 0, len);
99
1605
  }
100
1606
 
1607
+ let cachedUint16ArrayMemory0 = null;
1608
+ function getUint16ArrayMemory0() {
1609
+ if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {
1610
+ cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);
1611
+ }
1612
+ return cachedUint16ArrayMemory0;
1613
+ }
1614
+
1615
+ let cachedUint32ArrayMemory0 = null;
1616
+ function getUint32ArrayMemory0() {
1617
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
1618
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
1619
+ }
1620
+ return cachedUint32ArrayMemory0;
1621
+ }
1622
+
101
1623
  let cachedUint8ArrayMemory0 = null;
102
1624
  function getUint8ArrayMemory0() {
103
1625
  if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
@@ -106,6 +1628,20 @@ function getUint8ArrayMemory0() {
106
1628
  return cachedUint8ArrayMemory0;
107
1629
  }
108
1630
 
1631
+ function getObject(idx) { return heap[idx]; }
1632
+
1633
+ let heap = new Array(1024).fill(undefined);
1634
+ heap.push(undefined, null, true, false);
1635
+
1636
+ let heap_next = heap.length;
1637
+
1638
+ function passArray32ToWasm0(arg, malloc) {
1639
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
1640
+ getUint32ArrayMemory0().set(arg, ptr / 4);
1641
+ WASM_VECTOR_LEN = arg.length;
1642
+ return ptr;
1643
+ }
1644
+
109
1645
  function passArray8ToWasm0(arg, malloc) {
110
1646
  const ptr = malloc(arg.length * 1, 1) >>> 0;
111
1647
  getUint8ArrayMemory0().set(arg, ptr / 1);
@@ -113,6 +1649,63 @@ function passArray8ToWasm0(arg, malloc) {
113
1649
  return ptr;
114
1650
  }
115
1651
 
1652
+ function passArrayF32ToWasm0(arg, malloc) {
1653
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
1654
+ getFloat32ArrayMemory0().set(arg, ptr / 4);
1655
+ WASM_VECTOR_LEN = arg.length;
1656
+ return ptr;
1657
+ }
1658
+
1659
+ function passArrayF64ToWasm0(arg, malloc) {
1660
+ const ptr = malloc(arg.length * 8, 8) >>> 0;
1661
+ getFloat64ArrayMemory0().set(arg, ptr / 8);
1662
+ WASM_VECTOR_LEN = arg.length;
1663
+ return ptr;
1664
+ }
1665
+
1666
+ function passStringToWasm0(arg, malloc, realloc) {
1667
+ if (realloc === undefined) {
1668
+ const buf = cachedTextEncoder.encode(arg);
1669
+ const ptr = malloc(buf.length, 1) >>> 0;
1670
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
1671
+ WASM_VECTOR_LEN = buf.length;
1672
+ return ptr;
1673
+ }
1674
+
1675
+ let len = arg.length;
1676
+ let ptr = malloc(len, 1) >>> 0;
1677
+
1678
+ const mem = getUint8ArrayMemory0();
1679
+
1680
+ let offset = 0;
1681
+
1682
+ for (; offset < len; offset++) {
1683
+ const code = arg.charCodeAt(offset);
1684
+ if (code > 0x7F) break;
1685
+ mem[ptr + offset] = code;
1686
+ }
1687
+ if (offset !== len) {
1688
+ if (offset !== 0) {
1689
+ arg = arg.slice(offset);
1690
+ }
1691
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
1692
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
1693
+ const ret = cachedTextEncoder.encodeInto(arg, view);
1694
+
1695
+ offset += ret.written;
1696
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
1697
+ }
1698
+
1699
+ WASM_VECTOR_LEN = offset;
1700
+ return ptr;
1701
+ }
1702
+
1703
+ function takeObject(idx) {
1704
+ const ret = getObject(idx);
1705
+ dropObject(idx);
1706
+ return ret;
1707
+ }
1708
+
116
1709
  let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
117
1710
  cachedTextDecoder.decode();
118
1711
  const MAX_SAFARI_DECODE_BYTES = 2146435072;
@@ -127,6 +1720,19 @@ function decodeText(ptr, len) {
127
1720
  return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
128
1721
  }
129
1722
 
1723
+ const cachedTextEncoder = new TextEncoder();
1724
+
1725
+ if (!('encodeInto' in cachedTextEncoder)) {
1726
+ cachedTextEncoder.encodeInto = function (arg, view) {
1727
+ const buf = cachedTextEncoder.encode(arg);
1728
+ view.set(buf);
1729
+ return {
1730
+ read: arg.length,
1731
+ written: buf.length
1732
+ };
1733
+ };
1734
+ }
1735
+
130
1736
  let WASM_VECTOR_LEN = 0;
131
1737
 
132
1738
  let wasmModule, wasmInstance, wasm;
@@ -135,7 +1741,15 @@ function __wbg_finalize_init(instance, module) {
135
1741
  wasm = instance.exports;
136
1742
  wasmModule = module;
137
1743
  cachedDataViewMemory0 = null;
1744
+ cachedFloat32ArrayMemory0 = null;
1745
+ cachedFloat64ArrayMemory0 = null;
1746
+ cachedInt16ArrayMemory0 = null;
1747
+ cachedInt32ArrayMemory0 = null;
1748
+ cachedInt8ArrayMemory0 = null;
1749
+ cachedUint16ArrayMemory0 = null;
1750
+ cachedUint32ArrayMemory0 = null;
138
1751
  cachedUint8ArrayMemory0 = null;
1752
+ wasm.__wbindgen_start();
139
1753
  return wasm;
140
1754
  }
141
1755