@developmentseed/deck.gl-geotiff 0.1.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 (106) hide show
  1. package/dist/cog-layer.d.ts +41 -35
  2. package/dist/cog-layer.d.ts.map +1 -1
  3. package/dist/cog-layer.js +79 -80
  4. package/dist/cog-layer.js.map +1 -1
  5. package/dist/cog-tile-matrix-set.d.ts +2 -11
  6. package/dist/cog-tile-matrix-set.d.ts.map +1 -1
  7. package/dist/cog-tile-matrix-set.js +2 -155
  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 +3 -5
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +2 -4
  80. package/dist/index.js.map +1 -1
  81. package/dist/mosaic-layer/mosaic-layer.d.ts +31 -0
  82. package/dist/mosaic-layer/mosaic-layer.d.ts.map +1 -0
  83. package/dist/mosaic-layer/mosaic-layer.js +59 -0
  84. package/dist/mosaic-layer/mosaic-layer.js.map +1 -0
  85. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts +1 -0
  86. package/dist/mosaic-layer/mosaic-tile-traversal.d.ts.map +1 -0
  87. package/dist/mosaic-layer/mosaic-tile-traversal.js +2 -0
  88. package/dist/mosaic-layer/mosaic-tile-traversal.js.map +1 -0
  89. package/dist/mosaic-layer/mosaic-tileset-2d.d.ts +42 -0
  90. package/dist/mosaic-layer/mosaic-tileset-2d.d.ts.map +1 -0
  91. package/dist/mosaic-layer/mosaic-tileset-2d.js +44 -0
  92. package/dist/mosaic-layer/mosaic-tileset-2d.js.map +1 -0
  93. package/dist/mosaic-layer.d.ts +1 -0
  94. package/dist/mosaic-layer.d.ts.map +1 -0
  95. package/dist/mosaic-layer.js +2 -0
  96. package/dist/mosaic-layer.js.map +1 -0
  97. package/dist/proj.d.ts +3 -23
  98. package/dist/proj.d.ts.map +1 -1
  99. package/dist/proj.js +20 -38
  100. package/dist/proj.js.map +1 -1
  101. package/dist/texture.d.ts +10 -0
  102. package/dist/texture.d.ts.map +1 -0
  103. package/dist/texture.js +135 -0
  104. package/dist/texture.js.map +1 -0
  105. package/dist/tsconfig.tsbuildinfo +1 -0
  106. package/package.json +16 -11
@@ -2,12 +2,14 @@ import type { CompositeLayerProps, Layer, LayersList, UpdateParameters } from "@
2
2
  import { CompositeLayer } from "@deck.gl/core";
3
3
  import type { _Tile2DHeader as Tile2DHeader, TileLayerProps, _TileLoadProps as TileLoadProps } from "@deck.gl/geo-layers";
4
4
  import { TileLayer } from "@deck.gl/geo-layers";
5
- import type { RasterModule, TileMatrixSet } from "@developmentseed/deck.gl-raster";
5
+ import type { RasterModule } from "@developmentseed/deck.gl-raster";
6
+ import type { GeoTIFF, Overview } from "@developmentseed/geotiff";
7
+ import type { TileMatrixSet } from "@developmentseed/morecantile";
6
8
  import type { ReprojectionFns } from "@developmentseed/raster-reproject";
7
9
  import type { Device } from "@luma.gl/core";
8
- import type { BaseClient, GeoTIFF, GeoTIFFImage, Pool } from "geotiff";
10
+ import type { ProjectionDefinition } from "wkt-parser";
9
11
  import type { TextureDataT } from "./geotiff/render-pipeline.js";
10
- import type { GeoKeysParser, ProjectionInfo } from "./proj.js";
12
+ import type { EpsgResolver } from "./proj.js";
11
13
  /**
12
14
  * Minimum interface that **must** be returned from getTileData.
13
15
  */
