Just another COG in the machine: all about Cloud Optimized Geotiffs
Kris Johnson, NRRI - GIS/LIS 2023
Speakers notes go here.
Link to presentation slides https://tinyurl.com/geo-tiff
Cloud Optimized GeoTIFF (COGs):
Speakers notes go here.
Who's heard of COGs? Used them?
A Cloud Optmized GeoTIFF is a regular GeoTIFF file, hosted on a HTTP file server, with an internal organization that allows clients issuing โ€‹HTTP GET range requests to ask for just the parts of a file they need.
Speakers notes go here.
Let's break that definition down
Speakers notes go here.
A regular GeoTIFF
Speakers notes go here.

GeoTIFF is a public domain metadata standard that enables georeferencing information to be embedded within an image (TIFF) file.

Essentially, a common raster data format
Speakers notes go here.
A regular GeoTIFF

...with an internal organization...

Speakers notes go here.
Translation: Tiling and Overviews
and compression
Speakers notes go here.
Internal Tiling
Speakers notes go here.
Tiles Speakers notes go here.
Overviews
Speakers notes go here.
Overviews
Allow for smaller, lower resolution versions to be used in place of the original
Speakers notes go here.
Compression:
just allows for even faster streaming to clients Speakers notes go here.
A web server capable of HTTP range requests
Speakers notes go here.
object storage in the โ˜๏ธ
Speakers notes go here.
files on a traditional web server
Speakers notes go here.
A web server capable of HTTP range requests
Speakers notes go here.
Look for
Accept-Ranges: bytes
in the response header Speakers notes go here.
Range requests (AKA byte serving)
Speakers notes go here.
Pulling it all together:
Allows clients to request only the relevant portions of the image, and not the whole file ๐Ÿ˜…
Speakers notes go here.
How can I make one? Speakers notes go here.
GDAL
what else?
Speakers notes go here.
since version 3.1
gdalwarp -of COG intput.tif outputCOG.tif
gdal_translate world.tif world_webmerc_cog.tif -of COG 
-co TILING_SCHEME=GoogleMapsCompatible -co COMPRESS=JPEG
https://gdal.org/drivers/raster/cog.html Speakers notes go here.
Python๐Ÿ: rio-cogeo
rio cogeo create input.tif outputCOG.tif
https://cogeotiff.github.io/rio-cogeo/ Speakers notes go here.
Then, load it onto a web server and you're ready to ๐Ÿšข Speakers notes go here.
How do you use them? Speakers notes go here.
Anywhere you can use a regular GeoTIFF, actually Speakers notes go here.
Speakers notes go here.
Why use a โš™๏ธ?
Improved performance / Reduced cost internal tiling and overviews
Scalability

Efficient streaming enables integration with cloud-based workflows
Accessibility / Interoperability open source ba-dang
Reduced data duplication
Example https://github.com/rumski20/cogs-prez-gislis2023/tree/main/examples Speakers notes go here.
My use case:  mnforcast.org
To summarize:
Summary
Thank you!
Kris Johnson, NRRI/UMD
kristofj@d.umn.edu