从空间点数据创建边界多边形以在传单中绘制

Jim*_*Jim 1 gis r polygon geospatial leaflet

你好(这里是测图新手!)

我已经进行了很好的搜索,但找不到解决这个似乎很棘手的问题的方法。

我有基本的 XY(坐标)数据:

位置/土地多边形(shapefile)

我想要做的是根据不重叠且具有一定大小限制的坐标数据创建相邻的多边形(因此它们不会永远延伸到海洋中)。

请原谅我糟糕的 MS Paint 技能,但期望的结果是这样的:

在此输入图像描述

我有一个标记陆地/海洋界面的多边形,因此多边形也不能重叠。

我正在使用 Leaflet 使这些地图具有交互性,它不是为了进行任何统计分析,而是为了提供概述。

最终目标是让每个多边形都由变量(例如温度)着色,并覆盖生态数据。

一些示例数据:

    > data[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
Run Code Online (Sandbox Code Playgroud)

生成图 1 的代码是一个基本的传单脚本:

leaflet() %>% 
  addProviderTiles('Esri.OceanBasemap'
  ) %>% 
  addCircleMarkers(data = data,
                   lng = ~Long_dec,
                   lat = ~Lat_dec,
                   radius = 2
  ) %>%
  addPolygons(data = Land,
              weight = 1,
              color = 'black')
Run Code Online (Sandbox Code Playgroud)

这让我一整天都感到沮丧,大多数示例都使用下载的多边形(例如,似乎是经典的美国各州,而不是制作它们)

非常感谢任何帮助!(或者我要求太多了!)

吉姆

Wim*_*pel 6

下面是一些可以开始的事情:

library(sf)
library(dplyr)

#create sf object with points
stations <- st_as_sf( df, coords = c( "Long_dec", "Lat_dec" ) ) 

#create voronoi/thiessen polygons
v <- stations %>% 
  st_union() %>%
  st_voronoi() %>%
  st_collection_extract()

library(leaflet)
leaflet() %>% 
  addTiles() %>% 
  addCircleMarkers( data = stations ) %>%
  addPolygons( data = v ) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述