@@ -22,12 +24,12 @@ export type DefaultDataT = MinimalDataT & {
22
24
  export type GetTileDataOptions = {
23
25
  /** The luma.gl Device */
24
26
  device: Device;
25
- /** the subset to read data from in pixels. */
26
- window?: [number, number, number, number];
27
+ /** The x coordinate of the tile within the IFD. */
28
+ x: number;
29
+ /** The y coordinate of the tile within the IFD. */
30
+ y: number;
27
31
  /** An AbortSignal that may be signalled if the request is to be aborted */
28
32
  signal?: AbortSignal;
29
- /** The decoder pool to use. */
30
- pool: Pool;
31
33
  };
32
34
  type GetTileDataResult<DataT> = {
33
35
  data: DataT;
@@ -36,31 +38,29 @@ type GetTileDataResult<DataT> = {
36
38
  };
37
39
  export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extends CompositeLayerProps {
38
40
  /**
39
- * GeoTIFF input.
41
+ * Cloud-optimized GeoTIFF input.
40
42
  *
41
- * - URL string pointing to a COG
42
- * - ArrayBuffer containing the COG data
43
- * - Blob containing the COG data
44
- * - An instance of GeoTIFF.js's GeoTIFF class
45
- * - An instance of GeoTIFF.js's BaseClient for custom fetching
43
+ * - {@link URL} or `string` pointing to a COG
44
+ * - {@link ArrayBuffer} containing the COG data
45
+ * - An instance of the {@link GeoTIFF} class.
46
46
  */
47
- geotiff: GeoTIFF | string | ArrayBuffer | Blob | BaseClient;
47
+ geotiff: GeoTIFF | string | URL | ArrayBuffer;
48
48
  /**
49
- * A function callback for parsing GeoTIFF geo keys to a Proj4 compatible
50
- * definition.
49
+ * A function callback for parsing numeric EPSG codes to projection
50
+ * information (as returned by `wkt-parser`).
51
51
  *
52
- * By default, uses epsg.io to resolve EPSG codes found in the GeoTIFF.
53
- * Alternatively, you may want to use `geotiff-geokeys-to-proj4`, which is
54
- * more extensive but adds 1.5MB to your bundle size.
52
+ * The default implementation:
53
+ * - makes a request to epsg.io to resolve EPSG codes found in the GeoTIFF.
54
+ * - caches any previous requests
55
+ * - parses PROJJSON response with `wkt-parser`
55
56
  */
56
- geoKeysParser?: GeoKeysParser;
57
+ epsgResolver?: EpsgResolver;
57
58
  /**
58
59
  * GeoTIFF.js Pool for decoding image chunks.
59
60
  *
60
61
  * If none is provided, a default Pool will be created and shared between all
61
62
  * COGLayer and GeoTIFFLayer instances.
62
63
  */
63
- pool?: Pool;
64
64
  /**
65
65
  * Maximum reprojection error in pixels for mesh refinement.
66
66
  * Lower values create denser meshes with higher accuracy.
@@ -70,13 +70,13 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
70
70
  /**
71
71
  * User-defined method to load data for a tile.
72
72
  *
73
- * The default implementation loads an RGBA image using geotiff.js's readRGB
74
- * method, returning an ImageData object.
73
+ * The default implementation loads an RGBA image, returning an ImageData
74
+ * object.
75
75
  *
76
76
  * For more customizability, you can also return a Texture object from
77
77
  * luma.gl, along with optional custom shaders for the RasterLayer.
78
78
  */
79
- getTileData?: (image: GeoTIFFImage, options: GetTileDataOptions) => Promise<DataT>;
79
+ getTileData?: (image: GeoTIFF | Overview, options: GetTileDataOptions) => Promise<DataT>;
80
80
  /**
81
81
  * User-defined method to render data for a tile.
82
82
  *
@@ -99,12 +99,9 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
99
99
  debugOpacity?: number;
100
100
  /**
101
101
  * Called when the GeoTIFF metadata has been loaded and parsed.
102
- *
103
- * @param {GeoTIFF} geotiff
104
- * @param {ProjectionInfo} projection
105
102
  */
106
103
  onGeoTIFFLoad?: (geotiff: GeoTIFF, options: {
107
- projection: ProjectionInfo;
104
+ projection: ProjectionDefinition;
108
105
  /**
109
106
  * Bounds of the image in geographic coordinates (WGS84) [minLon, minLat,
110
107
  * maxLon, maxLat]
@@ -116,6 +113,13 @@ export interface COGLayerProps<DataT extends MinimalDataT = DefaultDataT> extend
116
113
  north: number;
117
114
  };
118
115
  }) => void;
116
+ /** A user-provided AbortSignal to cancel loading.
117
+ *
118
+ * This can be useful in combination with the MosaicLayer, so that when a
119
+ * mosaic source is out of the viewport, all of its tile requests are
120
+ * automatically aborted.
121
+ */
122
+ signal?: AbortSignal;
119
123
  }
120
124
  /**
121
125
  * COGLayer renders a COG using a tiled approach with reprojection.
@@ -124,10 +128,11 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
124
128
  static layerName: string;
125
129
  static defaultProps: Partial<COGLayerProps<DefaultDataT>>;
126
130
  state: {
127
- forwardReproject?: ReprojectionFns["forwardReproject"];
128
- inverseReproject?: ReprojectionFns["inverseReproject"];
129
- metadata?: TileMatrixSet;
130
- images?: GeoTIFFImage[];
131
+ geotiff: GeoTIFF;
132
+ forwardTo4326?: ReprojectionFns["forwardReproject"];
133
+ inverseFrom4326?: ReprojectionFns["inverseReproject"];
134
+ forwardTo3857?: ReprojectionFns["forwardReproject"];
135
+ tms?: TileMatrixSet;
131
136
  defaultGetTileData?: COGLayerProps<TextureDataT>["getTileData"];
132
137
  defaultRenderTile?: COGLayerProps<TextureDataT>["renderTile"];
133
138
  };
@@ -137,14 +142,15 @@ export declare class COGLayer<DataT extends MinimalDataT = DefaultDataT> extends
137
142
  /**
138
143
  * Inner callback passed in to the underlying TileLayer's `getTileData`.
139
144
  */
140
- _getTileData(tile: TileLoadProps, images: GeoTIFFImage[], metadata: TileMatrixSet): Promise<GetTileDataResult<DataT>>;
145
+ _getTileData(tile: TileLoadProps, geotiff: GeoTIFF, tms: TileMatrixSet): Promise<GetTileDataResult<DataT>>;
141
146
  _renderSubLayers(props: TileLayerProps<GetTileDataResult<DataT>> & {
142
147
  id: string;
143
148
  data?: GetTileDataResult<DataT>;
144
149
  _offset: number;
145
150
  tile: Tile2DHeader<GetTileDataResult<DataT>>;
146
- }, metadata: TileMatrixSet, forwardReproject: ReprojectionFns["forwardReproject"], inverseReproject: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
147
- renderTileLayer(metadata: TileMatrixSet, forwardReproject: ReprojectionFns["forwardReproject"], inverseReproject: ReprojectionFns["inverseReproject"], images: GeoTIFFImage[]): TileLayer;
151
+ }, tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"]): Layer | LayersList | null;
152
+ /** Define the underlying deck.gl TileLayer. */
153
+ renderTileLayer(tms: TileMatrixSet, forwardTo4326: ReprojectionFns["forwardReproject"], inverseFrom4326: ReprojectionFns["inverseReproject"], forwardTo3857: ReprojectionFns["forwardReproject"], geotiff: GeoTIFF): TileLayer;
148
154
  renderLayers(): TileLayer<any, {}> | null;
149
155
  }
150
156
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"cog-layer.d.ts","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,KAAK,EACL,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,IAAI,YAAY,EAC7B,cAAc,EACd,cAAc,IAAI,aAAa,EAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,YAAY,EAEZ,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAQvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAO/D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,2EAA2E;IAC3E,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,+BAA+B;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,KAAK,iBAAiB,CAAC,KAAK,IAAI;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACtD,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY,CACtE,SAAQ,mBAAmB;IAC3B;;;;;;;;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;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,CACZ,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,kBAAkB,KACxB,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpB;;;;;;;;OAQG;IACH,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS,GAAG,YAAY,EAAE,CAAC;IAExD;;;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;AAQD;;GAEG;AACH,qBAAa,QAAQ,CACnB,KAAK,SAAS,YAAY,GAAG,YAAY,CACzC,SAAQ,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAgB,SAAS,SAAc;IACvC,OAAgB,YAAY,uCAAgB;IAEpC,KAAK,EAAE;QACb,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACvD,gBAAgB,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;QACxB,kBAAkB,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;QAChE,iBAAiB,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;KAC/D,CAAC;IAEO,eAAe,IAAI,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAa7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CpC;;OAEG;IACG,YAAY,CAChB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EAAE,EACtB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAyCpC,gBAAgB,CAGd,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG;QAChD,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9C,EACD,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,EACrD,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,GACpD,KAAK,GAAG,UAAU,GAAG,IAAI;IA8E5B,eAAe,CACb,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,EACrD,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,EACrD,MAAM,EAAE,YAAY,EAAE,GACrB,SAAS;IAsBZ,YAAY;CAiBb"}
1
+ {"version":3,"file":"cog-layer.d.ts","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
package/dist/cog-layer.js CHANGED
@@ -1,15 +1,17 @@
1
1
  import { CompositeLayer } from "@deck.gl/core";
2
2
  import { TileLayer } from "@deck.gl/geo-layers";
3
3
  import { PathLayer } from "@deck.gl/layers";
4
- import { RasterLayer, RasterTileset2D } from "@developmentseed/deck.gl-raster";
4
+ import { RasterLayer, TileMatrixSetTileset, } from "@developmentseed/deck.gl-raster";
5
+ import { generateTileMatrixSet } from "@developmentseed/geotiff";
6
+ import { tileTransform } from "@developmentseed/morecantile";
5
7
  import proj4 from "proj4";
6
- import { parseCOGTileMatrixSet } from "./cog-tile-matrix-set.js";
7
- import { defaultPool, fetchGeoTIFF, getGeographicBounds, } from "./geotiff/geotiff.js";
8
+ import wktParser from "wkt-parser";
9
+ import { fetchGeoTIFF, getGeographicBounds } from "./geotiff/geotiff.js";
8
10
  import { inferRenderPipeline } from "./geotiff/render-pipeline.js";
9
- import { fromGeoTransform } from "./geotiff-reprojection.js";
10
- import { epsgIoGeoKeyParser } from "./proj.js";
11
+ import { fromAffine } from "./geotiff-reprojection.js";
12
+ import { epsgResolver } from "./proj.js";
11
13
  const defaultProps = {
12
- geoKeysParser: epsgIoGeoKeyParser,
14
+ epsgResolver,
13
15
  debug: false,
14
16
  debugOpacity: 0.5,
15
17
  };
@@ -32,34 +34,34 @@ export class COGLayer extends CompositeLayer {
32
34
  }
33
35
  async _parseGeoTIFF() {
34
36
  const geotiff = await fetchGeoTIFF(this.props.geotiff);
35
- const geoKeysParser = this.props.geoKeysParser;
36
- const metadata = await parseCOGTileMatrixSet(geotiff, geoKeysParser);
37
- const image = await geotiff.getImage();
38
- const imageCount = await geotiff.getImageCount();
39
- const images = [];
40
- for (let imageIdx = 0; imageIdx < imageCount; imageIdx++) {
41
- images.push(await geotiff.getImage(imageIdx));
42
- }
43
- const sourceProjection = await geoKeysParser(image.getGeoKeys());
44
- if (!sourceProjection) {
45
- throw new Error("Could not determine source projection from GeoTIFF geo keys");
46
- }
47
- const converter = proj4(sourceProjection.def, "EPSG:4326");
48
- const forwardReproject = (x, y) => converter.forward([x, y], false);
49
- const inverseReproject = (x, y) => converter.inverse([x, y], false);
37
+ const crs = geotiff.crs;
38
+ const sourceProjection = typeof crs === "number"
39
+ ? await this.props.epsgResolver(crs)
40
+ : wktParser(crs);
41
+ const tms = generateTileMatrixSet(geotiff, sourceProjection);
42
+ // @ts-expect-error - proj4 typings are incomplete and don't support
43
+ // wkt-parser input
44
+ const converter4326 = proj4(sourceProjection, "EPSG:4326");
45
+ const forwardTo4326 = (x, y) => converter4326.forward([x, y], false);
46
+ const inverseFrom4326 = (x, y) => converter4326.inverse([x, y], false);
47
+ // @ts-expect-error - proj4 typings are incomplete and don't support
48
+ // wkt-parser input
49
+ const converter3857 = proj4(sourceProjection, "EPSG:3857");
50
+ const forwardTo3857 = (x, y) => converter3857.forward([x, y], false);
50
51
  if (this.props.onGeoTIFFLoad) {
51
- const geographicBounds = getGeographicBounds(image, converter);
52
+ const geographicBounds = getGeographicBounds(geotiff, converter4326);
52
53
  this.props.onGeoTIFFLoad(geotiff, {
53
54
  projection: sourceProjection,
54
55
  geographicBounds,
55
56
  });
56
57
  }
57
- const { getTileData: defaultGetTileData, renderTile: defaultRenderTile } = inferRenderPipeline(image.fileDirectory, this.context.device);
58
+ const { getTileData: defaultGetTileData, renderTile: defaultRenderTile } = inferRenderPipeline(geotiff, this.context.device);
58
59
  this.setState({
59
- metadata,
60
- forwardReproject,
61
- inverseReproject,
62
- images,
60
+ geotiff,
61
+ tms,
62
+ forwardTo4326,
63
+ inverseFrom4326,
64
+ forwardTo3857,
63
65
  defaultGetTileData,
64
66
  defaultRenderTile,
65
67
  });
@@ -67,29 +69,33 @@ export class COGLayer extends CompositeLayer {
67
69
  /**
68
70
  * Inner callback passed in to the underlying TileLayer's `getTileData`.
69
71
  */
70
- async _getTileData(tile, images, metadata) {
72
+ async _getTileData(tile, geotiff, tms) {
71
73
  const { signal } = tile;
72
74
  const { x, y, z } = tile.index;
73
75
  // Select overview image
74
- const geotiffImage = images[images.length - 1 - z];
75
- const imageHeight = geotiffImage.getHeight();
76
- const imageWidth = geotiffImage.getWidth();
77
- const tileMatrix = metadata.tileMatrices[z];
78
- const { tileWidth, tileHeight } = tileMatrix;
79
- const tileGeotransform = computeTileGeotransform(x, y, tileMatrix);
80
- const { forwardTransform, inverseTransform } = fromGeoTransform(tileGeotransform);
81
- const window = [
82
- x * tileWidth,
83
- y * tileHeight,
84
- Math.min((x + 1) * tileWidth, imageWidth),
85
- Math.min((y + 1) * tileHeight, imageHeight),
86
- ];
76
+ // If z=0, use the coarsest overview (which is the last in the array)
77
+ // If z=max, use the full-resolution image (which is the first in the array)
78
+ // TODO: should be able to (micro) optimize this to not create the array
79
+ // Something like:
80
+ // const image = z === geotiff.overviews.length - 1 ? geotiff :
81
+ // geotiff.overviews[geotiff.overviews.length - 1 - z]!;
82
+ const images = [geotiff, ...geotiff.overviews];
83
+ const image = images[images.length - 1 - z];
84
+ const tileMatrix = tms.tileMatrices[z];
85
+ const tileAffine = tileTransform(tileMatrix, { col: x, row: y });
86
+ const { forwardTransform, inverseTransform } = fromAffine(tileAffine);
87
87
  const getTileData = this.props.getTileData || this.state.defaultGetTileData;
88
- const data = await getTileData(geotiffImage, {
88
+ // Combine abort signals if both are defined
89
+ const combinedSignal = signal && this.props.signal
90
+ ? AbortSignal.any([signal, this.props.signal])
91
+ : signal || this.props.signal;
92
+ const data = await getTileData(image, {
89
93
  device: this.context.device,
90
- window,
91
- signal,
92
- pool: this.props.pool || defaultPool(),
94
+ x,
95
+ y,
96
+ signal: combinedSignal,
97
+ // TODO: restore pool
98
+ // pool: this.props.pool || defaultPool(),
93
99
  });
94
100
  return {
95
101
  // @ts-expect-error type mismatch when using provided getTileData
@@ -101,7 +107,7 @@ export class COGLayer extends CompositeLayer {
101
107
  _renderSubLayers(
102
108
  // TODO: it would be nice to have a cleaner type here
103
109
  // this is copy-pasted from the upstream tile layer definition for props.
104
- props, metadata, forwardReproject, inverseReproject) {
110
+ props, tms, forwardTo4326, inverseFrom4326) {
105
111
  const { maxError, debug, debugOpacity } = this.props;
106
112
  const { tile } = props;
107
113
  if (!props.data) {
@@ -121,8 +127,8 @@ export class COGLayer extends CompositeLayer {
121
127
  reprojectionFns: {
122
128
  forwardTransform,
123
129
  inverseTransform,
124
- forwardReproject,
125
- inverseReproject,
130
+ forwardReproject: forwardTo4326,
131
+ inverseReproject: inverseFrom4326,
126
132
  },
127
133
  debug,
128
134
  debugOpacity,
@@ -133,15 +139,15 @@ export class COGLayer extends CompositeLayer {
133
139
  // getTileMetadata returns data that includes projectedBounds
134
140
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
141
  const projectedBounds = tile?.projectedBounds;
136
- if (!projectedBounds || !metadata) {
142
+ if (!projectedBounds || !tms) {
137
143
  return [];
138
144
  }
139
145
  // Project bounds from image CRS to WGS84
140
146
  const { topLeft, topRight, bottomLeft, bottomRight } = projectedBounds;
141
- const topLeftWgs84 = metadata.projectToWgs84(topLeft);
142
- const topRightWgs84 = metadata.projectToWgs84(topRight);
143
- const bottomRightWgs84 = metadata.projectToWgs84(bottomRight);
144
- const bottomLeftWgs84 = metadata.projectToWgs84(bottomLeft);
147
+ const topLeftWgs84 = forwardTo4326(topLeft[0], topLeft[1]);
148
+ const topRightWgs84 = forwardTo4326(topRight[0], topRight[1]);
149
+ const bottomRightWgs84 = forwardTo4326(bottomRight[0], bottomRight[1]);
150
+ const bottomLeftWgs84 = forwardTo4326(bottomLeft[0], bottomLeft[1]);
145
151
  // Create a closed path around the tile bounds
146
152
  const path = [
147
153
  topLeftWgs84,
@@ -151,9 +157,9 @@ export class COGLayer extends CompositeLayer {
151
157
  topLeftWgs84, // Close the path
152
158
  ];
153
159
  layers.push(new PathLayer({
154
- id: `${tile.id}-bounds`,
155
- data: [{ path }],
156
- getPath: (d) => d.path,
160
+ id: `${this.id}-${tile.id}-bounds`,
161
+ data: [path],
162
+ getPath: (d) => d,
157
163
  getColor: [255, 0, 0, 255], // Red
158
164
  getWidth: 2,
159
165
  widthUnits: "pixels",
@@ -162,44 +168,37 @@ export class COGLayer extends CompositeLayer {
162
168
  }
163
169
  return layers;
164
170
  }
165
- renderTileLayer(metadata, forwardReproject, inverseReproject, images) {
171
+ /** Define the underlying deck.gl TileLayer. */
172
+ renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff) {
166
173
  // Create a factory class that wraps COGTileset2D with the metadata
167
- class RasterTileset2DFactory extends RasterTileset2D {
174
+ class TileMatrixSetTilesetFactory extends TileMatrixSetTileset {
168
175
  constructor(opts) {
169
- super(metadata, opts);
176
+ super(opts, tms, {
177
+ projectTo4326: forwardTo4326,
178
+ projectTo3857: forwardTo3857,
179
+ });
170
180
  }
171
181
  }
172
182
  return new TileLayer({
173
183
  id: `cog-tile-layer-${this.id}`,
174
- TilesetClass: RasterTileset2DFactory,
175
- getTileData: async (tile) => this._getTileData(tile, images, metadata),
176
- renderSubLayers: (props) => this._renderSubLayers(props, metadata, forwardReproject, inverseReproject),
184
+ TilesetClass: TileMatrixSetTilesetFactory,
185
+ getTileData: async (tile) => this._getTileData(tile, geotiff, tms),
186
+ renderSubLayers: (props) => this._renderSubLayers(props, tms, forwardTo4326, inverseFrom4326),
177
187
  });
178
188
  }
179
189
  renderLayers() {
180
- const { forwardReproject, inverseReproject, metadata, images } = this.state;
181
- if (!forwardReproject || !inverseReproject || !metadata || !images) {
190
+ const { forwardTo4326, inverseFrom4326, forwardTo3857, tms, geotiff } = this.state;
191
+ if (!forwardTo4326 ||
192
+ !inverseFrom4326 ||
193
+ !forwardTo3857 ||
194
+ !tms ||
195
+ !geotiff) {
182
196
  return null;
183
197
  }
184
198
  // Split into a separate method to make TS happy, because when metadata is
185
199
  // nullable in any part of function scope, the tileset factory wrapper gives
186
200
  // a type error
187
- return this.renderTileLayer(metadata, forwardReproject, inverseReproject, images);
201
+ return this.renderTileLayer(tms, forwardTo4326, inverseFrom4326, forwardTo3857, geotiff);
188
202
  }
189
203
  }
190
- /**
191
- * Compute the affine geotransform for this tile.
192
- *
193
- * We need to offset the geotransform for the matrix level by the tile's pixel
194
- * origin.
195
- */
196
- function computeTileGeotransform(x, y, tileMatrix) {
197
- const { tileWidth, tileHeight } = tileMatrix;
198
- const xPixelOrigin = x * tileWidth;
199
- const yPixelOrigin = y * tileHeight;
200
- const [a, b, c, d, e, f] = tileMatrix.geotransform;
201
- const xCoordOffset = a * xPixelOrigin + b * yPixelOrigin + c;
202
- const yCoordOffset = d * xPixelOrigin + e * yPixelOrigin + f;
203
- return [a, b, xCoordOffset, d, e, yCoordOffset];
204
- }
205
204
  //# sourceMappingURL=cog-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cog-layer.js","sourceRoot":"","sources":["../src/cog-layer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,3 @@
1
- import type { TileMatrixSet } from "@developmentseed/deck.gl-raster";
2
- import type { GeoTIFF } from "geotiff";
3
- import type { GeoKeysParser } from "./proj";
4
- /**
5
- *
6
- * Ported from Vincent's work here:
7
- * https://github.com/developmentseed/morecantile/pull/187/changes#diff-402eedddfa30af554d03750c8a82a09962b44b044976c321b774b484b98e8f48R665
8
- *
9
- * @return {TileMatrixSet}[return description]
10
- */
11
- export declare function parseCOGTileMatrixSet(tiff: GeoTIFF, geoKeysParser: GeoKeysParser): Promise<TileMatrixSet>;
1
+ import type { BoundingBox } from "@developmentseed/morecantile";
2
+ export declare function computeWgs84BoundingBox(boundingBox: BoundingBox, projectToWgs84: (point: [number, number]) => [number, number]): BoundingBox;
12
3
  //# sourceMappingURL=cog-tile-matrix-set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cog-tile-matrix-set.d.ts","sourceRoot":"","sources":["../src/cog-tile-matrix-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,SAAS,CAAC;AAIrD,OAAO,KAAK,EAAE,aAAa,EAAoC,MAAM,QAAQ,CAAC;AAM9E;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,aAAa,CAAC,CAyFxB"}
1
+ {"version":3,"file":"cog-tile-matrix-set.d.ts","sourceRoot":"","sources":["../src/cog-tile-matrix-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAGhE,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5D,WAAW,CA0Cb"}