Работа с GMT под Windows

Работа с GMT под Windows

Работа с GMT под Windows

Пример карты, созданной с помощью GMT (статья «Авианосец «Лэнгли»)

Generic Mapping Tools (Универсальные картографические инструменты, GMT) – набор программ с открытыми кодами, предназначенных для обработки и отображения двумерной и трёхмерной информации, растеризации, фильтрации и других алгоритмов обработки изображения, а также отрисовки различных картографических проекций.

GMT позволяет создавать карты профессионального качества, которые часто используются в качестве иллюстраций в печатных и электронных изданиях, в том числе в «Википедии».

В данной статье на примере рассматриваются принципы создания географических карт с использованием GMT, а также обсуждаются некоторые особенности работы с Windows-версией пакета.

Содержание

Вводные замечания

В настоящее время (январь 2010 года) существует достаточно полное описание Linux-версии GMT на английском языке, которое можно скачать с сайта Гавайского университета. Дистрибутив Windows-версии GMT[1] включает архив объёмом 15 Мбайт с официальной документацией Linux-версии в форматах PDF и HTML. Эта документация, однако, достаточна бедно иллюстрирована, и большая часть приведённых там примеров далека от чисто картографических задач.

Русскоязычные материалы о GMT фрагментарны. Одна из немногих доступных в Интернете статей[2] касается Linux-версии GMT и не в полном объёме применима для Windows-пользователей.

Установка GMT под Windows

GMT

Установка GMT под Windows не имеет никаких особенностей. Установочные программы скачиваются с сайта Гавайского университета[1]. Дистрибутив содержит:

  • Базовую установку GMT (GMT_basic_install.exe) объёмом 17 Мбайт, включающую данные среднего разрешения о береговой линии;
  • Данные высокого разрешения о береговой линии (GSHHS_highfull_install.exe) объёмом 37 Мбайт;
  • Документация (GMT_pdf_install.exe) объёмом 15 Мбайт.

Три указанных установочных файла запускаются в произвольной последовательности. Программа устанавливается в каталог C:\programs\GMT, никаких дополнительных настроек не требуется. Утилиты командной строки находятся в каталоге C:\programs\GMT\bin. Назначение остальных ключевых каталогов указаны в следующей таблице.

Ключевые каталоги Windows-установки GMT (C:\programs\GMT...)

Подкаталог Пояснения
\bin Утилиты командной строки
\share\doc\gmt\pdf Документация в PDF-формате
\share\doc\gmt\html Документация в HTML-формате. Рекомендуется для первоначального ознакомления, так как обладает более удобными средствами навигации.
\share\doc\gmt\examples Примеры работы с GMT. Каждый из 23 примеров содержит командный файл и все необходимые для его работы данные. По окончании работы командного файла формируется графическое изображение в виде доступного для просмотра PostScript-файла.
\share\pslib Таблицы кодирования символов для различных алфавитов. Кодировка кириллических символов находится в файле ISO-8859-5.ps.

Пути к ключевым каталогам при установке регистрируются в реестре Windows, поэтому при вызове утилит из командного файла указывать полный путь не требуется.

GhostScript и GSView

Выходные данные GMT формируются в виде файлов формата PostScript. Чтобы иметь возможность просматривать изображения и преобразовывать их в другие графические форматы, необходимо установить какую-либо утилиту для просмотра PostScript-файлов. Наиболее популярной утилитой такого рода является бесплатная программа GhostScript, которую можно скачать с сайта разработчика[3].

Для нормального просмотра PostScript-файлов необходимо скачать установить на компьютере две программы: интерпретатор PS-файлов GhostScript и графическую оболочку для их просмотра GSView. Программы устанавливаются без особенностей, дополнительных настроек не требуется. После установки программ PS-файлы просматриваются двойным щелчком мышки.

Цифровая модель рельефа

Для отрисовки физических и топографических карт необходимо иметь данные о высоте рельефа местности. Наиболее популярные бесплатные базы рельефа GLOBE с разрешением 900 м можно скачать с сайта Национального центра геофизических данных[4]. Данные представляют собой 16 файлов объёмом от 6 до 59 Мбайт, каждый из которых охватывает определённую область земной поверхности. Так, например, архив h10g.gz объёмом 28 Мбайт охватывает часть юго-восточной Азии с координатами 90-180° в.д. по долготе и 0-50° с.ш. по широте. В случае, если нет необходимости скачивать данные по большой территории, на той же странице можно оформить заявку на посылку определённого фрагмента файла. Архив будет прислан на указанный адрес электронной почты.

