@developmentseed/deck.gl-geotiff 0.2.0 → 0.3.0

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 (46) hide show
  1. package/README.md +33 -4
  2. package/dist/cog-layer.d.ts +63 -57
  3. package/dist/cog-layer.d.ts.map +1 -1
  4. package/dist/cog-layer.js +116 -85
  5. package/dist/cog-layer.js.map +1 -1
  6. package/dist/geotiff/geotiff.d.ts +5 -43
  7. package/dist/geotiff/geotiff.d.ts.map +1 -1
  8. package/dist/geotiff/geotiff.js +34 -103
  9. package/dist/geotiff/geotiff.js.map +1 -1
  10. package/dist/geotiff/render-pipeline.d.ts +7 -5
  11. package/dist/geotiff/render-pipeline.d.ts.map +1 -1
  12. package/dist/geotiff/render-pipeline.js +152 -49
  13. package/dist/geotiff/render-pipeline.js.map +1 -1
  14. package/dist/geotiff/texture.d.ts +5 -4
  15. package/dist/geotiff/texture.d.ts.map +1 -1
  16. package/dist/geotiff/texture.js +7 -7
  17. package/dist/geotiff/texture.js.map +1 -1
  18. package/dist/geotiff-layer.d.ts +21 -24
  19. package/dist/geotiff-layer.d.ts.map +1 -1
  20. package/dist/geotiff-layer.js +25 -21
  21. package/dist/geotiff-layer.js.map +1 -1
  22. package/dist/geotiff-reprojection.d.ts +5 -18
  23. package/dist/geotiff-reprojection.d.ts.map +1 -1
  24. package/dist/geotiff-reprojection.js +9 -126
  25. package/dist/geotiff-reprojection.js.map +1 -1
  26. package/dist/index.d.ts +3 -10
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -7
  29. package/dist/index.js.map +1 -1
  30. package/dist/proj.d.ts +3 -23
  31. package/dist/proj.d.ts.map +1 -1
  32. package/dist/proj.js +20 -38
  33. package/dist/proj.js.map +1 -1
  34. package/package.json +16 -12
  35. package/dist/cog-tile-matrix-set.d.ts +0 -32
  36. package/dist/cog-tile-matrix-set.d.ts.map +0 -1
  37. package/dist/cog-tile-matrix-set.js +0 -180
  38. package/dist/cog-tile-matrix-set.js.map +0 -1
  39. package/dist/ellipsoids.d.ts +0 -153
  40. package/dist/ellipsoids.d.ts.map +0 -1
  41. package/dist/ellipsoids.js +0 -153
  42. package/dist/ellipsoids.js.map +0 -1
  43. package/dist/geotiff/types.d.ts +0 -34
  44. package/dist/geotiff/types.d.ts.map +0 -1
  45. package/dist/geotiff/types.js +0 -18
  46. package/dist/geotiff/types.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@developmentseed/deck.gl-geotiff",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "GeoTIFF and Cloud-Optimized GeoTIFF visualization in deck.gl",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,23 +33,27 @@
33
33
  "url": "git+https://github.com/developmentseed/deck.gl-raster.git"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/node": "^25.0.3",
37
- "jsdom": "^27.4.0",
36
+ "@types/node": "^25.3.3",
37
+ "jsdom": "^28.1.0",
38
38
  "typescript": "^5.9.3",
39
- "vitest": "^4.0.16"
39
+ "vitest": "^4.0.18"
40
40
  },
41
41
  "dependencies": {
42
+ "@cogeotiff/core": "^9.4.0",
42
43
  "flatbush": "^4.5.0",
43
- "geotiff": "2.1.3",
44
- "proj4": "^2.20.2",
45
- "@developmentseed/raster-reproject": "^0.2.0",
46
- "@developmentseed/deck.gl-raster": "^0.2.0"
44
+ "proj4": "^2.20.3",
45
+ "wkt-parser": "^1.5.3",
46
+ "@developmentseed/affine": "^0.3.0",
47
+ "@developmentseed/deck.gl-raster": "^0.3.0",
48
+ "@developmentseed/geotiff": "^0.3.0",
49
+ "@developmentseed/morecantile": "^0.3.0",
50
+ "@developmentseed/raster-reproject": "^0.3.0"
47
51
  },
