@cogeotiff/core 8.1.1 → 9.0.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 (71) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +45 -7
  3. package/build/__benchmark__/cog.read.benchmark.js +5 -5
  4. package/build/__benchmark__/cog.read.benchmark.js.map +1 -1
  5. package/build/__benchmark__/source.file.js +1 -1
  6. package/build/__benchmark__/source.file.js.map +1 -1
  7. package/build/__benchmark__/source.memory.d.ts +3 -0
  8. package/build/__benchmark__/source.memory.js +13 -0
  9. package/build/__benchmark__/source.memory.js.map +1 -1
  10. package/build/__test__/cog.image.test.js +14 -9
  11. package/build/__test__/cog.image.test.js.map +1 -1
  12. package/build/__test__/cog.read.test.js +42 -17
  13. package/build/__test__/cog.read.test.js.map +1 -1
  14. package/build/__test__/example.js +2 -2
  15. package/build/__test__/example.js.map +1 -1
  16. package/build/const/index.d.ts +1 -1
  17. package/build/const/index.js +1 -1
  18. package/build/const/index.js.map +1 -1
  19. package/build/const/tiff.mime.d.ts +11 -5
  20. package/build/const/tiff.mime.js +27 -14
  21. package/build/const/tiff.mime.js.map +1 -1
  22. package/build/const/tiff.tag.id.d.ts +603 -41
  23. package/build/const/tiff.tag.id.js +479 -50
  24. package/build/const/tiff.tag.id.js.map +1 -1
  25. package/build/const/tiff.tag.value.js +1 -1
  26. package/build/const/tiff.tag.value.js.map +1 -1
  27. package/build/index.d.ts +6 -5
  28. package/build/index.js +6 -4
  29. package/build/index.js.map +1 -1
  30. package/build/read/tiff.gdal.d.ts +1 -1
  31. package/build/read/tiff.gdal.js +1 -1
  32. package/build/read/tiff.gdal.js.map +1 -1
  33. package/build/read/tiff.ifd.config.js +1 -1
  34. package/build/read/tiff.ifd.config.js.map +1 -1
  35. package/build/read/tiff.tag.d.ts +3 -0
  36. package/build/read/tiff.tag.factory.d.ts +5 -5
  37. package/build/read/tiff.tag.factory.js +22 -13
  38. package/build/read/tiff.tag.factory.js.map +1 -1
  39. package/build/read/tiff.value.reader.d.ts +1 -1
  40. package/build/read/tiff.value.reader.js.map +1 -1
  41. package/build/{cog.tiff.d.ts → tiff.d.ts} +12 -10
  42. package/build/{cog.tiff.image.d.ts → tiff.image.d.ts} +69 -27
  43. package/build/{cog.tiff.image.js → tiff.image.js} +125 -82
  44. package/build/tiff.image.js.map +1 -0
  45. package/build/{cog.tiff.js → tiff.js} +19 -11
  46. package/build/tiff.js.map +1 -0
  47. package/build/util/bytes.d.ts +4 -2
  48. package/build/util/bytes.js +5 -2
  49. package/build/util/bytes.js.map +1 -1
  50. package/package.json +2 -2
  51. package/src/__benchmark__/cog.read.benchmark.ts +6 -5
  52. package/src/__benchmark__/source.file.ts +2 -1
  53. package/src/__benchmark__/source.memory.ts +10 -0
  54. package/src/__test__/cog.image.test.ts +17 -9
  55. package/src/__test__/cog.read.test.ts +53 -18
  56. package/src/__test__/example.ts +3 -2
  57. package/src/const/index.ts +1 -1
  58. package/src/const/tiff.mime.ts +28 -14
  59. package/src/const/tiff.tag.id.ts +758 -131
  60. package/src/const/tiff.tag.value.ts +16 -16
  61. package/src/index.ts +20 -5
  62. package/src/read/tiff.gdal.ts +1 -1
  63. package/src/read/tiff.ifd.config.ts +1 -1
  64. package/src/read/tiff.tag.factory.ts +33 -17
  65. package/src/read/tiff.tag.ts +3 -0
  66. package/src/read/tiff.value.reader.ts +1 -1
  67. package/src/{cog.tiff.image.ts → tiff.image.ts} +137 -92
  68. package/src/{cog.tiff.ts → tiff.ts} +22 -17
  69. package/src/util/bytes.ts +5 -1
  70. package/build/cog.tiff.image.js.map +0 -1
  71. package/build/cog.tiff.js.map +0 -1
