从 R 导出克里金值
Exporting Kriged Values from R
有没有人对如何从 R 中的克里格数据导出值有任何建议。我将它们导出为栅格,但我需要实际的像元值。我正在处理的数据是鱼类密度。我正在对数据进行克里格分析,然后将密度转换为丰度。但是为了转换为丰度,我需要 .csv 格式的克里格值。
下面是我使用的代码:
library(sp)
library(gstat)
library(raster)
library(automap)
library(ggplot2)
library(rgdal)
library(maptools)
fsite.fit=fit.variogram(fsite.vario, vgm(model="Sph",psill=fmy.psill,range=fmy.range,nugget=fmy.nugget),
fit.method=1)
fXloc = data.frame(Data.krig)$fXloc
fYloc = data.frame(Data.krig)$fYloc
fsite.chull = chull(fXloc,fYloc)
plot(fXloc,fYloc)
lines(fXloc[fsite.chull],fYloc[fsite.chull])
fsite.grid = polygrid(
xgrid=seq(min(fXloc),max(fXloc),length=100),
ygrid=seq(min(fYloc),max(fYloc),length=100),
cbind(
fXloc[fsite.chull],
fYloc[fsite.chull]))
names(fsite.grid)=c("fXloc","fYloc")
coordinates(fsite.grid)=c("fXloc","fYloc")
fsite.grid = as(fsite.grid, "SpatialPixels")
plot(fYloc~fXloc,cex=1.2,pch=20,col=2)
points(data.frame(fsite.grid)$fXloc,data.frame(fsite.grid)$fYloc,pch="+")
fsite.ok = krige(fADens~1, Data.krig, fsite.grid, fsite.fit)
现在我想要的是在 fsite.grid 中导出 fsite.ok,但我无法将它们加入同一数据框中。我不确定从这里去哪里。如果您想让我添加任何其他内容,请务必告诉我。目前,我不允许分享我的数据。
这是来自 gstat
的一个最小的、可重现的例子。您似乎对对象 fsite.ok
感兴趣。大概是一个Spatial*DataFrame
.
示例代码
library(gstat)
library(sp)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y
meuse.gstat <- gstat(id = "zinc", formula = zinc ~ 1, data = meuse,
nmax = 7, set = list(idp = .5))
meuse.gstat
z <- predict(meuse.gstat, meuse.grid)
现在你可以做
d <- data.frame(z)
write.csv(d, "values.csv", row.names=FALSE)
所以在你的例子中是
write.csv(data.frame(fsite.ok), "values.csv", row.names=FALSE)
有没有人对如何从 R 中的克里格数据导出值有任何建议。我将它们导出为栅格,但我需要实际的像元值。我正在处理的数据是鱼类密度。我正在对数据进行克里格分析,然后将密度转换为丰度。但是为了转换为丰度,我需要 .csv 格式的克里格值。
下面是我使用的代码:
library(sp)
library(gstat)
library(raster)
library(automap)
library(ggplot2)
library(rgdal)
library(maptools)
fsite.fit=fit.variogram(fsite.vario, vgm(model="Sph",psill=fmy.psill,range=fmy.range,nugget=fmy.nugget),
fit.method=1)
fXloc = data.frame(Data.krig)$fXloc
fYloc = data.frame(Data.krig)$fYloc
fsite.chull = chull(fXloc,fYloc)
plot(fXloc,fYloc)
lines(fXloc[fsite.chull],fYloc[fsite.chull])
fsite.grid = polygrid(
xgrid=seq(min(fXloc),max(fXloc),length=100),
ygrid=seq(min(fYloc),max(fYloc),length=100),
cbind(
fXloc[fsite.chull],
fYloc[fsite.chull]))
names(fsite.grid)=c("fXloc","fYloc")
coordinates(fsite.grid)=c("fXloc","fYloc")
fsite.grid = as(fsite.grid, "SpatialPixels")
plot(fYloc~fXloc,cex=1.2,pch=20,col=2)
points(data.frame(fsite.grid)$fXloc,data.frame(fsite.grid)$fYloc,pch="+")
fsite.ok = krige(fADens~1, Data.krig, fsite.grid, fsite.fit)
现在我想要的是在 fsite.grid 中导出 fsite.ok,但我无法将它们加入同一数据框中。我不确定从这里去哪里。如果您想让我添加任何其他内容,请务必告诉我。目前,我不允许分享我的数据。
这是来自 gstat
的一个最小的、可重现的例子。您似乎对对象 fsite.ok
感兴趣。大概是一个Spatial*DataFrame
.
示例代码
library(gstat)
library(sp)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y
meuse.gstat <- gstat(id = "zinc", formula = zinc ~ 1, data = meuse,
nmax = 7, set = list(idp = .5))
meuse.gstat
z <- predict(meuse.gstat, meuse.grid)
现在你可以做
d <- data.frame(z)
write.csv(d, "values.csv", row.names=FALSE)
所以在你的例子中是
write.csv(data.frame(fsite.ok), "values.csv", row.names=FALSE)