Last week in COG Talk 4 we discussed large scale processing using Cloud Optimized GeoTIFF and MosaicJSON. Here is another example on how we can use mosaicJSON and dynamic tiler to create high resolution large scale mosaic.

Divide, Select and Conquer

With COG and dynamic tiling you create tiles at the time of request from the raw data. Usually this lets you apply rescaling or color correction to enable a better for web map display. With mosaicJSON and rio-tiler-mosaic, introduced in COG Talk 2, we extended the idea of dynamic tiling by adding the pixel selection operation. When we have multiple overlapping datasets, you can tell rio-tiler-mosaic which pixel you want to keep or what operation you want to perform on the stack of pixel.


Earlier this week in COG Talk 4 we talked about doing large scale processing using Cloud Optimized GeoTIFF and mosaicJSON. Here is another example of how to create simple visualization tools when you store the data as Cloud Optimized GeoTIFF.

Data For Good: High Resolution Population Density Maps

Ref: https://registry.opendata.aws/dataforgood-fb-hrsl/ Format: .TIFF (Cloud Optimized GeoTIFF)

Dataset's coverage.

The dataset is formed of 294 Cloud Optimized GeoTIFF, representing six different variables stored in separate file.

$ aws s3 ls dataforgood-fb-data/tif/month=2019-06/country=ZWE/ --recursive | grep ".tif$"type=children_under_five/ZWE_children_under_five.tif type=elderly_60_plus/ZWE_elderly_60_plus.tif
type=men/ZWE_men.tif type=women/ZWE_women.tif type=women_of_reproductive_age_15_49/ZWE_women_of_reproductive_age_15_49.tif
type=youth_15_24/ZWE_youth_15_24.tif

See it live: https://cogeo.xyz/projects/Facebook/index.html


Another example of large scale mosaicJSON

Earlier this week in COG Talk 4 we shared how to do large scale processing using Cloud Optimized GeoTIFF and mosaicJSON. Here is another example of how to create simple visualization tools when you store the data as Cloud Optimized GeoTIFF.

Montreal LIDAR dataset

Ref: http://donnees.ville.montreal.qc.ca/dataset/lidar-aerien-2015

Format: .LAZ (Point Cloud)

Coverage of the Montreal opendata LIDAR dataset.

The dataset is formed of 684 different COG created from .LAZ file using a modified version of our cogeo-watchbot-light stack. Each COG has a 25cm pixel resolution and two bands (Min and Max, see PDAL docs).

See it live: https://cogeo.xyz/projects/MTLidar/index.html


This blog is the fourth in a series called COG Talk, which looks at ways to use Cloud Optimized GeoTIFFs to efficiently render and analyze planetary data at massive scale.

After a refresh of what COGs are in Part 1, the introduction of mosaics in Part 2, and a fun experiment in Part 3, today we are going to see how COGs can be useful for large scale spatio-temporal dataset.

Introduction slide from a talk given at GéoMTL conference (slides).

Cloud Optimized GeoTIFFs (COGs)

First, the basics. As of today, the Cloud Optimized GeoTIFF specification can be summarized as a tiny list of requirements:

  • the data has to be tiled (internally split into chunks of regular size)
  • the file has a header with the location of each tile
  • the file can have internal overview

Basically, you take a well known open format (created in…


Today we’re releasing rio-tiler-mvt, a rio-tiler plugin to create Mapbox Vector Tiles from Cloud-Optimized GeoTIFFs (COGs). It enables better dynamic web map visualizations especially for sparse datasets stored. This is the result of recent work where we had the need to visualize LiDAR data in-browser. We experimented with generating our visualizations on-the-fly by generating vector data directly from the source Cloud-Optimized GeoTIFFs (COGs). While the initial approach felt clumsy at the time, we’ve since polished it up into a proper plugin with impressive performance.

​​This is the third post of our COG Talk series (check out the introduction in Part 1 and use of COG mosaics in Part 2).

Lidar dataset displayed as vector tiles (top) or raster (bottom). Data from Montreal Open Data.

Cloud Optimized GeoTIFF is an excellent format for storing remote sensing data because the file structure provides a convenient method for data access and visualization. When we want to access a smaller raster — either as an array for analysis or a PNG/JPEG for visualization — we can easily read just that portion of the data. Most tools stop at this point and return a raster value, which is exactly what we want in most…


This blog is the second in a series called COG Talk, which looks at ways to use Cloud Optimized GeoTIFF, and why we use them.

The first post is a refresh on the COG format and announces the release of version 1.0.0 of rio-tiler and rio-cogeo. Here, we’ll see how we can use them to build mosaics for web maps.

Multiple high resolution Cloud Optimized GeoTIFF hosted on OpenAerialMap (link)

COG vs Map Tiles

Cloud Optimized GeoTIFF files, as the name implies, are specifically designed for easily accessing remote raster data. Because of the internal tiling and internal overviews, people often ask: can COGs replace map tiles? The usual response is: yes, but

Cloud Optimized GeoTIFF can replace .mbtiles or statically generated map tiles by using a proxy to render tiles dynamically (e.g lambda tiler). …


This blog is the first in a series called COG Talk, which looks at ways to use Cloud Optimized GeoTIFF, and why we use them.

remotepixel-tiler uses rio-tiler to dynamically create Web Map tiles from Landsat-8 data hosted on AWS.

For more than a year, we’ve been working on building out a suite of tools to make Cloud Optimized GeoTIFFs (COGs) easy to work with. Today we are excited to announce we are releasing version 1 of rio-tiler and rio-cogeo 🎂!

Both modules are:

  • well tested
  • actively maintained
  • support python 2 and python 3
  • easy to install (thanks to rasterio wheels)

COGs — The Basics

Let’s start with a quick refresher on the COG specification:

COGs are powerful because of how the data is structured internally. If done properly, the data can be accessed via HTTP range requests, meaning you can read only a…


In this post we will focus on Cloud Optimized GeoTIFF and other formats used by public dataset (AWS pds, Digitalglobe Opendata, …). This post is mostly a brain dump of some though and knowledge I needed to share since the remotepixel's huge AWS bill happened last august. I hope this will give some clue or at least some idea to people who want to open/share raster dataset.

First, can you guess the difference between both images 👇

Vincent Sarago

Making COG at @DevelopmentSeed & Creator of @RemotePixel

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store