GDAL

GDAL (англ. Geospatial Data Abstraction Library — библиотека абстракции гео-пространственных данных) — библиотека для чтения и записи растровых и векторных гео-пространственных форматов данных, выпускаемая под Open Source лицензией X/MIT организацией Open Source Geospatial Foundation(OSGeo). Библиотека предоставляет вызывающим приложениям единую абстрактную модель данных для всех поддерживаемых форматов. При сборке можно также включить дополнительные утилиты. С помощью этих утилит можно выполнять конвертацию и обработку данных используя интерфейс командной строки.

Geospatial Data Abstraction Library
Тип Геоинформационная система
Разработчики Open Source Geospatial Foundation
Написана на C/C++
Операционная система Кроссплатформенное ПО
Аппаратная платформа кроссплатформенность
Последняя версия
Читаемые форматы файлов ESRI Arc/Info ASCII Grid[d][2], ADRG General Information File[d][2], ADRG Transmittal Header File[d][2], ESRI Arc/Info Binary Grid[d][2], Maptech KAPP image file, version 3.0[d][2], Maptech BSB documentation file, version 3.0[d][2], Binary Terrain, version 1.3[d][2], RADARSAT-1 CEOS SAR Data File[d][2], Digital Image Map, version 1[d][2], Digital Image Map, version 2[d][2], PNG[2], Portable anymap[2], Raster Product Format Table of Contents File[d][2], ARC Standard Raster Product[d][2], UTM/UPS Standard Raster Product[d][2], DWG[2], Integrated TOPSAR Data[d][3], Bathymetry Attributed Grid[d][4], BMP[5], Digital Terrain Elevation Data Level 0[d][6], Digital Terrain Elevation Data Level 1[d][6], Digital Terrain Elevation Data Level 2[d][6], BIL/BIP/BSQ Header File[d][2], GIF[7], GeoTIFF[8], TIFF[8], формат обмена файлами JPEG[d][9], JP2[d][10][11][12][…], MrSID[13], National Imagery Transmission Format, version 1.0[d][14], National Imagery Transmission Format, version 1.1[d][14], National Imagery Transmission Format, version 2.0[d][14], National Imagery Transmission Format, version 2.1[d][14], Shapefile index file[d], Geography Markup Language[d][15] и World-файл[16]
Создаваемые форматы файлов ESRI Arc/Info ASCII Grid[d][2], ADRG General Information File[d][2], ADRG Transmittal Header File[d][2], Binary Terrain, version 1.3[d][2], PNG[2], Portable anymap[2], BMP[5], Digital Terrain Elevation Data Level 0[d][6], Digital Terrain Elevation Data Level 1[d][6], Digital Terrain Elevation Data Level 2[d][6], BIL/BIP/BSQ Header File[d][2], GIF[7], GeoTIFF[8], TIFF[8], формат обмена файлами JPEG[d][9], JP2[d][10][11][12][…] и National Imagery Transmission Format, version 2.1[d][14]
Лицензия MIT
Сайт gdal.org

Сопутствующая библиотека OGR, являющаяся частью дерева исходных кодов GDAL, предоставляет похожие возможности для векторных данных.

Первоначально GDAL разрабатывался Фрэнком Вармердамом вплоть до выпуска версии 1.3.2, после которого поддержкой проекта стал заниматься комитет GDAL/OGR Project Management Committee под контролем OSGeo.

Пакет GDAL/OGR считается важным проектом в Open Source, а также и в коммерческих кругах ГИС в связи с широким распространением и обширным набором функциональности. По словам одного из руководителей OSGeo Ховарда Батлера «Я представляю себе GDAL аналогом glibc/glibc++ в сфере программного обеспечения ГИС. Эта библиотека открыта, предоставляет базовую функциональность. Я не могу понять, как можно сделать что-либо без неё.»

Примеры использования

Конвертация данных

Конвертация данных из формата Shapefile в формат BNA[17] с фильтрацией по лесопаркам:

ogr2ogr -where "type=forestpark" -f "BNA" osm_forest_parks.bna osm_landuse.shp

Экспорт данных из формата Shapefile в СУБД PortgreSQL с фильтрациев по коду страны(380 — Украина) с индикацией прогресса(-progress):

ogr2ogr -progress -f "PostgreSQL" PG:"dbname=ukraine user=bogdan password=qwerty" \
        -where "country_id=380" -nln public.borders Data/World.shp

Использование библиотеки GDAL/OGR в программах

Благодаря библиотеке SWIG пакет GDAL/OGR может быть использован не только в C/C++-программах, но и в программах, написанных на более высокоуровневых языках, таких как Python, Java, C# и т. д. Используя обёртки(bindings) для этих языков, программист может иметь доступ ко всем возможностям библиотеки GDAL. Чтобы продемонстрировать использование обёрток, программисты GDAL добавили в дерево исходных кодов аналоги стандартных утилит GDAL/OGR, написанные на поддерживаемых обёртками языках[18][19].

Python

# -*- coding: utf-8 -*-
import sys

# Импортируем модуль ogr из пакета osgeo
from osgeo import ogr

inData = ogr.Open(sys.argv[1])
if inData is None:
    print 'Error: open failed'
    sys.exit(1)

inLayer = inData.GetLayer(0)
# Устанавливаем фильтр поля 'country' на значение '380'
inLayer.SetAttributeFilter('Country=380')

for feature in inLayer:
    name = feature.GetFieldAsString(feature.GetFieldIndex("Name"))
    geom = feature.GetGeometryRef()
    area = geom.GetArea()
    # Печатаем: название площадь
    print name, area

Программы, использующие GDAL/OGR

Некоторые программы используют библиотеки GDAL/OGR, чтобы читать и записывать различные ГИС-форматы:

  • QGIS — свободная кроссплатформенная геоинформационная система, написанная на Qt.
  • GRASS — свободная кроссплатформенная геоинформационная система с мощным интерфейсом командной строки.
  • GvSIG — свободная кроссплатформенная геоинформационная система, написанная на Java.
  • MapServer — открытая среда разработки гео-пространственных Интернет-приложений.
  • Google Earth — проект компании Google, в рамках которого в сети Интернет были размещены спутниковые фотографии всей земной поверхности.
  • R — язык программирования и среда для статистического анализа. Существуют расширения для анализа гео-пространственных данных.
  • ArcGIS — семейство программных продуктов американской компании ESRI. Начиная с версии 9.2 может использовать GDAL для работы с некоторыми форматами файлов[20]

Примечания

См. также

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.