{"library":"pygdal","title":"pygdal","description":"pygdal provides virtualenv and setuptools friendly Python bindings for the GDAL (Geospatial Data Abstraction Library) C API. It was created to address installation difficulties with the standard GDAL Python bindings for GDAL versions prior to 3.7. The project maintains a 3.6.* release line as the last for GDAL versions before 3.7, after which GDAL can be installed directly from PyPI. It focuses on offering a more 'pythonic' interface and integrates with NumPy for data handling.","language":"python","status":"maintenance","last_verified":"Sun May 17","install":{"commands":["pip install pygdal==\"$(gdal-config --version).*\"","pip install pygdal"],"cli":null},"imports":["from osgeo import gdal","from osgeo import ogr","from osgeo import osr"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from osgeo import gdal\nimport os\n\ndef open_gdal_dataset(filepath):\n    \"\"\"Opens a GDAL dataset and prints some basic information.\"\"\"\n    if not os.path.exists(filepath):\n        print(f\"Error: File not found at {filepath}\")\n        return\n\n    # Enable GDAL exceptions for clearer error handling\n    gdal.UseExceptions()\n    try:\n        dataset = gdal.Open(filepath, gdal.GA_ReadOnly)\n        if dataset is None:\n            print(f\"Could not open {filepath}\")\n            return\n\n        print(f\"Successfully opened: {filepath}\")\n        print(f\"Driver: {dataset.GetDriver().LongName} ({dataset.GetDriver().ShortName})\")\n        print(f\"Size: {dataset.RasterXSize}x{dataset.RasterYSize}x{dataset.RasterCount}\")\n        print(f\"Projection: {dataset.GetProjection()[:50]}...\") # Print first 50 chars\n        print(f\"GeoTransform: {dataset.GetGeoTransform()}\")\n        # Close the dataset implicitly when `dataset` goes out of scope, or explicitly with dataset=None\n    except Exception as e:\n        print(f\"An error occurred: {e}\")\n\n# Example usage (requires a dummy GeoTIFF file, or replace with an existing file path)\n# Create a dummy file for demonstration if it doesn't exist\ndummy_tif = \"dummy.tif\"\nif not os.path.exists(dummy_tif):\n    driver = gdal.GetDriverByName(\"GTiff\")\n    rows, cols = 100, 100\n    dataset = driver.Create(dummy_tif, cols, rows, 1, gdal.GDT_Byte)\n    dataset.SetGeoTransform((0, 1, 0, 0, 0, -1))\n    dataset.SetProjection('GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]')\n    band = dataset.GetRasterBand(1)\n    band.WriteArray([[i % 255 for i in range(cols)] for _ in range(rows)])\n    dataset = None # Close the dataset\n\nopen_gdal_dataset(dummy_tif)\n# Clean up dummy file\nos.remove(dummy_tif)\n","lang":"python","description":"This quickstart demonstrates how to open a geospatial raster file (GeoTIFF) using `pygdal` and retrieve basic metadata. It also shows how to explicitly enable GDAL exceptions for better error handling, which is often recommended as GDAL bindings typically return `None` on error by default.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":null,"pypi_latest":"3.6.4.11","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pygdal","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-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pygdal==\"$(gdal-config","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":"pygdal","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.2,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pygdal==\"$(gdal-config","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pygdal","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-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pygdal==\"$(gdal-config","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":"pygdal","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pygdal==\"$(gdal-config","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pygdal","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-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pygdal==\"$(gdal-config","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":"pygdal","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":5.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pygdal==\"$(gdal-config","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pygdal","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-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pygdal==\"$(gdal-config","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":"pygdal","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.7,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pygdal==\"$(gdal-config","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pygdal","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-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pygdal==\"$(gdal-config","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":"pygdal","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.8,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pygdal==\"$(gdal-config","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":1.7,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}