package/build/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
- export { CogTiff } from './cog.tiff.js';
2
- export { CogTiffImage } from './cog.tiff.image.js';
3
1
  export { TiffEndian } from './const/tiff.endian.js';
4
- export { TiffCompression, TiffMimeType } from './const/tiff.mime.js';
5
- export { TiffTagGeo, TiffTag } from './const/tiff.tag.id.js';
2
+ export { TiffCompressionMimeType as TiffCompression, TiffMimeType } from './const/tiff.mime.js';
3
+ export { TiffTag, TiffTagGeo, TiffTagGeoType, TiffTagType } from './const/tiff.tag.id.js';
6
4
  export { TiffTagValueType } from './const/tiff.tag.value.js';
7
5
  export { TiffVersion } from './const/tiff.version.js';
8
- export { TagInline, TagLazy, TagOffset, Tag } from './read/tiff.tag.js';
6
+ export { Tag, TagInline, TagLazy, TagOffset } from './read/tiff.tag.js';
9
7
  export { getTiffTagSize } from './read/tiff.value.reader.js';
10
8
  export { Source } from './source.js';
9
+ export { TiffImage } from './tiff.image.js';
10
+ export { Tiff } from './tiff.js';
11
11
  export { toHex } from './util/util.hex.js';
12
12
  export type { BoundingBox, Point, Size, Vector } from './vector.js';
13
+ export { AngularUnit, Compression, LinearUnit, ModelTypeCode, OldSubFileType, Orientation, Photometric, PlanarConfiguration, RasterTypeKey, SampleFormat, SubFileType, } from './const/tiff.tag.id.js';
package/build/index.js CHANGED
@@ -1,10 +1,12 @@
1
- export { CogTiff } from './cog.tiff.js';
2
- export { CogTiffImage } from './cog.tiff.image.js';
3
1
  export { TiffEndian } from './const/tiff.endian.js';
