geotiff-read-bbox

Read Pixel Values from a GeoTIFF within a Bounding Box in almost any Projection

Usage no npm install needed!

<script type="module">
  import geotiffReadBbox from 'https://cdn.skypack.dev/geotiff-read-bbox';
</script>

README

geotiff-read-bbox

Read Pixel Values from a GeoTIFF within a Bounding Box in almost any Projection

motivation

Sometimes you want to display pixel values in a different projection than your GeoTIFF. The most common use case is when you want to create an image for a web map tile in Web Mercator, but your GeoTIFF is not in Web Mercator.

install

npm install geotiff-read-bbox

usage

const geotiff = require("geotiff");
const readBoundingBox = require("geotiff-read-bbox");

const url = "https://s3-us-west-2.amazonaws.com/planet-disaster-data/hurricane-harvey/SkySat_Freeport_s03_20170831T162740Z3.tif";
const geotiff = await GeoTIFF.fromUrl(url);

const result = await readBoundingBox({
  // bounding box in [xmin, ymin, xmax, ymax] format
  bbox: [-95.33935546875, 28.92163128242129, -95.3173828125, 28.940861769405547],

  // set debug to true for increased logging
  debug: false,

  // spatial reference system of the bounding box
  srs: 4326,

  // tiff object created by using the geotiff.js library
  geotiff
});

result will look like the following

{
  srs_of_geotiff: 32615,
  read_bbox: [ 271940.8, 3201512.8000000003, 274126.4, 3203687.2 ],
  height: 2718,
  width: 2732,
  data: [
    Uint8Array(7425576) [
      140, 141, 141, 141, 140, 139, 139, 140, 139, 139, 140, 140,
      140, 140, 141, 141, 143, 143, 142, 142, 142, 142, 142, 143,
      ... many more items
    ],
    Uint8Array(7425576) [
      136, 136, 136, 136, 136, 135, 136, 137, 135, 135, 135, 136,
      135, 136, 137, 137, 139, 139, 138, 138, 137, 137, 137, 138,
      ... many more items
    ],
    Uint8Array(7425576) [
      130, 131, 133, 133, 133, 132, 132, 133, 132, 132, 133, 134,
      133, 133, 134, 134, 136, 136, 135, 135, 135, 135, 134, 135,
      ... many more items
    ],
    width: 2732,
    height: 2718
  ]
}