A command line utility that decodes GeoTIFF files as JSON.
This utility uses the native GDAL binding for Node.js : node-gdal.
This work is highly inspired from geotiff2json but extends it to support:
- simple JSON conversion without RLE encoding
- any block size in TIFF files (not just squares)
Here's an example that converts file.tif
into a JSON array and writes it to disk as data.json
:
var geotiff2json = require('weacast-gtiff2json'),
fs = require('fs')
geotiff2json('file.tif').then(function(data) {
fs.writeFile('data.json', JSON.stringify(data), function(err) {
if(err) {
console.error('Oh no, writing failed!', err)
return
}
})
Here's an example that converts file.tif
into an RLE value array and writes it to disk as data.json
:
var geotiff2json = require('weacast-gtiff2json'),
fs = require('fs')
geotiff2json('file.tif', true).then(function(data) {
fs.writeFile('data.json', JSON.stringify(points), function(err) {
if(err) {
console.error('Oh no, writing failed!', err)
return
}
console.log('wrote ' + (data.length / 2) + ' tuples into file.')
})
The output file's content will look similar to this:
[
100,10,
132,1,
80,5,
...
]
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.
Copyright (c) 2017
Licensed under the MIT license.