@developmentseed/deck.gl-geotiff 0.2.0 → 0.3.0-beta.3

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 (98) hide show
  1. package/dist/cog-layer.d.ts +34 -35
  2. package/dist/cog-layer.d.ts.map +1 -1
  3. package/dist/cog-layer.js +71 -76
  4. package/dist/cog-layer.js.map +1 -1
  5. package/dist/cog-tile-matrix-set.d.ts +2 -31
  6. package/dist/cog-tile-matrix-set.d.ts.map +1 -1
  7. package/dist/cog-tile-matrix-set.js +2 -159
  8. package/dist/cog-tile-matrix-set.js.map +1 -1
  9. package/dist/geotiff/geotiff.d.ts +5 -43
  10. package/dist/geotiff/geotiff.d.ts.map +1 -1
  11. package/dist/geotiff/geotiff.js +28 -101
  12. package/dist/geotiff/geotiff.js.map +1 -1
  13. package/dist/geotiff/high-level/affine.d.ts +16 -0
  14. package/dist/geotiff/high-level/affine.d.ts.map +1 -0
  15. package/dist/geotiff/high-level/affine.js +2 -0
  16. package/dist/geotiff/high-level/affine.js.map +1 -0
  17. package/dist/geotiff/high-level/array.d.ts +37 -0
  18. package/dist/geotiff/high-level/array.d.ts.map +1 -0
  19. package/dist/geotiff/high-level/array.js +2 -0
  20. package/dist/geotiff/high-level/array.js.map +1 -0
  21. package/dist/geotiff/high-level/geotiff.d.ts +63 -0
  22. package/dist/geotiff/high-level/geotiff.d.ts.map +1 -0
  23. package/dist/geotiff/high-level/geotiff.js +135 -0
  24. package/dist/geotiff/high-level/geotiff.js.map +1 -0
  25. package/dist/geotiff/high-level/index.d.ts +8 -0
  26. package/dist/geotiff/high-level/index.d.ts.map +1 -0
  27. package/dist/geotiff/high-level/index.js +5 -0
  28. package/dist/geotiff/high-level/index.js.map +1 -0
  29. package/dist/geotiff/high-level/options.d.ts +11 -0
  30. package/dist/geotiff/high-level/options.d.ts.map +1 -0
  31. package/dist/geotiff/high-level/options.js +2 -0
  32. package/dist/geotiff/high-level/options.js.map +1 -0
  33. package/dist/geotiff/high-level/overview.d.ts +46 -0
  34. package/dist/geotiff/high-level/overview.d.ts.map +1 -0
  35. package/dist/geotiff/high-level/overview.js +124 -0
  36. package/dist/geotiff/high-level/overview.js.map +1 -0
  37. package/dist/geotiff/high-level/tile.d.ts +11 -0
  38. package/dist/geotiff/high-level/tile.d.ts.map +1 -0
  39. package/dist/geotiff/high-level/tile.js +2 -0
  40. package/dist/geotiff/high-level/tile.js.map +1 -0
  41. package/dist/geotiff/high-level/transform.d.ts +23 -0
  42. package/dist/geotiff/high-level/transform.d.ts.map +1 -0
  43. package/dist/geotiff/high-level/transform.js +55 -0
  44. package/dist/geotiff/high-level/transform.js.map +1 -0
  45. package/dist/geotiff/high-level/window.d.ts +23 -0
  46. package/dist/geotiff/high-level/window.d.ts.map +1 -0
  47. package/dist/geotiff/high-level/window.js +31 -0
  48. package/dist/geotiff/high-level/window.js.map +1 -0
  49. package/dist/geotiff/render-pipeline.d.ts +2 -2
  50. package/dist/geotiff/render-pipeline.d.ts.map +1 -1
  51. package/dist/geotiff/render-pipeline.js +47 -44
  52. package/dist/geotiff/render-pipeline.js.map +1 -1
  53. package/dist/geotiff/texture.d.ts +5 -4
  54. package/dist/geotiff/texture.d.ts.map +1 -1
  55. package/dist/geotiff/texture.js +7 -7
  56. package/dist/geotiff/texture.js.map +1 -1
  57. package/dist/geotiff/types.d.ts +0 -29
  58. package/dist/geotiff/types.d.ts.map +1 -1
  59. package/dist/geotiff/types.js +1 -12
  60. package/dist/geotiff/types.js.map +1 -1
  61. package/dist/geotiff-layer.d.ts +17 -21
  62. package/dist/geotiff-layer.d.ts.map +1 -1
  63. package/dist/geotiff-layer.js +25 -21
  64. package/dist/geotiff-layer.js.map +1 -1
  65. package/dist/geotiff-reprojection.d.ts +4 -18
  66. package/dist/geotiff-reprojection.d.ts.map +1 -1
  67. package/dist/geotiff-reprojection.js +9 -126
  68. package/dist/geotiff-reprojection.js.map +1 -1
  69. package/dist/geotiff-types.d.ts +13 -0
  70. package/dist/geotiff-types.d.ts.map +1 -0
  71. package/dist/geotiff-types.js +2 -0
  72. package/dist/geotiff-types.js.map +1 -0
  73. package/dist/geotiff.d.ts +50 -0
  74. package/dist/geotiff.d.ts.map +1 -0
  75. package/dist/geotiff.js +135 -0
  76. package/dist/geotiff.js.map +1 -0
  77. package/dist/index.d.ts +0 -8
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +0 -6
  80. package/dist/index.js.map +1 -1
  81. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts +1 -0
  82. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts.map +1 -0
  83. package/dist/mosaic-layer/mosaic-tile-traversal.js +2 -0
  84. package/dist/mosaic-layer/mosaic-tile-traversal.js.map +1 -0
  85. package/dist/mosaic-layer.d.ts +1 -0
  86. package/dist/mosaic-layer.d.ts.map +1 -0
  87. package/dist/mosaic-layer.js +2 -0
  88. package/dist/mosaic-layer.js.map +1 -0
  89. package/dist/proj.d.ts +3 -23
  90. package/dist/proj.d.ts.map +1 -1
  91. package/dist/proj.js +20 -38
  92. package/dist/proj.js.map +1 -1
  93. package/dist/texture.d.ts +10 -0
  94. package/dist/texture.d.ts.map +1 -0
  95. package/dist/texture.js +135 -0
  96. package/dist/texture.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -0
  98. package/package.json +15 -11
