Создание мелкомасштабных растровых карт в R Никита Платонов platonov@sevin.ru Институт проблем экологии и эволюции им. А.Н.Северцова РАН (ИПЭЭ РАН) Программа.

Презентация:



Advertisements
Похожие презентации
Кодирование и обработка графической информации. Содержание: Кодирование графической информации Сравнительная таблица видов графики Интерфейс растрового.
Advertisements

Фрактальное сжатие Домашних И.А.. Кодирование изображений Закодировать изображение – значит получить некоторый набор данных, по которому известный алгоритм.
Составила Лапикова О.В. МОУ-СОШ с. Высокое. Пространственная дискретизация.
Векторная и растровая графика 9 класс. Для вывода изображения на компьютер используются разные способы оцифровки, другими словами разные математические.
Кодирование информации Двоичное кодирование графической информации.
Кодирование и обработка графической информации. План урока Кодирование графической информации Сравнительная характеристика видов графики Интерфейс растрового.
Растровые и векторные изображения Практическая работа.
Кодирование графической информации Пространственная дискретизация.
Кодирование и обработка графической информации 9 класс + Практическая работа 1.
1 Аналоговая и дискретная форма представления информации Пространственная дискретизация Растровые изображения на экране монитора Растровая графика Векторная.
Двоичное кодирование графической информации в компьютере.
Компьютерная графика Изучив эту тему вы узнаете: Виды графических компьютерных изображений; Принципы формирования графических изображений;
Графический редактор Paint Урок 29. Блиц - опрос 1. Указать устройства для ввода графической информации. 2. Указать устройства для вывода графической.
Двоичное кодирование графической информации. Пространственная дискретизация. В процессе кодирования изображения производится его пространственная дискретизация.
Adobe Photoshop Компьютерная графика. Цели курса: понять принципы построения, обработки и хранения изображений с помощью компьютера; овладеть системой.
Растровая графика Растровая графика Изображение формируется (создаётся) из… Изображение формируется (создаётся) из… Основным элементом изображения (рисунка)
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МУНИЦИПАЛЬНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЯЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА 7 г. ИРКУТСКА ИРКУТСК.
Растровая графика. Понятие «Растровая графика» Понятие «пиксел» От англ. Picture Element Разновидности пикселов: Точка экрана (видео пиксел) Точка при.
Кодирование информации Двоичное кодирование графической информации.
Графический редактор Paint. Основные понятия. Назначение. Запуск. Рабочее поле. Панель инструментов. Палитра. Этапы создания рисунка. Шлямина Е.А., УМК.
Транксрипт:

Создание мелкомасштабных растровых карт в R Никита Платонов Институт проблем экологии и эволюции им. А.Н.Северцова РАН (ИПЭЭ РАН) Программа изучения белого медведя в Российской Арктике

IDRISI + Visio + визуальная подгонка +... Причина (~2007г.)

Цели Автоматизация построения статических карт Задачи Беглый взгляд на данные независимым вьювером Беглый взгляд на данные независимым вьювером Комплексная компоновка (панель рисунков) Комплексная компоновка (панель рисунков) Подготовка иллюстраций для печати в научных журналах Подготовка иллюстраций для печати в научных журналах

Реализация NCAR Command Language панель – да, слои – да, (x,y)-проекции – ???, кириллица – да?

Реализация QGIS print composer Слои, аннотации, кириллица

РеализацияГИСы Визуальная компоновка, оформление, HiRes экспорт,…

Стандартные средства R # Здесь и далее код не воспроизводимый > str(img.list) List of 3 $ x: num [1:304] $ x: num [1:304] $ y: num [1:448] $ y: num [1:448] $ z: num [1:304, 1:448] NA $ z: num [1:304, 1:448] NA NULL > str(img.data.frame) 'data.frame':67455 obs. of 3 variables: $ x: num $ x: num $ y: num $ y: num $ z: num NA... $ z: num NA...NULL

Стандартные средства R > mycol mycol image(img,asp=1,col=mycol)

Стандартные средства R > filled.contour(img,asp=1,levels=20)

R: Package raster

R: Package lattice > str(coast) num [1:99607, 1:2] NA NULL > str(img) 'data.frame':63082 obs. of 4 variables: $ x: num $ x: num $ y: num $ y: num $ z: num $ z: num $ w: Factor w/ 2 levels "Mar","Sep": $ w: Factor w/ 2 levels "Mar","Sep": NULL

R: Package lattice levelplot(z~x+y|w,data=img,panel = function(...){,panel = function(...){ panel.levelplot(...) panel.levelplot(...) panel.polygon(coast,col="grey65")} panel.polygon(coast,col="grey65")},scales=list(draw=FALSE),xlab="",ylab=""),scales=list(draw=FALSE),xlab="",ylab="")

