Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Frontend GIS
  3. GeoTiff.js

GeoTiff.js

MITJavaScriptv3.0.5

A pure JavaScript library for parsing and reading raster data from TIFF and GeoTIFF files in both browser and Node.js environments.

Visit WebsiteGitHubGitHub
1.0k stars214 forks0 contributors

What is GeoTiff.js?

geotiff.js is a pure JavaScript library for parsing TIFF and GeoTIFF files, providing access to metadata and raw raster data. It solves the problem of reading and analyzing geospatial imagery and scientific data directly in the browser or Node.js without native dependencies.

Target Audience

Developers working with geospatial data, remote sensing, scientific visualization, or any application requiring TIFF file parsing in JavaScript environments.

Value Proposition

It offers a lightweight, dependency-free solution with broad format support, performance optimizations like worker pools, and the flexibility to handle custom data workflows, unlike heavier GIS libraries.

Overview

geotiff.js is a small library to parse TIFF files for visualization or analysis. It is written in pure JavaScript, and is usable in both the browser and node.js applications.

Use Cases

Best For

  • Parsing geospatial TIFF files for web-based mapping applications
  • Reading scientific raster data in Node.js for analysis pipelines
  • Visualizing remote sensing imagery directly in the browser with WebGL
  • Extracting metadata and elevation data from GeoTIFF files
  • Handling large TIFF files with tiled or compressed formats efficiently
  • Building custom tools for TIFF data manipulation without native libraries

Not Ideal For

  • Applications requiring out-of-the-box geospatial analysis tools like coordinate transformations or raster calculations
  • Real-time systems where synchronous, low-latency data access is critical due to async operations and decoding overhead
  • Projects heavily reliant on BigTIFF features beyond basic reading, as JavaScript limitations cause inaccuracies with 64-bit integers
  • Teams seeking a complete GIS solution with built-in mapping and visualization without integrating additional libraries

Pros & Cons

Pros

Broad Platform Compatibility

Works in both browsers and Node.js, reading from remote URLs, ArrayBuffers, Blobs, and local filesystems, enabling flexible deployment across environments.

Extensive Format Support

Handles stripped, tiled, and interleaved images with compressions like LZW, Deflate, JPEG, and LERC, covering a wide range of TIFF and GeoTIFF variants.

Performance Optimizations

Includes configurable tile caching, worker pools for parallel decoding, and deferred loading to efficiently manage large files and reduce memory usage.

Geospatial Metadata Parsing

Automatically extracts bounding boxes, origins, and resolutions from geospatial headers, essential for mapping and analysis workflows.

Cons

Limited BigTIFF Support

Due to JavaScript's lack of native 64-bit integer handling, BigTIFF files are approximated, potentially causing inaccuracies with very large datasets.

Breaking API Changes

Version 3 introduced significant breaking changes, such as making methods like getTiePoints() async, requiring non-trivial migration efforts for existing codebases.

No High-Level Geospatial API

Focuses on low-level data access, forcing developers to implement custom solutions for common tasks like coordinate transforms or data analysis, increasing development time.

Beta Writing Capabilities

The writeArrayBuffer function is in beta and only supports uncompressed writing, limiting its use for generating optimized or production-ready GeoTIFF files.

Frequently Asked Questions

Quick Stats

Stars1,034
Forks214
Contributors0
Open Issues66
Last commit1 month ago
CreatedSince 2015

Tags

#raster-data#geospatial#remote-sensing#nodejs#javascript-library#image-processing#data-visualization#geotiff#webgl

Built With

J
JavaScript

Links & Resources

Website

Included in

Frontend GIS675
Auto-fetched 1 day ago

Related Projects

Turf.jsTurf.js

A modular geospatial engine written in JavaScript and TypeScript

Stars10,402
Forks1,011
Last commit11 days ago
topoJSONtopoJSON

An extension of GeoJSON that encodes topology! 🌐

Stars4,899
Forks683
Last commit1 year ago
geolibgeolib

Zero dependency library to provide some basic geo functions

Stars4,276
Forks336
Last commit3 months ago
rbushrbush

RBush — a high-performance JavaScript R-tree-based 2D spatial index for points and rectangles

Stars2,758
Forks253
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub