【发布时间】:2020-07-19 03:35:46
【问题描述】:
我有一个分辨率为 0.5 度 (r) 的栅格网格和一个包含 3 列的数据框 (my_df):long、lat 和 id。数据框代表物种出现记录。
我想要做的是确定我的栅格网格的每个 0.5 度单元格中存在哪些物种,并且每个单元格只保留每个物种的 1 条记录(my_df 有超过 90,000,000 行),所以如果一个 0.5 度单元格只有一个物种,会有一行包含栅格网格单元的纬度、经度,然后是数据框中的物种 ID。其他栅格网格单元可能包含数百个物种,因此可能有数百行。
最终我想创建一个数据框,其中包含每个物种位置所在的 0.5 度栅格网格的长和纬度以及那里存在的物种 ID,每个物种一行。
我已经创建了一个栅格网格,按照...
ext <- extent(-180.0, 180, -90.0, 90.0)
gridsize <- 0.5
r <- raster(ext, res=gridsize)
crs(r) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0"
还有一个数据框,它原本是一个 SpatialPolygonsDataframe...
A tibble: 6 x 3
long lat id
<dbl> <dbl> <chr>
1 16.5 -28.6 0
2 16.5 -28.6 0
3 16.5 -28.6 0
4 16.5 -28.6 0
5 16.5 -28.6 0
6 16.5 -28.6 0
etc
etc
...但我不确定如何继续该方法的其余部分。我曾尝试栅格化我的数据、提取点等,但我不断遇到错误并且不确定用于实现我的目标的正确方法。
或者,如果有人知道如何直接从 SpatialPolygonsDataFrame 中提取物种名称,其中包含每个物种的范围多边形,位于 0.5 度栅格网格单元位置,那就太好了。
任何帮助将不胜感激。
【问题讨论】:
标签: r coordinates gis shapefile r-raster