Перейти до вмісту

GDAL

Матеріал з Вікіпедії — вільної енциклопедії.
GDAL
ТипГІС
АвторФренк Вармердам
РозробникиOpen Source Geospatial Foundation
Перший випуск8 червня, 2000; 25 років тому (2000-06-08)
ПлатформаCross-platform
Операційна системаUNIX-подібні операційні системи Редагувати інформацію у Вікіданих
Мова програмуванняC, C++, Python
Доступні мовиEnglish
ЛіцензіяX/MIT
Репозиторійgithub.com/OSGeo/GDAL
Вебсайтgdal.org

GDAL (англ. Geospatial Data Abstraction Library) — відкрита програмна бібліотека для читання, запису та обробки растрових і векторних геопросторових форматів даних.[1] Бібліотека розробляється під егідою Open Source Geospatial Foundation (OSGeo) і розповсюджується за ліцензією типу X/MIT.[2] Як «транслятор» форматів, GDAL надає єдину абстрактну модель даних для великої кількості підтримуваних форматів і постачається з набором утиліт командного рядка для перетворення та аналізу даних.

Історія

[ред. | ред. код]

Розробка GDAL була розпочата канадським розробником Френком Вармердамом наприкінці 1990-х років.[2] Перші публічні версії з’явилися на початку 2000-х і швидко набули популярності в спільноті геоінформаційних систем завдяки підтримці великої кількості форматів і відкритій ліцензії. Згодом проєкт було формалізовано в рамках Open Source Geospatial Foundation, а розвитком займається керівний комітет GDAL/OGR Project Steering Committee. Зростання екосистеми вільного GIS-ПЗ (QGIS, GRASS GIS, MapServer та ін.) зробило GDAL де-факто стандартом для доступу до геопросторових форматів у багатьох програмах.[3]

Загальна характеристика

[ред. | ред. код]

GDAL/OGR реалізовано переважно мовою C++ як крос-платформену бібліотеку, що працює в операційних системах Windows, Linux, macOS та інших Unix-подібних системах.[1] Компонент GDAL відповідає за роботу з растровими даними (цифрові зображення, цифрові моделі рельєфу, супутникові знімки тощо), тоді як компонент OGR (OGR Simple Features Library), що входить до того самого вихідного дерева, працює з векторними даними (точки, лінії, полігони та їх атрибути). Бібліотека надає абстрактні класи для читання і запису даних, а також механізм «драйверів», кожен з яких реалізує підтримку конкретного формату файлів або джерела даних (файлова система, веб-сервіси, просторові бази даних).[2]

Підтримувані формати

[ред. | ред. код]

Однією з ключових особливостей GDAL є підтримка великої кількості форматів. Сучасні версії бібліотеки надають повну або часткову підтримку сотень растрових і десятків векторних форматів.[4] Серед поширених растрових форматів — GeoTIFF, JPEG, PNG, IMG (Erdas Imagine), різні ASCII Grid, NetCDF та формати цифрових моделей рельєфу. До векторних форматів, що підтримуються OGR, належать ESRI Shapefile, GeoPackage, MapInfo TAB, PostGIS, Oracle Spatial, SpatiaLite, а також веб-служби на кшталт WFS.[5] Для багатьох форматів можливі як читання, так і запис, а в окремих випадках реалізовано лише читання або експериментальну підтримку.

Архітектура та модель даних

[ред. | ред. код]

Архітектура GDAL побудована навколо єдиної абстрактної моделі даних. Для растрової частини це, як правило, багатоканальний растр з геоприв’язкою (геотрансформ, проєкція, метадані). Для векторної частини OGR використовує концепцію шарів (layers), які містять набори об’єктів (features) з геометрією та атрибутами.Такий підхід дозволяє прикладним програмам працювати з різними форматами через однаковий інтерфейс, не зважаючи на внутрішні відмінності реалізації.Перетворення координат і проєкцій зазвичай здійснюється через окрему бібліотеку PROJ, з якою GDAL тісно інтегрований.[1][2]

Утиліти командного рядка

[ред. | ред. код]

Разом із бібліотекою постачається набір утиліт командного рядка, що дозволяють виконувати типові операції без написання коду. Серед найуживаніших растрових утиліт[6]:

  • gdalinfo — отримання метаданих про растр (розмір, геоприв’язка, проєкція, статистика тощо);
  • gdal_translate — конвертація між форматами, зміна роздільної здатності, обрізання та інші операції;
  • gdalwarp — перепроєктування, трансформація і створення мозаїк;
  • gdal_merge.py — об’єднання кількох растрових файлів в один;
  • gdaldem — розрахунок похідних моделей рельєфу (крутизна, експозиція, тіньовий рельєф тощо).[7]