@@ -1,23 +1,26 @@
1
- import { CMYKToRGB, Colormap, CreateTexture, cieLabToRGB, FilterNoDataVal, YCbCrToRGB, } from "@developmentseed/deck.gl-raster/gpu-modules";
2
- import { addAlphaChannel, parseColormap, parseGDALNoData } from "./geotiff";
1
+ import { Photometric, SampleFormat } from "@cogeotiff/core";
2
+ import { CMYKToRGB, Colormap, CreateTexture, cieLabToRGB, FilterNoDataVal, } from "@developmentseed/deck.gl-raster/gpu-modules";
3
+ import { parseColormap } from "@developmentseed/geotiff";
4
+ import { addAlphaChannel } from "./geotiff";
3
5
  import { inferTextureFormat } from "./texture";
4
- import { PhotometricInterpretationT } from "./types";
5
- export function inferRenderPipeline(
6
- // TODO: narrow type to only used fields
7
- ifd, device) {
8
- const { SampleFormat } = ifd;
9
- switch (SampleFormat[0]) {
6
+ export function inferRenderPipeline(geotiff, device) {
7
+ const { sampleFormat } = geotiff.cachedTags;
8
+ if (sampleFormat === null) {
9
+ throw new Error("SampleFormat tag is required to infer render pipeline");
10
+ }
11
+ switch (sampleFormat[0]) {
10
12
  // Unsigned integers
11
- case 1:
12
- return createUnormPipeline(ifd, device);
13
+ case SampleFormat.Uint:
14
+ return createUnormPipeline(geotiff, device);
13
15
  }
14
16
  throw new Error(`Inferring render pipeline for non-unsigned integers not yet supported. Found SampleFormat: ${SampleFormat}`);
15
17
  }
16
18
  /**
17
19
  * Create pipeline for visualizing unsigned-integer data.
18
20
  */
19
- function createUnormPipeline(ifd, device) {
20
- const { BitsPerSample, ColorMap, GDAL_NODATA, PhotometricInterpretation, SampleFormat, SamplesPerPixel, } = ifd;
21
+ function createUnormPipeline(geotiff, device) {
22
+ const tags = geotiff.cachedTags;
23
+ const { bitsPerSample, colorMap, photometric, sampleFormat, samplesPerPixel, nodata, } = tags;
21
24
  const renderPipeline = [
22
25
  {
23
26
  module: CreateTexture,
@@ -26,22 +29,20 @@ function createUnormPipeline(ifd, device) {
26
29
  },
27
30
  },
28
31
  ];
29
- // Add NoData filtering if GDAL_NODATA is defined
30
- const noDataVal = parseGDALNoData(GDAL_NODATA);
31
- if (noDataVal !== null) {
32
+ if (nodata !== null) {
32
33
  // Since values are 0-1 for unorm textures,
33
- const noDataScaled = noDataVal / 255.0;
34
+ const noDataScaled = nodata / 255.0;
34
35
  renderPipeline.push({
35
36
  module: FilterNoDataVal,
36
37
  props: { value: noDataScaled },
37
38
  });
38
39
  }
39
- const toRGBModule = photometricInterpretationToRGB(PhotometricInterpretation, device, ColorMap);
40
+ const toRGBModule = photometricInterpretationToRGB(photometric, device, colorMap);
40
41
  if (toRGBModule) {
41
42
  renderPipeline.push(toRGBModule);
42
43
  }
43
44
  // For palette images, use nearest-neighbor sampling
44
- const samplerOptions = PhotometricInterpretation === PhotometricInterpretationT.Palette
45
+ const samplerOptions = photometric === Photometric.Palette
45
46
  ? {
46
47
  magFilter: "nearest",
47
48
  minFilter: "nearest",
@@ -51,32 +52,32 @@ function createUnormPipeline(ifd, device) {
51
52
  minFilter: "linear",
52
53
  };
53
54
  const getTileData = async (image, options) => {
54
- const { device } = options;
55
- const mergedOptions = {
56
- ...options,
57
- interleave: true,
58
- };
59
- let data = (await image.readRasters(mergedOptions));
60
- let numSamples = SamplesPerPixel;
61
- if (SamplesPerPixel === 3) {
55
+ const { device, x, y, signal } = options;
56
+ const tile = await image.fetchTile(x, y, { signal, boundless: false });
57
+ let { array } = tile;
58
+ let numSamples = samplesPerPixel;
59
+ if (samplesPerPixel === 3) {
62
60
  // WebGL2 doesn't have an RGB-only texture format; it requires RGBA.
63
- data = addAlphaChannel(data);
61
+ array = addAlphaChannel(array);
64
62
  numSamples = 4;
65
63
  }
64
+ if (array.layout === "band-separate") {
65
+ throw new Error("Band-separate images not yet implemented.");
66
+ }
66
67
  const textureFormat = inferTextureFormat(
67
68
  // Add one sample for added alpha channel
68
- numSamples, BitsPerSample, SampleFormat);
69
+ numSamples, bitsPerSample, sampleFormat);
69
70
  const texture = device.createTexture({
70
- data,
71
+ data: array.data,
71
72
  format: textureFormat,
72
- width: data.width,
73
- height: data.height,
73
+ width: array.width,
74
+ height: array.height,
74
75
  sampler: samplerOptions,
75
76
  });
76
77
  return {
77
78
  texture,
78
- height: data.height,
79
- width: data.width,
79
+ height: array.height,
80
+ width: array.width,
80
81
  };
81
82
  };
82
83
  const renderTile = (tileData) => {
@@ -84,11 +85,11 @@ function createUnormPipeline(ifd, device) {
84
85
  };
85
86
  return { getTileData, renderTile };
86
87
  }
87
- function photometricInterpretationToRGB(PhotometricInterpretation, device, ColorMap) {
88
- switch (PhotometricInterpretation) {
89
- case PhotometricInterpretationT.RGB:
88
+ function photometricInterpretationToRGB(photometric, device, ColorMap) {
89
+ switch (photometric) {
90
+ case Photometric.Rgb:
90
91
  return null;
91
- case PhotometricInterpretationT.Palette: {
92
+ case Photometric.Palette: {
92
93
  if (!ColorMap) {
93
94
  throw new Error("ColorMap is required for PhotometricInterpretation Palette");
94
95
  }
@@ -112,20 +113,22 @@ function photometricInterpretationToRGB(PhotometricInterpretation, device, Color
112
113
  },
113
114
  };
114
115
  }
115
- case PhotometricInterpretationT.CMYK:
116
+ // Not sure why cogeotiff calls this "Separated", but it means CMYK
117
+ case Photometric.Separated:
116
118
  return {
117
119
  module: CMYKToRGB,
118
120
  };
119
- case PhotometricInterpretationT.YCbCr:
120
- return {
121
- module: YCbCrToRGB,
122
- };
123
- case PhotometricInterpretationT.CIELab:
121
+ case Photometric.Ycbcr:
122
+ // @developmentseed/geotiff currently uses canvas to parse JPEG-compressed
123
+ // YCbCr images, which means the YCbCr->RGB conversion is already done by
124
+ // the browser's image decoder
125
+ return null;
126
+ case Photometric.Cielab:
124
127
  return {
125
128
  module: cieLabToRGB,
126
129
  };
127
130
  default:
128
- throw new Error(`Unsupported PhotometricInterpretation ${PhotometricInterpretation}`);
131
+ throw new Error(`Unsupported PhotometricInterpretation ${photometric}`);
129
132
  }
130
133
  }
131
134
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"render-pipeline.js","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-pipeline.js","sourceRoot":"","sources":["../../src/geotiff/render-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import type { TextureFormat, TextureProps } from "@luma.gl/core";
2
- import type { GeoTIFFImage, TypedArray } from "geotiff";
1
+ import { SampleFormat } from "@cogeotiff/core";
2
+ import type { GeoTIFF } from "@developmentseed/geotiff";
3
+ import type { TextureFormat, TextureProps, TypedArray } from "@luma.gl/core";
3
4
  /**
4
5
  * Infers texture properties from a GeoTIFF image and its associated data.
5
6
  */
6
- export declare function createTextureProps(image: GeoTIFFImage, data: TypedArray, options: {
7
+ export declare function createTextureProps(geotiff: GeoTIFF, data: TypedArray, options: {
7
8
  width: number;
8
9
  height: number;
9
10
  }): TextureProps;
10
11
  /**
11
12
  * Infer the TextureFormat given values from GeoTIFF tags.
12
13
  */
13
- export declare function inferTextureFormat(samplesPerPixel: number, bitsPerSample: Uint16Array, sampleFormat: Uint16Array): TextureFormat;
14
+ export declare function inferTextureFormat(samplesPerPixel: number, bitsPerSample: Uint16Array, sampleFormat: SampleFormat[]): TextureFormat;
14
15
  //# sourceMappingURL=texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../src/geotiff/texture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGxD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC,YAAY,CAgBd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,WAAW,EAC1B,YAAY,EAAE,WAAW,GACxB,aAAa,CAef"}
1
+ {"version":3,"file":"texture.d.ts","sourceRoot":"","sources":["../../src/geotiff/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC,YAAY,CAed;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,WAAW,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,aAAa,CAef"}
@@ -1,10 +1,10 @@
1
+ import { SampleFormat } from "@cogeotiff/core";
1
2
  /**
2
3
  * Infers texture properties from a GeoTIFF image and its associated data.
3
4
  */
4
- export function createTextureProps(image, data, options) {
5
- const ifd = image.getFileDirectory();
6
- const samplesPerPixel = ifd.SamplesPerPixel;
7
- const textureFormat = inferTextureFormat(samplesPerPixel, ifd.BitsPerSample, ifd.SampleFormat);
5
+ export function createTextureProps(geotiff, data, options) {
6
+ const { samplesPerPixel, bitsPerSample, sampleFormat } = geotiff.cachedTags;
7
+ const textureFormat = inferTextureFormat(samplesPerPixel, bitsPerSample, sampleFormat);
8
8
  return {
9
9
  data,
10
10
  format: textureFormat,
@@ -60,11 +60,11 @@ function inferScalarKind(sampleFormat) {
60
60
  }
61
61
  }
62
62
  switch (first) {
63
- case 1:
63
+ case SampleFormat.Uint:
64
64
  return "unorm";
65
- case 2:
65
+ case SampleFormat.Int:
66
66
  return "sint";
67
- case 3:
67
+ case SampleFormat.Float:
68
68
  return "float";
69
69
  default:
70
70
  throw new Error(`Unsupported SampleFormat ${sampleFormat}`);
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/geotiff/texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/geotiff/texture.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,5 @@
1
- export declare enum PhotometricInterpretationT {
2
- WhiteIsZero = 0,
3
- BlackIsZero = 1,
4
- RGB = 2,
5
- Palette = 3,
6
- TransparencyMask = 4,
7
- CMYK = 5,
8
- YCbCr = 6,
9
- CIELab = 8,
10
- ICCLab = 9
11
- }
12
1
  export declare enum PlanarConfigurationT {
13
2
  Chunky = 1,
14
3
  Planar = 2
15
4
  }
16
- /** Improved typing for IFD. */
17
- export type ImageFileDirectory = {
18
- BitsPerSample: Uint16Array;
19
- ColorMap?: Uint16Array;
20
- Compression: number;
21
- /** GDAL NoData value as string.
22
- * <https://gdal.org/en/stable/drivers/raster/gtiff.html#nodata-value>
23
- */
24
- GDAL_NODATA?: string;
25
- ImageLength: number;
26
- ImageWidth: number;
27
- PhotometricInterpretation: PhotometricInterpretationT;
28
- /** Strip or tiled */
29
- PlanarConfiguration: PlanarConfigurationT;
30
- SampleFormat: Uint16Array;
31
- /** Number of bands */
32
- SamplesPerPixel: number;
33
- };
34
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/geotiff/types.ts"],"names":[],"mappings":"AAAA,oBAAY,0BAA0B;IACpC,WAAW,IAAI;IACf,WAAW,IAAI;IACf,GAAG,IAAI;IACP,OAAO,IAAI;IACX,gBAAgB,IAAI;IACpB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;IACV,MAAM,IAAI;CACX;AAED,oBAAY,oBAAoB;IAC9B,MAAM,IAAI;IACV,MAAM,IAAI;CACX;AAED,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB,EAAE,0BAA0B,CAAC;IACtD,qBAAqB;IACrB,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,YAAY,EAAE,WAAW,CAAC;IAC1B,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/geotiff/types.ts"],"names":[],"mappings":"AACA,oBAAY,oBAAoB;IAC9B,MAAM,IAAI;IACV,MAAM,IAAI;CACX"}
@@ -1,15 +1,4 @@
1
- export var PhotometricInterpretationT;
2
- (function (PhotometricInterpretationT) {
3
- PhotometricInterpretationT[PhotometricInterpretationT["WhiteIsZero"] = 0] = "WhiteIsZero";
4
- PhotometricInterpretationT[PhotometricInterpretationT["BlackIsZero"] = 1] = "BlackIsZero";
5
- PhotometricInterpretationT[PhotometricInterpretationT["RGB"] = 2] = "RGB";
6
- PhotometricInterpretationT[PhotometricInterpretationT["Palette"] = 3] = "Palette";
7
- PhotometricInterpretationT[PhotometricInterpretationT["TransparencyMask"] = 4] = "TransparencyMask";
8
- PhotometricInterpretationT[PhotometricInterpretationT["CMYK"] = 5] = "CMYK";
9
- PhotometricInterpretationT[PhotometricInterpretationT["YCbCr"] = 6] = "YCbCr";
10
- PhotometricInterpretationT[PhotometricInterpretationT["CIELab"] = 8] = "CIELab";
11
- PhotometricInterpretationT[PhotometricInterpretationT["ICCLab"] = 9] = "ICCLab";
12
- })(PhotometricInterpretationT || (PhotometricInterpretationT = {}));
1
+ // TODO: unused, probably remove
13
2
  export var PlanarConfigurationT;
14
3
  (function (PlanarConfigurationT) {
15
4
  PlanarConfigurationT[PlanarConfigurationT["Chunky"] = 1] = "Chunky";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/geotiff/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,0BAUX;AAVD,WAAY,0BAA0B;IACpC,yFAAe,CAAA;IACf,yFAAe,CAAA;IACf,yEAAO,CAAA;IACP,iFAAW,CAAA;IACX,mGAAoB,CAAA;IACpB,2EAAQ,CAAA;IACR,6EAAS,CAAA;IACT,+EAAU,CAAA;IACV,+EAAU,CAAA;AACZ,CAAC,EAVW,0BAA0B,KAA1B,0BAA0B,QAUrC;AAED,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,mEAAU,CAAA;IACV,mEAAU,CAAA;AACZ,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/geotiff/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,mEAAU,CAAA;IACV,mEAAU,CAAA;AACZ,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B"}
@@ -1,37 +1,36 @@
1
1
  import type { CompositeLayerProps, UpdateParameters } from "@deck.gl/core";
2
2
  import { CompositeLayer } from "@deck.gl/core";
3
3
  import { RasterLayer } from "@developmentseed/deck.gl-raster";
4
+ import type { GeoTIFF } from "@developmentseed/geotiff";
4
5
  import type { ReprojectionFns } from "@developmentseed/raster-reproject";
5
- import type { BaseClient, GeoTIFF, Pool } from "geotiff";
6
- import type { GeoKeysParser, ProjectionInfo } from "./proj.js";
7
- import { epsgIoGeoKeyParser } from "./proj.js";
6
+ import type { ProjectionDefinition } from "wkt-parser";
7
+ import type { EpsgResolver } from "./proj.js";
8
+ import { epsgResolver } from "./proj.js";
8
9
  export interface GeoTIFFLayerProps extends CompositeLayerProps {
9
10
  /**
10
11
  * GeoTIFF input.
11
12
  *
12
- * - URL string pointing to a GeoTIFF
13
- * - ArrayBuffer containing the GeoTIFF data
14
- * - Blob containing the GeoTIFF data
15
- * - An instance of GeoTIFF.js's GeoTIFF class
16
- * - An instance of GeoTIFF.js's BaseClient for custom fetching
13
+ * - {@link URL} or `string` pointing to a GeoTIFF
14
+ * - {@link ArrayBuffer} containing the GeoTIFF data
15
+ * - An instance of the {@link GeoTIFF} class.
17
16
  */
18
- geotiff: GeoTIFF | string | ArrayBuffer | Blob | BaseClient;
17
+ geotiff: GeoTIFF | string | URL | ArrayBuffer;
19
18
  /**
20
- * A function callback for parsing GeoTIFF geo keys to a Proj4 compatible
21
- * definition.
19
+ * A function callback for parsing numeric EPSG codes to projection
20
+ * information (as returned by `wkt-parser`).
22
21
  *
23
- * By default, uses epsg.io to resolve EPSG codes found in the GeoTIFF.
24
- * Alternatively, you may want to use `geotiff-geokeys-to-proj4`, which is
25
- * more extensive but adds 1.5MB to your bundle size.
22
+ * The default implementation:
23
+ * - makes a request to epsg.io to resolve EPSG codes found in the GeoTIFF.
24
+ * - caches any previous requests
25
+ * - parses PROJJSON response with `wkt-parser`
26
26
  */
27
- geoKeysParser?: GeoKeysParser;
27
+ epsgResolver?: EpsgResolver;
28
28
  /**
29
29
  * GeoTIFF.js Pool for decoding image chunks.
30
30
  *
31
31
  * If none is provided, a default Pool will be created and shared between all
32
32
  * COGLayer and GeoTIFFLayer instances.
33
33
  */
34
- pool?: Pool;
35
34
  /**
36
35
  * Maximum reprojection error in pixels for mesh refinement.
37
36
  * Lower values create denser meshes with higher accuracy.
@@ -50,12 +49,9 @@ export interface GeoTIFFLayerProps extends CompositeLayerProps {
50
49
  debugOpacity?: number;
51
50
  /**
52
51
  * Called when the GeoTIFF metadata has been loaded and parsed.
53
- *
54
- * @param {GeoTIFF} geotiff
55
- * @param {ProjectionInfo} projection
56
52
  */
57
53
  onGeoTIFFLoad?: (geotiff: GeoTIFF, options: {
58
- projection: ProjectionInfo;
54
+ projection: ProjectionDefinition;
59
55
  /**
60
56
  * Bounds of the image in geographic coordinates (WGS84) [minLon, minLat,
61
57
  * maxLon, maxLat]
@@ -78,7 +74,7 @@ export interface GeoTIFFLayerProps extends CompositeLayerProps {
78
74
  export declare class GeoTIFFLayer extends CompositeLayer<GeoTIFFLayerProps> {
79
75
  static layerName: string;
80
76
  static defaultProps: {
81
- geoKeysParser: typeof epsgIoGeoKeyParser;
77
+ epsgResolver: typeof epsgResolver;
82
78
  };
83
79
  state: {
84
80
  reprojectionFns?: ReprojectionFns;
@@ -1 +1 @@
1
- {"version":3,"file":"geotiff-layer.d.ts","sourceRoot":"","sources":["../src/geotiff-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AASzD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D;;;;;;;;OAQG;IACH,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,UAAU,CAAC;IAE5D;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QACP,UAAU,EAAE,cAAc,CAAC;QAC3B;;;WAGG;QACH,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,KACE,IAAI,CAAC;CACX;AAMD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACjE,OAAgB,SAAS,SAAkB;IAC3C,OAAgB,YAAY;;MAAgB;IAEpC,KAAK,EAAE;QACb,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAe7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCpC,YAAY;CAsBb"}
1
+ {"version":3,"file":"geotiff-layer.d.ts","sourceRoot":"","sources":["../src/geotiff-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D;;;;;;OAMG;IACH,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC;IAE9C;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;;;OAKG;IAIH;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;QACP,UAAU,EAAE,oBAAoB,CAAC;QACjC;;;WAGG;QACH,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,KACE,IAAI,CAAC;CACX;AAMD;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACjE,OAAgB,SAAS,SAAkB;IAC3C,OAAgB,YAAY;;MAAgB;IAEpC,KAAK,EAAE;QACb,eAAe,CAAC,EAAE,eAAe,CAAC;QAClC,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAe7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCpC,YAAY;CAsBb"}
@@ -1,11 +1,12 @@
1
1
  import { CompositeLayer } from "@deck.gl/core";
2
2
  import { RasterLayer } from "@developmentseed/deck.gl-raster";
3
3
  import proj4 from "proj4";
4
- import { defaultPool, fetchGeoTIFF, getGeographicBounds, loadRgbImage, } from "./geotiff/geotiff.js";
4
+ import wktParser from "wkt-parser";
5
+ import { fetchGeoTIFF, getGeographicBounds } from "./geotiff/geotiff.js";
5
6
  import { extractGeotiffReprojectors } from "./geotiff-reprojection.js";
6
- import { epsgIoGeoKeyParser } from "./proj.js";
7
+ import { epsgResolver } from "./proj.js";
7
8
  const defaultProps = {
8
- geoKeysParser: epsgIoGeoKeyParser,
9
+ epsgResolver,
9
10
  };
10
11
  /**
11
12
  * GeoTIFFLayer renders a GeoTIFF file from an arbitrary projection.
@@ -32,30 +33,33 @@ export class GeoTIFFLayer extends CompositeLayer {
32
33
  }
33
34
  async _parseGeoTIFF() {
34
35
  const geotiff = await fetchGeoTIFF(this.props.geotiff);
35
- const image = await geotiff.getImage();
36
- const geoKeysParser = this.props.geoKeysParser;
37
- const sourceProjection = await geoKeysParser(image.getGeoKeys());
38
- if (!sourceProjection) {
39
- throw new Error("Could not determine source projection from GeoTIFF geo keys");
40
- }
41
- const converter = proj4(sourceProjection.def, "EPSG:4326");
36
+ const crs = geotiff.crs;
37
+ const sourceProjection = typeof crs === "number"
38
+ ? await this.props.epsgResolver(crs)
39
+ : wktParser(crs);
40
+ // @ts-expect-error proj4 has incomplete types that don't support wkt-parser
41
+ // output
42
+ const converter = proj4(sourceProjection, "EPSG:4326");
42
43
  if (this.props.onGeoTIFFLoad) {
43
- const geographicBounds = getGeographicBounds(image, converter);
44
+ const geographicBounds = getGeographicBounds(geotiff, converter);
44
45
  this.props.onGeoTIFFLoad(geotiff, {
45
46
  projection: sourceProjection,
46
47
  geographicBounds,
47
48
  });
48
49
  }
49
- const reprojectionFns = await extractGeotiffReprojectors(geotiff, sourceProjection.def);
50
- const { texture, height, width } = await loadRgbImage(image, {
51
- pool: this.props.pool || defaultPool(),
52
- });
53
- this.setState({
54
- reprojectionFns,
55
- imageData: texture,
56
- height,
57
- width,
58
- });
50
+ // @ts-expect-error unused variable
51
+ // biome-ignore lint/correctness/noUnusedVariables: not implemented
52
+ const reprojectionFns = await extractGeotiffReprojectors(geotiff, sourceProjection);
53
+ // Our GeoTIFF implementation doesn't currently support reading the full
54
+ // image; it only supports reading tiles.
55
+ throw new Error("Loading GeoTIFF image data not yet implemented");
56
+ // const { texture, height, width } = await loadRgbImage(image);
57
+ // this.setState({
58
+ // reprojectionFns,
59
+ // imageData: texture,
60
+ // height,
61
+ // width,
62
+ // });
59
63
  }
60
64
  renderLayers() {
61
65
  const { reprojectionFns, imageData, height, width } = this.state;
@@ -1 +1 @@
1
- {"version":3,"file":"geotiff-layer.js","sourceRoot":"","sources":["../src/geotiff-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geotiff-layer.js","sourceRoot":"","sources":["../src/geotiff-layer.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,11 @@
1
+ import type { GeoTIFF } from "@developmentseed/geotiff";
1
2
  import type { ReprojectionFns } from "@developmentseed/raster-reproject";
2
- import type { GeoTIFF, GeoTIFFImage } from "geotiff";
3
3
  import type { PROJJSONDefinition } from "proj4/dist/lib/core";
4
4
  import type Projection from "proj4/dist/lib/Proj";
5
- export declare const OGC_84: PROJJSONDefinition;
6
- export declare function extractGeotiffReprojectors(tiff: GeoTIFF, sourceProjection: string | PROJJSONDefinition, outputCrs?: string | PROJJSONDefinition | Projection): Promise<ReprojectionFns>;
7
- export declare function fromGeoTransform(geotransform: [number, number, number, number, number, number]): {
5
+ import type { ProjectionDefinition } from "wkt-parser";
6
+ export declare function extractGeotiffReprojectors(geotiff: GeoTIFF, sourceProjection: string | PROJJSONDefinition | ProjectionDefinition, outputCrs?: string | PROJJSONDefinition | Projection): Promise<ReprojectionFns>;
7
+ export declare function fromAffine(geotransform: [number, number, number, number, number, number]): {
8
8
  forwardTransform: (x: number, y: number) => [number, number];
9
9
  inverseTransform: (x: number, y: number) => [number, number];
10
10
  };
11
- /**
12
- * Extract affine geotransform from a GeoTIFF image.
13
- *
14
- * The first `image` must be passed in, as only the top-level IFD contains geo
15
- * keys.
16
- *
17
- * Returns a 6-element array in Python `affine` package ordering:
18
- * [a, b, c, d, e, f] where:
19
- * - x_geo = a * col + b * row + c
20
- * - y_geo = d * col + e * row + f
21
- *
22
- * This is NOT GDAL ordering, which is [c, a, b, f, d, e].
23
- */
24
- export declare function extractGeotransform(image: GeoTIFFImage): [number, number, number, number, number, number];
25
11
  //# sourceMappingURL=geotiff-reprojection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geotiff-reprojection.d.ts","sourceRoot":"","sources":["../src/geotiff-reprojection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAKzE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAElD,eAAO,MAAM,MAAM,EAAE,kBAuEpB,CAAC;AAMF,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,OAAO,EACb,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,EAC7C,SAAS,GAAE,MAAM,GAAG,kBAAkB,GAAG,UAAmB,GAC3D,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC7D;IACD,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D,CAOA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,YAAY,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAiClD"}
1
+ {"version":3,"file":"geotiff-reprojection.d.ts","sourceRoot":"","sources":["../src/geotiff-reprojection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMvD,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,GAAG,oBAAoB,EACpE,SAAS,GAAE,MAAM,GAAG,kBAAkB,GAAG,UAAwB,GAChE,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,wBAAgB,UAAU,CACxB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC7D;IACD,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D,CAQA"}