@cogeotiff/cli 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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ### Dependencies
4
+
5
+ * The following workspace dependencies were updated
6
+ * dependencies
7
+ * @cogeotiff/core bumped from ^9.0.0 to ^9.0.1
8
+
9
+ ## [9.0.0](https://github.com/blacha/cogeotiff/compare/cli-v8.1.1...cli-v9.0.0) (2023-12-11)
10
+
11
+
12
+ ### ⚠ BREAKING CHANGES
13
+
14
+ * rename all type from CogTiff to just Tiff ([#1227](https://github.com/blacha/cogeotiff/issues/1227))
15
+ * modify structure of tiff tags ([#1225](https://github.com/blacha/cogeotiff/issues/1225))
16
+
17
+ ### Features
18
+
19
+ * **cli:** expose stats on tiles, empty, avg and overview size ([62bc6a7](https://github.com/blacha/cogeotiff/commit/62bc6a727615907c318fc8b4b06375b81bc17a00))
20
+ * **cli:** include file size if known ([5e90764](https://github.com/blacha/cogeotiff/commit/5e907640022953d396a14d4023633dfe8e14289e))
21
+ * color more output and add more tags ([fe4088b](https://github.com/blacha/cogeotiff/commit/fe4088b3f1f88a1248d803c29a563872aab4205c))
22
+ * export all tag value constants ([#1229](https://github.com/blacha/cogeotiff/issues/1229)) ([44757e5](https://github.com/blacha/cogeotiff/commit/44757e5ba5c98e992bb9fd72eb9993c727648b74))
23
+ * modify structure of tiff tags ([#1225](https://github.com/blacha/cogeotiff/issues/1225)) ([049e0bc](https://github.com/blacha/cogeotiff/commit/049e0bc3c4e15f8c095a3da4442ef144d372cf60))
24
+ * rename all type from CogTiff to just Tiff ([#1227](https://github.com/blacha/cogeotiff/issues/1227)) ([872263b](https://github.com/blacha/cogeotiff/commit/872263b11f1ab06853cb872de54a9d9dd745b647))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **cli:** if the tiff is fully sparse dont print NaN ([368aad2](https://github.com/blacha/cogeotiff/commit/368aad2d9ed80508195fd3700934e026d1106ed3))
30
+ * **cli:** remove console.log ([b4f22cb](https://github.com/blacha/cogeotiff/commit/b4f22cb47c3e64f523ad4955bc5389f341ada207))
31
+
32
+
33
+ ### Dependencies
34
+
35
+ * The following workspace dependencies were updated
36
+ * dependencies
37
+ * @cogeotiff/core bumped from ^8.1.1 to ^9.0.0
38
+
3
39
  ## [8.1.1](https://github.com/blacha/cogeotiff/compare/cli-v8.1.0...cli-v8.1.1) (2023-11-14)
4
40
 
5
41
 
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import * as assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+ import { AngularUnit, Compression, LinearUnit, OldSubFileType, Orientation, Photometric, PlanarConfiguration, RasterTypeKey, SampleFormat, SubFileType, } from '@cogeotiff/core';
4
+ // Ensure the tag constants are exported
5
+ describe('Exports', () => {
6
+ it('should export constants', () => {
7
+ assert.equal(Photometric.Rgb, 2);
8
+ assert.equal(SampleFormat.Float, 3);
9
+ assert.equal(RasterTypeKey.PixelIsArea, 1);
10
+ assert.equal(SubFileType.ReducedImage, 1);
11
+ assert.equal(OldSubFileType.ReducedImage, 2);
12
+ assert.equal(Compression.Lzw, 5);
13
+ assert.equal(AngularUnit.Degree, 9102);
14
+ assert.equal(LinearUnit.Metre, 9001);
15
+ assert.equal(PlanarConfiguration.Contig, 1);
16
+ assert.equal(Orientation.TopLeft, 1);
17
+ });
18
+ });
19
+ //# sourceMappingURL=exports.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__test__/exports.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,wCAAwC;AACxC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"action.util.js","sourceRoot":"","sources":["../src/action.util.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,aAAa,CAAC;AAa5B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,CAAC,KAAa,EAAE,MAAsB;QAChD,MAAM,GAAG,GAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,KAAK,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE;gBAC3B,IAAI,EAAE,IAAI,IAAI;oBAAE,SAAS;gBACzB,IAAI,EAAE,CAAC,OAAO,KAAK,KAAK;oBAAE,SAAS;gBACnC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;oBAChF,SAAS;iBACV;gBACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAChE;SACF;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"action.util.js","sourceRoot":"","sources":["../src/action.util.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,aAAa,CAAC;AAa5B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY,CAAC,KAAa,EAAE,MAAsB;QAChD,MAAM,GAAG,GAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;gBAAE,SAAS;YACtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,KAAK,CAAC,KAAK;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,EAAE,IAAI,IAAI;oBAAE,SAAS;gBACzB,IAAI,EAAE,CAAC,OAAO,KAAK,KAAK;oBAAE,SAAS;gBACnC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBACjF,SAAS;gBACX,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
package/build/bin.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // Ensure connection reuse is enabled
2
2
  process.env['AWS_NODEJS_CONNECTION_REUSE_ENABLED'] = '1';
3
+ import { otError } from '@linzjs/tracing';
3
4
  import { run } from 'cmd-ts';
4
5
  import { cmd } from './index.js';
5
6
  import { logger } from './log.js';
6
- import { otError } from '@linzjs/tracing';
7
7
  run(cmd, process.argv.slice(2)).catch((err) => {
8
8
  logger.fatal('Command:Failed', { ...otError(err) });
9
9
  logger.pino.flush();
package/build/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,GAAG,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,GAAG,GAAG,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC5C,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- interface CliTableInfo<T> {
1
+ export interface CliTableInfo<T> {
2
2
  /** Header for the table */
3
3
  name: string;
4
4
  /** Pad the field out to this width */
@@ -16,4 +16,3 @@ export declare class CliTable<T> {
16
16
  add(fields: CliTableInfo<T>): void;
17
17
  print(data: T[], rowPadding?: string): string[];
18
18
  }
19
- export {};
@@ -1,3 +1,4 @@
1
+ import c from 'ansi-colors';
1
2
  export class CliTable {
2
3
  constructor() {
3
4
  Object.defineProperty(this, "fields", {
@@ -12,14 +13,18 @@ export class CliTable {
12
13
  }
13
14
  print(data, rowPadding = '') {
14
15
  const fields = this.fields.filter((f) => data.every((d) => f.enabled?.(d) ?? true));
15
- const rows = data.map((d, index) => {
16
- const row = fields.map((f) => {
17
- const str = f.get(d, index);
18
- return (str ?? '').padEnd(f.width);
19
- });
20
- return rowPadding + row.join('\t');
21
- });
22
- rows.unshift(rowPadding + fields.map((f) => f.name.padEnd(f.width)).join('\t'));
16
+ const values = fields.map((f) => data.map((d, i) => f.get(d, i)));
17
+ const sizes = values.map((val) => val.reduce((v, c) => Math.max(v, c?.length ?? 0), 0));
18
+ const rows = [rowPadding + fields.map((f, i) => c.bold(f.name.padEnd(sizes[i] + 2))).join('\t')];
19
+ for (let i = 0; i < data.length; i++) {
20
+ const row = [];
21
+ for (let f = 0; f < fields.length; f++) {
22
+ const fValue = values[f][i];
23
+ const fSize = sizes[f];
24
+ row.push((fValue ?? '').padEnd(fSize + 2));
25
+ }
26
+ rows.push(rowPadding + row.join('\t'));
27
+ }
23
28
  return rows;
24
29
  }
25
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli.table.js","sourceRoot":"","sources":["../src/cli.table.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,QAAQ;IAArB;QACE;;;;mBAA4B,EAAE;WAAC;IAkBjC,CAAC;IAjBC,GAAG,CAAC,MAAuB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,UAAU,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,OAAO,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"cli.table.js","sourceRoot":"","sources":["../src/cli.table.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,aAAa,CAAC;AAgB5B,MAAM,OAAO,QAAQ;IAArB;QACE;;;;mBAA4B,EAAE;WAAC;IAuBjC,CAAC;IAtBC,GAAG,CAAC,MAAuB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAS,EAAE,UAAU,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExF,MAAM,IAAI,GAAa,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
- import { fsa } from '@chunkd/fs';
2
- import { CogTiff, TiffMimeType } from '@cogeotiff/core';
3
- import { command, number, option, optional, restPositionals } from 'cmd-ts';
4
1
  import { promises as fs } from 'node:fs';
5
2
  import { basename } from 'node:path';
6
3
  import { pathToFileURL } from 'node:url';
4
+ import { fsa } from '@chunkd/fs';
5
+ import { Tiff, TiffMimeType } from '@cogeotiff/core';
6
+ import { command, number, option, optional, restPositionals } from 'cmd-ts';
7
7
  import pLimit from 'p-limit';
8
8
  import { DefaultArgs, Url } from '../common.js';
9
9
  import { ensureS3fs, setupLogger } from '../log.js';
@@ -45,7 +45,7 @@ export const commandDump = command({
45
45
  if (path.protocol === 's3:')
46
46
  await ensureS3fs();
47
47
  const source = fsa.source(path);
48
- const tiff = await new CogTiff(source).init();
48
+ const tiff = await new Tiff(source).init();
49
49
  const img = tiff.images[args.image];
50
50
  if (!img.isTiled())
51
51
  throw Error(`Tiff: ${path.href} file is not tiled.`);
@@ -1 +1 @@
1
- {"version":3,"file":"dump.js","sourceRoot":"","sources":["../../src/commands/dump.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dump.js","sourceRoot":"","sources":["../../src/commands/dump.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
+ import { TiffImage } from '@cogeotiff/core';
2
+ import { CliTableInfo } from '../cli.table.js';
1
3
  export declare const commandInfo: Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
2
4
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
3
5
  path: URL | undefined;
4
6
  tags: boolean;
5
7
  fetchTags: boolean;
8
+ tileStats: boolean;
6
9
  paths: URL[];
7
10
  verbose: boolean;
8
11
  extraVerbose: boolean;
@@ -11,9 +14,11 @@ export declare const commandInfo: Partial<import("cmd-ts/dist/cjs/argparser.js")
11
14
  path: URL | undefined;
12
15
  tags: boolean;
13
16
  fetchTags: boolean;
17
+ tileStats: boolean;
14
18
  paths: URL[];
15
19
  verbose: boolean;
16
20
  extraVerbose: boolean;
17
21
  }, Promise<void>> & {
18
22
  run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<Promise<void>>>;
19
23
  } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
24
+ export declare const tiffTileStats: CliTableInfo<TiffImage>;
@@ -1,5 +1,5 @@
1
1
  import { fsa } from '@chunkd/fs';
2
- import { CogTiff, TiffTagGeo, TiffTag, TiffTagValueType, TiffVersion, toHex } from '@cogeotiff/core';
2
+ import { Tiff, TiffTag, TiffTagGeo, TiffTagValueType, TiffVersion } from '@cogeotiff/core';
3
3
  import c from 'ansi-colors';
4
4
  import { command, flag, option, optional, restPositionals } from 'cmd-ts';
5
5
  import { ActionUtil } from '../action.util.js';
@@ -7,6 +7,7 @@ import { CliTable } from '../cli.table.js';
7
7
  import { DefaultArgs, Url } from '../common.js';
8
8
  import { FetchLog } from '../fs.js';
9
9
  import { ensureS3fs, setupLogger } from '../log.js';
10
+ import { TagFormatters, TagGeoFormatters } from '../tags.js';
10
11
  import { toByteSizeString } from '../util.bytes.js';
11
12
  function round(num) {
12
13
  const opt = 10 ** 4;
@@ -19,6 +20,10 @@ export const commandInfo = command({
19
20
  path: option({ short: 'f', long: 'file', type: optional(Url) }),
20
21
  tags: flag({ short: 't', long: 'tags', description: 'Dump tiff tags' }),
21
22
  fetchTags: flag({ long: 'fetch-tags', description: 'Fetch extra tiff tag information' }),
23
+ tileStats: flag({
24
+ long: 'tile-stats',
25
+ description: 'Fetch tile information, like size [this can fetch a lot of data]',
26
+ }),
22
27
  paths: restPositionals({ type: Url, description: 'Files to process' }),
23
28
  },
24
29
  async handler(args) {
@@ -30,22 +35,35 @@ export const commandInfo = command({
30
35
  logger.debug('Tiff:load', { path: path?.href });
31
36
  FetchLog.reset();
32
37
  const source = fsa.source(path);
33
- const tiff = await new CogTiff(source).init();
38
+ const tiff = await new Tiff(source).init();
39
+ if (args.tileStats) {
40
+ await Promise.all(tiff.images.map((img) => img.fetch(TiffTag.TileByteCounts)));
41
+ TiffImageInfoTable.add(tiffTileStats);
42
+ }
34
43
  const header = [
35
44
  { key: 'Tiff type', value: `${TiffVersion[tiff.version]} (v${String(tiff.version)})` },
36
45
  {
37
46
  key: 'Bytes read',
38
47
  value: `${toByteSizeString(FetchLog.bytesRead)} (${FetchLog.fetches.length} Chunk${FetchLog.fetches.length === 1 ? '' : 's'})`,
39
48
  },
49
+ tiff.source.metadata?.size
50
+ ? {
51
+ key: 'Size',
52
+ value: toByteSizeString(tiff.source.metadata.size),
53
+ }
54
+ : null,
40
55
  ];
41
56
  const firstImage = tiff.images[0];
42
57
  const isGeoLocated = firstImage.isGeoLocated;
58
+ const compression = firstImage.value(TiffTag.Compression);
43
59
  const images = [
44
- { key: 'Compression', value: firstImage.compression },
60
+ { key: 'Compression', value: `${compression} - ${c.magenta(firstImage.compression ?? '??')}` },
45
61
  isGeoLocated ? { key: 'Origin', value: firstImage.origin.map(round).join(', ') } : null,
46
62
  isGeoLocated ? { key: 'Resolution', value: firstImage.resolution.map(round).join(', ') } : null,
47
63
  isGeoLocated ? { key: 'BoundingBox', value: firstImage.bbox.map(round).join(', ') } : null,
48
- firstImage.epsg ? { key: 'EPSG', value: `EPSG:${firstImage.epsg} (https://epsg.io/${firstImage.epsg})` } : null,
64
+ firstImage.epsg
65
+ ? { key: 'EPSG', value: `EPSG:${firstImage.epsg} ${c.underline('https://epsg.io/' + firstImage.epsg)}` }
66
+ : null,
49
67
  { key: 'Images', value: '\n' + TiffImageInfoTable.print(tiff.images, '\t').join('\n') },
50
68
  ];
51
69
  const ghostOptions = [...(tiff.options?.options.entries() ?? [])];
@@ -110,7 +128,13 @@ TiffImageInfoTable.add({
110
128
  TiffImageInfoTable.add({
111
129
  name: 'Tile Count',
112
130
  width: 20,
113
- get: (i) => `${i.tileCount.x}x${i.tileCount.y} (${i.tileCount.x * i.tileCount.y})`,
131
+ get: (i) => {
132
+ let tileCount = i.tileCount.x * i.tileCount.y;
133
+ const offsets = i.value(TiffTag.TileByteCounts) ?? i.value(TiffTag.TileOffsets);
134
+ if (offsets)
135
+ tileCount = offsets.length;
136
+ return `${i.tileCount.x}x${i.tileCount.y} (${tileCount})`;
137
+ },
114
138
  enabled: (i) => i.isTiled(),
115
139
  });
116
140
  TiffImageInfoTable.add({
@@ -136,6 +160,31 @@ TiffImageInfoTable.add({
136
160
  return formats.size > 1;
137
161
  },
138
162
  });
163
+ export const tiffTileStats = {
164
+ name: 'Tile Stats',
165
+ width: 20,
166
+ get: (i) => {
167
+ const sizes = i.value(TiffTag.TileByteCounts);
168
+ if (sizes == null)
169
+ return 'N/A';
170
+ const stats = {
171
+ size: 0,
172
+ empty: 0,
173
+ };
174
+ for (const st of sizes) {
175
+ if (st === 0)
176
+ stats.empty++;
177
+ console.log(st, stats);
178
+ stats.size += st;
179
+ }
180
+ if (stats.size === 0)
181
+ return `${c.red('empty')} x${stats.empty}`;
182
+ const empty = stats.empty > 0 ? ` (${c.red('empty')} x${stats.empty})` : '';
183
+ const avg = stats.size === 0 ? 0 : stats.size / (sizes.length - stats.empty);
184
+ return toByteSizeString(stats.size) + ` (${c.blue('avg:')} ${toByteSizeString(avg)})` + empty;
185
+ },
186
+ enabled: () => true,
187
+ };
139
188
  /**
140
189
  * Parse out the GDAL Metadata to be more friendly to read
141
190
  *
@@ -158,26 +207,37 @@ function parseGdalMetadata(img) {
158
207
  function formatTag(tag) {
159
208
  const tagName = TiffTag[tag.id];
160
209
  const tagDebug = `(${TiffTagValueType[tag.dataType]}${tag.count > 1 ? ' x' + tag.count : ''}`;
161
- const key = `${c.dim(toHex(tag.id)).padEnd(7, ' ')} ${String(tagName)} ${c.dim(tagDebug)})`.padEnd(50, ' ');
210
+ const key = `${c.dim(String(tag.id)).padEnd(7, ' ')} ${String(tagName)} ${c.dim(tagDebug)})`.padEnd(52, ' ');
211
+ let complexType = '';
162
212
  // Array of values that is not a string!
163
213
  if (tag.count > 1 && tag.dataType !== TiffTagValueType.Ascii) {
164
214
  if (tag.value == null || tag.isLoaded === false) {
165
215
  return { key, value: c.dim('Tag not Loaded, use --fetch-tags to force load') };
166
216
  }
167
217
  const val = [...tag.value]; // Ensure the value is not a TypedArray
168
- return { key, value: val.length > 25 ? val.slice(0, 25).join(', ') + '...' : val.join(', ') };
218
+ if (TagFormatters[tag.id]) {
219
+ complexType = ` - ${c.magenta(TagFormatters[tag.id](val) ?? '??')}`;
220
+ }
221
+ return { key, value: (val.length > 25 ? val.slice(0, 25).join(', ') + '...' : val.join(', ')) + complexType };
169
222
  }
170
223
  let tagString = JSON.stringify(tag.value) ?? c.dim('null');
171
224
  if (tagString.length > 256)
172
225
  tagString = tagString.slice(0, 250) + '...';
173
- return { key, value: tagString };
226
+ if (TagFormatters[tag.id]) {
227
+ complexType = ` - ${c.magenta(TagFormatters[tag.id]([tag.value]) ?? '??')}`;
228
+ }
229
+ return { key, value: tagString + complexType };
174
230
  }
175
231
  function formatGeoTag(tagId, value) {
176
232
  const tagName = TiffTagGeo[tagId];
177
- const key = `${c.dim(toHex(tagId)).padEnd(7, ' ')} ${String(tagName).padEnd(30)}`;
233
+ const key = `${c.dim(String(tagId)).padEnd(7, ' ')} ${String(tagName).padEnd(30)}`;
234
+ let complexType = '';
235
+ if (TagGeoFormatters[tagId]) {
236
+ complexType = ` - ${c.magenta(TagGeoFormatters[tagId]([value]) ?? '??')}`;
237
+ }
178
238
  let tagString = JSON.stringify(value) ?? c.dim('null');
179
239
  if (tagString.length > 256)
180
240
  tagString = tagString.slice(0, 250) + '...';
181
- return { key, value: tagString };
241
+ return { key, value: tagString + complexType };
182
242
  }
183
243
  //# sourceMappingURL=info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,IAAI,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAE9G,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO;IACP,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAsB;IACpC,KAAK,CAAC,IAAI,CAAC,CAAS;QAClB,IAAI;YACF,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;SACnB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;SACzB;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAE9G,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,OAAO;IACP,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAsB;IACpC,KAAK,CAAC,IAAI,CAAC,CAAS;QAClB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;CACF,CAAC"}
package/build/fs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAsF;IACzG,IAAI,EAAE,YAAY;IAClB,KAAK,CAAC,GAAkB,EAAE,IAAoB;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAsF;IACzG,IAAI,EAAE,YAAY;IAClB,KAAK,CAAC,GAAkB,EAAE,IAAoB;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,CAAC;CACb,CAAC"}
package/build/index.d.ts CHANGED
@@ -1,57 +1,59 @@
1
1
  export declare const cmd: Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
2
2
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
3
- command: "info";
3
+ command: "dump";
4
4
  args: {
5
5
  path: URL | undefined;
6
- tags: boolean;
7
- fetchTags: boolean;
6
+ image: number;
7
+ output: URL | undefined;
8
8
  paths: URL[];
9
9
  verbose: boolean;
10
10
  extraVerbose: boolean;
11
11
  };
12
12
  } | {
13
- command: "dump";
13
+ command: "info";
14
14
  args: {
15
15
  path: URL | undefined;
16
- image: number;
17
- output: URL | undefined;
16
+ tags: boolean;
17
+ fetchTags: boolean;
18
+ tileStats: boolean;
18
19
  paths: URL[];
19
20
  verbose: boolean;
20
21
  extraVerbose: boolean;
21
22
  };
22
23
  }>>;
23
24
  } & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
24
- command: "info";
25
+ command: "dump";
25
26
  args: {
26
27
  path: URL | undefined;
27
- tags: boolean;
28
- fetchTags: boolean;
28
+ image: number;
29
+ output: URL | undefined;
29
30
  paths: URL[];
30
31
  verbose: boolean;
31
32
  extraVerbose: boolean;
32
33
  };
33
34
  } | {
34
- command: "dump";
35
+ command: "info";
35
36
  args: {
36
37
  path: URL | undefined;
37
- image: number;
38
- output: URL | undefined;
38
+ tags: boolean;
39
+ fetchTags: boolean;
40
+ tileStats: boolean;
39
41
  paths: URL[];
40
42
  verbose: boolean;
41
43
  extraVerbose: boolean;
42
44
  };
43
45
  }, {
44
- command: "info";
46
+ command: "dump";
45
47
  value: Promise<void>;
46
48
  } | {
47
- command: "dump";
49
+ command: "info";
48
50
  value: Promise<void>;
49
51
  }> & {
50
52
  run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
51
- command: "info";
53
+ command: "dump";
52
54
  value: Promise<void>;
53
55
  } | {
54
- command: "dump";
56
+ command: "info";
55
57
  value: Promise<void>;
56
58
  }>>;
57
59
  };
package/build/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { subcommands } from 'cmd-ts';
2
- import { commandInfo } from './commands/info.js';
3
2
  import { commandDump } from './commands/dump.js';
3
+ import { commandInfo } from './commands/info.js';
4
4
  export const cmd = subcommands({
5
5
  name: 'cogeotiff',
6
6
  description: 'COG utilities',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC;IAC7B,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KAClB;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC;IAC7B,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,eAAe;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;KAClB;CACF,CAAC,CAAC"}
package/build/log.js CHANGED
@@ -1,4 +1,4 @@
1
- import { FsHttp, fsa } from '@chunkd/fs';
1
+ import { fsa, FsHttp } from '@chunkd/fs';
2
2
  import { SourceCache, SourceChunk } from '@chunkd/middleware';
3
3
  import { log } from '@linzjs/tracing';
4
4
  import { FetchLog } from './fs.js';
package/build/log.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAEhE,MAAM,UAAU,WAAW,CAAC,GAAkD;IAC5E,IAAI,GAAG,CAAC,OAAO,EAAE;QACf,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;KACrB;SAAM,IAAI,GAAG,CAAC,YAAY,EAAE;QAC3B,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;KACrB;SAAM;QACL,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;KACpB;IAED,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IACtC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IAEvC,sCAAsC;IACtC,sCAAsC;IACtC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,0CAA0C;IAC1C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAE1B,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO;IAE/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/C,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAEhE,MAAM,UAAU,WAAW,CAAC,GAAkD;IAC5E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;IACtB,CAAC;SAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IACtC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;IAEvC,sCAAsC;IACtC,sCAAsC;IACtC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjC,0CAA0C;IAC1C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEjC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;AAE1B,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO;IAE/D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/C,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Convert enum values back to strings */
2
+ export declare const TagGeoFormatters: Record<number, (v: number | number[]) => string>;
3
+ export declare const TagFormatters: Record<number, (v: number | number[]) => string>;
package/build/tags.js ADDED
@@ -0,0 +1,25 @@
1
+ import { AngularUnit, Compression, LinearUnit, ModelTypeCode, Orientation, Photometric, PlanarConfiguration, RasterTypeKey, SampleFormat, SubFileType, TiffTag, TiffTagGeo, } from '@cogeotiff/core';
2
+ /** Convert enum values back to strings */
3
+ export const TagGeoFormatters = {
4
+ [TiffTagGeo.GTRasterTypeGeoKey]: (v) => RasterTypeKey[v],
5
+ [TiffTagGeo.GTModelTypeGeoKey]: (v) => ModelTypeCode[v],
6
+ [TiffTagGeo.GeogAngularUnitsGeoKey]: (v) => AngularUnit[v],
7
+ [TiffTagGeo.ProjLinearUnitsGeoKey]: (v) => LinearUnit[v],
8
+ [TiffTagGeo.VerticalUnitsGeoKey]: (v) => LinearUnit[v],
9
+ };
10
+ export const TagFormatters = {
11
+ [TiffTag.LercParameters]: (value) => {
12
+ return `v${value[0]} - ${Compression[value[1]] ?? '??'}`;
13
+ },
14
+ [TiffTag.SubFileType]: (value) => SubFileType[value],
15
+ [TiffTag.Compression]: (value) => Compression[value],
16
+ [TiffTag.Orientation]: (value) => Orientation[value],
17
+ [TiffTag.SampleFormat]: (value) => {
18
+ return value.map((m) => SampleFormat[m]).join(', ');
19
+ },
20
+ [TiffTag.Photometric]: (value) => Photometric[value],
21
+ [TiffTag.PlanarConfiguration]: (value) => {
22
+ return PlanarConfiguration[value];
23
+ },
24
+ };
25
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACP,UAAU,GAGX,MAAM,iBAAiB,CAAC;AAEzB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAgD,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACvG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAA+C,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IACrG,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAoD,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7G,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAmD,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1G,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAiD,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;CACnD,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,KAA0C,EAAU,EAAE;QAC/E,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAuC,EAAU,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9F,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAuC,EAAU,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9F,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAuC,EAAU,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9F,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,KAAwC,EAAU,EAAE;QAC3E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAuC,EAAU,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;IAC9F,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAA+C,EAAU,EAAE;QACzF,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;CACkD,CAAC"}
@@ -7,6 +7,8 @@ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
7
7
  * @param bytes byte count to convert
8
8
  */
9
9
  export function toByteSizeString(bytes) {
10
+ if (bytes === 0)
11
+ return '0';
10
12
  if (bytes === 1)
11
13
  return '1 Byte';
12
14
  const i = Math.floor(Math.log(bytes) / Math.log(1024));
@@ -1 +1 @@
1
- {"version":3,"file":"util.bytes.js","sourceRoot":"","sources":["../src/util.bytes.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;IACxD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"util.bytes.js","sourceRoot":"","sources":["../src/util.bytes.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;IACxD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;AACzD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CogTiff } from '@cogeotiff/core';
1
+ import { Tiff } from '@cogeotiff/core';
2
2
  import { log } from '@linzjs/tracing';
3
3
  /**
4
4
  * Get a human readable tile name
@@ -11,4 +11,4 @@ import { log } from '@linzjs/tracing';
11
11
  * @returns tile name eg `001_002_12.png`
12
12
  */
13
13
  export declare function getTileName(mimeType: string, index: number, x: number, y: number): string;
14
- export declare function writeTile(tiff: CogTiff, x: number, y: number, index: number, outputPath: URL, logger: typeof log): Promise<string | null>;
14
+ export declare function writeTile(tiff: Tiff, x: number, y: number, index: number, outputPath: URL, logger: typeof log): Promise<string | null>;
@@ -1,8 +1,8 @@
1
- import { TiffMimeType } from '@cogeotiff/core';
2
1
  import { promises as fs } from 'node:fs';
2
+ import { TiffMimeType } from '@cogeotiff/core';
3
3
  const FileExtension = {
4
4
  [TiffMimeType.Jpeg]: 'jpeg',
5
- [TiffMimeType.Jp2]: 'jp2',
5
+ [TiffMimeType.Jp2000]: 'jp2',
6
6
  [TiffMimeType.Webp]: 'webp',
7
7
  [TiffMimeType.Lzw]: 'lzw',
8
8
  [TiffMimeType.Deflate]: 'deflate',
@@ -1 +1 @@
1
- {"version":3,"file":"util.tile.js","sourceRoot":"","sources":["../src/util.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,aAAa,GAA2B;IAC5C,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK;IAC1B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM;IAC7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS;IAC/E,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IACrD,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAa,EACb,CAAS,EACT,CAAS,EACT,KAAa,EACb,UAAe,EACf,MAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,IAAI,IAAI,EAAE;QAChB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;KACb;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAClH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"util.tile.js","sourceRoot":"","sources":["../src/util.tile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAQ,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,aAAa,GAA2B;IAC5C,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK;IAC5B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,KAAK;IACzB,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,SAAS;IACjC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK;IAC1B,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM;IAC7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;CAC5B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS;IAC/E,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;IACrD,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAAU,EACV,CAAS,EACT,CAAS,EACT,KAAa,EACb,UAAe,EACf,MAAkB;IAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAClH,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cogeotiff/cli",
3
- "version": "8.1.1",
3
+ "version": "9.0.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/blacha/cogeotiff.git",
@@ -21,7 +21,7 @@
21
21
  "@chunkd/fs-aws": "^11.0.2",
22
22
  "@chunkd/middleware": "^11.0.0",
23
23
  "@chunkd/source": "^11.0.0",
24
- "@cogeotiff/core": "^8.1.1",
24
+ "@cogeotiff/core": "^9.0.1",
25
25
  "@linzjs/tracing": "^1.1.1",
26
26
  "ansi-colors": "^4.1.1",
27
27
  "cmd-ts": "^0.13.0",
@@ -35,5 +35,5 @@
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "b4fa67e6a7886c8fff3528ce86a6db10f4063fb2"
38
+ "gitHead": "3510f888dc53ecf73e2d522ace1f6eccb258cacb"
39
39
  }
@@ -0,0 +1,31 @@
1
+ import * as assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+
4
+ import {
5
+ AngularUnit,
6
+ Compression,
7
+ LinearUnit,
8
+ OldSubFileType,
9
+ Orientation,
10
+ Photometric,
11
+ PlanarConfiguration,
12
+ RasterTypeKey,
13
+ SampleFormat,
14
+ SubFileType,
15
+ } from '@cogeotiff/core';
16
+
17
+ // Ensure the tag constants are exported
18
+ describe('Exports', () => {
19
+ it('should export constants', () => {
20
+ assert.equal(Photometric.Rgb, 2);
21
+ assert.equal(SampleFormat.Float, 3);
22
+ assert.equal(RasterTypeKey.PixelIsArea, 1);
23
+ assert.equal(SubFileType.ReducedImage, 1);
24
+ assert.equal(OldSubFileType.ReducedImage, 2);
25
+ assert.equal(Compression.Lzw, 5);
26
+ assert.equal(AngularUnit.Degree, 9102);
27
+ assert.equal(LinearUnit.Metre, 9001);
28
+ assert.equal(PlanarConfiguration.Contig, 1);
29
+ assert.equal(Orientation.TopLeft, 1);
30
+ });
31
+ });
package/src/bin.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  // Ensure connection reuse is enabled
2
2
  process.env['AWS_NODEJS_CONNECTION_REUSE_ENABLED'] = '1';
3
3
 
4
+ import { otError } from '@linzjs/tracing';
4
5
  import { run } from 'cmd-ts';
6
+
5
7
  import { cmd } from './index.js';
6
8
  import { logger } from './log.js';
7
- import { otError } from '@linzjs/tracing';
8
9
 
9
10
  run(cmd, process.argv.slice(2)).catch((err) => {
10
11
  logger.fatal('Command:Failed', { ...otError(err) });
package/src/cli.table.ts CHANGED
@@ -1,4 +1,6 @@
1
- interface CliTableInfo<T> {
1
+ import c from 'ansi-colors';
2
+
3
+ export interface CliTableInfo<T> {
2
4
  /** Header for the table */
3
5
  name: string;
4
6
  /** Pad the field out to this width */
@@ -20,15 +22,20 @@ export class CliTable<T> {
20
22
 
21
23
  print(data: T[], rowPadding = ''): string[] {
22
24
  const fields = this.fields.filter((f) => data.every((d) => f.enabled?.(d) ?? true));
23
- const rows = data.map((d, index) => {
24
- const row = fields.map((f) => {
25
- const str = f.get(d, index);
26
- return (str ?? '').padEnd(f.width);
27
- });
28
- return rowPadding + row.join('\t');
29
- });
25
+ const values = fields.map((f) => data.map((d, i) => f.get(d, i)));
26
+ const sizes = values.map((val) => val.reduce((v, c) => Math.max(v, c?.length ?? 0), 0));
27
+
28
+ const rows: string[] = [rowPadding + fields.map((f, i) => c.bold(f.name.padEnd(sizes[i] + 2))).join('\t')];
29
+ for (let i = 0; i < data.length; i++) {
30
+ const row: string[] = [];
31
+ for (let f = 0; f < fields.length; f++) {
32
+ const fValue = values[f][i];
33
+ const fSize = sizes[f];
34
+ row.push((fValue ?? '').padEnd(fSize + 2));
35
+ }
36
+ rows.push(rowPadding + row.join('\t'));
37
+ }
30
38
 
31
- rows.unshift(rowPadding + fields.map((f) => f.name.padEnd(f.width)).join('\t'));
32
39
  return rows;
33
40
  }
34
41
  }
@@ -1,11 +1,13 @@
1
- import { fsa } from '@chunkd/fs';
2
- import { CogTiff, TiffMimeType } from '@cogeotiff/core';
3
- import { log } from '@linzjs/tracing';
4
- import { command, number, option, optional, restPositionals } from 'cmd-ts';
5
1
  import { promises as fs } from 'node:fs';
6
2
  import { basename } from 'node:path';
7
3
  import { pathToFileURL } from 'node:url';
4
+
5
+ import { fsa } from '@chunkd/fs';
6
+ import { Tiff, TiffMimeType } from '@cogeotiff/core';
7
+ import { log } from '@linzjs/tracing';
8
+ import { command, number, option, optional, restPositionals } from 'cmd-ts';
8
9
  import pLimit from 'p-limit';
10
+
9
11
  import { DefaultArgs, Url } from '../common.js';
10
12
  import { ensureS3fs, setupLogger } from '../log.js';
11
13
  import { getTileName, writeTile } from '../util.tile.js';
@@ -57,7 +59,7 @@ export const commandDump = command({
57
59
  if (path == null) continue;
58
60
  if (path.protocol === 's3:') await ensureS3fs();
59
61
  const source = fsa.source(path);
60
- const tiff = await new CogTiff(source).init();
62
+ const tiff = await new Tiff(source).init();
61
63
  const img = tiff.images[args.image];
62
64
  if (!img.isTiled()) throw Error(`Tiff: ${path.href} file is not tiled.`);
63
65
  const output = new URL(`${basename(path.href)}-i${args.image}/`, args.output ?? cwd);
@@ -69,7 +71,7 @@ export const commandDump = command({
69
71
  },
70
72
  });
71
73
 
72
- async function dumpBounds(tiff: CogTiff, target: URL, index: number): Promise<void> {
74
+ async function dumpBounds(tiff: Tiff, target: URL, index: number): Promise<void> {
73
75
  const img = tiff.images[index];
74
76
  if (!img.isTiled() || !img.isGeoLocated) return;
75
77
 
@@ -113,7 +115,7 @@ async function dumpBounds(tiff: CogTiff, target: URL, index: number): Promise<vo
113
115
  await fs.writeFile(new URL(`i${index}.bounds.geojson`, target), JSON.stringify(featureCollection, null, 2));
114
116
  }
115
117
 
116
- async function dumpTiles(tiff: CogTiff, target: URL, index: number, logger: typeof log): Promise<number> {
118
+ async function dumpTiles(tiff: Tiff, target: URL, index: number, logger: typeof log): Promise<number> {
117
119
  const promises: Promise<string | null>[] = [];
118
120
  const img = tiff.images[index];
119
121
  if (!img.isTiled()) return 0;
@@ -1,13 +1,14 @@
1
1
  import { fsa } from '@chunkd/fs';
2
- import { CogTiff, Tag, TiffTagGeo, TiffTag, TiffTagValueType, TiffVersion, toHex, TagOffset } from '@cogeotiff/core';
3
- import { CogTiffImage } from '@cogeotiff/core/src/cog.tiff.image.js';
2
+ import { Tag, TagOffset, Tiff, TiffImage, TiffTag, TiffTagGeo, TiffTagValueType, TiffVersion } from '@cogeotiff/core';
4
3
  import c from 'ansi-colors';
5
4
  import { command, flag, option, optional, restPositionals } from 'cmd-ts';
5
+
6
6
  import { ActionUtil, CliResultMap } from '../action.util.js';
7
- import { CliTable } from '../cli.table.js';
7
+ import { CliTable, CliTableInfo } from '../cli.table.js';
8
8
  import { DefaultArgs, Url } from '../common.js';
9
9
  import { FetchLog } from '../fs.js';
10
10
  import { ensureS3fs, setupLogger } from '../log.js';
11
+ import { TagFormatters, TagGeoFormatters } from '../tags.js';
11
12
  import { toByteSizeString } from '../util.bytes.js';
12
13
 
13
14
  function round(num: number): number {
@@ -22,6 +23,10 @@ export const commandInfo = command({
22
23
  path: option({ short: 'f', long: 'file', type: optional(Url) }),
23
24
  tags: flag({ short: 't', long: 'tags', description: 'Dump tiff tags' }),
24
25
  fetchTags: flag({ long: 'fetch-tags', description: 'Fetch extra tiff tag information' }),
26
+ tileStats: flag({
27
+ long: 'tile-stats',
28
+ description: 'Fetch tile information, like size [this can fetch a lot of data]',
29
+ }),
25
30
  paths: restPositionals({ type: Url, description: 'Files to process' }),
26
31
  },
27
32
  async handler(args) {
@@ -34,7 +39,12 @@ export const commandInfo = command({
34
39
  FetchLog.reset();
35
40
 
36
41
  const source = fsa.source(path);
37
- const tiff = await new CogTiff(source).init();
42
+ const tiff = await new Tiff(source).init();
43
+
44
+ if (args.tileStats) {
45
+ await Promise.all(tiff.images.map((img) => img.fetch(TiffTag.TileByteCounts)));
46
+ TiffImageInfoTable.add(tiffTileStats);
47
+ }
38
48
 
39
49
  const header = [
40
50
  { key: 'Tiff type', value: `${TiffVersion[tiff.version]} (v${String(tiff.version)})` },
@@ -44,16 +54,25 @@ export const commandInfo = command({
44
54
  FetchLog.fetches.length === 1 ? '' : 's'
45
55
  })`,
46
56
  },
57
+ tiff.source.metadata?.size
58
+ ? {
59
+ key: 'Size',
60
+ value: toByteSizeString(tiff.source.metadata.size),
61
+ }
62
+ : null,
47
63
  ];
48
64
 
49
65
  const firstImage = tiff.images[0];
50
66
  const isGeoLocated = firstImage.isGeoLocated;
67
+ const compression = firstImage.value(TiffTag.Compression);
51
68
  const images = [
52
- { key: 'Compression', value: firstImage.compression },
69
+ { key: 'Compression', value: `${compression} - ${c.magenta(firstImage.compression ?? '??')}` },
53
70
  isGeoLocated ? { key: 'Origin', value: firstImage.origin.map(round).join(', ') } : null,
54
71
  isGeoLocated ? { key: 'Resolution', value: firstImage.resolution.map(round).join(', ') } : null,
55
72
  isGeoLocated ? { key: 'BoundingBox', value: firstImage.bbox.map(round).join(', ') } : null,
56
- firstImage.epsg ? { key: 'EPSG', value: `EPSG:${firstImage.epsg} (https://epsg.io/${firstImage.epsg})` } : null,
73
+ firstImage.epsg
74
+ ? { key: 'EPSG', value: `EPSG:${firstImage.epsg} ${c.underline('https://epsg.io/' + firstImage.epsg)}` }
75
+ : null,
57
76
  { key: 'Images', value: '\n' + TiffImageInfoTable.print(tiff.images, '\t').join('\n') },
58
77
  ];
59
78
 
@@ -112,7 +131,7 @@ export const commandInfo = command({
112
131
  },
113
132
  });
114
133
 
115
- const TiffImageInfoTable = new CliTable<CogTiffImage>();
134
+ const TiffImageInfoTable = new CliTable<TiffImage>();
116
135
  TiffImageInfoTable.add({ name: 'Id', width: 4, get: (_i, index) => String(index) });
117
136
  TiffImageInfoTable.add({ name: 'Size', width: 20, get: (i) => `${i.size.width}x${i.size.height}` });
118
137
  TiffImageInfoTable.add({
@@ -124,7 +143,13 @@ TiffImageInfoTable.add({
124
143
  TiffImageInfoTable.add({
125
144
  name: 'Tile Count',
126
145
  width: 20,
127
- get: (i) => `${i.tileCount.x}x${i.tileCount.y} (${i.tileCount.x * i.tileCount.y})`,
146
+ get: (i) => {
147
+ let tileCount = i.tileCount.x * i.tileCount.y;
148
+ const offsets = i.value(TiffTag.TileByteCounts) ?? i.value(TiffTag.TileOffsets);
149
+ if (offsets) tileCount = offsets.length;
150
+
151
+ return `${i.tileCount.x}x${i.tileCount.y} (${tileCount})`;
152
+ },
128
153
  enabled: (i) => i.isTiled(),
129
154
  });
130
155
  TiffImageInfoTable.add({
@@ -152,13 +177,39 @@ TiffImageInfoTable.add({
152
177
  },
153
178
  });
154
179
 
180
+ export const tiffTileStats: CliTableInfo<TiffImage> = {
181
+ name: 'Tile Stats',
182
+ width: 20,
183
+ get: (i) => {
184
+ const sizes = i.value(TiffTag.TileByteCounts);
185
+ if (sizes == null) return 'N/A';
186
+
187
+ const stats = {
188
+ size: 0,
189
+ empty: 0,
190
+ };
191
+ for (const st of sizes) {
192
+ if (st === 0) stats.empty++;
193
+ console.log(st, stats);
194
+ stats.size += st;
195
+ }
196
+ if (stats.size === 0) return `${c.red('empty')} x${stats.empty}`;
197
+
198
+ const empty = stats.empty > 0 ? ` (${c.red('empty')} x${stats.empty})` : '';
199
+
200
+ const avg = stats.size === 0 ? 0 : stats.size / (sizes.length - stats.empty);
201
+ return toByteSizeString(stats.size) + ` (${c.blue('avg:')} ${toByteSizeString(avg)})` + empty;
202
+ },
203
+ enabled: () => true,
204
+ };
205
+
155
206
  /**
156
207
  * Parse out the GDAL Metadata to be more friendly to read
157
208
  *
158
209
  * TODO using a XML Parser will make this even better
159
210
  * @param img
160
211
  */
161
- function parseGdalMetadata(img: CogTiffImage): string[] | null {
212
+ function parseGdalMetadata(img: TiffImage): string[] | null {
162
213
  const metadata = img.value(TiffTag.GdalMetadata);
163
214
  if (typeof metadata !== 'string') return null;
164
215
  if (!metadata.startsWith('<GDALMetadata>')) return null;
@@ -173,27 +224,39 @@ function parseGdalMetadata(img: CogTiffImage): string[] | null {
173
224
  function formatTag(tag: Tag): { key: string; value: string } {
174
225
  const tagName = TiffTag[tag.id];
175
226
  const tagDebug = `(${TiffTagValueType[tag.dataType]}${tag.count > 1 ? ' x' + tag.count : ''}`;
176
- const key = `${c.dim(toHex(tag.id)).padEnd(7, ' ')} ${String(tagName)} ${c.dim(tagDebug)})`.padEnd(50, ' ');
227
+ const key = `${c.dim(String(tag.id)).padEnd(7, ' ')} ${String(tagName)} ${c.dim(tagDebug)})`.padEnd(52, ' ');
177
228
 
229
+ let complexType = '';
178
230
  // Array of values that is not a string!
179
231
  if (tag.count > 1 && tag.dataType !== TiffTagValueType.Ascii) {
180
232
  if (tag.value == null || (tag as TagOffset).isLoaded === false) {
181
233
  return { key, value: c.dim('Tag not Loaded, use --fetch-tags to force load') };
182
234
  }
183
235
  const val = [...(tag.value as number[])]; // Ensure the value is not a TypedArray
184
- return { key, value: val.length > 25 ? val.slice(0, 25).join(', ') + '...' : val.join(', ') };
236
+ if (TagFormatters[tag.id]) {
237
+ complexType = ` - ${c.magenta(TagFormatters[tag.id](val) ?? '??')}`;
238
+ }
239
+ return { key, value: (val.length > 25 ? val.slice(0, 25).join(', ') + '...' : val.join(', ')) + complexType };
185
240
  }
186
241
 
187
242
  let tagString = JSON.stringify(tag.value) ?? c.dim('null');
188
243
  if (tagString.length > 256) tagString = tagString.slice(0, 250) + '...';
189
- return { key, value: tagString };
244
+ if (TagFormatters[tag.id]) {
245
+ complexType = ` - ${c.magenta(TagFormatters[tag.id]([tag.value as unknown as number]) ?? '??')}`;
246
+ }
247
+ return { key, value: tagString + complexType };
190
248
  }
191
249
 
192
- function formatGeoTag(tagId: TiffTagGeo, value: string | number): { key: string; value: string } {
250
+ function formatGeoTag(tagId: TiffTagGeo, value: string | number | number[]): { key: string; value: string } {
193
251
  const tagName = TiffTagGeo[tagId];
194
- const key = `${c.dim(toHex(tagId)).padEnd(7, ' ')} ${String(tagName).padEnd(30)}`;
252
+ const key = `${c.dim(String(tagId)).padEnd(7, ' ')} ${String(tagName).padEnd(30)}`;
253
+
254
+ let complexType = '';
255
+ if (TagGeoFormatters[tagId]) {
256
+ complexType = ` - ${c.magenta(TagGeoFormatters[tagId]([value as unknown as number]) ?? '??')}`;
257
+ }
195
258
 
196
259
  let tagString = JSON.stringify(value) ?? c.dim('null');
197
260
  if (tagString.length > 256) tagString = tagString.slice(0, 250) + '...';
198
- return { key, value: tagString };
261
+ return { key, value: tagString + complexType };
199
262
  }
package/src/common.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Type, flag } from 'cmd-ts';
1
+ import { flag, Type } from 'cmd-ts';
2
2
  import { pathToFileURL } from 'url';
3
3
 
4
4
  export const verbose = flag({ long: 'verbose', description: 'Verbose logging', short: 'v' });
package/src/fs.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { SourceCallback, SourceMiddleware, SourceRequest } from '@chunkd/source';
2
+
2
3
  import { logger } from './log.js';
3
4
 
4
5
  export const FetchLog: SourceMiddleware & { reset(): void; fetches: SourceRequest[]; bytesRead: number } = {
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { subcommands } from 'cmd-ts';
2
- import { commandInfo } from './commands/info.js';
2
+
3
3
  import { commandDump } from './commands/dump.js';
4
+ import { commandInfo } from './commands/info.js';
4
5
 
5
6
  export const cmd = subcommands({
6
7
  name: 'cogeotiff',
package/src/log.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { FsHttp, fsa } from '@chunkd/fs';
1
+ import { fsa, FsHttp } from '@chunkd/fs';
2
2
  import { SourceCache, SourceChunk } from '@chunkd/middleware';
3
3
  import { log } from '@linzjs/tracing';
4
+
4
5
  import { FetchLog } from './fs.js';
5
6
 
6
7
  // Cache the last 10MB of chunks for reuse
package/src/tags.ts ADDED
@@ -0,0 +1,41 @@
1
+ import {
2
+ AngularUnit,
3
+ Compression,
4
+ LinearUnit,
5
+ ModelTypeCode,
6
+ Orientation,
7
+ Photometric,
8
+ PlanarConfiguration,
9
+ RasterTypeKey,
10
+ SampleFormat,
11
+ SubFileType,
12
+ TiffTag,
13
+ TiffTagGeo,
14
+ TiffTagGeoType,
15
+ TiffTagType,
16
+ } from '@cogeotiff/core';
17
+
18
+ /** Convert enum values back to strings */
19
+ export const TagGeoFormatters = {
20
+ [TiffTagGeo.GTRasterTypeGeoKey]: (v: TiffTagGeoType[TiffTagGeo.GTRasterTypeGeoKey]) => RasterTypeKey[v],
21
+ [TiffTagGeo.GTModelTypeGeoKey]: (v: TiffTagGeoType[TiffTagGeo.GTModelTypeGeoKey]) => ModelTypeCode[v],
22
+ [TiffTagGeo.GeogAngularUnitsGeoKey]: (v: TiffTagGeoType[TiffTagGeo.GeogAngularUnitsGeoKey]) => AngularUnit[v],
23
+ [TiffTagGeo.ProjLinearUnitsGeoKey]: (v: TiffTagGeoType[TiffTagGeo.ProjLinearUnitsGeoKey]) => LinearUnit[v],
24
+ [TiffTagGeo.VerticalUnitsGeoKey]: (v: TiffTagGeoType[TiffTagGeo.VerticalUnitsGeoKey]) => LinearUnit[v],
25
+ } as Record<number, (v: number | number[]) => string>;
26
+
27
+ export const TagFormatters = {
28
+ [TiffTag.LercParameters]: (value: TiffTagType[TiffTag.LercParameters]): string => {
29
+ return `v${value[0]} - ${Compression[value[1]] ?? '??'}`;
30
+ },
31
+ [TiffTag.SubFileType]: (value: TiffTagType[TiffTag.SubFileType]): string => SubFileType[value],
32
+ [TiffTag.Compression]: (value: TiffTagType[TiffTag.Compression]): string => Compression[value],
33
+ [TiffTag.Orientation]: (value: TiffTagType[TiffTag.Orientation]): string => Orientation[value],
34
+ [TiffTag.SampleFormat]: (value: TiffTagType[TiffTag.SampleFormat]): string => {
35
+ return value.map((m) => SampleFormat[m]).join(', ');
36
+ },
37
+ [TiffTag.Photometric]: (value: TiffTagType[TiffTag.Photometric]): string => Photometric[value],
38
+ [TiffTag.PlanarConfiguration]: (value: TiffTagType[TiffTag.PlanarConfiguration]): string => {
39
+ return PlanarConfiguration[value];
40
+ },
41
+ } as Record<number, (v: number | number[]) => string>;
package/src/util.bytes.ts CHANGED
@@ -8,6 +8,7 @@ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
8
8
  * @param bytes byte count to convert
9
9
  */
10
10
  export function toByteSizeString(bytes: number): string {
11
+ if (bytes === 0) return '0';
11
12
  if (bytes === 1) return '1 Byte';
12
13
  const i = Math.floor(Math.log(bytes) / Math.log(1024));
13
14
  const output = bytes / Math.pow(1024, i);
package/src/util.tile.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { CogTiff, TiffMimeType } from '@cogeotiff/core';
2
- import { log } from '@linzjs/tracing';
3
1
  import { promises as fs } from 'node:fs';
4
2
 
3
+ import { Tiff, TiffMimeType } from '@cogeotiff/core';
4
+ import { log } from '@linzjs/tracing';
5
+
5
6
  const FileExtension: Record<string, string> = {
6
7
  [TiffMimeType.Jpeg]: 'jpeg',
7
- [TiffMimeType.Jp2]: 'jp2',
8
+ [TiffMimeType.Jp2000]: 'jp2',
8
9
  [TiffMimeType.Webp]: 'webp',
9
10
  [TiffMimeType.Lzw]: 'lzw',
10
11
  [TiffMimeType.Deflate]: 'deflate',
@@ -33,7 +34,7 @@ export function getTileName(mimeType: string, index: number, x: number, y: numbe
33
34
  }
34
35
 
35
36
  export async function writeTile(
36
- tiff: CogTiff,
37
+ tiff: Tiff,
37
38
  x: number,
38
39
  y: number,
39
40
  index: number,