R: Package ggplot2 ggplot(img,aes(x,y,fill=z))+ geom_raster()+scale_fill_continuous(name="Ice Conc")+ geom_raster()+scale_fill_continuous(name="Ice Conc")+ coord_cartesian(xlim=xlim,ylim=ylim)+facet_grid(.~w)+ coord_cartesian(xlim=xlim,ylim=ylim)+facet_grid(.~w)+ geom_polygon(data=coast,colour="green",fill="#FFFF003F")+ geom_polygon(data=coast,colour="green",fill="#FFFF003F")+ geom_path(data=grid,colour="darkred") geom_path(data=grid,colour="darkred")

Формат экспортируемой карты # > pdf("out1.pdf", width=7, height=7, pointsize=16) > postscript(...) > png("out2.png", width=7, height=7, units=in, res=300,pointsize=16) > tiff(...) #

План разметки # > nc nc nr nr mosaic mosaic mosaic[5,3] mosaic[5,3] mosaic[5,5] mosaic[5,5] mosaic [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,1] [,2] [,3] [,4] [,5] [,6] [,7] [1,] [1,] [2,] [2,] [3,] [3,] [4,] [4,] [5,] [5,] [6,] [6,] [7,] [7,] #

Размеры элементов оформления # Создаем два вектора, отвечающих за размер > s.indent s.indent s.legend s.legend sizec sizec sizer sizer sizec[3] sizec[3] sizer[5] sizer[5] sizec[7] sizec[7] png_width png_width png_height png_height

Размеры элементов оформления # Формируем расположение > nf nf

План разметки # Выбор палитры, задание числа цветов > require(RColorBrewer)

Оформление легенды Выбор палитры Цветовой градиент ( ?colorRamp ) Цветовой градиент ( ?colorRamp ) Фиксированное число панелей Фиксированное число панелей Задание типа экстремумов для отображения Минимальное, максимальное значение Минимальное, максимальное значение Кумулятивные хвосты (%) Кумулятивные хвосты (%) Фиксированный разброс от среднего Фиксированный разброс от среднего Вручную Вручную Отображение легенды

Оформление легенды Подписи легенды Буквенные (категории) Буквенные (категории) Численные (не нужны безобразные дроби) > pretty(x,n=nbar) # Цикл по параметрам с критерием выбора > scale*pretty(x/scale,n=nbar) # Акцентировать ли внимание на НОЛЬ? Численные (не нужны безобразные дроби) > pretty(x,n=nbar) # Цикл по параметрам с критерием выбора > scale*pretty(x/scale,n=nbar) # Акцентировать ли внимание на НОЛЬ? Соответствие значений легенды и изображения Решкалирование изображения к категориям легенды – [minx,maxx) или (minx,maxx] Решкалирование изображения к категориям легенды – [minx,maxx) или (minx,maxx] Ремасштабирование изображения под пространственное разрешение карты Ремасштабирование изображения под пространственное разрешение карты

Вывод растра > par(mar=c(0,0,0,0)) > image(x,...)

Вывод координатной сетки > lines(grid,col=grey45,lty=2)

Вывод береговой линии > polygon(coast,col=transparent) > ?lines

Маскирование суши > polygon(coast) > ?polypath # дырки, но без полутонов/штрих.

Использование градаций серого > polygon(coast,density=15,angle=c(-45,45))

Добавление аннотации > rect(minx,miny,maxx,maxy,col=ann.bg) > text(x0,y0,displayed.text)

Вертикальная легенда > image(x=1,y=bar,z=matrix(bar,nrow=1)) > abline(h=hset,v=NULL); box()

Подписи легенды > mtext(nums,side=4,line=sh.label,...) > mtext(desc,side=4,line=sh.desc,...)

Добавление контура > cl cl sapply(cl,function(x) lines(x))

Растр + контур с легендами > image(imgAir); lines(isoHgt,...) > image(legendAir); image(legendHgt)

Растр + контур + указатели > image(img1); lines(isoheight,...) > arrows(wnd,...)

Наложение полигонов > image(slpImg) > polygon(signif95,density=15,angle=45)

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

Примеры использования Наслоение кириллицы с помощью ImageMagick

Примеры использования Очистка пустого пространства – внешний софт

Выводы Отображение растра, цветовой легенды – image() Отображение линий – lines(), segments(), contour() Отображение точек – points() Отображение полигонов – polygon(), polypath() Отображение аннотаций – text(), legend() - cлабая поддержка кириллицы - подписи contour() не всегда результативны - неэффективно при множественных подписях TODO-список: Масштабная линейка Указатель на север

Спасибо Никита Платонов (ИПЭЭ РАН)