Страница 1 из 1

Наложение растра

Добавлено: 28 фев 2018, 11:20
dimen4ik
Здравствуйте, имеется 2 растра со значениями(допустим высота и уклон поверхности), как можно их объединить, чтобы можно было раскрасить растр одновременно по двум параметрам, например уклон от белого до красного, а высоту от белого до черного?

Re: Наложение растра

Добавлено: 28 фев 2018, 13:01
rhot
1) Растры перегнать и объединить в одну таблицу.
2) Использовать пакет colorplaner для ggplot в R.

Код: Выделить всё

library(sp)
library(raster)
library(ggplot2)
library(colorplaner)

dem <- getData('SRTM', lon=5, lat=45)

elev <- crop(dem, extent(6, 6.5, 44.5, 44.75))
slope <- terrain(elev, unit='degrees')

br <- brick(elev, slope)
names(br) <- c('elevation', 'slope')

spdf.br <- as(br, "SpatialPixelsDataFrame")
df.br <- as.data.frame(spdf.br)

ggplot(df.br, aes(x, y, fill=elevation, fill2=slope))+
  geom_tile()+
  scale_x_continuous(breaks=seq(6.1, 6.4, .1))+
  scale_y_continuous(breaks=seq(44.5, 44.7, .1))+
  scale_fill_colorplane(name='',
                        color_projection = interpolate_projection,
                        zero_color = "white",
                        horizontal_color = "black",
                        vertical_color = "red",
                        axis_title='высота',
                        axis_title_y='уклон')+
  theme(panel.backgroun=element_blank())+
  guides(fill=guide_colorplane(
    label.y.theme=theme_gray(),
    label.theme=element_text(angle=90, vjust=0.5)))+
  labs(x='Долгота', y='Широта', title='Где-то в Альпийских горах...')
gislab_upload.png
gislab_upload.png (190.51 КБ) 3517 просмотров

Re: Наложение растра

Добавлено: 28 фев 2018, 13:38
alexandr cherepanov
можно по аналогии с этой статьей
http://gis-lab.info/qa/gdal-hillshade-colormap.html

можно Qgis
открыть оба продукта, выставить визуализацию - Одноканальное псевдоцветное - задать нужные палитры и диапазоны значений, выставить прозрачность.
Получится нечто вроде этого
Изображение

Re: Наложение растра

Добавлено: 28 фев 2018, 14:54
rhot
Добавил решение в R.