Converts GeoTIFF images to a compressed JSON array

Usage no npm install needed!

<script type="module">
  import geotiff2json from '';



This package allows to parse GeoTIFF files into a run-lengh-encoded JSON array of height values. The package is primarily aimed at converting LIDAR data into a pointcloud.


Here's an example that converts file.tif into an RLE value array and writes it to disk as points.json:

    var geotiff2json = require('geotiff2json'),
        fs = require('fs')
    geotiff2json('file.tif').then(function(points) {
      fs.writeFile('points.json', JSON.stringify(points), function(err) {
        if(err) {
          console.error('Oh no, writing failed!', err)
        console.log('wrote ' + (points.length / 2) + ' tuples into file.')

The output file's content will look similar to this:


Note: The linebreaks and whitespace have been added for better readability, the file won't contain those to reduce size.

These values are in fact value pairs.

  • The first value of each pair is the y-coordinate of the point.
  • The second value of each pair is the number of times this y-coordinate is repeated.

So in the example above, the y-value 100 shall be repeated 10 times, the y-value 132 shall be repeated once and so on..


If you find a bug or a problem or data that doesn't parse correctly, even though it should, please [report an issue here](].

In case you found a GeoTIFF that doesn't parse correctly, please attach a link to the file or attach it to the issue directly.

If you have improvement suggestions, feel free to fork this repository and submit a pull request!

Thank you for your help and support!


This module is licensed under the ISC license