Я пытаюсь рассчитать расстояние от нескольких пикселей растра до границы некоторых полигонов в R, как показано на изображении. У меня две проблемы:
Как правильно определить границу объекта
SpatialPolygon
. В настоящее время у меня есть два варианта, но я не могу решить, какой из них лучше. Во-первых, я могу принудить объектSpatialPolygon
as
к объектуSpatialLines
, а затем к SpatialPoints. Во-вторых, я могуraster::rasterize
SpatialPolygon
. Думаю, у каждого варианта есть свои плюсы и минусы.Я только хочу сделать расчет расстояния от одной из сторон границы. В примере мне нужно только расстояние до границы от пикселей внутри Колумбии до границы между обеими странами. Я попытался «отфильтровать» границу с помощью параметра широты, но реальная граница довольно нерегулярна, поэтому использование строгого значения отсечки может привести к ошибке.
Следующий код можно использовать для получения примера SpatialPolygonsDataFrame
:
#Get the world map and select two countries [Colombia and Venezuela]
library(maptools) #To get the polygon data
data(wrld_simpl)
colven <- c("Colombia", "Venezuela")
colven_map <- wrld_simpl[wrld_simpl$NAME %in% colven, ]
Растровые данные можно создать с помощью этого кода:
library(raster)
raster <- raster(colven_map, nrow=100, ncol=100)
raster[] <- 1:length(raster)
raster_colven <- mask(raster, colven_map)
заранее спасибо