{"library":"rio-cogeo","title":"Cloud Optimized GeoTIFF (COG) Creation Plugin for Rasterio","description":"rio-cogeo is a Rasterio plugin that streamlines the creation and validation of Cloud Optimized GeoTIFF (COG) files. It intelligently handles critical COG specifications, including internal tiling, overview generation, and metadata ordering, ensuring geospatial data is optimized for efficient cloud storage and rapid web-based access. The library is actively maintained with consistent releases, serving as a vital tool in modern geospatial data pipelines.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install rio-cogeo"],"cli":{"name":"rio","version":"Traceback (most recent call last):"}},"imports":["from rio_cogeo.cogeo import cog_translate","from rio_cogeo.profiles import cog_profiles","from rio_cogeo.cogeo import cog_validate"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"# Create a dummy GeoTIFF for demonstration\nimport rasterio\nimport numpy as np\nfrom rasterio.transform import from_bounds\n\nwidth, height = 1000, 1000\ntransform = from_bounds(-10, 40, 10, 60, width, height)\n\nwith rasterio.open(\n    'input.tif',\n    'w',\n    driver='GTiff',\n    height=height,\n    width=width,\n    count=1,\n    dtype=np.uint8,\n    crs='EPSG:4326',\n    transform=transform,\n) as dst:\n    dst.write(np.zeros((height, width), dtype=np.uint8), 1)\n\nprint(\"Created input.tif\")\n\n# --- Using rio-cogeo CLI ---\n# Create a COG with DEFLATE compression (default profile)\n# This command is run from the shell, not directly in Python\n# import os\n# os.system(\"rio cogeo create input.tif output_deflate.tif\")\n# print(\"Created output_deflate.tif\")\n\n# Create a COG with JPEG profile, add internal mask, and select first 3 bands\n# os.system(\"rio cogeo create input.tif output_jpeg.tif -b 1 --add-mask --cog-profile jpeg\")\n# print(\"Created output_jpeg.tif\")\n\n# Validate a COG\n# os.system(\"rio cogeo validate output_deflate.tif\")\n# print(\"Validated output_deflate.tif\")\n\n# Example of programmatic COG creation\nfrom rasterio.io import MemoryFile\nfrom rio_cogeo.cogeo import cog_translate\nfrom rio_cogeo.profiles import cog_profiles\n\n# Use a local file path for input\nsrc_path = 'input.tif'\noutput_path_programmatic = 'output_programmatic.tif'\n\ndst_profile = cog_profiles.get(\"deflate\")\n\nwith rasterio.open(src_path) as src_dataset:\n    cog_translate(\n        src_path,\n        output_path_programmatic,\n        dst_profile,\n        config=dict(GDAL_NUM_THREADS='ALL_CPUS', GDAL_TIFF_OVR_BLOCKSIZE='128'),\n        overview_resampling='nearest',\n        web_optimized=False,\n        in_memory=False,\n        quiet=True,\n        # For real usage, consider `dst_kwargs` for profile overrides or `resampling` for overviews\n    )\nprint(f\"Created {output_path_programmatic} programmatically.\")\n\n# Clean up dummy files\nimport os\nos.remove('input.tif')\nos.remove('output_programmatic.tif')\n# os.remove('output_deflate.tif') # Uncomment if running CLI examples\n# os.remove('output_jpeg.tif')   # Uncomment if running CLI examples\n","lang":"python","description":"rio-cogeo can be used via its command-line interface (CLI) or directly through its Python API. The CLI (prefixed with `rio cogeo`) is often the simplest for common tasks like creating or validating COGs. The Python API offers more granular control for integration into custom scripts. This example demonstrates both a dummy file creation for testing and a programmatic COG translation, showing how to leverage `cog_translate` and `cog_profiles`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"5.4.2","pypi_latest":"7.0.2","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":7.2,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"rio-cogeo","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"rio-cogeo","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":8,"import_time_s":null,"mem_mb":null,"disk_size":"233M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"rio-cogeo","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"rio-cogeo","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":6.9,"import_time_s":null,"mem_mb":null,"disk_size":"245M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"rio-cogeo","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"rio-cogeo","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":6.2,"import_time_s":null,"mem_mb":null,"disk_size":"238M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"rio-cogeo","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"rio-cogeo","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":6.4,"import_time_s":null,"mem_mb":null,"disk_size":"237M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"rio-cogeo","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"rio-cogeo","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":8.7,"import_time_s":null,"mem_mb":null,"disk_size":"198M"}]}}