Основи роботи з топографічними даними
Основи роботи з топографічними даними — цифровими моделями поверхні Землі.
Отримання даних
ред.Цифрові моделі поверхні Землі (суходолу та морського і океанського дна) доступні для вільного завантаження з ряду джерел. Докладніші інструкції описані в довіднику «Звідки взяти дані для географічних карт».
Інструменти для роботи з даними
ред.Поширеними форматами розповсюдження даних цифрових моделей рельєфу є GeoTIFF (варіант стандарту TIFF з доданням геопросторової інформації) та NetCDF (універсальний формат поширення масивів даних). Обробка цих даних можлива як засобами комерційного програмного забезпечення, так і вільного. До вільного ПЗ, придатного для обробки геопросторових даних — цифрових моделей поверхні належать, зокрема:
- qGIS: кросплатформова геоінформаційна система з графічним інтерфейсом.
- GRASS GIS: кросплатформова геоінформаційна система з графічним та командним інтерфейсом користувача. Розробка почалась ще в 1982 році.
- GDAL/OGR: програмна бібліотека та набір програм, створених з використанням цієї бібліотеки для роботи з растровими та векторними геопросторовими даними.
- GMT (Generic Mapping Tools): набір програм для обробки дво- і трьо- вимірних даних, растеризації, фільтрування, тощо, в тому числі, обчислення картографічних проекцій.
- MapServer: середовище для розробки інтернет-застосунків для обробки геоінформаційних даних. Також має програму для створення географічних зображень.
та інші.
Основні операції
ред.Склеювання декількох фрагментів в один файл
ред.Дані GLOBE та SRTM розбито на сегменти. В деяких випадках, бажаний регіон може знаходитись в різних сегментах. Наприклад, в наборі GLOBE, Україна знаходиться в двох сегментах: c10g та g10g. Тому, для відображення рельєфу всієї країни дані слід спочатку склеїти в один файл.
GDAL: gdalwarp
ред.Програма gdalwarp[1] з набору GDAL пропонує, серед іншого, простий спосіб склеювання декількох сегментів геопросторових даних в один. Оскільки географічні метадані (просторові координати кутів, роздільна здатність) зберігаються в файлах GeoTIFF та інколи — в NetCDF, то для склеювання сегментів в один досить виконати команду:
gdalwarp c10g.grd g10g.grd cg10g.grd
Тут перші два аргумента команди — імена вхідних файлів, останній — файл з результатом роботи.
Створення прямокутного витягу
ред.Для спрощення та прискорення обробки даних, слід зменшити їхній обсяг.
GDAL: gdalwarp
ред.gdalwarp -te 22.9984 44.7565 40.2218 52.3751 cg10g.grd ua10g.grd Окрім склеювання декількох сегментів в один, програма gdalwarp[1] може створювати і витяги. Наприклад, аби отримати витяг, що приблизно відповідає прямокутнику, в якому знаходиться Україна, слід виконати команду:
gdalwarp -te 22.9984 44.7565 40.2218 52.3751 cg10g.grd ua10g.grd
тут:
- аргумент -te xmin ymin xmax ymax задає координати лівого нижнього кута та верхнього правого кута прямокутника в координатах вихідної системи координат, яким буде обмежений результат — витяг. Результат роботи буде збережений в файлі ua10g.grd.
Відмивка
ред.Відмивка є способом зображення рельєфу, при якому об'ємність зображення рельєфу досягається за допомогою напівтонового відтінення нерівностей земної поверхні.
GDAL: gdaldem
ред.Набір GDAL пропонує програму gdaldem[2], яка, серед іншого, здатна створювати відмивку на основі цифрових моделей місцевості.
Загальний синтаксис виклику програми:
gdaldem hillshade вхідна_модель віхидний_файл [-z Zкоеф (стандарт=1)] [-s масштаб* (стандарт=1)]" [-az Азимут (стандарт=315)] [-alt Висота (стандарт=45)] [-alg ZevenbergenThorne] [-combined] [-compute_edges] [-b Канал (стандарт=1)] [-of формат] [-co "NAME=VALUE"]* [-q]
Слід звернути увагу на, перший параметр виклику команди — hillshade (відмивка). Команда обчислює 8-бітовий растровий файл з ефектом відмивки (тіней від рельєфу). Вона приймає і деякі параметри: азимут та висота джерела світла, коефіцієнт вертикального збільшення та коефіцієнт масштабування, аби виправити відмінність між вертикальними та горизонтальними розмірами. Замість відсутніх даних, програма видає 0.
Параметри команди:
- -z Zкоеф
- коефіцієнт вертикального збільшення значень висоти
- -s масштаб
- співвідношення вертикальних одиниць та горизонтальних. Якщо у вхідній моделі горизонтальними одиницями є кутові градуси (наприклад, широта і довгота в системі WGS84) а висота вказана в метрах, то можна вказати масштаб=111120.
- -az азимут
- азимут джерела світла, в кутових градусах. 0, якщо джерело знаходиться зверху растру, 90 — схід. Стандартне значення, 315, зазвичай використовують для обчислення відмивки в картах рельєфу, і тому навряд чи доведеться його змінювати.
- -alt висота
- висота джерела світла, в кутових градусах. 90, якщо світло світить на модель згори, 0 якщо світло світить з боку.
- -combined
- починаючи з GDAL версії 2.0, обчислення тіні комбіноване.
GMT: grdimage
ред.Гіпсометричні карти
ред.Гіпсометричні карти дають геометрично точне зображення рельєфу за допомогою горизонталей та забарвлення висотних ступенів за певною шкалою кольорів.
GDAL: gdaldem
ред.Програма gdaldem також здатна створювати і гіпсометричні карти.
Загальний синтаксис виклику програми:
gdaldem color-relief вхідна_модель шкала_кольорів вихідний файл [-alpha] [-exact_color_entry | -nearest_color_entry] [-b Канал (стандарт=1)] [-of формат] [-co "NAME=VALUE"]* [-q]
В результаті роботи команди буде створений кольоровий растровий файл з 3-каналами (RGB) або 4-каналами (RGBA), обчислений на основі вказаної в моделі висоти та заданої шкали кольорів. Стандартний алгоритм створює м'який перехід між кольорами. Парамтрами -exact_color_entry або -nearest_color_entry можна змінювати поведінку алгоритма та вимикати інтерполяцію кольорів.
Параметри команди:
- шкала_кольорів
- текстовий файл, в якому описана шкала кольорів
- -alpha
- додати альфа-канал (прозорість) до вихідного растру
- -exact_color_entry
- шукати точний збіг в шкалі кольорів. Якщо не вдається знайти збіг, тоді використовується четвірка RGBA "0,0,0,0"
- -nearest_color_entry
- використати четвірку RGBA з найближчим значенням висоти в шкалі кольорів.
Текстовий файл шкали кольорів зазвичай має 4 стовпчика:
- висота червона зелена та синя складові кольору (від 0 до 255)
Висота може бути вказана як число, або ключове слово "nv" для пікселів без значення. Висоту можна визначити і у відсотках: 0% для найменшого значення, 100% для найвищого.
Значення альфа-каналу (прозорість) можна вказати у додатковому стовпчику. Стандартне значення — 255 (повна непрозорість).
Припустимі різні роздільні символи для стовпчиків: кома, знак табуляції, пробіли, двокрапка.
Також можна задавати кольори не трійкою RGB, а за їхніми назвами в системі GRASS GIS: white, black, red, green, blue, yellow, magenta, cyan, aqua, grey/gray, orange, brown, purple/violet та indigo.
Починаючи з GDAL версії 1.8.0, додана підтримка палітр GMT .cpt (лише COLOR_MODEL = RGB).
Приклад файлу шкали кольорів:
3500 white
2500 235:220:175
50% 190 185 135
700 240 250 150
0 50 180 50
nv 0 0 0 0
GMT: grdimage
ред.Обчислення проекції
ред.GDAL: gdalwarp
ред.Серед інших можливостей програми gdalwarp[1] є і обчислення картографічних проекцій. Для обчислення нової проекції слід скористатись параметрами -s_srs та -t_srs:
- -s_srs проекція
- проекція вхідного файлу. Можна вказувати системи координат EPSG[3] а також декларації PROJ.4 або імена файлів з описанням проекції в форматі WKT.
- -t_srs проекція
- те саме, тільки для вихідного файлу, результату.
Наприклад, переведення даних в проекцію WGS84 можна виконати командою:
gdalwarp -t_srs '+proj=utm +zone=11 +datum=WGS84' raw_spot.tif utm11.tif
Проекція Меркатора має код EPSG:3395[4]. Сферічна проекція меркатора з кодом EPSG:3857 стала популярною завдяки використанню в службах он-лайн карт Google Maps, OpenStreetMap, та іншими[5].
GMT: grdimage
ред.Приклади
ред.Гіпсометрична карта головного хребта Чорногори з відмивкою
ред.Розгляньмо приклад створення гіпсометричної карти головного хребта Чорногори. Як джерело даних візьмемо SRTM3 V2. Хребет потрапляє в два сегмента даних: N47E024 та N48E024. В системі Linux з встановленим GDAL та ImageMagick створення карти складатиметься з таких кроків:
Крок 1: отримання даних з серверів. Дані пропонуються в запакованому вигляді. Завантажити можна як утилітою wget, так і будь-якою іншою. Розпакувати архівовані файли також можна в будь-який інший спосіб.
wget http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N47E024.hgt.zip
wget http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N48E024.hgt.zip
unzip -x N47E024.hgt.zip
unzip -x N48E024.hgt.zip
Крок 2: склеювання двох сегментів та отримання витягу. Обмежимо нашу карту прямокутником координатами нижнього кута 24°18'57.86"E, 47°57'48.39"N і координатами верхнього кута 24°41'11.43"E, 48°13'28.91"N.
gdalwarp -te 24.31 47.96 24.68 48.22 N47E024.hgt N48E024.hgt N47-48E024-reduced.tif
Крок 3: створімо відмивку. Оскільки це не так важливо, значення азимута і висоти джерела світла залишені без змін.
gdaldem hillshade N47-48E024-reduced.tif N47-48E024-hillshade.tif
Крок 4: створімо гіпсометричну карту. Шкала кольорів зберігається в текствому файлі europa.cpt[6]:
# File europa.cpt
# Elevation Color Elevation Color
-5000 160 194 222 -2000 173 203 230
-2000 173 203 230 -1000 185 213 237
-1000 185 213 237 -500 196 223 244
-500 196 223 244 -200 206 231 249
-200 206 231 249 0 218 240 253
0 148 191 139 200 189 204 150
200 189 204 150 500 239 235 192
500 239 235 192 1000 222 214 163
1000 222 214 163 2000 202 185 130
2000 202 185 130 5000 192 154 83
B 160 194 222
F 192 154 83
N 255 255 255
Гіпсометрична карта створюється командою:
gdaldem color-relief N47-48E024-reduced.tif europa.cpt N47-48E024-color-relief.tif
Крок 5: обчислення нової проекції. Для зручності сприйняття карти, дані слід перенести в поширену і добре відому картографічну проекцію, яку використовують популярні служби карт Google Maps, Open Street Map, тощо:
gdalwarp -t_srs EPSG:3857 N47-48E024-hillshade.tif proj-hillshade.tif
gdalwarp -t_srs EPSG:3857 N47-48E024-color-relief.tif proj-color-relief.tif
Крок 6: поєднуємо гіпсометричну карту з відмивкою. Цей крок можна виконати і в графічному редакторі, але заради зручності, скористаємось командою composite з набору ImageMagick:
composite -dissolve 30% -gravity center proj-hillshade.tif proj-color-relief.tif karp-map.tif
Створення основи завершено. Тепер на неї слід нанести додаткову корисну інформацію, позначити вершини гір, тощо.
Примітки
ред.Див. також
ред.- Підручник «Геоінформаційні системи»