Skip to content

Commit

Permalink
Merge branch 'master' of github.com:GeoTIFF/geotiff-stats
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielJDufour committed Jan 13, 2020
2 parents 74ed15f + 935e380 commit 48b0356
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
# geotiff-stats
Get Statistics from a GeoTIFF without Crashing Your Browser
Get Statistics from a Large GeoTIFF without Crashing Your Browser

# install
`npm install geotiff-stats`

# problem
I wanted to load a Landsat scene into geotiff.io, but my Chromebook couldn't load all the values into memory in order to calculate the minimum and maximum. This package was created, in order to enable people on low-memory devices to iteratively loop over pixel values in a GeoTIFF image and calculate aggregate statistics like minimum and maximum.

# usage
```javascript
import { getStats } from 'geotiff-stats';
const { readFileSync } = require('fs');
const { fromArrayBuffer } = require('geotiff');
const { getStats } = require('geotiff-stats');


const stats = await getStats(image, { maximum: true, minimum: true, bufferSize: 10000 });
const data = readFileSync('LC80120312013106LGN01_B6.tif');
const arrayBuffer = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
const geotiff = await fromArrayBuffer(arrayBuffer);
const image = await geotiff.getImage();
const results = await getStats(image);
console.log(results);
// { bands: [{ min: 0, max: 62196 }] }
```

# accessing data from a specific band
getStats returns an object with the max and min for each band. You can access the max for the 3rd band (index of 2) with the following: `results.bands[2].max`

# contact
Post an issue at https://github.com/GeoTIFF/geotiff-stats/issues or email the package author Daniel J. Dufour at daniel.j.dufour@gmail.com

0 comments on commit 48b0356

Please sign in to comment.