Наложение шейп-файла на растр в нескольких графиках - PullRequest
2 голосов
/ 10 января 2020

Я пытаюсь наложить шейп-файл Южной Азии поверх нескольких растровых графиков, используя следующий код: «a» - это многослойный растровый файл. Вот ссылка на данные (размер 917 КБ) Test_Data

ras <- list.files("/filepath/", pattern = "\\.tif$", full=TRUE)
s <- stack(ras)
south_asia  <- readOGR('/filepath/south_asia.shp')  #to import shapefile
cropped <- crop(x = s, y = extent(south_asia))          #crop raster
plot(cropped)
plot(south_asia, add=TRUE)

Этот код дает мне один шейп-файл и несколько растровых графиков. Как мне наложить шейп-файл поверх растров? enter image description here Любая помощь будет оценена. PS: они в одном CRS Спасибо

1 Ответ

2 голосов
/ 10 января 2020

Сначала попробуйте дать воспроизводимый пример вместо ссылки для внешней загрузки файлов!

Если вы строите график вручную (например, используя par с base графиком), вы можете получить желаемый результат. поведение:

library(raster)

## testdata

# shapefile
shp <- getData(country='IND', level=1)

# raster 
r <- getData('alt', country='IND', mask=TRUE)

# create 4 layer rasterstack
rs <- stack(r,r,r,r)

## finally plot

# 2 rows, 2 cols
par(mfrow=c(2,2))


# loop layers
for (ii in 1:nlayers(rs)){

  plot(subset(rs,ii), main=names(rs)[ii])
  plot(shp, add=T)


}

Редактировать:

Используйте plot(subset(rs,ii), main=names(rs)[ii]) в l oop, чтобы построить соответствующий слой.

Результат:

enter image description here

...