У меня каверзная проблема.
Я пытаюсь визуализировать некоторые данные для своего рода «симпатичного» исследователя метаданных.Это базовые данные точек в следующем формате:
> print(tempdata[1:5, ])
Station Lat_dec Long_dec Surface_T
1 247 50.33445 -2.240283 15.19
2 245 50.58483 -2.535217 14.11
3 239 50.16883 -2.509250 15.41
4 225 50.32848 -2.765967 15.34
5 229 50.63900 -2.964800 14.09
Я могу использовать Lat, Long и Temp для создания следующих полигонов voronoi, а также простой блок для их обрезки, чтобы они не расширялись навсегда.
# Creating Stations
stations <- st_as_sf(df,
coords = c("Long_dec","Lat_dec")
)
# Create voronoi/thiessen polygons
v <- stations %>%
st_union() %>%
st_voronoi() %>%
st_collection_extract()
# Creating boundary box
box <- st_bbox(stations) %>%
st_as_sfc()
# Clipping voronoi to boundary box
hmm <- st_crop(v, box)
Создает следующий многоугольник поверхности:
> str(hmm)
sfc_POLYGON of length 107; first list element: List of 1
$ : num [1:7, 1:2] -7.23 -6.94 -6.95 -7.04 -7.24 ...
- attr(*, "class")= chr [1:3] "XY" "POLYGON" "sfg"
График:
leaflet() %>%
addPolygons(data = hmm) %>%
addProviderTiles(providers$Esri.WorldTerrain)
![enter image description here](https://i.stack.imgur.com/2r5L5.png)
То, что я пытаюсь сделать, это закрасить поверхностные полигоны температурой, например, чем горячее, тем краснее и т.д.
Я думаю, это как-то связано с отсутствием какой-либо информации о поверхностных полигонах, таких как станция или идентификационный номер полигона, который связан с исходными данными.
Я в тупике, любая помощь будет потрясающей !!
пакеты:
library(sf)
library(dplyr)
library(rgdal)
library(leaflet)
обновление:
> tempdata[1:10, ]
Station Lat_dec Long_dec Surface_T
1 247 50.33445 -2.240283 15.19
2 245 50.58483 -2.535217 14.11
3 239 50.16883 -2.509250 15.41
4 225 50.32848 -2.765967 15.34
5 229 50.63900 -2.964800 14.09
6 227 50.33757 -3.303217 15.12
7 217 50.16657 -3.563817 15.13
8 207 49.66683 -3.556550 15.04
9 213 50.16512 -3.824667 14.97
10 219 49.83707 -3.815483 14.78
stations <- st_as_sf(tempdata,
coords = c("Long_dec","Lat_dec"))
test <- st_sample(stations,
size = as.numeric(count(tempdata))
)
join <- st_sf("temp" = stations$Surface_T, geometry = test)