Important
Please participate in the survey here!
(open until end of February)
To achieve a better sample size, I'd highly appreciate if you could circulate the link to this survey in your own networks.
Note
This is one of 189 standalone projects, maintained as part of the @thi.ng/umbrella monorepo and anti-framework.
🚀 Help me to work full-time on these projects by sponsoring me on GitHub. Thank you! ❤️
GeoTIFF reader support for @thi.ng/pixel.
This package is only intended to simplify obtaining DEM (elevation) data and not aimed at general GeoTIFF functionality. For the latter we recommend using the wrapped geotiff.js package directly.
ALPHA - bleeding edge / work-in-progress
Search or submit any issues for this package
yarn add @thi.ng/pixel-io-geotiff
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/pixel-io-geotiff"></script>
For Node.js REPL:
const pixelIoGeotiff = await import("@thi.ng/pixel-io-geotiff");
Package sizes (brotli'd, pre-treeshake): ESM: 399 bytes
import { GRAY16 } from "@thi.ng/pixel";
import { readGeoTiff } from "@thi.ng/pixel-io-geotiff";
import { asPGM16 } from "@thi.ng/pixel-io-netpbm";
import { readFileSync } from "fs";
// load GeoTIFF image and convert to thi.ng/pixel floatBuffer
// the result image uses a custom pixel format (FLOAT_GRAY_RANGE, with [min..max]
// set to the analyzed value range found in the source image raster...)
const result = await readGeoTiff(readFileSync("USGS_1_n37w119_20211004.tif"));
// { img: FloatBuffer { size: [ 3612, 3612 ], ... }, tiff: { ... } }
// convert to 16bit PGM
writeFileSync("n37w119.pgm", asPGM16(result.img.as(GRAY16)));
// the result also contains the original TIFF image
// (see 3rd party geotiff package for more details)
result.tiff.getGDALMetadata(0);
// {
// LAYER_TYPE: '*',
// RepresentationType: '*',
// STATISTICS_MAXIMUM: '4412.8549804688',
// STATISTICS_MEAN: '2114.5010480446',
// STATISTICS_MINIMUM: '140.41374206543',
// STATISTICS_STDDEV: '918.91201914189',
// STATISTICS_VALID_PERCENT: '100'
// }
If this project contributes to an academic publication, please cite it as:
@misc{thing-pixel-io-geotiff,
title = "@thi.ng/pixel-io-geotiff",
author = "Karsten Schmidt",
note = "https://thi.ng/pixel-io-geotiff",
year = 2023
}
© 2023 - 2024 Karsten Schmidt // Apache License 2.0