所以我一直试图计算因气候变化导致的土地总损失。我使用的数据集来自这个网站link
此数据集包含最有可能丢失的地方的经度和纬度。我想计算这些点的总面积。我知道geosphere包有一个函数来计算由一组点创建的多边形的面积。我仍然担心使用它可能会通过连接彼此相距很远的点来高估结果。 link to map 如果你看南极洲,只需连接所有红点就会高估受影响的区域。
我的问题是areapolygon()函数是否解释了这一事实?如果没有办法对相关区域进行更精确的估算?我正在考虑使用点之间的距离作为标准。但我不知道如何在R中实现它。
谢谢
这是我到目前为止使用的代码
library(rgdal)
library(sp)
library(geosphere)
library(plyr)
grid_file_6m <- new("GDALReadOnlyDataset","link_to_the_file")
grid_6m <- asSGDF_GROD(grid_file_6m, output.dim=c(1000, 1000))
plot(grid_6m,bg="black")
grid_6m_df <- as.data.frame(grid_6m)
grid_6m_df=grid_6m_df[,-1]
grid_6m_df$id= coords2country(grid_6m_df)
grid_6m_df<-grid_6m_df[!(is.na(grid_6m_df$id)==TRUE),]
grid_6m_df<-grid_6m_df[!(is.na(grid_6m_df$x)==TRUE),]
grid_6m_df<-grid_6m_df[!(is.na(grid_6m_df$y)==TRUE),]
write.csv(grid_6m_df,"test.csv")
grid_6m_df<- read.csv(file="test.csv", sep=",", header=TRUE )
Allname<-levels(grid_6m_df$id)
Country.df <- split(grid_6m_df[,-4],grid_6m_df$id)
clean.up<- function(x)
{
x<-x[,2:3]
}
Country.df <-lapply(Country.df,clean.up)
distm.km <-function (x)
{
distm(x)/1000
}
dis.table <-lapply (Country.df,distm.km)
函数coords2country()来自此处的另一篇文章,以匹配一个点所属的国家/地区。
谢谢