Работа с растрами Ozi Explorer в QGIS

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/qgis-ozi.html


Небольшая инструкция по подготовке данных перед использованием в QGIS.

Один из часто задаваемых вопросов, как использовать растры, имеющие привязку Ozi Explorer (растр + map-файл) в QGIS. Чтобы пользоваться такими данными в ГИС, их в большинстве случаев необходимо предварительно конвертировать, например, при помощи GlobalMapper.

С выходом GDAL 1.7.1 надобность в проприетарном ПО отпала, т.к. именно в этой версии появилась поддержка map-файлов OZI.

Подготовка

Для работы растрами, имеющими привязку Ozi Explorer нам понадобится:

  • QGIS версии 1.5.0 или старше (описание установки)
  • GDAL 1.7.1 или старше (обычно устанавливается вместе с QGIS)
  • модуль GDAL Tools (не обязателен, если вы не боитесь командной строки)

В дальнейшем будем предполагать, что все установлено в каталог по умолчанию, C:\OSGeo4W.

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

Растры с привязкой Ozi Explorer обычно распространяются в формате GIF и имеют специфический файл привязки MAP. Если графическая часть вашего файла не в формате GIF, то прежде всего нужно конвертировать растр в формат GIF, например при помощи ImageMagick или любого другого пакета для работы с графикой. Иначе, использовать файл привязки и автоматически перевести файлы в приемлемый формат (например GeoTIFF) с привязкой будет невозможно, это ограничение возможно будет снято в будущем, на момент написания статьи поддерживались только файлы в формате GIF (см. ChangeLog и коммиты 17684 и 17685).

В файле привязки в третьей строке указано имя файла

OziExplorer Map Data File Version 2.2
200k--p41-23_24
200k--p41-23_24.jpeg

Т.к. мы будем работать с растром в формате GIF, необходимо соответствующим образом изменить файл привязки, исправив расширение на gif:

OziExplorer Map Data File Version 2.2
200k--p41-23_24
200k--p41-23_24.gif

На этом подготовка заканчивается. Можно переходить непосредственно к конвертации. Выполнить ее можно как в QGIS, так и из командной строки.

Конвертация в QGIS с помощью GDAL Tools

Запускаем QGIS. Если модуль GDAL Tools не активен (в меню «Растр» нет большого количества подпунктов), активируем его: «Модули → Управление модулями», находим в списке GDAL Tools и включаем. Если в списке этого модуля нет — загружаем его: «Модули → Загрузить модули».

Открываем окно инструмента «Перепроецирование» («Растр → Projections → Перепроецирование»). В качестве исходного файла указываем растр в формате GIF; деактивируем флаг «Исходная система координат» и задаем линейную интерполяцию. При необходимости устанавливаем переключатель «Добавить результат на карту».

В итоге окно будет выглядеть примерно так:

Qgis-ozi-01.png

Нажимаем кнопку «OK» и ждем окончания процесса. Полученный растр будет иметь такую же привязку, как и исходный.

Конвертация в командной строке

Аналогичный результат можно получить используя только командную строку. Для этого (подразумеваем, что конвертация в GIF уже выполнена и файл привязки откорректирован):

  • открываем командную строку OSGeo4W;
  • переходим в каталог с растром
  • выполняем команду
    gdalwarp -r near file.gif file.tif

Проверка результата

Проверить результат можно либо выполнив команду:

gdalinfo output.tif

Либо в QGIS выбрав: Растр -> Прочее -> Информация и нажав ОК.

Теги результирующего файла должны содержать информацию о проекции. Например:

Driver: GTiff/GeoTIFF
Files: C:/temp/1/out.tif
Size is 2572, 2890
Coordinate System is:
PROJCS["unnamed",
    GEOGCS["Pulkovo 1942",
        DATUM["Pulkovo_1942",
            SPHEROID["Krassowsky 1940",6378245,298.2999999999985,
                AUTHORITY["EPSG","7024"]],
            AUTHORITY["EPSG","6284"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433],
        AUTHORITY["EPSG","4284"]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",39],
    PARAMETER["scale_factor",1],
    PARAMETER["false_easting",500000],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]]]
Origin = (354167.632581056790000,6081772.511196699900000)
Pixel Size = (7.069508894554487,-7.069508894554487)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  (  354167.633, 6081772.511) ( 36d43'48.29"E, 54d50'20.28"N)
Lower Left  (  354167.633, 6061341.630) ( 36d44'25.15"E, 54d39'20.08"N)
Upper Right (  372350.409, 6081772.511) ( 37d 0'46.43"E, 54d50'38.13"N)
Lower Right (  372350.409, 6061341.630) ( 37d 1'18.70"E, 54d39'37.82"N)
Center      (  363259.021, 6071557.071) ( 36d52'34.65"E, 54d44'59.38"N)
Band 1 Block=2572x3 Type=Byte, ColorInterp=Palette

Ссылки по теме