Скачанные файлы необходимо разархивировать (например, архиватором RAR) и поместить в каталог C:\programs\GMT\share\dbase. В находящемся здесь же файле grdraster.info необходимо зарегистрировать эти файлы. В случае, если все указанные 16 файлов были скачаны, файл grdraster.info будет иметь вид:

1 "GLOBE_G" "m" -R-180/-90/50/90 -I0.5m P i 1 0 -500 a10g
2 "GLOBE_G" "m" -R-90/0/50/90    -I0.5m P i 1 0 -500 b10g
3 "GLOBE_G" "m" -R0/90/50/90     -I0.5m P i 1 0 -500 c10g
4 "GLOBE_G" "m" -R90/180/50/90   -I0.5m P i 1 0 -500 d10g
5 "GLOBE_G" "m" -R-180/-90/0/50  -I0.5m P i 1 0 -500 e10g
6 "GLOBE_G" "m" -R-90/0/0/50     -I0.5m P i 1 0 -500 f10g
7 "GLOBE_G" "m" -R0/90/0/50      -I0.5m P i 1 0 -500 g10g
8 "GLOBE_G" "m" -R90/180/0/50    -I0.5m P i 1 0 -500 h10g
9  "GLOBE_G" "m" -R-180/-90/-50/0 -I0.5m P i 1 0 -500 i10g
10 "GLOBE_G" "m" -R-90/0/-50/0    -I0.5m P i 1 0 -500 j10g
11 "GLOBE_G" "m" -R0/90/-50/0     -I0.5m P i 1 0 -500 k10g
12 "GLOBE_G" "m" -R90/180/-50/0   -I0.5m P i 1 0 -500 l10g
13 "GLOBE_G" "m" -R-180/-90/-90/-50  -I0.5m P i 1 0 -500 m10g
14 "GLOBE_G" "m" -R-90/0/-90/-50     -I0.5m P i 1 0 -500 n10g
15 "GLOBE_G" "m" -R0/90/-90/-50      -I0.5m P i 1 0 -500 o10g
16 "GLOBE_G" "m" -R90/180/-90/-50    -I0.5m P i 1 0 -500 p10g

Если какой-то из 16 файлов отсутствует, соответствующая строка должна быть закомментирована символом # в первой позиции. В дальнейшем при формировании изображения рельефа обращение к данным осуществляется по номеру, который стоит в начале строки. Какой конкренный номер стоит в каждой строке - не важно, важно только, чтобы номера не повторялись.

Существует также более подробная информация о рельефе местности: база STRM3 (разрешение 90 м) и база STRM1 (территория США с разрешением 30 м), которые можно скачать с сайта NASA [5].

Например, скачиваем файл N43E132.hgt.zip в котором содержится информация о рельефе земной поверхности в диапазоне широт 43—44° с.ш. и долгот 132—133° в.д. Внтутри находится файл N43E132.hgt объёмом 2,8 Мбайт, где в виде двухбайтовых целых чисел указаны высоты точек на поверхности земли через 3 угловых секунды. Этот файл имеет другой формат по сравнению с файлами проекта GLOBE и при одинаковом покрытии территории примерно в 100 раз больший размер (поскольку разрешение в 10 раз лучше). Этот файл преобразуется в формат GRD, принятый в GMT, следующей командой:

xyz2grd N43E132.hgt -Dm/m/m/1/0/=/= -GN43E132.grd -R132/133/43/44 -I3c -N-9999 -ZTLhw

Значение параметров команды см. далее.

Батиметрическая информация

Для отображения на картах глубины мирового океана, необходимо иметь данные о рельефе морского дна. Эти данные можно скачать с сайта [6].

Поддержка кириллических шрифтов

Чтобы заставить GMT использовать кириллические шрифты, необходимо перед выполнением графических операций установить кодовую таблицу ISO-8955-5. Для этого нужно вызвать утилиту gmtset.exe, поместив в начале командного файла строку

 gmtset CHAR_ENCODING ISO-8859-5

