About

A Cloud Optimized GeoTIFF (COG) is a regular GeoTIFF file, aimed at being hosted on a HTTP file server, with an internal organization that enables more efficient workflows on the cloud. It does this by leveraging the ability of clients issuing ​HTTP GET range requests to ask for just the parts of a file they need.

Why Cloud Optimized GeoTIFF?

  • Efficient Imagery Data Access

    COG-aware software can stream just the portion of data that it needs, improving processing times and creating real-time workflows previously not possible

  • Reduced Duplication of Data

    Accessing COG’s with cloud workflows enables diverse software to all access a single file online instead of needing to copy and cache the data

  • Legacy Compatibility

    Traditional GIS software is able to treat Cloud Optimized GeoTIFF’s just like normal GeoTIFF’s, so data providers need only produce one format

How does it work?

Cloud Optimized GeoTIFF relies on two complementary pieces of technology.

The first is the ability of a GeoTIFF to not only store the raw pixels of the image, but to also organize those pixels in particular ways. The second is HTTP GET range requests, that let clients ask for just the portions of a file that they need. Together these enable fully online processing of data by COG-aware clients, as they can stream the right parts of the GeoTIFF as they need it, instead of having to download the whole file.

Get Started

There are a variety of ways to get started. Data Providers can start to make imagery available as Cloud Optimized GeoTiffs. Developers can leverage GDAL's VSICurl with COG Data. And Users can find software and data providers who use COG today.

Software

COG is rapidly maturing, with a number of new software libraries and tools coming online.

  • RasterFoundry
  • GeoServer
  • GDAL
  • QGIS
  • Google Earth Engine

Tools

  • QGIS 3.2 has stellar COG support, with an option to select online files in the data import, including authentication for private data (tutorial coming soon). Older versions can read Cloud Optimized GeoTIFF's using Virtual Raster Builder with a vsicurl file format to refer to the online URL. See the tutorial for details.
  • COG-Explorer is a browser app to visualize Cloud Optimized GeoTIFFs, for example from the Landsat-8 archive on S3, based on geotiff.js.
  • Marblecutter serves web tiles from Cloud Optimized GeoTIFF's, completely on the fly. You can see it in action at OpenAerialMap, as all tiles are rendered by an early version.
  • tiles.rdnt.io is an instance of Marblecutter running on lambda, hosted by Radiant.Earth, that anyone can use. It powers the map at cogeo.org/map.
  • Rio-cogeo Rasterio plugin creates Cloud Optimized GeoTIFF's.
  • Rio-tiler Rasterio plugin creates web tiles from Cloud Optimized GeoTIFF's. Used to create serverless landsat tiles server with landsat-tiler.
  • Rio-glui Rasterio plugin. Explore Cloud Optimized geotiff on your web-browser.
  • RasterFoundry has the best support of Cloud Optimized GeoTIFFs of any online compute platform. All data uploaded to RasterFoundry is converted to the COG format, so other COG tools can read data stored in the platform. And they recently added support for 'unstructured COG's', enabling near instant importing of any COG data online into its powerful analysis engine.
  • Google Earth Engine now supports output of COG's from any Earth Engine operation (and hopefully soon will read them in too). See the configuration parameters section of the 'Exporting' documentation on on how to add it.
  • GRASS GIS can read Cloud Optimized GeoTIFF's by using Virtual Raster Builder with a vsicurl file format to refer to the online URL and registration within GRASS GIS using r.external.
  • Radiant.Earth is hosting a Cloud Optimized GeoTIFF validator. You can also get the source code, created by Even Rouault with support from Planet.
  • COGDumper turns COG's in to webtiles without the need for any additional libraries. It is an open source python library, and can be installed with pip install cogdumper.
  • DigitalGlobe has built a project called Raster Data Access(RDA) that can read COG files and serve them up in 'chips', performing on the fly band math analysis. See their blog post for more information
  • Monteverdi, the Orfeo ToolBox image viewer, can navigate in remote cloud optimized geotiff out of the box.
  • GeoServer can use a new GeoTools community module named 's3-geotiff' to use COG's as a datastore. Advanced GeoServer users who know how to add new datastores can find it in the Boundless nightly repo (use the s3:// url form for it to work).
  • RasterFrames brings the power of Spark DataFrames to geospatial raster data, and is able to read Cloud Optimized GeoTIFF's using GeoTrellis.
  • Farmshots builds agriculture analytics on top of Planet’s Cloud Optimized GeoTIFF’s, pulling in just the needed field data and serving it up live to their customers.
  • Earth Observing System’s Engine and Land Viewer are both able to leverage Cloud Optimized GeoTIFFs for live web tile serving and on the fly band math.

Libraries

  • GDAL was the project that started Cloud Optimized GeoTIFF's, by leveraging the vsicurl driver, so both reading and writing COG's is well supported. See the GDAL Wiki for how to read COG files with GDAL.
  • geotiff.js is a small library to parse TIFF files for visualization or analysis including Cloud Optimized GeoTIFFs. It is written in pure JavaScript, and is usable in both the browser and node.js applications.
  • Rasterio wraps the powerful features of GDAL in idiomatic Python functions and classes. Their latest release includes a number of features to optimize cloud geotiff access. See their Advanced Rasterio Features Notebook for truly excellent documentation on working with COG's.
  • GeoTrellis is a scalable Scala geospatial library, that can create and read Cloud Optimized GeoTIFF's.
  • GeoTools is the leading Java geospatial library, and it supports COG's with the s3-geotiff module.
  • Orfeo ToolBox All Orfeo ToolBox applications can read cloud optimized geotiffs through GDAL (simply prefix file url with /vsicurl/)

Most any software that relies on GDAL should support Cloud Optimized GeoTIFF's without much effort. Things like MapServer, Safe FME, ArcGIS and ENVI jump to mind. The fact that they and others aren't on this list mostly means no one has tested and got them working yet. Feel free to submit a pull request to add any software confirmed to support COG's (links to documentation appreciated!).

Data Providers

There are many sources of Cloud Optimized GeoTIFF data, with more and more coming online all the time. If you have or know of a good source of COG data please let us know!

  • Planet
  • CBERS
  • DigitalGlobe
  • QGIS
  • NASA ISERV
  • OpenAerialMap stores all new imagery as Cloud Optimized GeoTIFF's, and also provides a service that takes uploaded data and turns it in to AWS S3 hosted COG's. The only constraint is that data uploaded must be openly licensed.
  • Planet provides all its data (from RapidEye, PlanetScope and soon SkySat satellites) as Cloud Optimized GeoTIFFs.
  • DigitalGlobe’s GBDX data is available as Cloud Optimized GeoTIFF, for all processing done on the platform. And their blog post explains how IKONOS and NOAA’s VIIRS night lights data are available as COG
  • CBERS on AWS has converted all CBERS-4 data to Cloud Optimized GeoTIFF.
  • SpaceNet data is all available as COG. You can browser the data on their STAC Browser instance.
  • ISERV data from NASA has been made available by Radiant.Earth as cloud optimized geotiff. You can browser the data on their STAC Browser instance.