4
- export { TiffCompression, TiffMimeType } from './const/tiff.mime.js';
5
- export { TiffTagGeo, TiffTag } from './const/tiff.tag.id.js';
2
+ export { TiffCompressionMimeType as TiffCompression, TiffMimeType } from './const/tiff.mime.js';
3
+ export { TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';
6
4
  export { TiffTagValueType } from './const/tiff.tag.value.js';
7
5
  export { TiffVersion } from './const/tiff.version.js';
8
6
  export { getTiffTagSize } from './read/tiff.value.reader.js';
7
+ export { TiffImage } from './tiff.image.js';
8
+ export { Tiff } from './tiff.js';
9
9
  export { toHex } from './util/util.hex.js';
10
+ // Tag value constants
11
+ export { AngularUnit, Compression, LinearUnit, ModelTypeCode, OldSubFileType, Orientation, Photometric, PlanarConfiguration, RasterTypeKey, SampleFormat, SubFileType, } from './const/tiff.tag.id.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -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,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,uBAAuB,IAAI,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,UAAU,EAA+B,MAAM,wBAAwB,CAAC;AAC1F,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,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,sBAAsB;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,wBAAwB,CAAC"}
@@ -18,7 +18,7 @@ export declare enum GhostOptionTileLeader {
18
18
  * GDAL has made a ghost set of options for Tiff files
19
19
  * this class represents the optimizations that GDAL has applied
20
20
  */
21
- export declare class CogTifGhostOptions {
21
+ export declare class TiffGhostOptions {
22
22
  options: Map<string, string>;
23
23
  /**
24
24
  * Has GDAL optimized this tiff
@@ -21,7 +21,7 @@ export var GhostOptionTileLeader;
21
21
  * GDAL has made a ghost set of options for Tiff files
22
22
  * this class represents the optimizations that GDAL has applied
23
23
  */
24
- export class CogTifGhostOptions {
24
+ export class TiffGhostOptions {
25
25
  constructor() {
26
26
  Object.defineProperty(this, "options", {
27
27
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"tiff.gdal.js","sourceRoot":"","sources":["../../src/read/tiff.gdal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,2EAA4D,CAAA;IAC5D,gCAAiB,CAAA;IACjB,yCAA0B,CAAA;IAC1B,2CAA4B,CAAA;IAC5B,6CAA8B,CAAA;IAC9B,sEAAuD,CAAA;IACvD,2EAA4D,CAAA;AAC9D,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB;AAED,MAAM,CAAN,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,8CAAsB,CAAA;AACxB,CAAC,EAFW,oBAAoB,KAApB,oBAAoB,QAE/B;AAED,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,iDAAwB,CAAA;AAC1B,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACE;;;;mBAA+B,IAAI,GAAG,EAAE;WAAC;IA2D3C,CAAC;IAzDC;;OAEG;IACH,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,KAAK,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAe,EAAE,MAAc,EAAE,SAAiB;QACxD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,CAAC;gBAAE,MAAM;YAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,GAAG,GAAG,EAAE,CAAC;gBACT,KAAK,GAAG,EAAE,CAAC;gBACX,QAAQ,GAAG,KAAK,CAAC;aAClB;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE;gBACvB,QAAQ,GAAG,IAAI,CAAC;aACjB;iBAAM;gBACL,IAAI,QAAQ;oBAAE,KAAK,IAAI,IAAI,CAAC;;oBACvB,GAAG,IAAI,IAAI,CAAC;aAClB;SACF;IACH,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACpB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YACjD,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB;gBACE,OAAO,IAAI,CAAC;SACf;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,KAAK,KAAK,CAAC;IAC5E,CAAC;CACF"}
1
+ {"version":3,"file":"tiff.gdal.js","sourceRoot":"","sources":["../../src/read/tiff.gdal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,2EAA4D,CAAA;IAC5D,gCAAiB,CAAA;IACjB,yCAA0B,CAAA;IAC1B,2CAA4B,CAAA;IAC5B,6CAA8B,CAAA;IAC9B,sEAAuD,CAAA;IACvD,2EAA4D,CAAA;AAC9D,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB;AAED,MAAM,CAAN,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,8CAAsB,CAAA;AACxB,CAAC,EAFW,oBAAoB,KAApB,oBAAoB,QAE/B;AAED,MAAM,CAAN,IAAY,qBAEX;AAFD,WAAY,qBAAqB;IAC/B,iDAAwB,CAAA;AAC1B,CAAC,EAFW,qBAAqB,KAArB,qBAAqB,QAEhC;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACE;;;;mBAA+B,IAAI,GAAG,EAAE;WAAC;IA2D3C,CAAC;IAzDC;;OAEG;IACH,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,wBAAwB,CAAC,KAAK,KAAK,CAAC;IAC1E,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAe,EAAE,MAAc,EAAE,SAAiB;QACxD,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,CAAC;gBAAE,MAAM;YAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3C,GAAG,GAAG,EAAE,CAAC;gBACT,KAAK,GAAG,EAAE,CAAC;gBACX,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,QAAQ;oBAAE,KAAK,IAAI,IAAI,CAAC;;oBACvB,GAAG,IAAI,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACpB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,KAAK,qBAAqB,CAAC,MAAM;gBAC/B,OAAO,QAAQ,CAAC,MAAM,CAAC;YACzB;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,0BAA0B,CAAC,KAAK,KAAK,CAAC;IAC5E,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import { ByteSize } from '../util/bytes.js';
2
1
  import { TiffVersion } from '../const/tiff.version.js';
2
+ import { ByteSize } from '../util/bytes.js';
3
3
  export const TagTiffConfig = {
4
4
  version: TiffVersion.Tiff,
5
5
  pointer: ByteSize.UInt32,
@@ -1 +1 @@
1
- {"version":3,"file":"tiff.ifd.config.js","sourceRoot":"","sources":["../../src/read/tiff.ifd.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,WAAW,CAAC,IAAI;IACzB,OAAO,EAAE,QAAQ,CAAC,MAAM;IACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;IACvB;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,4BAA4B;IAC5B,OAAO,EAAE,QAAQ,CAAC,MAAM;IACxB,sBAAsB;IACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;IAEvB;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM;CAC7D,CAAC;AAaF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB;IACvC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;CAClC,CAAC"}
1
+ {"version":3,"file":"tiff.ifd.config.js","sourceRoot":"","sources":["../../src/read/tiff.ifd.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,WAAW,CAAC,IAAI;IACzB,OAAO,EAAE,QAAQ,CAAC,MAAM;IACxB,MAAM,EAAE,QAAQ,CAAC,MAAM;IACvB;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM;CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,4BAA4B;IAC5B,OAAO,EAAE,QAAQ,CAAC,MAAM;IACxB,sBAAsB;IACtB,MAAM,EAAE,QAAQ,CAAC,MAAM;IAEvB;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM;CAC7D,CAAC;AAaF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB;IACvC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;CAClC,CAAC"}
@@ -6,6 +6,8 @@ export type Tag<T = unknown> = TagLazy<T> | TagInline<T> | TagOffset;
6
6
  export interface TagBase {
7
7
  /** Id of the Tag */
8
8
  id: TiffTag;
9
+ /** Name of the tiff tag */
10
+ name: string;
9
11
  /** Offset in bytes to where this tag was read from */
10
12
  tagOffset: number;
11
13
  /** Number of values */
@@ -24,6 +26,7 @@ export interface TagLazy<T> extends TagBase {
24
26
  /** Tiff tag that's value is inside the IFD and is already read */
25
27
  export interface TagInline<T> extends TagBase {
26
28
  type: 'inline';
29
+ /** Value of the tag */
27
30
  value: T;
28
31
  }
29
32
  /** Tiff tag that is a list of offsets this can be partially read */
@@ -1,4 +1,4 @@
1
- import { CogTiff } from '../cog.tiff.js';
1
+ import { Tiff } from '../tiff.js';
2
2
  import { DataViewOffset } from './data.view.offset.js';
3
3
  import { Tag, TagLazy, TagOffset } from './tiff.tag.js';
4
4
  /**
@@ -10,13 +10,13 @@ import { Tag, TagLazy, TagOffset } from './tiff.tag.js';
10
10
  * @param view Bytes to read from
11
11
  * @param offset Offset in the dataview to read a tag
12
12
  */
13
- export declare function createTag(tiff: CogTiff, view: DataViewOffset, offset: number): Tag<unknown>;
13
+ export declare function createTag(tiff: Tiff, view: DataViewOffset, offset: number): Tag<unknown>;
14
14
  /** Fetch the value from a {@link TagLazy} tag */
15
- export declare function fetchLazy<T>(tag: TagLazy<T>, tiff: CogTiff): Promise<T>;
15
+ export declare function fetchLazy<T>(tag: TagLazy<T>, tiff: Tiff): Promise<T>;
16
16
  /**
17
17
  * Fetch all the values from a {@link TagOffset}
18
18
  */
19
- export declare function fetchAllOffsets(tiff: CogTiff, tag: TagOffset): Promise<number[]>;
19
+ export declare function fetchAllOffsets(tiff: Tiff, tag: TagOffset): Promise<number[]>;
20
20
  export declare function setBytes(tag: TagOffset, view: DataViewOffset): void;
21
21
  /** Partially fetch the values of a {@link TagOffset} and return the value for the offset */
22
- export declare function getValueAt(tiff: CogTiff, tag: TagOffset, index: number): Promise<number>;
22
+ export declare function getValueAt(tiff: Tiff, tag: TagOffset, index: number): Promise<number>;
@@ -1,4 +1,4 @@
1
- import { TiffTag } from '../const/tiff.tag.id.js';
1
+ import { TiffTag, TiffTagConvertArray } from '../const/tiff.tag.id.js';
2
2
  import { TiffTagValueType } from '../const/tiff.tag.value.js';
3
3
  import { getUint, getUint64 } from '../util/bytes.js';
4
4
  import { hasBytes } from './data.view.offset.js';
@@ -34,11 +34,17 @@ function readTagValue(fieldType, bytes, offset, isLittleEndian) {
34
34
  throw new Error(`Unknown read type "${fieldType}" "${TiffTagValueType[fieldType]}"`);
35
35
  }
36
36
  }
37
- function readValue(tiff, bytes, offset, type, count) {
37
+ function readValue(tiff, tagId, bytes, offset, type, count) {
38
38
  const typeSize = getTiffTagSize(type);
39
39
  const dataLength = count * typeSize;
40
- if (count === 1)
41
- return readTagValue(type, bytes, offset, tiff.isLittleEndian);
40
+ if (count === 1) {
41
+ const val = readTagValue(type, bytes, offset, tiff.isLittleEndian);
42
+ // Force some single values to be arrays eg BitsPerSample
43
+ // makes it easier to not check for number | number[]
44
+ if (tagId && TiffTagConvertArray[tagId])
45
+ return [val];
46
+ return val;
47
+ }
42
48
  switch (type) {
43
49
  case TiffTagValueType.Ascii:
44
50
  return String.fromCharCode.apply(null, new Uint8Array(bytes.buffer, offset, dataLength - 1));
@@ -66,8 +72,8 @@ export function createTag(tiff, view, offset) {
66
72
  const dataLength = dataTypeSize * dataCount;
67
73
  // Tag value is inline read the value
68
74
  if (dataLength <= tiff.ifdConfig.pointer) {
69
- const value = readValue(tiff, view, offset + 4 + tiff.ifdConfig.pointer, dataType, dataCount);
70
- return { type: 'inline', id: tagId, count: dataCount, value, dataType, tagOffset: offset };
75
+ const value = readValue(tiff, tagId, view, offset + 4 + tiff.ifdConfig.pointer, dataType, dataCount);
76
+ return { type: 'inline', id: tagId, name: TiffTag[tagId], count: dataCount, value, dataType, tagOffset: offset };
71
77
  }
72
78
  const dataOffset = getUint(view, offset + 4 + tiff.ifdConfig.pointer, tiff.ifdConfig.pointer, tiff.isLittleEndian);
73
79
  switch (tagId) {
@@ -78,6 +84,7 @@ export function createTag(tiff, view, offset) {
78
84
  const tag = {
79
85
  type: 'offset',
80
86
  id: tagId,
87
+ name: TiffTag[tagId],
81
88
  count: dataCount,
82
89
  dataType,
83
90
  dataOffset,
@@ -92,10 +99,10 @@ export function createTag(tiff, view, offset) {
92
99
  }
93
100
  // If we already have the bytes in the view read them in
94
101
  if (hasBytes(view, dataOffset, dataLength)) {
95
- const value = readValue(tiff, view, dataOffset - view.sourceOffset, dataType, dataCount);
96
- return { type: 'inline', id: tagId, count: dataCount, value, dataType, tagOffset: offset };
102
+ const value = readValue(tiff, tagId, view, dataOffset - view.sourceOffset, dataType, dataCount);
103
+ return { type: 'inline', id: tagId, name: TiffTag[tagId], count: dataCount, value, dataType, tagOffset: offset };
97
104
  }
98
- return { type: 'lazy', id: tagId, count: dataCount, dataOffset, dataType, tagOffset: offset };
105
+ return { type: 'lazy', id: tagId, name: TiffTag[tagId], count: dataCount, dataOffset, dataType, tagOffset: offset };
99
106
  }
100
107
  /** Fetch the value from a {@link TagLazy} tag */
101
108
  export async function fetchLazy(tag, tiff) {
@@ -105,7 +112,7 @@ export async function fetchLazy(tag, tiff) {
105
112
  const dataLength = dataTypeSize * tag.count;
106
113
  const bytes = await tiff.source.fetch(tag.dataOffset, dataLength);
107
114
  const view = new DataView(bytes);
108
- tag.value = readValue(tiff, view, 0, tag.dataType, tag.count);
115
+ tag.value = readValue(tiff, tag.id, view, 0, tag.dataType, tag.count);
109
116
  return tag.value;
110
117
  }
111
118
  /**
@@ -118,7 +125,7 @@ export async function fetchAllOffsets(tiff, tag) {
118
125
  tag.view = new DataView(bytes);
119
126
  tag.view.sourceOffset = tag.dataOffset;
120
127
  }
121
- tag.value = readValue(tiff, tag.view, 0, tag.dataType, tag.count);
128
+ tag.value = readValue(tiff, tag.id, tag.view, 0, tag.dataType, tag.count);
122
129
  tag.isLoaded = true;
123
130
  return tag.value;
124
131
  }
@@ -138,11 +145,13 @@ export async function getValueAt(tiff, tag, index) {
138
145
  if (tag.view == null) {
139
146
  const bytes = await tiff.source.fetch(tag.dataOffset + index * dataTypeSize, dataTypeSize);
140
147
  const view = new DataView(bytes);
141
- const value = readValue(tiff, view, 0, tag.dataType, 1);
148
+ // Skip type conversion to array by using undefined tiff tag id
149
+ const value = readValue(tiff, undefined, view, 0, tag.dataType, 1);
142
150
  tag.value[index] = value;
143
151
  return value;
144
152
  }
145
- const value = readValue(tiff, tag.view, index * dataTypeSize, tag.dataType, 1);
153
+ // Skip type conversion to array by using undefined tiff tag id
154
+ const value = readValue(tiff, undefined, tag.view, index * dataTypeSize, tag.dataType, 1);
146
155
  tag.value[index] = value;
147
156
  return value;
148
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tiff.tag.factory.js","sourceRoot":"","sources":["../../src/read/tiff.tag.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tiff.tag.factory.js","sourceRoot":"","sources":["../../src/read/tiff.tag.factory.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { ByteSize } from '../util/bytes.js';
2
1
  import { TiffTagValueType } from '../const/tiff.tag.value.js';
2
+ import { ByteSize } from '../util/bytes.js';
3
3
  export declare function getTiffTagSize(fieldType: TiffTagValueType): ByteSize;
@@ -1 +1 @@
1
- {"version":3,"file":"tiff.value.reader.js","sourceRoot":"","sources":["../../src/read/tiff.value.reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,UAAU,cAAc,CAAC,SAA2B;IACxD,QAAQ,SAAS,EAAE;QACjB,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,IAAI,CAAC;QAC3B,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,QAAQ,CAAC;QAC/B,KAAK,gBAAgB,CAAC,cAAc,CAAC;QACrC,KAAK,gBAAgB,CAAC,OAAO,CAAC;QAC9B,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,IAAI;YACxB,OAAO,CAAC,CAAC;QACX;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;KACrD;AACH,CAAC"}
1
+ {"version":3,"file":"tiff.value.reader.js","sourceRoot":"","sources":["../../src/read/tiff.value.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,MAAM,UAAU,cAAc,CAAC,SAA2B;IACxD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,IAAI,CAAC;QAC3B,KAAK,gBAAgB,CAAC,SAAS;YAC7B,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK;YACzB,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,CAAC,CAAC;QACX,KAAK,gBAAgB,CAAC,QAAQ,CAAC;QAC/B,KAAK,gBAAgB,CAAC,cAAc,CAAC;QACrC,KAAK,gBAAgB,CAAC,OAAO,CAAC;QAC9B,KAAK,gBAAgB,CAAC,MAAM,CAAC;QAC7B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,IAAI;YACxB,OAAO,CAAC,CAAC;QACX;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -1,9 +1,11 @@
1
- import { CogTiffImage } from './cog.tiff.image.js';
2
1
  import { TiffVersion } from './const/tiff.version.js';
3
- import { CogTifGhostOptions } from './read/tiff.gdal.js';
2
+ import { TiffGhostOptions } from './read/tiff.gdal.js';
4
3
  import { TiffIfdConfig } from './read/tiff.ifd.config.js';
5
4
  import { Source } from './source.js';
6
- export declare class CogTiff {
5
+ import { TiffImage } from './tiff.image.js';
6
+ export declare class Tiff {
7
+ /** Read 16KB blocks at a time */
8
+ static DefaultReadSize: number;
7
9
  /** Read 16KB blocks at a time */
8
10
  defaultReadSize: number;
9
11
  /** Where this cog is fetching its data from */
@@ -11,9 +13,9 @@ export declare class CogTiff {
11
13
  /** Big or small Tiff */
12
14
  version: TiffVersion;
13
15
  /** List of images, o is the base image */
14
- images: CogTiffImage[];
16
+ images: TiffImage[];
15
17
  /** Ghost header options */
16
- options?: CogTifGhostOptions;
18
+ options?: TiffGhostOptions;
17
19
  /** Configuration for the size of the IFD */
18
20
  ifdConfig: TiffIfdConfig;
19
21
  /** Is the tiff being read is little Endian */
@@ -22,18 +24,18 @@ export declare class CogTiff {
22
24
  isInitialized: boolean;
23
25
  private _initPromise?;
24
26
  constructor(source: Source);
25
- /** Create a COG and initialize it by reading the COG headers */
26
- static create(source: Source): Promise<CogTiff>;
27
+ /** Create a tiff and initialize it by reading the tiff headers */
28
+ static create(source: Source): Promise<Tiff>;
27
29
  /**
28
- * Initialize the COG loading in the header and all image headers
30
+ * Initialize the tiff loading in the header and all image headers
29
31
  */
30
- init(): Promise<CogTiff>;
32
+ init(): Promise<Tiff>;
31
33
  /**
32
34
  * Find a image which has a resolution similar to the provided resolution
33
35
  *
34
36
  * @param resolution resolution to find
35
37
  */
36
- getImageByResolution(resolution: number): CogTiffImage;
38
+ getImageByResolution(resolution: number): TiffImage;
37
39
  /** Read the Starting header and all Image headers from the source */
38
40
  private readHeader;
39
41
  /**
@@ -1,14 +1,14 @@
1
- import { CogTiff } from './cog.tiff.js';
2
1
  import { TiffMimeType } from './const/tiff.mime.js';
3
- import { TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';
4
- import { Tag, TagOffset } from './read/tiff.tag.js';
2
+ import { Compression, TiffTag, TiffTagGeo, TiffTagGeoType, TiffTagType } from './const/tiff.tag.id.js';
3
+ import { Tag, TagInline, TagOffset } from './read/tiff.tag.js';
4
+ import { Tiff } from './tiff.js';
5
5
  import { BoundingBox, Size } from './vector.js';
6
6
  /** Invalid EPSG code */
7
7
  export declare const InvalidProjectionCode = 32767;
8
8
  /**
9
9
  * Number of tiles used inside this image
10
10
  */
11
- export interface CogTiffImageTiledCount {
11
+ export interface TiffImageTileCount {
12
12
  /** Number of tiles on the x axis */
13
13
  x: number;
14
14
  /** Number of tiles on the y axis */
@@ -19,15 +19,13 @@ export declare const ImportantTags: Set<TiffTag>;
19
19
  /**
20
20
  * Size of a individual tile
21
21
  */
22
- export interface CogTiffImageTileSize {
22
+ export interface TiffImageTileSize {
23
23
  /** Tile width (pixels) */
24
24
  width: number;
25
25
  /** Tile height (pixels) */
26
26
  height: number;
27
27
  }
28
- export declare class CogTiffImage {
29
- /** All IFD tags that have been read for the image */
30
- tags: Map<TiffTag, Tag>;
28
+ export declare class TiffImage {
31
29
  /**
32
30
  * Id of the tif image, generally the image index inside the tif
33
31
  * where 0 is the root image, and every sub image is +1
@@ -36,12 +34,14 @@ export declare class CogTiffImage {
36
34
  */
37
35
  id: number;
38
36
  /** Reference to the TIFF that owns this image */
39
- tiff: CogTiff;
37
+ tiff: Tiff;
40
38
  /** Has loadGeoTiffTags been called */
41
39
  isGeoTagsLoaded: boolean;
42
40
  /** Sub tags stored in TiffTag.GeoKeyDirectory */
43
- tagsGeo: Map<TiffTagGeo, string | number>;
44
- constructor(tiff: CogTiff, id: number, tags: Map<TiffTag, Tag>);
41
+ tagsGeo: Map<TiffTagGeo, string | number | number[]>;
42
+ /** All IFD tags that have been read for the image */
43
+ tags: Map<TiffTag, Tag>;
44
+ constructor(tiff: Tiff, id: number, tags: Map<TiffTag, Tag>);
45
45
  /**
46
46
  * Force loading of important tags if they have not already been loaded
47
47
  *
@@ -49,18 +49,40 @@ export declare class CogTiffImage {
49
49
  */
50
50
  init(loadGeoTags?: boolean): Promise<void>;
51
51
  /**
52
- * Get the value of a TiffTag if it has been loaded, null otherwise
52
+ * Get the value of a TiffTag if it has been loaded, null otherwise.
53
+ *
54
+ * If the value is not loaded use {@link TiffImage.fetch} to load the value
55
+ * Or use {@link TiffImage.has} to check if the tag exists
56
+ *
53
57
  *
54
- * if the value is not loaded @see {CogTiffImage.fetch}
55
58
  * @returns value if loaded, null otherwise
56
59
  */
57
- value<T>(tag: TiffTag): T | null;
60
+ value<T extends keyof TiffTagType>(tag: T): TiffTagType[T] | null;
58
61
  /**
59
- * Load and unpack the GeoKeyDirectory
62
+ * Does the tag exist
60
63
  *
61
- * @see {TiffTag.GeoKeyDirectory}
64
+ * @example
65
+ * ```typescript
66
+ * img.has(TiffTag.ImageWidth) // true
67
+ * ```
68
+ *
69
+ * @param tag Tag to check
70
+ * @returns true if the tag exists, false otherwise
62
71
  */
63
- loadGeoTiffTags(): Promise<void>;
72
+ has<T extends keyof TiffTagType>(tag: T): boolean;
73
+ /**
74
+ * Load a tag.
75
+ *
76
+ * If it is not currently loaded, fetch the required data for the tag.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * await img.fetch(TiffTag.ImageWidth) // 512 (px)
81
+ * ```
82
+ *
83
+ * @param tag tag to fetch
84
+ */
85
+ fetch<T extends keyof TiffTagType>(tag: T): Promise<TiffTagType[T] | null>;
64
86
  /**
65
87
  * Get the associated TiffTagGeo
66
88
  *
@@ -70,13 +92,20 @@ export declare class CogTiffImage {
70
92
  * ```
71
93
  * @throws if {@link loadGeoTiffTags} has not been called
72
94
  */
73
- valueGeo(tag: TiffTagGeo): string | number | undefined;
95
+ valueGeo<T extends keyof TiffTagGeoType>(tag: T): TiffTagGeoType[T] | null;
74
96
  /**
75
- * Load a tag, if it is not currently loaded, fetch the required data for the tag.
97
+ * Load and parse the GDAL_NODATA Tifftag
76
98
  *
77
- * @param tag tag to fetch
99
+ * @throws if the tag is not loaded
100
+ * @returns null if the tag does not exist
78
101
  */
79
- fetch<T>(tag: TiffTag): Promise<T | null>;
102
+ get noData(): number | null;
103
+ /**
104
+ * Load and unpack the GeoKeyDirectory
105
+ *
106
+ * @see {TiffTag.GeoKeyDirectory}
107
+ */
108
+ loadGeoTiffTags(): Promise<void>;
80
109
  /**
81
110
  * Get the origin point for the image
82
111
  *
@@ -91,6 +120,12 @@ export declare class CogTiffImage {
91
120
  * @returns [x,y,z] pixel scale
92
121
  */
93
122
  get resolution(): [number, number, number];
123
+ /**
124
+ * Is this image a reduced size image
125
+ * @see {@link TiffTag.SubFileType}
126
+ * @returns true if SubFileType is Reduces image, false otherwise
127
+ */
128
+ get isSubImage(): boolean;
94
129
  /**
95
130
  * Bounding box of the image
96
131
  *
@@ -100,7 +135,7 @@ export declare class CogTiffImage {
100
135
  /**
101
136
  * Get the compression used by the tile
102
137
  *
103
- * @see {@link TiffCompression}
138
+ * @see {@link TiffCompressionMimeType}
104
139
  *
105
140
  * @returns Compression type eg webp
106
141
  */
@@ -108,6 +143,8 @@ export declare class CogTiffImage {
108
143
  /**
109
144
  * Attempt to read the EPSG Code from TiffGeoTags
110
145
  *
146
+ * looks at both TiffTagGeo.ProjectionGeoKey and TiffTagGeo.ProjectedCRSGeoKey
147
+ *
111
148
  * @returns EPSG Code if it exists
112
149
  */
113
150
  get epsg(): number | null;
@@ -124,11 +161,11 @@ export declare class CogTiffImage {
124
161
  /**
125
162
  * Get size of individual tiles
126
163
  */
127
- get tileSize(): CogTiffImageTileSize;
164
+ get tileSize(): TiffImageTileSize;
128
165
  /**
129
166
  * Number of tiles used to create this image
130
167
  */
131
- get tileCount(): CogTiffImageTiledCount;
168
+ get tileCount(): TiffImageTileCount;
132
169
  /**
133
170
  * Get the pointer to where the tiles start in the Tiff file
134
171
  *
@@ -136,7 +173,7 @@ export declare class CogTiffImage {
136
173
  *
137
174
  * @returns file offset to where the tiffs are stored
138
175
  */
139
- get tileOffset(): TagOffset;
176
+ get tileOffset(): TagOffset | TagInline<number[]>;
140
177
  /**
141
178
  * Get the number of strip's inside this tiff
142
179
  *
@@ -158,9 +195,13 @@ export declare class CogTiffImage {
158
195
  bytes: ArrayBuffer;
159
196
  } | null>;
160
197
  /** The jpeg header is stored in the IFD, read the JPEG header and adjust the byte array to include it */
161
- private getJpegHeader;
198
+ getJpegHeader(bytes: ArrayBuffer): ArrayBuffer;
162
199
  /** Read image bytes at the given offset */
163
- private getBytes;
200
+ getBytes(offset: number, byteCount: number): Promise<{
201
+ mimeType: TiffMimeType;
202
+ bytes: ArrayBuffer;
203
+ compression: Compression;
204
+ } | null>;
164
205
  /**
165
206
  * Load a tile into a ArrayBuffer
166
207
  *
@@ -172,6 +213,7 @@ export declare class CogTiffImage {
172
213
  getTile(x: number, y: number): Promise<{
173
214
  mimeType: TiffMimeType;
174
215
  bytes: ArrayBuffer;
216
+ compression: Compression;
175
217
  } | null>;
176
218
  /**
177
219
  * Does this tile exist in the tiff and does it actually have a value