GDAL (Geospatial Data Abstraction Library)

repository·master·Indexed 27 days ago

https://github.com/osgeo/gdal

An open-source MIT licensed translator library for raster and vector geospatial data formats. GDAL provides a unified interface for reading, writing, and transforming spatial data, including support for the cloud-friendly Meta Raster Format (MRF). The project includes a comprehensive test suite powered by pytest, various Docker image variants (Alpine and Ubuntu), and internal libraries such as Qhull for convex hull calculations.

Tokens
162.5K
Snippets
275
Records
1.1K
Agent score
89%

What's inside GDAL

  1. Overview of Meta Raster Format (MRF)

    master

    MRF is a GDAL raster format designed for cloud-friendly operations. It is suitable for use as tile storage and as a local pass-through caching mechanism. The format supports multiple per-tile storage formats, including:

    • JPEG
    • PNG
    • LERC
    • ZSTD
    • DEFLATE
  2. Overview of GDAL Geospatial Data Abstraction Library

    master

    GDAL is an open source, MIT licensed translator library designed for handling raster and vector geospatial data formats. It provides a unified interface for reading and writing various geospatial data types.

    Key Resources:

  3. Overview of the GDAL Vector Data Model

    master

    The GDAL vector data model is based on the OGC Simple Features model. It uses the OGR prefix for vector-specific types and functions. The core components are:

    • Geometry (OGRGeometry): Encapsulates vector data types (points, lines, polygons, etc.) and includes a spatial reference system.
    • Spatial Reference (OGRSpatialReference): Defines projections and datums.
    • Feature (OGRFeature): A single entity containing one or more geometries and associated attributes.
    • Feature Class Definition (OGRFeatureDefn): Captures the schema (field definitions) for a group of related features, typically a layer.
    • Layer (OGRLayer): An abstract class representing a collection of features within a dataset.
    • Dataset (GDALDataset): An abstract base class representing a file or database containing one or more layers.
    • Drivers (GDALDriver): Translators for specific formats used to open or write GDALDataset objects, managed by GDALDriverManager.
  4. Overview of GDAL Vector Programs (OGR)

    master

    GDAL includes the OGR library for managing vector data through several command-line utilities:

    • ogrinfo: Lists information about an OGR-supported data source.
    • ogr2ogr: Converts simple features data between different file formats.
    • ogrmerge: Merges several vector datasets into a single one.
    • ogrtindex: Creates a tileindex for vector data.
    • ogrlineref: Creates linear references and performs related calculations.
    • ogr_layer_algebra: Performs various vector layer algebraic operations.
  5. Overview of GDAL 1.7.0 major changes

    master

    GDAL 1.7.0 introduced several significant updates:

    New Drivers

    • GDAL Drivers: BAG, EPSILON, Northwood/VerticalMapper, R, Rasterlite, SAGA GIS Binary, SRP (USRP/ASRP), EarthWatch .TIL, WKT Raster.
    • OGR Drivers: DXF, GeoRSS, GTM, PCIDSK, and VFK.

    New Utilities

    • gdaldem and gdalbuildvrt are now compiled by default.

    Python Support

    • Added support for Python 3.X (compatibility with Python 2.X preserved).
    • Removed old-generation Python bindings.

    Driver Improvements

    • Significant improvements to: GeoRaster, GeoTIFF, HFA, JPEG2000 Jasper, JPEG2000 Kakadu, NITF, CSV, KML, SQLite (SpatiaLite support), and VRT.
  6. Overview of GDAL Raster Programs

    master

    GDAL provides a wide range of command-line utilities for processing raster data. Key capabilities include:

    • Conversion & Translation: gdal_translate (format conversion), gdal2tiles (TMS tiles), gdal2xyz (XYZ format), and gdalwarp (reprojection/warping).
    • Analysis & Information: gdalinfo (dataset info), gdaldem (DEM analysis), gdalsrsinfo (SRS info), and gdallocationinfo (raster query).
    • Manipulation: gdal_calc (numpy-style calculation), gdal_merge (mosaicking), gdal_edit (in-place editing), and gdal_rasterize (burning vectors into rasters).
    • Processing: gdal_contour (vector contours from elevation), gdal_polygonize (raster to polygons), gdal_fillnodata (interpolation), and gdal_sieve (removing small polygons).
  7. Overview of GNM (Geographical Network Model)

    master

    GNM is a set of C++ classes in GDAL designed to create, manage, and analyze networks built over spatial data. It provides an abstraction layer for existing network formats (like pgRouting, OSRM, GraphHopper, and SpatiaLite) and adds network functionality to standard spatial formats (like Shapefiles) via a "GDAL-native" format.

    Key capabilities include:

    • Creating and removing networks.
    • Building network topology manually or automatically over spatial data.
    • Reading connections in a common way.
    • Adding/removing spatial layers or features to a network.
    • Defining business logic for connections (e.g., applying or denying connections based on layer features).
    • Performing network analysis (e.g., shortest path, connected components).
  8. Overview of GDAL PROJ6 Integration (RFC 73)

    master
    GDAL 3.0+ implements the changes described in RFC 73, which integrates PROJ 6 capabilities into GDAL. This integration provides support for OGC WKT2, 'late binding' for coordinate transformations, time-dimension support for coordinate operations, and a unified SQLite-based CRS database. These features replace legacy ad hoc CSV databases (like PROJ_LIB and GDAL_DATA) with a more interoperable SQLite-based system for EPSG and other definitions, enabling area-aware validation and better interoperability between software tools.
  9. Overview of Multidimensional Raster Programs

    master

    For datasets containing multidimensional data, GDAL provides specific utilities:

    • gdalmdiminfo: Reports the structure and content of a multidimensional dataset.
    • gdalmdimtranslate: Converts multidimensional data between different formats and performs subsetting.
  10. Overview of Qhull and Rbox

    master

    Qhull is a general dimension convex hull program that processes a set of points from stdin and outputs the smallest convex set containing those points to stdout. It also supports generating:

    • Delaunay triangulations
    • Voronoi diagrams
    • Furthest-site Voronoi diagrams
    • Halfspace intersections

    Rbox is a companion tool used to generate input for Qhull. It can generate hypercubes, diamonds, cones, circles, simplices, spirals, lattices, and random points.