@cogeotiff/core 8.0.2 → 8.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build/__benchmark__/cog.read.benchmark.js +4 -0
  3. package/build/__benchmark__/cog.read.benchmark.js.map +1 -1
  4. package/build/__benchmark__/source.file.js +9 -2
  5. package/build/__benchmark__/source.file.js.map +1 -1
  6. package/build/__test__/cog.read.test.js +41 -1
  7. package/build/__test__/cog.read.test.js.map +1 -1
  8. package/build/cog.tiff.image.d.ts +36 -8
  9. package/build/cog.tiff.image.js +53 -19
  10. package/build/cog.tiff.image.js.map +1 -1
  11. package/build/cog.tiff.js +11 -1
  12. package/build/cog.tiff.js.map +1 -1
  13. package/build/const/tiff.endian.d.ts +2 -1
  14. package/build/const/tiff.endian.js +2 -1
  15. package/build/const/tiff.endian.js.map +1 -1
  16. package/build/index.d.ts +2 -1
  17. package/build/index.js +1 -0
  18. package/build/index.js.map +1 -1
  19. package/build/read/tiff.gdal.d.ts +4 -4
  20. package/build/read/tiff.gdal.js +4 -4
  21. package/build/read/tiff.tag.d.ts +3 -3
  22. package/build/read/tiff.tag.factory.d.ts +7 -1
  23. package/build/read/tiff.tag.factory.js +21 -2
  24. package/build/read/tiff.tag.factory.js.map +1 -1
  25. package/build/source.d.ts +12 -0
  26. package/package.json +2 -2
  27. package/src/__benchmark__/cog.read.benchmark.ts +5 -0
  28. package/src/__benchmark__/source.file.ts +9 -2
  29. package/src/__test__/cog.read.test.ts +51 -1
  30. package/src/cog.tiff.image.ts +51 -22
  31. package/src/cog.tiff.ts +14 -1
  32. package/src/const/tiff.endian.ts +2 -1
  33. package/src/index.ts +2 -1
  34. package/src/read/tiff.gdal.ts +4 -4
  35. package/src/read/tiff.tag.factory.ts +26 -5
  36. package/src/read/tiff.tag.ts +3 -3
  37. package/src/source.ts +15 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [8.1.1](https://github.com/blacha/cogeotiff/compare/core-v8.1.0...core-v8.1.1) (2023-11-14)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **core:** correct loading of sub array geotags ([#1214](https://github.com/blacha/cogeotiff/issues/1214)) ([a67ec0a](https://github.com/blacha/cogeotiff/commit/a67ec0a0ca77313fdfb298ea72c532f496562d68))
9
+ * **core:** expose CogTiffImage ([aca2c58](https://github.com/blacha/cogeotiff/commit/aca2c58f2c6ad0ccf95310eedd7402d50b9e77bd))
10
+
11
+ ## [8.1.0](https://github.com/blacha/cogeotiff/compare/core-v8.0.2...core-v8.1.0) (2023-08-23)
12
+
13
+
14
+ ### Features
15
+
16
+ * **cli:** fetch all tiff tags with --fetch-tags ([#1155](https://github.com/blacha/cogeotiff/issues/1155)) ([4067751](https://github.com/blacha/cogeotiff/commit/406775184eed18ab10ae2816ecbedea9706b20f5))
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * **core:** do not read past the end of a file ([#1152](https://github.com/blacha/cogeotiff/issues/1152)) ([fd0be56](https://github.com/blacha/cogeotiff/commit/fd0be56eee6944239502cd8ffd7a6fe89e76b984))
22
+
3
23
  ## [8.0.2](https://github.com/blacha/cogeotiff/compare/core-v8.0.1...core-v8.0.2) (2023-08-05)
4
24
 
5
25
 
@@ -1,6 +1,7 @@
1
1
  import { readFile } from 'fs/promises';
2
2
  import { CogTiff } from '../cog.tiff.js';
3
3
  import { SourceMemory } from './source.memory.js';
4
+ import { TiffTag } from '../index.js';
4
5
  // console.log = console.trace;
5
6
  /** Read a tile from every image inside of a tiff 300 tiles read */
6
7
  async function main() {
@@ -14,6 +15,9 @@ async function main() {
14
15
  // 6 images
15
16
  for (const img of tiff.images)
16
17
  await img.getTile(0, 0);
18
+ // Force loading all the byte arrays in which benchmarks the bulk array loading
19
+ await tiff.images[0].fetch(TiffTag.TileByteCounts);
20
+ await tiff.images[0].fetch(TiffTag.TileOffsets);
17
21
  }
18
22
  }
19
23
  main();
@@ -1 +1 @@
1
- {"version":3,"file":"cog.read.benchmark.js","sourceRoot":"","sources":["../../src/__benchmark__/cog.read.benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,+BAA+B;AAC/B,mEAAmE;AACnE,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAElC,WAAW;QACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACxD;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cog.read.benchmark.js","sourceRoot":"","sources":["../../src/__benchmark__/cog.read.benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,+BAA+B;AAC/B,mEAAmE;AACnE,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAK,EAAE,CAAC,EAAE,EAAE;QAC9B,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAElC,WAAW;QACX,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvD,+EAA+E;QAC/E,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KACjD;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -1,4 +1,7 @@
1
- import { readFile, stat } from 'fs/promises';
1
+ import { readFile, stat } from 'node:fs/promises';
2
+ import { gunzip } from 'node:zlib';
3
+ import { promisify } from 'node:util';
4
+ const gunzipP = promisify(gunzip);
2
5
  export class TestFileSource {
3
6
  constructor(fileName) {
4
7
  Object.defineProperty(this, "url", {
@@ -14,7 +17,11 @@ export class TestFileSource {
14
17
  value: void 0
15
18
  });
16
19
  this.url = fileName;
17
- this.data = readFile(this.url);
20
+ this.data = readFile(this.url).then((buf) => {
21
+ if (this.url.pathname.endsWith('gz'))
22
+ return gunzipP(buf);
23
+ return buf;
24
+ });
18
25
  }
19
26
  async fetch(offset, length) {
20
27
  const fileData = await this.data;
@@ -1 +1 @@
1
- {"version":3,"file":"source.file.js","sourceRoot":"","sources":["../../src/__benchmark__/source.file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,OAAO,cAAc;IAIzB,YAAY,QAAa;QAHzB;;;;;WAAS;QACT;;;;;WAAsB;QAGpB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAc;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,IAAI;QACN,OAAO,OAAO,CAAC,OAAO,EAAE;aACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"source.file.js","sourceRoot":"","sources":["../../src/__benchmark__/source.file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,OAAO,cAAc;IAIzB,YAAY,QAAa;QAHzB;;;;;WAAS;QACT;;;;;WAAsB;QAGpB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAc;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;IACpG,CAAC;IAED,IAAI,IAAI;QACN,OAAO,OAAO,CAAC,OAAO,EAAE;aACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -1,9 +1,10 @@
1
1
  import assert from 'node:assert';
2
2
  import { describe, it } from 'node:test';
3
+ import { TestFileSource } from '../__benchmark__/source.file.js';
3
4
  import { CogTiff } from '../cog.tiff.js';
4
5
  import { TiffMimeType } from '../const/tiff.mime.js';
5
- import { TestFileSource } from '../__benchmark__/source.file.js';
6
6
  import { TiffVersion } from '../const/tiff.version.js';
7
+ import { TiffTag, TiffTagGeo } from '../index.js';
7
8
  function validate(tif) {
8
9
  assert.equal(tif.images.length, 5);
9
10
  const [firstTif] = tif.images;
@@ -50,5 +51,44 @@ describe('CogRead', () => {
50
51
  await tiff.init();
51
52
  assert.equal(tiff.images.length, 5);
52
53
  });
54
+ it('should read ifds from anywhere in the file', async () => {
55
+ const source = new TestFileSource(new URL('../../data/DEM_BS28_2016_1000_1141.tif', import.meta.url));
56
+ const tiff = await CogTiff.create(source);
57
+ assert.equal(tiff.images.length, 1);
58
+ const im = tiff.images[0];
59
+ assert.equal(im.isGeoTagsLoaded, true);
60
+ assert.equal(im.epsg, 2193);
61
+ assert.equal(im.compression, TiffMimeType.None);
62
+ assert.equal(im.isTiled(), false);
63
+ assert.equal(im.tagsGeo.get(TiffTagGeo.GTCitationGeoKey), 'NZGD2000 / New Zealand Transverse Mercator 2000');
64
+ assert.equal(im.tagsGeo.get(TiffTagGeo.GeogCitationGeoKey), 'NZGD2000');
65
+ assert.deepEqual(await im.fetch(TiffTag.StripByteCounts), [8064, 8064, 8064, 8064, 8064, 8064, 8064, 5040]);
66
+ });
67
+ it('should read sub array ifds', async () => {
68
+ const source = new TestFileSource(new URL('../../data/east_coast_phase3_2023_AY31_1000_3335.tif.gz', import.meta.url));
69
+ const tiff = await CogTiff.create(source);
70
+ assert.equal(tiff.images.length, 5);
71
+ const im = tiff.images[0];
72
+ assert.equal(im.isGeoTagsLoaded, true);
73
+ assert.equal(im.epsg, 2193);
74
+ assert.equal(im.compression, TiffMimeType.Lzw);
75
+ const geoTags = [...im.tagsGeo.keys()].map((key) => TiffTagGeo[key]);
76
+ assert.deepEqual(geoTags, [
77
+ 'GTModelTypeGeoKey',
78
+ 'GTRasterTypeGeoKey',
79
+ 'GTCitationGeoKey',
80
+ 'GeographicTypeGeoKey',
81
+ 'GeogAngularUnitsGeoKey',
82
+ 'GeogEllipsoidGeoKey',
83
+ 'GeogSemiMajorAxisGeoKey',
84
+ 'GeogSemiMinorAxisGeoKey',
85
+ 'GeogInvFlatteningGeoKey',
86
+ 'GeogTOWGS84GeoKey',
87
+ 'ProjectedCSTypeGeoKey',
88
+ 'PCSCitationGeoKey',
89
+ 'ProjLinearUnitsGeoKey',
90
+ ]);
91
+ assert.deepEqual(im.tagsGeo.get(TiffTagGeo.GeogTOWGS84GeoKey), [0, 0, 0, 0, 0, 0, 0]);
92
+ });
53
93
  });
54
94
  //# sourceMappingURL=cog.read.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cog.read.test.js","sourceRoot":"","sources":["../../src/__test__/cog.read.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cog.read.test.js","sourceRoot":"","sources":["../../src/__test__/cog.read.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { TiffMimeType } from './const/tiff.mime.js';
3
3
  import { TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';
4
4
  import { Tag, TagOffset } from './read/tiff.tag.js';
5
5
  import { BoundingBox, Size } from './vector.js';
6
+ /** Invalid EPSG code */
6
7
  export declare const InvalidProjectionCode = 32767;
7
8
  /**
8
9
  * Number of tiles used inside this image
@@ -27,8 +28,14 @@ export interface CogTiffImageTileSize {
27
28
  export declare class CogTiffImage {
28
29
  /** All IFD tags that have been read for the image */
29
30
  tags: Map<TiffTag, Tag>;
30
- /** Id of the tif image, generally the image index inside the tif */
31
+ /**
32
+ * Id of the tif image, generally the image index inside the tif
33
+ * where 0 is the root image, and every sub image is +1
34
+ *
35
+ * @example 0, 1, 2
36
+ */
31
37
  id: number;
38
+ /** Reference to the TIFF that owns this image */
32
39
  tiff: CogTiff;
33
40
  /** Has loadGeoTiffTags been called */
34
41
  isGeoTagsLoaded: boolean;
@@ -42,19 +49,31 @@ export declare class CogTiffImage {
42
49
  */
43
50
  init(loadGeoTags?: boolean): Promise<void>;
44
51
  /**
45
- * Get the value of a TiffTag if it exists null otherwise
52
+ * Get the value of a TiffTag if it has been loaded, null otherwise
53
+ *
54
+ * if the value is not loaded @see {CogTiffImage.fetch}
55
+ * @returns value if loaded, null otherwise
46
56
  */
47
57
  value<T>(tag: TiffTag): T | null;
48
58
  /**
49
59
  * Load and unpack the GeoKeyDirectory
60
+ *
61
+ * @see {TiffTag.GeoKeyDirectory}
50
62
  */
51
63
  loadGeoTiffTags(): Promise<void>;
52
64
  /**
53
- * Get the associated GeoTiffTags
65
+ * Get the associated TiffTagGeo
66
+ *
67
+ * @example
68
+ * ```typescript
69
+ * image.valueGeo(TiffTagGeo.GTRasterTypeGeoKey)
70
+ * ```
71
+ * @throws if {@link loadGeoTiffTags} has not been called
54
72
  */
55
73
  valueGeo(tag: TiffTagGeo): string | number | undefined;
56
74
  /**
57
75
  * Load a tag, if it is not currently loaded, fetch the required data for the tag.
76
+ *
58
77
  * @param tag tag to fetch
59
78
  */
60
79
  fetch<T>(tag: TiffTag): Promise<T | null>;
@@ -81,7 +100,7 @@ export declare class CogTiffImage {
81
100
  /**
82
101
  * Get the compression used by the tile
83
102
  *
84
- * @see TiffCompression
103
+ * @see {@link TiffCompression}
85
104
  *
86
105
  * @returns Compression type eg webp
87
106
  */
@@ -128,7 +147,9 @@ export declare class CogTiffImage {
128
147
  get stripCount(): number;
129
148
  getTileBounds(x: number, y: number): BoundingBox;
130
149
  /**
131
- * Read a strip into a uint8 array
150
+ * Read a strip into a ArrayBuffer
151
+ *
152
+ * Image has to be striped see {@link stripCount}
132
153
  *
133
154
  * @param index Strip index to read
134
155
  */
@@ -141,9 +162,9 @@ export declare class CogTiffImage {
141
162
  /** Read image bytes at the given offset */
142
163
  private getBytes;
143
164
  /**
144
- * Load the tile buffer, this works best with webp
165
+ * Load a tile into a ArrayBuffer
145
166
  *
146
- * This will also apply the JPEG compression tables
167
+ * if the tile compression is JPEG, This will also apply the JPEG compression tables to the resulting ArrayBuffer see {@link getJpegHeader}
147
168
  *
148
169
  * @param x Tile x offset
149
170
  * @param y Tile y offset
@@ -155,13 +176,20 @@ export declare class CogTiffImage {
155
176
  /**
156
177
  * Does this tile exist in the tiff and does it actually have a value
157
178
  *
158
- * Sparse tiffs can have a lot of empty tiles, this checks to see if the tile actually has data.
179
+ * Sparse tiffs can have a lot of empty tiles, they set the tile size to `0 bytes` when the tile is empty
180
+ * this checks the tile byte size to validate if it actually has any data.
159
181
  *
160
182
  * @param x Tile x offset
161
183
  * @param y Tile y offset
184
+ *
162
185
  * @returns if the tile exists and has data
163
186
  */
164
187
  hasTile(x: number, y: number): Promise<boolean>;
188
+ /**
189
+ * Load the offset and byteCount of a tile
190
+ * @param index index in the tile array
191
+ * @returns Offset and byteCount for the tile
192
+ */
165
193
  getTileSize(index: number): Promise<{
166
194
  offset: number;
167
195
  imageSize: number;
@@ -1,8 +1,8 @@
1
1
  import { getUint } from './util/bytes.js';
2
2
  import { TiffCompression, TiffMimeType } from './const/tiff.mime.js';
3
3
  import { TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';
4
- import { fetchLazy, getValueAt } from './read/tiff.tag.factory.js';
5
- // /** Invalid EPSG code */
4
+ import { fetchAllOffsets, fetchLazy, getValueAt } from './read/tiff.tag.factory.js';
5
+ /** Invalid EPSG code */
6
6
  export const InvalidProjectionCode = 32767;
7
7
  /** Tags that are commonly accessed for geotiffs */
8
8
  export const ImportantTags = new Set([
@@ -28,13 +28,19 @@ export class CogTiffImage {
28
28
  writable: true,
29
29
  value: void 0
30
30
  });
31
- /** Id of the tif image, generally the image index inside the tif */
31
+ /**
32
+ * Id of the tif image, generally the image index inside the tif
33
+ * where 0 is the root image, and every sub image is +1
34
+ *
35
+ * @example 0, 1, 2
36
+ */
32
37
  Object.defineProperty(this, "id", {
33
38
  enumerable: true,
34
39
  configurable: true,
35
40
  writable: true,
36
41
  value: void 0
37
42
  });
43
+ /** Reference to the TIFF that owns this image */
38
44
  Object.defineProperty(this, "tiff", {
39
45
  enumerable: true,
40
46
  configurable: true,
@@ -85,7 +91,10 @@ export class CogTiffImage {
85
91
  await this.loadGeoTiffTags();
86
92
  }
87
93
  /**
88
- * Get the value of a TiffTag if it exists null otherwise
94
+ * Get the value of a TiffTag if it has been loaded, null otherwise
95
+ *
96
+ * if the value is not loaded @see {CogTiffImage.fetch}
97
+ * @returns value if loaded, null otherwise
89
98
  */
90
99
  value(tag) {
91
100
  const sourceTag = this.tags.get(tag);
@@ -97,6 +106,8 @@ export class CogTiffImage {
97
106
  }
98
107
  /**
99
108
  * Load and unpack the GeoKeyDirectory
109
+ *
110
+ * @see {TiffTag.GeoKeyDirectory}
100
111
  */
101
112
  async loadGeoTiffTags() {
102
113
  // Already loaded
@@ -123,26 +134,38 @@ export class CogTiffImage {
123
134
  throw new Error('Invalid geo tags found');
124
135
  for (let i = 4; i <= geoTags[3] * 4; i += 4) {
125
136
  const key = geoTags[i];
126
- const location = geoTags[i + 1];
137
+ const locationTagId = geoTags[i + 1];
127
138
  const offset = geoTags[i + 3];
128
- if (location === 0) {
139
+ if (locationTagId === 0) {
129
140
  this.tagsGeo.set(key, offset);
130
141
  continue;
131
142
  }
132
- const tag = this.tags.get(location);
143
+ const tag = this.tags.get(locationTagId);
133
144
  if (tag == null || tag.value == null)
134
145
  continue;
135
146
  const count = geoTags[i + 2];
136
- if (Array.isArray(tag.value)) {
137
- this.tagsGeo.set(key, tag.value[offset + count - 1]);
138
- }
139
- else if (typeof tag.value === 'string') {
147
+ if (typeof tag.value === 'string') {
140
148
  this.tagsGeo.set(key, tag.value.slice(offset, offset + count - 1).trim());
141
149
  }
150
+ else if (Array.isArray(tag.value)) {
151
+ if (count === 1)
152
+ this.tagsGeo.set(key, tag.value[offset]);
153
+ else
154
+ this.tagsGeo.set(key, tag.value.slice(offset, offset + count));
155
+ }
156
+ else {
157
+ throw new Error('Failed to extract GeoTiffTags');
158
+ }
142
159
  }
143
160
  }
144
161
  /**
145
- * Get the associated GeoTiffTags
162
+ * Get the associated TiffTagGeo
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * image.valueGeo(TiffTagGeo.GTRasterTypeGeoKey)
167
+ * ```
168
+ * @throws if {@link loadGeoTiffTags} has not been called
146
169
  */
147
170
  valueGeo(tag) {
148
171
  if (this.isGeoTagsLoaded === false)
@@ -151,6 +174,7 @@ export class CogTiffImage {
151
174
  }
152
175
  /**
153
176
  * Load a tag, if it is not currently loaded, fetch the required data for the tag.
177
+ *
154
178
  * @param tag tag to fetch
155
179
  */
156
180
  async fetch(tag) {
@@ -163,6 +187,8 @@ export class CogTiffImage {
163
187
  return fetchLazy(sourceTag, this.tiff);
164
188
  if (sourceTag.isLoaded)
165
189
  return sourceTag.value;
190
+ if (sourceTag.type === 'offset')
191
+ return fetchAllOffsets(this.tiff, sourceTag);
166
192
  throw new Error('Cannot fetch:' + tag);
167
193
  }
168
194
  /**
@@ -241,7 +267,7 @@ export class CogTiffImage {
241
267
  /**
242
268
  * Get the compression used by the tile
243
269
  *
244
- * @see TiffCompression
270
+ * @see {@link TiffCompression}
245
271
  *
246
272
  * @returns Compression type eg webp
247
273
  */
@@ -334,7 +360,9 @@ export class CogTiffImage {
334
360
  return { x: left, y: top, width, height };
335
361
  }
336
362
  /**
337
- * Read a strip into a uint8 array
363
+ * Read a strip into a ArrayBuffer
364
+ *
365
+ * Image has to be striped see {@link stripCount}
338
366
  *
339
367
  * @param index Strip index to read
340
368
  */
@@ -381,9 +409,9 @@ export class CogTiffImage {
381
409
  return { mimeType, bytes };
382
410
  }
383
411
  /**
384
- * Load the tile buffer, this works best with webp
412
+ * Load a tile into a ArrayBuffer
385
413
  *
386
- * This will also apply the JPEG compression tables
414
+ * if the tile compression is JPEG, This will also apply the JPEG compression tables to the resulting ArrayBuffer see {@link getJpegHeader}
387
415
  *
388
416
  * @param x Tile x offset
389
417
  * @param y Tile y offset
@@ -407,16 +435,17 @@ export class CogTiffImage {
407
435
  if (idx >= totalTiles)
408
436
  throw new Error(`Tile index is outside of tile range: ${idx} >= ${totalTiles}`);
409
437
  const { offset, imageSize } = await this.getTileSize(idx);
410
- // console.log({ x, y, offset, imageSize });
411
438
  return this.getBytes(offset, imageSize);
412
439
  }
413
440
  /**
414
441
  * Does this tile exist in the tiff and does it actually have a value
415
442
  *
416
- * Sparse tiffs can have a lot of empty tiles, this checks to see if the tile actually has data.
443
+ * Sparse tiffs can have a lot of empty tiles, they set the tile size to `0 bytes` when the tile is empty
444
+ * this checks the tile byte size to validate if it actually has any data.
417
445
  *
418
446
  * @param x Tile x offset
419
447
  * @param y Tile y offset
448
+ *
420
449
  * @returns if the tile exists and has data
421
450
  */
422
451
  async hasTile(x, y) {
@@ -433,6 +462,11 @@ export class CogTiffImage {
433
462
  const ret = await this.getTileSize(idx);
434
463
  return ret.offset > 0;
435
464
  }
465
+ /**
466
+ * Load the offset and byteCount of a tile
467
+ * @param index index in the tile array
468
+ * @returns Offset and byteCount for the tile
469
+ */
436
470
  async getTileSize(index) {
437
471
  // GDAL optimizes tiles by storing the size of the tile in
438
472
  // the few bytes leading up to the tile
@@ -461,7 +495,7 @@ function getOffset(tiff, x, index) {
461
495
  if (index > x.count || index < 0)
462
496
  throw new Error('TagIndex: out of bounds ' + x.id + ' @ ' + index);
463
497
  if (x.type === 'inline') {
464
- if (Array.isArray(x.value))
498
+ if (x.count > 1)
465
499
  return x.value[index];
466
500
  return x.value;
467
501
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cog.tiff.image.js","sourceRoot":"","sources":["../src/cog.tiff.image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cog.tiff.image.js","sourceRoot":"","sources":["../src/cog.tiff.image.ts"],"names":[],"mappings":"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"}
package/build/cog.tiff.js CHANGED
@@ -154,7 +154,7 @@ export class CogTiff {
154
154
  // Ensure at least 1KB near at the IFD offset is ready for reading
155
155
  // TODO is 1KB enough, most IFD entries are in the order of 100-300 bytes
156
156
  if (!hasBytes(lastView, nextOffsetIfd, 1024)) {
157
- const bytes = await this.source.fetch(nextOffsetIfd, this.defaultReadSize);
157
+ const bytes = await this.source.fetch(nextOffsetIfd, getMaxLength(this.source, nextOffsetIfd, this.defaultReadSize));
158
158
  lastView = new DataView(bytes);
159
159
  lastView.sourceOffset = nextOffsetIfd;
160
160
  }
@@ -189,4 +189,14 @@ export class CogTiff {
189
189
  return getUint(view, startOffset + tagCount * ifdSize, this.ifdConfig.pointer, this.isLittleEndian);
190
190
  }
191
191
  }
192
+ function getMaxLength(source, offset, length) {
193
+ // max length is unknown, roll the dice and hope the chunk exists
194
+ if (source.metadata?.size == null)
195
+ return length;
196
+ const size = source.metadata.size;
197
+ // Read was going to happen past the end of the file limit it to the end of the file
198
+ if (offset + length > size)
199
+ return size - offset;
200
+ return length;
201
+ }
192
202
  //# sourceMappingURL=cog.tiff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cog.tiff.js","sourceRoot":"","sources":["../src/cog.tiff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cog.tiff.js","sourceRoot":"","sources":["../src/cog.tiff.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Tiff format
3
- * The header of a tif file contains the endianness of the file
3
+ *
4
+ * The header of a Tiff file contains the endianness of the file
4
5
  */
5
6
  export declare enum TiffEndian {
6
7
  Big = 19789,
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Tiff format
3
- * The header of a tif file contains the endianness of the file
3
+ *
4
+ * The header of a Tiff file contains the endianness of the file
4
5
  */
5
6
  export var TiffEndian;
6
7
  (function (TiffEndian) {
@@ -1 +1 @@
1
- {"version":3,"file":"tiff.endian.js","sourceRoot":"","sources":["../../src/const/tiff.endian.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,6CAAY,CAAA;IACZ,mDAAe,CAAA;AACjB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
1
+ {"version":3,"file":"tiff.endian.js","sourceRoot":"","sources":["../../src/const/tiff.endian.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,6CAAY,CAAA;IACZ,mDAAe,CAAA;AACjB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB"}
package/build/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { CogTiff } from './cog.tiff.js';
2
+ export { CogTiffImage } from './cog.tiff.image.js';
2
3
  export { TiffEndian } from './const/tiff.endian.js';
3
4
  export { TiffCompression, TiffMimeType } from './const/tiff.mime.js';
4
5
  export { TiffTagGeo, TiffTag } from './const/tiff.tag.id.js';
@@ -8,4 +9,4 @@ export { TagInline, TagLazy, TagOffset, Tag } from './read/tiff.tag.js';
8
9
  export { getTiffTagSize } from './read/tiff.value.reader.js';
9
10
  export { Source } from './source.js';
10
11
  export { toHex } from './util/util.hex.js';
11
- export { BoundingBox, Point, Size, Vector } from './vector.js';
12
+ export type { BoundingBox, Point, Size, Vector } from './vector.js';
package/build/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export { CogTiff } from './cog.tiff.js';
2
+ export { CogTiffImage } from './cog.tiff.image.js';
2
3
  export { TiffEndian } from './const/tiff.endian.js';
3
4
  export { TiffCompression, TiffMimeType } from './const/tiff.mime.js';
4
5
  export { TiffTagGeo, TiffTag } from './const/tiff.tag.id.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC"}