COG
Cloud Optimized GeoTIFF. A GeoTIFF file structured with internal tiling and overviews that enables efficient streaming and partial reading from cloud storage (e.g., S3, GCS) without downloading the entire file. The modern standard for cloud-native geospatial raster data.
Overview
A Cloud Optimized GeoTIFF (COG) is a GeoTIFF file whose internal structure has been organized specifically for efficient access over HTTP. While it remains a fully valid GeoTIFF — readable by any software that supports the format — a COG uses internal tiling, embedded overviews, and a carefully ordered byte layout so that clients can retrieve exactly the pixels they need using HTTP range requests, without downloading the entire file. This makes COGs the foundation of cloud-native geospatial workflows, enabling analysts to query and process terabytes of imagery stored in object storage (such as AWS S3 or Google Cloud Storage) without maintaining local copies. The format was formalized as an OGC standard (OGC 21-026).
How It Works
A COG achieves its efficiency through three structural requirements. First, internal tiling: instead of organizing pixel data in horizontal strips (the TIFF default), a COG divides the image into square tiles — typically 256×256 or 512×512 pixels. Each tile is stored as a contiguous block of bytes, meaning a client can calculate the byte offset of any tile and request just those bytes.
Second, embedded overviews (also called pyramids): a COG includes progressively downsampled versions of the image within the same file. This allows a mapping application to request a low-resolution overview for a zoomed-out view, then fetch full-resolution tiles only when the user zooms in.
Third, metadata-first layout: the file places all TIFF IFD headers and overview metadata at the beginning of the file. This means a client's first HTTP range request (typically the first 16 KB) retrieves enough metadata to understand the file's dimensions, tiling scheme, band count, and the byte offsets of every tile and overview level. In practice, displaying a small region from a multi-gigabyte COG might require just two or three HTTP requests totaling a few hundred kilobytes.
Key Facts
- A COG is a valid GeoTIFF — any software that reads GeoTIFF can read a COG, but only HTTP-aware clients benefit from its optimized structure.
- Internal tiles (typically 256×256 or 512×512 pixels) enable random spatial access, so clients fetch only the area of interest.
- Embedded overviews allow clients to request low-resolution previews without reading full-resolution data, dramatically reducing bandwidth.
- All metadata is placed at the beginning of the file so a single HTTP range request (often under 16 KB) retrieves the full file structure.
- COG was formalized as OGC standard 21-026, building on TIFF v6 tiling, GeoTIFF georeference keys, and HTTP range request capabilities.
- Converting a standard GeoTIFF to a COG can be done with GDAL: gdal_translate input.tif output.tif -co TILED=YES -co COPY_SRC_OVERVIEWS=YES.
Applications
Cloud-Native Imagery Archives
Major data repositories like AWS Open Data Registry, Microsoft Planetary Computer, and Google Earth Engine serve satellite imagery as COGs, enabling planetary-scale analysis without bulk data downloads.
Dynamic Map Tile Servers
Services like Titiler and rio-tiler generate on-the-fly map tiles directly from COGs in cloud storage, eliminating the need to pre-render millions of image tiles.
STAC-Based Data Catalogs
The SpatioTemporal Asset Catalog (STAC) specification commonly references COG assets, allowing users to search metadata catalogs and stream relevant imagery into analysis pipelines.
Scalable Geospatial Processing
Distributed computing frameworks like Dask and Apache Spark can read specific tiles from COGs in parallel, enabling efficient large-scale raster analytics without data staging.
Limitations & Considerations
COGs add file size overhead compared to stripped GeoTIFFs due to embedded overviews — typically 30–40% larger. The format is optimized for spatial subsetting but less efficient for band subsetting in files with many bands. While COGs work well with HTTP-capable storage, they provide no advantage on local filesystems. Creating well-optimized COGs requires attention to tile size, overview resampling method, and compression settings. The format also inherits GeoTIFF's limitations: no native support for time dimensions, irregular grids, or complex metadata schemas. For multi-temporal datasets, users typically pair COGs with STAC catalogs.
History & Background
The Cloud Optimized GeoTIFF concept emerged around 2016 from the cloud-native geospatial community, driven by the need to access massive satellite imagery archives stored in cloud object storage. The key insight was that TIFF already supported the necessary internal structures — tiling and reduced-resolution subfiles — and HTTP already supported range requests; what was needed was a convention for combining these capabilities. MapBox, Planet, and other companies were early adopters. GDAL added COG as a dedicated creation profile in version 3.1 (2020). The Open Geospatial Consortium published the COG standard as OGC 21-026 in 2022. Today, COG is the default distribution format for many major satellite programs and is a cornerstone of the cloud-native geospatial ecosystem alongside STAC, Zarr, and GeoParquet.
Analyze COG data with LYRASENSE
Use our agentic notebook environment to work with satellite data and compute indices like COG — no setup required.