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

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

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

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

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

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

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

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

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

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

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

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

Примітки