Rasterflow, Earth Intelligence & inference engine now in public preview Learn More

What is a GeoTIFF? Format, Tags, and COG

What is a GeoTIFF?

A GeoTIFF is a TIFF image file that carries georeferencing metadata in standardized tags, so each pixel maps to a coordinate on Earth. The tags record the coordinate reference system, the pixel size, and the position of the grid origin. A Cloud Optimized GeoTIFF (COG) arranges the same file so clients can read parts of it over HTTP.

What a GeoTIFF is

GeoTIFF is the dominant file format for raster geospatial data. It extends the Tagged Image File Format, an image standard from 1986, with tags that describe where the image sits on the Earth.

The format began in the 1990s as a community specification and became OGC GeoTIFF Standard 1.1 in 2019, which fixed the tag definitions and their meaning.

The defining property is that a GeoTIFF is still a valid TIFF. Any TIFF reader opens the pixels; a geospatial reader also reads the tags and places them.

Three tags do the work. ModelPixelScaleTag gives the ground size of a pixel, and ModelTiepointTag ties a pixel to a ground coordinate. GeoKeyDirectoryTag encodes the coordinate reference system, usually as an EPSG code.

A GeoTIFF can hold one band or many, in integer or floating point, with a NoData value, compression, and internal tiling. BigTIFF lifts the 4 GB size limit of classic TIFF.

What a GeoTIFF does

GeoTIFF carries almost every raster dataset in Earth observation from producer to analyst.

Satellite agencies deliver Landsat and Sentinel-2 scenes as GeoTIFF, one file per band. Elevation programs deliver DEM tiles as single-band GeoTIFF.

Weather and climate teams export model output as GeoTIFF for GIS users who cannot read GRIB or NetCDF.

Analysts write derived products such as NDVI, classified land cover, and flood depth back to GeoTIFF.

Web map servers read COGs directly from object storage and serve tiles from them.

Machine learning pipelines read training chips and write prediction rasters as GeoTIFF, since every raster library reads it.

The format’s job is interchange. A GeoTIFF written by one tool opens in every other, with its georeferencing intact.

How a GeoTIFF works

A GeoTIFF is a TIFF with three layers of structure: the image data, the TIFF tags, and the geo tags.

Image data is stored as strips or tiles. Strips are rows of pixels written in sequence; tiles are square blocks, typically 256 or 512 pixels, which allow a reader to fetch one region without reading the rows above it.

Compression applies per strip or tile. LZW and Deflate are lossless and universal, while ZSTD and LERC are faster or smaller but need newer readers.

Overviews are downsampled copies of the image stored inside the file at 2x, 4x, 8x and so on. A viewer at continental zoom reads the smallest overview instead of billions of full-resolution pixels.

FeaturePlain GeoTIFFCloud Optimized GeoTIFF
LayoutAnyTiled, with overviews, header at the front, tiles in order
Read patternDownload whole fileHTTP range requests for header, then needed tiles
StandardOGC GeoTIFF 1.1OGC COG Standard (2023), built on GeoTIFF 1.1
ValidityValid TIFFAlso a valid GeoTIFF; any reader opens it

A Cloud Optimized GeoTIFF is a GeoTIFF whose internal layout follows rules. The header and tile index sit at the front, the image is internally tiled, and overviews are present, so a client reads the header with one request and then fetches only the tiles for its view.

A 50 GB COG in object storage serves a 512 by 512 window in a few range requests, with no download and no server-side process.

GeoTIFF in Wherobots

WherobotsDB reads GeoTIFF as a native raster type and writes it back, including as Cloud Optimized GeoTIFF.

RS_FromGeoTiff loads a file’s bytes into an in-db raster stored in the table. RS_FromPath creates an out-db raster, a reference to the GeoTIFF in S3, and reads tiles only when a function touches them. For a COG, that means range requests for the tiles a query needs and nothing else.

Havasu, the Apache Iceberg table format extended with a native raster type, stores millions of GeoTIFF references as rows with metadata columns, and pushes spatial filters into the scan so a query for one county reads only intersecting files.

RS_ functions then operate directly. RS_MapAlgebra, RS_Clip, RS_Resample, RS_Tile, and RS_ZonalStats each run in parallel across every raster in the table.

Writers close the loop. RS_AsGeoTiff serializes a raster to GeoTIFF bytes, and RS_AsCOG writes a Cloud Optimized GeoTIFF with tiling and overviews. Results land in the customer’s S3 bucket ready for any other tool.

The STAC reader registers every GeoTIFF asset in a catalog as an out-db raster in one step.

Because raster and vector data share one engine, a GeoTIFF joins to parcels or buildings in the query that reads it. WherobotsDB is built by the original creators of Apache Sedona, 100% code compatible across all spatial functions.

-- Register COGs in S3 as out-db rasters, clip to a boundary, write the result back as COG
WITH scenes AS (
  SELECT scene_id, RS_FromPath(path) AS rast FROM eo.scene_index
),
aoi AS (
  SELECT geometry FROM boundaries WHERE name = 'Study Area'
)
SELECT s.scene_id,
       RS_AsCOG(RS_Clip(s.rast, 1, aoi.geometry)) AS cog_bytes
FROM scenes s CROSS JOIN aoi
WHERE RS_Intersects(s.rast, aoi.geometry);

Read more from Wherobots

Query and write Cloud Optimized GeoTIFFs in SQL with WherobotsDB on the free tier at cloud.wherobots.com.

Frequently asked questions

What is the difference between a GeoTIFF and a TIFF?

A TIFF is an image file with pixels and general metadata. A GeoTIFF is a TIFF that adds standardized tags describing the coordinate reference system, pixel size, and grid origin, so each pixel maps to a location on Earth. Every GeoTIFF is a valid TIFF; a plain TIFF has no georeferencing.

What is a Cloud Optimized GeoTIFF?

A Cloud Optimized GeoTIFF (COG) is a GeoTIFF arranged for reading over HTTP. It is internally tiled, includes overviews, and places its header and tile index at the front of the file, so a client fetches the header in one range request and then only the tiles it needs. The OGC standardized COG in 2023.

What software opens GeoTIFF files?

GeoTIFF opens in any geospatial tool: QGIS and ArcGIS Pro for desktop, GDAL and rasterio for programming, and WherobotsDB, PostGIS, and other spatial databases for analytics. Because a GeoTIFF is a valid TIFF, image editors also open the pixels, though they ignore the georeferencing and may not handle multi-band or floating-point data.

Can a GeoTIFF have multiple bands?

Yes, a GeoTIFF can hold many bands, each a separate layer of pixel values with the same grid, and each band can carry its own NoData value. Satellite scenes often store bands as separate single-band GeoTIFF files instead, so each can be read independently. Readers address bands by index, starting at 1.