Для векторних даних компонент OGR надає утиліти ogrinfo (перегляд структури і вмісту) та ogr2ogr (конвертація, фільтрація, перепроєктування, завантаження в просторові бази даних).[8] Багато інструментів GDAL/OGR використовуються як «будівельні блоки» при створенні сценаріїв обробки даних і конвеєрів просторового ETL.[3]

Мови програмування та прив’язки

[ред. | ред. код]

Ядро GDAL написане на C++, однак бібліотека має прив’язки (bindings) до низки мов програмування. Найпоширенішою є прив’язка для Python, яка широко використовується в інструментах автоматизації обробки геоданих, веб-службах і наукових дослідженнях. Також існують прив’язки для Java, C#, та інших мов, що дозволяє використовувати можливості бібліотеки в різних програмних середовищах.[1] Частина веб-фреймворків і аналітичних інструментів (наприклад, GeoDjango, окремі пакети для R) опирається на GDAL/OGR для підтримки форматів геоданих.

Застосування

[ред. | ред. код]

GDAL/OGR використовується в багатьох настільних, серверних і вбудованих програмних продуктах. До найвідоміших вільних GIS-систем, що покладаються на бібліотеку, належать QGIS, GRASS GIS, gvSIG, SAGA GIS, MapServer, GeoServer та інші проєкти спільноти OSGeo. У комерційному секторі GDAL часто застосовується як компонент для підтримки великої кількості форматів у настільних ГІС-пакетах, аналітичних платформах і серверних рішеннях. Бібліотека відіграє роль «інфраструктурного шару» — невидимої для кінцевого користувача частини програм, яка забезпечує ввод/вивід і базові перетворення геопросторових даних.[3]

Ліцензування та розвиток проєкту

[ред. | ред. код]

GDAL розповсюджується за відкритою ліцензією типу X/MIT, яка дозволяє вільне використання, модифікацію та включення бібліотеки до власницького програмного забезпечення за умови збереження тексту ліцензії та повідомлень про авторські права.[2] Розвиток проєкту координується Open Source Geospatial Foundation, а код розміщується у відкритому репозиторії (зокрема на GitHub).[9] Релізи бібліотеки регулярно оновлюються, додаються нові драйвери форматів, вдосконалюється підтримка сучасних стандартів OGC, просторових баз даних і хмарних сервісів зберігання даних.[3]

Програми, які викорстовують GDAL

[ред. | ред. код]

Деякі програми використовують бібліотеки GDAL/OGR, щоб читати та записувати різні ГІС-формати:

  • QGIS - вільна кросплатформова геоінформаційна система, написана на Qt.
  • GRASS - вільна кросплатформова геоінформаційна система з потужним інтерфейсом командного рядка.
  • GvSIG - вільна кросплатформова геоінформаційна система, написана на Java.
  • MapServer — відкрите середовище розробки геопросторових Інтернет-додатків.
  • Google Earth — проект компанії Google, в рамках якого в Інтернеті були розміщені супутникові фотографії всієї земної поверхні.
  • R - мова програмування та середовище для статистичного аналізу. Існують розширення для аналізу геопросторових даних.
  • ArcGIS – сімейство програмних продуктів американської компанії ESRI. Починаючи з версії 9.2, може використовувати GDAL для роботи з деякими форматами файлів

Примітки

[ред. | ред. код]
  1. а б в г GDAL — GDAL documentation. gdal.org (англ.). Процитовано 27 листопада 2025.
  2. а б в г д GDAL - OSGeo. wiki.osgeo.org. Процитовано 27 листопада 2025.
  3. а б в г GDAL/OGR — OSGeoLive 16.0 Documentation. live.osgeo.org. Процитовано 27 листопада 2025.
  4. Raster drivers — GDAL documentation. gdal.org. Процитовано 27 листопада 2025.
  5. Vector drivers — GDAL documentation. gdal.org. Процитовано 27 листопада 2025.
  6. Programs — GDAL documentation. gdal.org. Процитовано 27 листопада 2025.
  7. gdalwarp — GDAL documentation. gdal.org. Процитовано 27 листопада 2025.
  8. ogr2ogr — GDAL documentation. gdal.org. Процитовано 27 листопада 2025.
  9. Rouault, Even; Warmerdam, Frank; Schwehr, Kurt; Kiselev, Andrey; Butler, Howard; Łoskot, Mateusz; Szekeres, Tamas; Tourigny, Etienne; Landa, Martin (2025-11), GDAL, процитовано 27 листопада 2025