Geospatial raster · measured in your browser

Browse a 100-megapixel government COG.

Pan, zoom, inspect bands, and measure the exact range requests used for each viewport. The Kentucky aerial survey opens automatically.

Direct object storageWorker decodeBounded viewport readsNo API key

COG Range Lab

Aerial imagery and terrain

Pan the autoloaded Kentucky survey, switch to USGS elevation for Hillshade, or enter a CORS-enabled GeoTIFF URL.

Choose a sourceDirect browser access
CRS pendingOverview pendingViewport pendingAuto contrast pending

Raster Analysis

Analyze the active viewport.

Operations run on the current bounded region. Point values come from the cursor position.

Open a raster to see how each operation maps to its bands.

Open a raster, then choose an operation.

GeoZarr Cube Lab

Select dimensions before chunks.

The reader discovers declared metadata paths without listing a remote bucket. Time, band, vertical, and custom dimensions stay selectable.

Choose a storeDirect object-store access
CRS pendingLevel pendingViewport pendingAuto contrast pending

Capability Matrix

Support generated from executable evidence.

Partial and unsupported states remain visible. Full claims and test references are available in geo-capabilities.json.

8 formats shown

FormatLocal openRemote openRange accessRegion readMultiscaleRotated affinePixel is areaPixel is pointUnknown CRSBandsTimeVerticalNodataScale and offsetTarget gridReprojectionWriter
GeoTIFF
purejsimage/geo/readers/geotiff
TestedTestedTestedTestedTestedTestedTestedTestedTestedTestedUnavailableTestedTestedTestedOut of scope
COG behavior
purejsimage/geo/readers/geotiff
TestedTestedTestedTestedTestedTestedTestedFixture-limitedFixture-limitedTestedUnavailableTestedTestedTestedOut of scope
GeoZarr
purejsimage/geo/readers/geozarr
TestedTestedTestedTestedTestedTestedTestedTestedTestedTestedTestedTestedTestedFixture-limitedTestedTestedOut of scope
Image plus world file
purejsimage/geo/readers/world-file
TestedTestedFixture-limitedFixture-limitedUnavailableTestedTestedUnavailableTestedFixture-limitedUnavailableUnavailableUnavailableUnavailableTestedTestedOut of scope
ENVI
purejsimage/geo/readers/envi
TestedFixture-limitedTestedTestedUnavailableUnsupportedTestedUnavailableTestedTestedUnavailableUnavailableTestedTestedTestedTestedOut of scope
Esri ASCII Grid
purejsimage/geo/readers/esri-ascii-grid
TestedFixture-limitedUnsupportedFixture-limitedUnavailableUnavailableTestedTestedTestedUnavailableUnavailableTestedUnavailableTestedFixture-limitedOut of scope
SRTM HGT
purejsimage/geo/readers/srtm-hgt
TestedFixture-limitedTestedTestedUnavailableUnavailableUnavailableTestedUnavailableUnavailableUnavailableTestedUnavailableTestedTestedOut of scope
Classic NetCDF / CF
purejsimage/geo/readers/netcdf
TestedTestedTestedTestedUnavailableUnsupportedUnavailableTestedTestedFixture-limitedTestedTestedTestedTestedTestedFixture-limitedOut of scope

Package boundaries

Safe defaults remain visible.

  • URLs and metadata render as untrusted text.
  • Cancellation reaches range reads, chunk reads, decoding, and analysis.
  • Cross-CRS reprojection requires a caller-supplied transform provider.
  • CORS, Range, codec, metadata, grid, and CRS errors keep their original diagnostic.
  • Required browser tests use deterministic local servers. Public sources remain opt-in smoke tests.

Build it with PureJsImage

Read the active viewport with public APIs.

This TypeScript follows the source, overview, dimensions, bands, and viewport selected above. Switch between the COG and GeoZarr labs to see the imports and bounded read update.

geo-viewport.ts · current selection