Однако использование кодовой таблицы ISO-8859-5 не решает проблему русификации GMT по двум причинам:

  • Таблица кодировки символов для ISO-8859-5 без изменений перенесена из Linux-версии программы, где кодировка русских букв отличается от стандартной кириллической Windows-кодировки cp1251. Например, русские буквы А–Я, а–я (без букв Ё, ё) занимают в cp1251 диапазон кодов 192-255, а в ISO-8859-5 – диапазон 176–239, то есть смещены на 16 символов. Буквы E,ё имеют в cp1251 коды 168, 184, а в ISO-8859-5 – 161, 241;
  • Ни в исходной кодовой таблице ISO-8859-5, ни в стандартной кодовой таблице cp1251 нет символов /ring и /quotesingle, которыми GMT обозначает градусы и минуты. Поэтому при отрисовке, например, координатной сетки, программа выдаёт предупреждение и вместо вышеуказанных символов ставит пробелы.

Решение этой проблемы состоит в том, чтобы отредактировать файл, в котором записана таблица кодировки:

  • Заменить таблицу исходной Linux-версии на стандартную таблицу cp1251;
  • Выбрать два каких-нибудь кода, которые в кодировке cp1251 соответствуют не используемым на практике символам и заменить их символами /ring и /quotesingle.

Файлы с кодировочными таблицами лежат в каталоге C:\programs\GMT\share\pslib\. Кодировка по умолчанию находится в файле Standard+.ps, а кодировка ISO-8859-5 – в файле ISO-8859-5.ps. Чтобы сохранить за пакетом GMT многоязычную поддержку, необходимо исправить файл ISO-8859-5.ps. Если же многоязычная поддержка неактуальна, можно исправить файл Standard+.ps. В последнем случае даже не придётся переключать кодовую таблицу командой gmtset, как было показано выше.

Рекомендуемое содержимое файла Standard+.ps следующее (можно скопировать текст с экрана и перенести в файл):

/Standard+_Encoding [
/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef
/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef
/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef
/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef	/.notdef
/space		/exclam		/quotedbl	/numbersign	/dollar		/percent	/ampersand	/quoteright
/parenleft	/parenright	/asterisk	/plus		/comma		/minus		/period		/slash
/zero		/one		/two		/three		/four		/five		/six		/seven
/eight		/nine		/colon		/semicolon	/less		/equal		/greater	/question
/at		/A		/B		/C		/D		/E		/F		/G
/H		/I		/J		/K		/L		/M		/N		/O
/P		/Q		/R		/S		/T		/U		/V		/W
/X		/Y		/Z		/bracketleft	/backslash	/bracketright	/asciicircum	/underscore
/quoteleft	/a		/b		/c		/d		/e		/f		/g
/h		/i		/j		/k		/l		/m		/n		/o
/p		/q		/r		/s		/t		/u		/v		/w
/x		/y		/z		/braceleft	/bar		/braceright	/tilde		/.notdef
/ring		/quotesingle	/quotesinglbase	/afii10100	/quotedblbase	/ellipsis	/dagger		/daggerdbl
/Euro		/perthousand	/afii10058	/guilsinglleft	/afii10059	/afii10061	/afii10060	/afii10145 
/afii10099	/quoteleft	/quoteright	/quotedblleft	/quotedblright	/bullet		/endash		/emdash
/tilde		/trademark	/afii10106 	/guilsinglright	/afii10107	/afii10109	/afii10108	/afii10193 
/space		/afii10062	/afii10110	/afii10057	/currency	/afii10050	/brokenbar	/section
/afii10023	/copyright	/afii10053	/guillemotleft	/logicalnot	/hyphen		/registered	/afii10056 
/degree		/plusminus	/afii10055	/afii10103	/afii10098	/mu1		/paragraph	/periodcentered
/afii10071	/afii61352	/afii10101	/guillemotright	/afii10105	/afii10054	/afii10102	/afii10104 
/afii10017	/afii10018	/afii10019	/afii10020	/afii10021	/afii10022	/afii10024	/afii10025
/afii10026	/afii10027	/afii10028	/afii10029	/afii10030	/afii10031	/afii10032	/afii10033
/afii10034	/afii10035	/afii10036	/afii10037	/afii10038	/afii10039	/afii10040	/afii10041
/afii10042	/afii10043	/afii10044	/afii10045	/afii10046	/afii10047      /afii10048	/afii10049	
/afii10065	/afii10066	/afii10067	/afii10068	/afii10069	/afii10070      /afii10072	/afii10073
/afii10074	/afii10075	/afii10076	/afii10077	/afii10078	/afii10079	/afii10080	/afii10081
/afii10082	/afii10083	/afii10084	/afii10085	/afii10086	/afii10087	/afii10088	/afii10089
/afii10090	/afii10091	/afii10092	/afii10093	/afii10094	/afii10095	/afii10096	/afii10097
] def

