Растры

Растровое изображение – это цифровое представление рисунка, фотографии или иного графического материала в виде набора точек растра.

Класс axipy.da.Raster представляет растровый объект данных.

Открытие растров, расположенных в файловой системе

Для открытия растровых файлов используйте функцию openfile() объекта axipy.io.

raster = axipy.provider_manager.openfile('path/to/raster.tab')

Открытие из СУБД

Так-же поддерживается открытие данных из СУБД PostgreSQL и Oracle. Данный функционал реализован через передачу строки в формате библиотеки GDAL. Пример открытия растра из БД PostgreSQL и показа его на карте:

raster = provider_manager.gdal.open("PG:host=server_name dbname='test' user='postgres' password='postgres' schema='public' table=table_name")
raster_layer = Layer.create(raster)
print(raster_layer)
map = Map([ raster_layer ])
mapview = view_manager.create_mapview(map)

Пример открытия растра из БД Oracle:

raster = provider_manager.gdal.open("GeoRaster:user/password@XE,GDAL_RDT,1")

где user/password@XE - строка соединения с БД, GDAL_RDT,1 - источник, который необходимо открыть. Подробнее см gdalinfo.

Открытие данных, расположенных на WEB-ресурсах

Пример открытия тайлового сервера TMS. При этом передается шаблон URL:

raster = provider_manager.tms.open('https://maps.axioma-gis.ru/osm/{LEVEL}/{ROW}/{COL}.png')

Пример открытия WMTS:

raster = provider_manager.wmts.open('https://basemap.at/wmts/1.0.0/WMTSCapabilities.xml', 'geolandbasemap')

Операции с растрами

Растры по определению имеют пространственную привязку - координатную систему axipy.da.Raster.coordsystem и точки привязки axipy.da.Raster.get_gcps(). Таким образом:

Изображение + Пространственная привязка = Растр

Для того, чтобы «привязать» растр (задать изображению пространственную привязку), можно воспользоваться функцией register() модуля axipy.da.raster.

matrix = QTransform()
coordsystem = CoordSystem.from_units(Unit.m)
register(imagefile, matrix, coordsystem)

Операция трансформации axipy.da.raster.transform() растрового файла требуется для устранения или компенсации искажений, возникающих при создании растра.

Пример использования
coordsystem = CoordSystem.from_epsg(4326)
gcps = [
    GCP((0, 0), (0, 0)),
    GCP((200, 0), (30, 30)),
    GCP((200, 200), (60, 0)),
]
transform(rasterfile, outputfile, gcps, coordsystem)

См.также

Руководство пользователя ГИС «Аксиома» раздел «Растровые изображения»