R中的面积计算

时间:2016-10-26 09:15:26

标签: r polygon spatial area

所以我一直试图计算因气候变化导致的土地总损失。我使用的数据集来自这个网站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()来自此处的另一篇文章,以匹配一个点所属的国家/地区。

谢谢

0 个答案:

没有答案