Если же заменяется содержимое файла ISO-8859-5.ps, первая строка должна быть следующая:

/ISO-8859-5_Encoding [

Работа с GMT. Пример

Создание изображения рельефа

Прежде чем начать отрисовку карты, необходимо преобразовать цифровую модель рельефа в растровое изображение. Для этого возьмём, например, один из фрагментов базы GLOBAL (а именно – фрагмент Юго-восточной Азии в файле h10g, поскольку мы будем рисовать карту Приморского края). Этот фрагмент скачивается в виде архива h10g.gz, разархивируется архиватором Rar (или другим архиватором, поддерживающим формат gz), помещается (как сказано в разделе «Цифровая модель рельефа») в каталог C:\programs\GMT\share\dbase и регистрируется в файле grdraster.info того же каталога строкой типа:

 8 "GLOBE_G" "m" -R90/180/0/50    -I0.5m P i 1 0 -500 h10g

После этого необходимо преобразовать цифровую модель рельефа в растр командой:

 grdraster 8 -R90/180/0/50 -Gh.grd

Значение параметров команды grdraster указаны в таблице:

Параметр Пояснение
8 Номер, под которым исходный файл зарегистрирован в файле C:\programs\GMT\share\dbase\grdraster.info.
-R90/180/0/50 Область, которую необходимо преобразовать в растр. В данном примере преобразуется область 90–180° в.д., 0–50° с.ш., то есть полный диапазон координат файла h10g. Если в дальнейшем не предполагается создавать карты всей этой территории, то для экономии времени и места на диске можно преобразовать только нужный фрагмент. Например, для карты Приморского края было бы достаточно (с небольшим запасом) -R129/141/42/50.
-Gh.grd Имя выходного файла (h.grd).

Создание изображения полутеней

Для создания реалистичных физических карт желательно выделять полутенями особенности рельефа поверхности. Это создаёт ощущение освещённости рельефа некоторым виртуальным источником света (солнцем) и впечатление объёмности изображения. Для этого формируется растровое изображение полутеней и при отрисовке карты накладывается на основное изображение рельефа. В качестве исходных данных используется утилита grdgradient и изображение рельефа, сформированное на предыдущем шаге:

 grdgradient h.grd -Ne0.3 -A100 -M -Ghi.grd  

Значение параметров команды grdgradient указаны в таблице:

Параметр Пояснение
h.grd Исходный файл с изображением, по которому формируются полутени.
-Ne0.3 Интенсивность полутеней в относительных единицах. В данном случае – 0,3
-A100 Положение виртуального источника света. В данном случае азимут источника 100°, считая по часовой стрелке от севера, то есть почти точно на востоке с отклонением 10° на юго-восток.
-M  ?
-Ghi.grd Имя выходного файла (hi.grd).

Палитра рельефа

Отрисовка рельефа утилитой grdimage
Отрисовка водных объектов, границ и координатной сетки утилитой pscoast

Палитра рельефа — это файл, в котором задаётся соответствие высоты рельефа и цвета, которым отрисовывается на карте соответствующий участок территории. Ниже приведён пример содержимого палитры. Полагаем, что файл называется mount.cpt:

#file mount.cpt
#COLOR_MODEL = RGB
#
0	96	185	96	200	16	122	47
200	16	122	47	500	232	215	125
500	232	215	125	1000	161	67	0	
1000	161	67	0	1500	130	30	30
1500	130	30	30	2200	110	110	110
N 0 97 71
F 255 0 0
B 0 97 71

Строки 1 и 3 являются комментариями. Во строке 2 (#COLOR_MODEL = RGB) объявляется цветовая модель (RGB). В строках 4—8 задаётся соответствие высот и цветов. Каждая строка имеет формат

Hmin R1 G1 B1 Hmax R2 G2 B2,

где Hmin и Hmax — минимальная и максимальная высоты диапазона; R1, G1, B1, и R2, G2, B2 — соответствующие цвета в формате RGB. Цвета, лежащие посередине между Hmin и Hmax находятся линейной интерполяцией цветов R1G1B1 и R2G2B2.

Строки, начинающиеся с символов B, F, N задают цвета соответственно фона (когда высота точки меньше минимальной заданной высоты), переднего плана (когда высота точки больше максимальной заданной высоты) и точек, для которых высота рельефа неизвестна.

В строках 4—8 числа разделены между собой символами табуляции, в остальных строках — пробелами. Количество строк, задающих диапазоны высот, неограничено. Диапазоны высот должны примыкать друг к другу, т.е. Hmax одной из строчек должна быть равна Hmin другой строки (кроме минимальной Hmin и максимальной Hmax). Если диапазоны высот в разных строчках образуют разрывы или пересекаются, это считается ошибкой.

Отрисовка рельефа

Для отрисовки рельефа вызываем утилиту grdimage:

grdimage h.grd -Ihi.grd -R130/42/140.8/49.8r -JB135/46/42/50/6i -Cmount.cpt -K > map.ps  
Параметр Пояснение
h.grd Исходный файл с изображением рельефа.
-Ihi.grd Исходный файл с изображением полутеней (hi.grd).
-R130/42/140.8/49.8r Координаты отображаемой территории.
-JB135/46/42/50/6i Вид и параметры картографической проекции.
-Cmount.cpt Файл с описанием цветовой палитры для отображения рельефа.
-K Ключ, означающий, что формирование выходного файла данной командой не завершено.
> map.ps Перенаправление выходного потока со стандартного устройства вывода (монитора) в файл map.ps.

Отрисовка водных объектов, границ и координатной сетки

pscoast -R -J -S151/190/255 -O -K -Df -B2g1 -W0.25p,royalblue -Na/1p,white -Ia/0.25p,blue -Lf141.7/-43.5/-43/200 >> map.ps
Параметр Пояснение
-R Координаты отображаемой территории. Поскольку численные данные не указаны, берутся данные из параметра -R предыдущей команды.
-J Вид и параметры картографической проекции. Поскольку численные данные не указаны, берутся данные из параметра -R предыдущей команды.
-R130/42/140.8/49.8r Координаты отображаемой территории.
-JB135/46/42/50/6i Вид и параметры картографической проекции.
-S151/190/255 Цвет отрисовки (R/G/B) водных бассейнов.
-K Ключ, означающий, что формирование выходного файла данной командой не завершено.
-O Ключ, означающий, что команда является продолжением предыдущей команды.
-Df Качество отрисовки границ водных бассейнов.
-B2g1 Отрисовка координат и координатной сетки. Численные значения координат проставляются через 2 градуса, координатные линии - через 1 градус.
-W0.25p,royalblue Линия для отрисовки границ водных бассейнов. Толщина линии 0,25, цвет – тёмно-голубой (royalblue).
-Na/1p,white Линия для отрисовки границ. Толщина линии 1, цвет – белый (white). Символ «а» означает, что линия относится ко всем типам границ.
-Ia/0.25p,blue Линия для отрисовки рек.
Lf141.7/-43.5/-43/200 Отображение масштабной линейки.
>> map.ps Выходные данные программы дописываются в конец файла map.ps.


(Продолжение следует)

Ссылки

Примечания

  1. 1 2 GMT for Windows . Дистрибутив Windows-версии GMT на сайте Гавайского университета.
  2. Кондратьев М. Начало работы с GMT (на сайте GIS-Lab).
  3. GhostScript. Официальный сайт разработчика.
  4. GLOBE: Download the Elevation Tiles.
  5. Shuttle Radar Topographry Mission. Топографические данные, полученные в проекте SRTM.
  6. ds759.3 Data Access.

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Работа с GMT под Windows" в других словарях:

  • HTTP — Название: Hypertext Transfer Protocol Уровень (по модели OSI): Прикладной Семейство: TCP/IP Создан в: 1992 г. Порт/ID: 80/TCP Спецификация …   Википедия

  • Протокол передачи гипертекста — HTTP Название: Hypertext Transfer Protocol Уровень (по модели OSI): Прикладной Семейство: TCP/IP Создан в: 1990 г. Порт/ID: 80/TCP Назначение протокола: Доступ к гипертексту, ныне стал универсальным Спецификация: RFC 1945 …   Википедия

  • Заголовки HTTP — HTTP Постоянное соединение · Сжатие · HTTPS Методы OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT · PATCH Заголовки Cookie · ETag · Location · Referer DNT · X Forwarded For …   Википедия

  • μTorrent — μTorrent …   Википедия

  • Chromium — Эта статья о браузере; об операционной системе см.: Chromium OS. Chromium …   Википедия

  • Летнее время — Весенний перевод часовой стрелки с поясного на летнее время …   Википедия

  • Покемоны — Покемон Официальное американское лого Покемона ポケットモンスター, Poketto monsutâ (яп.) Pokémon (англ.) Покемон (рус.) Ж …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»