我正在编写一个脚本,用于计算R中各点的覆盖率。 我有两个输入:一个IMG光栅文件和一个包含所有点的.csv。
我使用过这个脚本:
library(raster)
library(rgdal)
#load in raster and locality data
map <- raster('map.IMG')
sites <- read.csv('points.csv', header=TRUE)
#convert lat/lon to appropirate projection
coordinates(sites) <- c("X", "Y")
proj4string(sites) <- CRS("+init=epsg:27700")
#extract values to points
Landcover<-extract (map, sites, buffer=2000)
extraction <- lapply(Landcover, function(serial) prop.table(table(serial)))
# Write .csv file
lapply(extraction, function(x) write.table( data.frame(x), 'test2.csv' , append= T, sep=',' ))
我在地图中获得了一个.csv文件,但数据没有按照我希望的方式进行组织。
csv文件中有三列。一个用'x',一个用'Freq'(我认为是我图像中每个类的代码)和一个带有覆盖部分,一个在0-1之间。请参阅随附的图片。Image
我希望行上有序列和类,并在其下面有正确的序列及其覆盖范围。
此外,每个点都没有命名,所以我看不出哪个是哪个。在points.csv中,我有一个每个点的“串行”代码,我想用它。
有人可以引导我朝着正确的方向前进吗?
我希望我已经清楚了解我的问题,提前谢谢!