Как нарисовать несколько прямоугольников (в соответствии с координатами) над шейп-файлом в R? - PullRequest
1 голос
/ 04 июня 2019

Я хотел бы построить несколько прямоугольников над областью, чтобы показать субрегионы.

Субрегионы подразделяются на следующие:

1) Северо-западные Гималаи и Каракорум (HKH1; 71 ° -79 ° восточной долготы, 32 ° 39 ° северной широты,
2) центральные Гималаи (HKH2; 76 ° 93 ° восточной долготы, 27 ° 32 ° северной широты)
3) юго-восточные Гималаи и Тибетское плато
(HKH3; 93 ° ‒103 ° E, 28 ° 2836 ° N)

Здесь показаны три прямоугольника
enter image description here

Iперепробовал много кодов, но не смог достичь желаемого.Будем благодарны за любую помощь!

1 Ответ

0 голосов
/ 04 июня 2019

Так как это прямоугольники, вы можете сделать

library(raster)
HKH1 <- as(extent(71, 79, 32, 39), "SpatialPolygons")
HKH2 <- as(extent(76, 93, 27, 32), "SpatialPolygons") 
HKH3 <- as(extent(93, 103, 28, 36), "SpatialPolygons")
p <- bind(HKH1, HKH2, HKH3)

Или, может быть, лучше, если у вас было много прямоугольников

m <- matrix(c(71, 79, 32, 39, 76, 93, 27, 32, 93, 103, 28, 36), ncol=4, byrow=TRUE)
a <- apply(m, 1, function(i) as(extent(i), "SpatialPolygons"))
pp <- bind(a)

Более сложные полигоны см. ?raster::spPolygons

...