1.Проблема
Я пытаюсь извлечь пересечение двух форм многоугольников в R. Первый - это полигон водораздела "ws_polygon_2", а второй - это полигоны вороной из 5 дождемеров, которые были построеныиз листа Excel "DATA.xlsx", оба доступны здесь: ссылка .
Код следующий:
#[1] Montagem da tabela de coordenadas dos postos pluviométricos
library(sp)
library(readxl)
dados_precipitacao_1985 <- read_excel(path="C:/Users/.../DATA.xlsx")
coordinates(dados_precipitacao_1985) <- ~ x + y
proj4string(dados_precipitacao_1985) <- CRS("+proj=longlat +datum=WGS84")
d_prec <- spTransform(dados_precipitacao_1985, CRSobj = "+init=epsg:3857")
#[2] Coleta dos dados espaciais da bacia hidrográfica
library(rgdal)
bacia_Caio_Prado <- readOGR(dsn="C:/Users/...", layer="ws_polygon_2")
bacia_WGS <- spTransform(bacia_Caio_Prado, CRSobj = "+proj=longlat +datum=WGS84")
bacia_UTM <- spTransform(bacia_Caio_Prado, CRSobj = "+init=epsg:3857")
#[3] Poligonos de Thiessen - 1 INTERPOLAÇÃO
library(dismo)
library(rgeos)
library(raster)
library(mapview)
limits_voronoi_WGS <- c(-40.00,-38.90,-5.00,-4.50)
v_WGS <- voronoi(dados_precipitacao_1985, ext=limits_voronoi_WGS)
bc <- aggregate(bacia_WGS)
u_WGS_1 <- gIntersection(spgeom1 = v_WGS, spgeom2 = bc,byid=TRUE)
u_WGS_2 <- intersect(bc, v_WGS)
Когда я применяю intersect
функция, возвращаемая переменная u_WGS_2
- это фрейм данных пространственного многоугольника, имеющий только 4 объекта вместо 5. Объект voronoi v_WGS
также имеет 5 объектов.
С другой стороны, когда я применяю gIntesection
функция, я получаю 5 функций.Однако объект u_WGS_1
является только пространственным многоугольником, и я теряю данные об осадках.
Я хотел бы знать, допускаю ли я какую-либо ошибку или есть ли способ объединить 5 объектов сданные об осадках в фрейме пространственных полигонов с помощью функции intersect
.
Моя цель - преобразовать этот фрейм данных пространственного многоугольника с данными об осадках для каждого многоугольника вороного в растре с помощью функции rasterize
позже, чтобы сравнить с другими интерполяционными результатами и спутниковыми данными.
Посмотри эти результаты.Первый - когда я получаю SPDF (пространственный полигональный фрейм данных), который мне нужен, но отсутствует функция 5º.Второй - тот, который я получаю со всеми необходимыми функциями, но пропускаю данные об осадках.spplot(u_WGS_2, 'JAN')
plot(u_WGS_1)
2.То, что я пробовал
Я изучаю фигуру ws_polygon_2
в поисках любого другого нежелательного многоугольника, который бы искажал форму и направлял к этим результатам. Форма состоит только из одного многоугольника, правильного элемента водораздела.
Я пытался использовать функцию aggregate
, как указано выше, и как я увиделв этом учебнике. Но я получил тот же результат.
Я пытался создать SPDF с объектом u_WGS_1
и d_prec
Spatial Point Data Frame. На самом деле, я работаю над этим.И если это правильный ответ на мою проблему, пожалуйста, помогите мне с кодом.
Спасибо!