48
52
  "peerDependencies": {
49
- "@deck.gl/core": "^9.2.6",
50
- "@deck.gl/geo-layers": "^9.2.6",
51
- "@deck.gl/layers": "^9.2.6",
52
- "@deck.gl/mesh-layers": "^9.2.6",
53
+ "@deck.gl/core": "^9.2.7",
54
+ "@deck.gl/geo-layers": "^9.2.7",
55
+ "@deck.gl/layers": "^9.2.7",
56
+ "@deck.gl/mesh-layers": "^9.2.7",
53
57
  "@luma.gl/core": "^9.2.6"
54
58
  },
55
59
  "volta": {
@@ -1,32 +0,0 @@
1
- import type { TileMatrixSet } from "@developmentseed/deck.gl-raster";
2
- import type { GeoTIFF } from "geotiff";
3
- import { type ProjectionDefinition } from "proj4";
4
- import type { GeoKeysParser, SupportedCrsUnit } from "./proj";
5
- /**
6
- *
7
- * Ported from Vincent's work here:
8
- * https://github.com/developmentseed/morecantile/pull/187/changes#diff-402eedddfa30af554d03750c8a82a09962b44b044976c321b774b484b98e8f48R665
9
- *
10
- * @return {TileMatrixSet}[return description]
11
- */
12
- export declare function parseCOGTileMatrixSet(tiff: GeoTIFF, geoKeysParser: GeoKeysParser): Promise<TileMatrixSet>;
13
- /**
14
- * Coefficient to convert the coordinate reference system (CRS)
15
- * units into meters (metersPerUnit).
16
- *
17
- * From note g in http://docs.opengeospatial.org/is/17-083r2/17-083r2.html#table_2:
18
- *
19
- * > If the CRS uses meters as units of measure for the horizontal dimensions,
20
- * > then metersPerUnit=1; if it has degrees, then metersPerUnit=2pa/360
21
- * > (a is the Earth maximum radius of the ellipsoid).
22
- *
23
- * If `crsUnit` is provided, it takes precedence over the unit defined in the
24
- * CRS. This exists because sometimes the parsed CRS from
25
- * `geotiff-geokeys-to-proj4` doesn't have a unit defined.
26
- */
27
- declare function metersPerUnit(parsedCrs: ProjectionDefinition, crsUnit?: SupportedCrsUnit): number;
28
- export declare const __TEST_EXPORTS: {
29
- metersPerUnit: typeof metersPerUnit;
30
- };
31
- export {};
32
- //# sourceMappingURL=cog-tile-matrix-set.d.ts.map
@@ -1 +0,0 @@
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;AACrD,OAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,KAAK,EAAE,aAAa,EAAkB,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAM9E;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,aAAa,CAAC,CAyFxB;AAED;;;;;;;;;;;;;GAaG;AAEH,iBAAS,aAAa,CACpB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAqBR;AA4GD,eAAO,MAAM,cAAc;;CAE1B,CAAC"}
@@ -1,180 +0,0 @@
1
- import proj4 from "proj4";
2
- import Ellipsoid from "./ellipsoids.js";
3
- import { extractGeotransform } from "./geotiff-reprojection";
4
- // 0.28 mm per pixel
5
- // https://docs.ogc.org/is/17-083r4/17-083r4.html#toc15
6
- const SCREEN_PIXEL_SIZE = 0.00028;
7
- /**
8
- *
9
- * Ported from Vincent's work here:
10
- * https://github.com/developmentseed/morecantile/pull/187/changes#diff-402eedddfa30af554d03750c8a82a09962b44b044976c321b774b484b98e8f48R665
11
- *
12
- * @return {TileMatrixSet}[return description]
13
- */
14
- export async function parseCOGTileMatrixSet(tiff, geoKeysParser) {
15
- const fullResImage = await tiff.getImage();
16
- if (!fullResImage.isTiled) {
17
- throw new Error("COG TileMatrixSet requires a tiled GeoTIFF");
18
- }
19
- const imageCount = await tiff.getImageCount();
20
- const bbox = fullResImage.getBoundingBox();
21
- const fullImageWidth = fullResImage.getWidth();
22
- const fullImageHeight = fullResImage.getHeight();
23
- const crs = await geoKeysParser(fullResImage.getGeoKeys());
24
- if (crs === null) {
25
- throw new Error("Could not determine coordinate reference system from GeoTIFF geo keys");
26
- }
27
- const projectToWgs84 = proj4(crs.def, "EPSG:4326").forward;
28
- const projectTo3857 = proj4(crs.def, "EPSG:3857").forward;
29
- const boundingBox = {
30
- lowerLeft: [bbox[0], bbox[1]],
31
- upperRight: [bbox[2], bbox[3]],
32
- };
33
- const transform = extractGeotransform(fullResImage);
34
- if (transform[1] !== 0 || transform[3] !== 0) {
35
- // TileMatrixSet assumes orthogonal axes
36
- throw new Error("COG TileMatrixSet with rotation/skewed geotransform is not supported");
37
- }
38
- const cellSize = Math.abs(transform[0]);
39
- const tileWidth = fullResImage.getTileWidth();
40
- const tileHeight = fullResImage.getTileHeight();
41
- const tileMatrices = [
42
- {
43
- // Set as highest resolution / finest level
44
- id: String(imageCount - 1),
45
- scaleDenominator: (cellSize * metersPerUnit(crs.parsed, crs.coordinatesUnits)) /
46
- SCREEN_PIXEL_SIZE,
47
- cellSize,
48
- pointOfOrigin: [transform[2], transform[5]],
49
- tileWidth: fullResImage.getTileWidth(),
50
- tileHeight: fullResImage.getTileHeight(),
51
- matrixWidth: Math.ceil(fullImageWidth / tileWidth),
52
- matrixHeight: Math.ceil(fullImageHeight / tileHeight),
53
- geotransform: transform,
54
- },
55
- ];
56
- // Starting from 1 to skip full res image
57
- for (let imageIdx = 1; imageIdx < imageCount; imageIdx++) {
58
- const image = await tiff.getImage(imageIdx);
59
- if (!image.isTiled) {
60
- throw new Error("COG TileMatrixSet requires a tiled GeoTIFF");
61
- }
62
- const tileMatrix = createOverviewTileMatrix({
63
- id: String(imageCount - 1 - imageIdx),
64
- image,
65
- fullWidth: fullImageWidth,
66
- fullHeight: fullImageHeight,
67
- baseTransform: transform,
68
- crs,
69
- });
70
- tileMatrices.push(tileMatrix);
71
- }
72
- // Reverse to have coarsest level first
73
- tileMatrices.reverse();
74
- return {
75
- crs,
76
- boundingBox,
77
- wgsBounds: computeWgs84BoundingBox(boundingBox, projectToWgs84),
78
- tileMatrices,
79
- projectToWgs84,
80
- projectTo3857,
81
- };
82
- }
83
- /**
84
- * Coefficient to convert the coordinate reference system (CRS)
85
- * units into meters (metersPerUnit).
86
- *
87
- * From note g in http://docs.opengeospatial.org/is/17-083r2/17-083r2.html#table_2:
88
- *
89
- * > If the CRS uses meters as units of measure for the horizontal dimensions,
90
- * > then metersPerUnit=1; if it has degrees, then metersPerUnit=2pa/360
91
- * > (a is the Earth maximum radius of the ellipsoid).
92
- *
93
- * If `crsUnit` is provided, it takes precedence over the unit defined in the
94
- * CRS. This exists because sometimes the parsed CRS from
95
- * `geotiff-geokeys-to-proj4` doesn't have a unit defined.
96
- */
97
- // https://github.com/developmentseed/morecantile/blob/7c95a11c491303700d6e33e9c1607f2719584dec/morecantile/utils.py#L67-L90
98
- function metersPerUnit(parsedCrs, crsUnit) {
99
- const unit = (crsUnit || parsedCrs.units)?.toLowerCase();
100
- switch (unit) {
101
- case "m":
102
- case "metre":
103
- case "meter":
104
- case "meters":
105
- return 1;
106
- case "foot":
107
- return 0.3048;
108
- case "us survey foot":
109
- return 1200 / 3937;
110
- }
111
- if (unit === "degree") {
112
- // 2 * π * ellipsoid semi-major-axis / 360
113
- const { a } = Ellipsoid[parsedCrs.ellps];
114
- return (2 * Math.PI * a) / 360;
115
- }
116
- throw new Error(`Unsupported CRS units: ${unit}`);
117
- }
118
- /**
119
- * Create tile matrix for COG overview
120
- */
121
- function createOverviewTileMatrix({ id, image, fullWidth, baseTransform, crs, }) {
122
- const width = image.getWidth();
123
- const height = image.getHeight();
124
- // For now, just use scaleX
125
- // https://github.com/developmentseed/morecantile/pull/187/changes#r2621314673
126
- const scaleX = fullWidth / width;
127
- // const scaleY = fullHeight / height;
128
- // if (Math.abs(scaleX - scaleY) > 1e-3) {
129
- // throw new Error("Non-uniform overview scaling detected (X/Y differ)");
130
- // }
131
- const scale = scaleX;
132
- const geotransform = [
133
- baseTransform[0] * scale,
134
- baseTransform[1] * scale,
135
- baseTransform[2], // x origin stays the same
136
- baseTransform[3] * scale,
137
- baseTransform[4] * scale,
138
- baseTransform[5], // y origin stays the same
139
- ];
140
- const cellSize = Math.abs(geotransform[0]);
141
- const tileWidth = image.getTileWidth();
142
- const tileHeight = image.getTileHeight();
143
- return {
144
- id,
145
- scaleDenominator: (cellSize * metersPerUnit(crs.parsed, crs.coordinatesUnits)) /
146
- SCREEN_PIXEL_SIZE,
147
- cellSize,
148
- pointOfOrigin: [geotransform[2], geotransform[5]],
149
- tileWidth,
150
- tileHeight,
151
- matrixWidth: Math.ceil(width / tileWidth),
152
- matrixHeight: Math.ceil(height / tileHeight),
153
- geotransform,
154
- };
155
- }
156
- function computeWgs84BoundingBox(boundingBox, projectToWgs84) {
157
- const lowerLeftWgs84 = projectToWgs84(boundingBox.lowerLeft);
158
- const lowerRightWgs84 = projectToWgs84([
159
- boundingBox.upperRight[0],
160
- boundingBox.lowerLeft[1],
161
- ]);
162
- const upperRightWgs84 = projectToWgs84(boundingBox.upperRight);
163
- const upperLeftWgs84 = projectToWgs84([
164
- boundingBox.lowerLeft[0],
165
- boundingBox.upperRight[1],
166
- ]);
167
- // Compute min/max lat/lon
168
- const minLon = Math.min(lowerLeftWgs84[0], lowerRightWgs84[0], upperRightWgs84[0], upperLeftWgs84[0]);
169
- const maxLon = Math.max(lowerLeftWgs84[0], lowerRightWgs84[0], upperRightWgs84[0], upperLeftWgs84[0]);
170
- const minLat = Math.min(lowerLeftWgs84[1], lowerRightWgs84[1], upperRightWgs84[1], upperLeftWgs84[1]);
171
- const maxLat = Math.max(lowerLeftWgs84[1], lowerRightWgs84[1], upperRightWgs84[1], upperLeftWgs84[1]);
172
- return {
173
- lowerLeft: [minLon, minLat],
174
- upperRight: [maxLon, maxLat],
175
- };
176
- }
177
- export const __TEST_EXPORTS = {
178
- metersPerUnit,
179
- };
180
- //# sourceMappingURL=cog-tile-matrix-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cog-tile-matrix-set.js","sourceRoot":"","sources":["../src/cog-tile-matrix-set.ts"],"names":[],"mappings":"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"}
@@ -1,153 +0,0 @@
1
- /**
2
- * Vendored and edited from proj4.js.
3
- *
4
- * In the implementation of metersPerUnit while generating a COG TileMatrixSet,
5
- * we need to know the size of the semi major axis in the case the CRS is in
6
- * degrees.
7
- *
8
- * https://github.com/proj4js/proj4js/blob/e90e5fa6872a1ffc40edb161cbeb4bd5e3bd9db5/lib/constants/Ellipsoid.js
9
- */
10
- declare const ellipsoids: {
11
- MERIT: {
12
- a: number;
13
- };
14
- SGS85: {
15
- a: number;
16
- };
17
- GRS80: {
18
- a: number;
19
- };
20
- IAU76: {
21
- a: number;
22
- };
23
- airy: {
24
- a: number;
25
- b: number;
26
- };
27
- APL4: {
28
- a: number;
29
- };
30
- NWL9D: {
31
- a: number;
32
- };
33
- mod_airy: {
34
- a: number;
35
- b: number;
36
- };
37
- andrae: {
38
- a: number;
39
- };
40
- aust_SA: {
41
- a: number;
42
- };
43
- GRS67: {
44
- a: number;
45
- };
46
- bessel: {
47
- a: number;
48
- };
49
- bess_nam: {
50
- a: number;
51
- };
52
- clrk66: {
53
- a: number;
54
- b: number;
55
- };
56
- clrk80: {
57
- a: number;
58
- };
59
- clrk80ign: {
60
- a: number;
61
- b: number;
62
- };
63
- clrk58: {
64
- a: number;
65
- };
66
- CPM: {
67
- a: number;
68
- };
69
- delmbr: {
70
- a: number;
71
- };
72
- engelis: {
73
- a: number;
74
- };
75
- evrst30: {
76
- a: number;
77
- };
78
- evrst48: {
79
- a: number;
80
- };
81
- evrst56: {
82
- a: number;
83
- };
84
- evrst69: {
85
- a: number;
86
- };
87
- evrstSS: {
88
- a: number;
89
- };
90
- fschr60: {
91
- a: number;
92
- };
93
- fschr60m: {
94
- a: number;
95
- };
96
- fschr68: {
97
- a: number;
98
- };
99
- helmert: {
100
- a: number;
101
- };
102
- hough: {
103
- a: number;
104
- };
105
- intl: {
106
- a: number;
107
- };
108
- kaula: {
109
- a: number;
110
- };
111
- lerch: {
112
- a: number;
113
- };
114
- mprts: {
115
- a: number;
116
- };
117
- new_intl: {
118
- a: number;
119
- b: number;
120
- };
121
- plessis: {
122
- a: number;
123
- };
124
- krass: {
125
- a: number;
126
- };
127
- SEasia: {
128
- a: number;
129
- b: number;
130
- };
131
- walbeck: {
132
- a: number;
133
- b: number;
134
- };
135
- WGS60: {
136
- a: number;
137
- };
138
- WGS66: {
139
- a: number;
140
- };
141
- WGS7: {
142
- a: number;
143
- };
144
- WGS84: {
145
- a: number;
146
- };
147
- sphere: {
148
- a: number;
149
- b: number;
150
- };
151
- };
152
- export default ellipsoids;
153
- //# sourceMappingURL=ellipsoids.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipsoids.d.ts","sourceRoot":"","sources":["../src/ellipsoids.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6If,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,153 +0,0 @@
1
- /**
2
- * Vendored and edited from proj4.js.
3
- *
4
- * In the implementation of metersPerUnit while generating a COG TileMatrixSet,
5
- * we need to know the size of the semi major axis in the case the CRS is in
6
- * degrees.
7
- *
8
- * https://github.com/proj4js/proj4js/blob/e90e5fa6872a1ffc40edb161cbeb4bd5e3bd9db5/lib/constants/Ellipsoid.js
9
- */
10
- const ellipsoids = {
11
- MERIT: {
12
- a: 6378137,
13
- },
14
- SGS85: {
15
- a: 6378136,
16
- },
17
- GRS80: {
18
- a: 6378137,
19
- },
20
- IAU76: {
21
- a: 6378140,
22
- },
23
- airy: {
24
- a: 6377563.396,
25
- b: 6356256.91,
26
- },
27
- APL4: {
28
- a: 6378137,
29
- },
30
- NWL9D: {
31
- a: 6378145,
32
- },
33
- mod_airy: {
34
- a: 6377340.189,
35
- b: 6356034.446,
36
- },
37
- andrae: {
38
- a: 6377104.43,
39
- },
40
- aust_SA: {
41
- a: 6378160,
42
- },
43
- GRS67: {
44
- a: 6378160,
45
- },
46
- bessel: {
47
- a: 6377397.155,
48
- },
49
- bess_nam: {
50
- a: 6377483.865,
51
- },
52
- clrk66: {
53
- a: 6378206.4,
54
- b: 6356583.8,
55
- },
56
- clrk80: {
57
- a: 6378249.145,
58
- },
59
- clrk80ign: {
60
- a: 6378249.2,
61
- b: 6356515,
62
- },
63
- clrk58: {
64
- a: 6378293.645208759,
65
- },
66
- CPM: {
67
- a: 6375738.7,
68
- },
69
- delmbr: {
70
- a: 6376428,
71
- },
72
- engelis: {
73
- a: 6378136.05,
74
- },
75
- evrst30: {
76
- a: 6377276.345,
77
- },
78
- evrst48: {
79
- a: 6377304.063,
80
- },
81
- evrst56: {
82
- a: 6377301.243,
83
- },
84
- evrst69: {
85
- a: 6377295.664,
86
- },
87
- evrstSS: {
88
- a: 6377298.556,
89
- },
90
- fschr60: {
91
- a: 6378166,
92
- },
93
- fschr60m: {
94
- a: 6378155,
95
- },
96
- fschr68: {
97
- a: 6378150,
98
- },
99
- helmert: {
100
- a: 6378200,
101
- },
102
- hough: {
103
- a: 6378270,
104
- },
105
- intl: {
106
- a: 6378388,
107
- },
108
- kaula: {
109
- a: 6378163,
110
- },
111
- lerch: {
112
- a: 6378139,
113
- },
114
- mprts: {
115
- a: 6397300,
116
- },
117
- new_intl: {
118
- a: 6378157.5,
119
- b: 6356772.2,
120
- },
121
- plessis: {
122
- a: 6376523,
123
- },
124
- krass: {
125
- a: 6378245,
126
- },
127
- SEasia: {
128
- a: 6378155,
129
- b: 6356773.3205,
130
- },
131
- walbeck: {
132
- a: 6376896,
133
- b: 6355834.8467,
134
- },
135
- WGS60: {
136
- a: 6378165,
137
- },
138
- WGS66: {
139
- a: 6378145,
140
- },
141
- WGS7: {
142
- a: 6378135,
143
- },
144
- WGS84: {
145
- a: 6378137,
146
- },
147
- sphere: {
148
- a: 6370997,
149
- b: 6370997,
150
- },
151
- };
152
- export default ellipsoids;
153
- //# sourceMappingURL=ellipsoids.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipsoids.js","sourceRoot":"","sources":["../src/ellipsoids.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,GAAG;IACjB,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,IAAI,EAAE;QACJ,CAAC,EAAE,WAAW;QACd,CAAC,EAAE,UAAU;KACd;IACD,IAAI,EAAE;QACJ,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,WAAW;QACd,CAAC,EAAE,WAAW;KACf;IACD,MAAM,EAAE;QACN,CAAC,EAAE,UAAU;KACd;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,MAAM,EAAE;QACN,CAAC,EAAE,WAAW;KACf;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,WAAW;KACf;IACD,MAAM,EAAE;QACN,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;KACb;IACD,MAAM,EAAE;QACN,CAAC,EAAE,WAAW;KACf;IACD,SAAS,EAAE;QACT,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,OAAO;KACX;IACD,MAAM,EAAE;QACN,CAAC,EAAE,iBAAiB;KACrB;IACD,GAAG,EAAE;QACH,CAAC,EAAE,SAAS;KACb;IACD,MAAM,EAAE;QACN,CAAC,EAAE,OAAO;KACX;IACD,OAAO,EAAE;QACP,CAAC,EAAE,UAAU;KACd;IACD,OAAO,EAAE;QACP,CAAC,EAAE,WAAW;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,WAAW;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,WAAW;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,WAAW;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,WAAW;KACf;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;KACX;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,OAAO;KACX;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;KACX;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,IAAI,EAAE;QACJ,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,QAAQ,EAAE;QACR,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;KACb;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,MAAM,EAAE;QACN,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,YAAY;KAChB;IACD,OAAO,EAAE;QACP,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,YAAY;KAChB;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,IAAI,EAAE;QACJ,CAAC,EAAE,OAAO;KACX;IACD,KAAK,EAAE;QACL,CAAC,EAAE,OAAO;KACX;IACD,MAAM,EAAE;QACN,CAAC,EAAE,OAAO;QACV,CAAC,EAAE,OAAO;KACX;CACF,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,34 +0,0 @@
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
- export declare enum PlanarConfigurationT {
13
- Chunky = 1,
14
- Planar = 2
15
- }
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
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
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,18 +0,0 @@
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 = {}));
13
- export var PlanarConfigurationT;
14
- (function (PlanarConfigurationT) {
15
- PlanarConfigurationT[PlanarConfigurationT["Chunky"] = 1] = "Chunky";
16
- PlanarConfigurationT[PlanarConfigurationT["Planar"] = 2] = "Planar";
17
- })(PlanarConfigurationT || (PlanarConfigurationT = {}));
18
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
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"}