标签: gstat

二项式数据的回归克里金法

我使用gstat来预测二项式数据,但预测值高于1且低于0.有谁知道我如何处理这个问题?谢谢.

data(meuse)
data(meuse.grid)
coordinates(meuse) <- ~x+y
coordinates(meuse.grid) <- ~x+y
gridded(meuse.grid) <- TRUE

#glm model
glm.lime <- glm(lime~dist+ffreq, meuse, family=binomial(link="logit"))
summary(glm.lime)

#variogram of residuals
var <- variogram(lime~dist+ffreq, data=meuse)
fit.var <- fit.variogram(var, vgm(nugget=0.9, "Sph", range=sqrt(diff(meuse@bbox\[1,\])^2 + diff(meuse@bbox\[2,\])^2)/4, psill=var(glm.lime$residuals)))   
plot(var, fit.var, plot.nu=T)

#universal kriging
kri <- krige(lime~dist+ffreq, meuse, meuse.grid, fit.var)
spplot(kri[1])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r gstat kriging

7
推荐指数
1
解决办法
1870
查看次数

在R中创建网格以在gstat中进行克里金法

lat    long
7.16   124.21
8.6    123.35
8.43   124.28
8.15   125.08
Run Code Online (Sandbox Code Playgroud)

考虑这些坐标,这些坐标对应于测量降雨量数据的气象站.

R中gstat包的介绍使用了meuse数据集.在本教程的某些时候:https://rpubs.com/nabilabd/118172,这些人在这行代码中使用了"meuse.grid":

data("meuse.grid")
Run Code Online (Sandbox Code Playgroud)

我没有这样的文件,我不知道如何创建它,我可以使用这些坐标创建一个吗?或者至少向我指出讨论如何为自定义区域创建自定义网格的材料(即不使用GADM的管理边界).

可能写错了,甚至不知道这个问题是否对R精明的人有意义.不过,我很乐意听到一些方向,或者至少是提示.非常感谢!

R的总瘤和统计数据.

编辑:看到我发布的教程看起来像的样本网格,这是我想做的事情.

编辑2:这种方法是否可行?https://rstudio-pubs-static.s3.amazonaws.com/46259_d328295794034414944deea60552a942.html

r spatial gstat kriging

7
推荐指数
2
解决办法
7519
查看次数

关于ggmap错误和最佳实践的热图

我想在ggmap上绘制热图.

  library(ggmap)
  turku<-get_map('turku', zoom=13)
  turkumap<-ggmap(turku, extent="device", legend="topleft")
  turkumap
  turkumap+geom_density2d(mapping=aes(x = lon, y = lat),data = test, )
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

 Error in (function (x, y, h, n = 25, lims = c(range(x), range(y)))  : 
 bandwidths must be strictly positive
Run Code Online (Sandbox Code Playgroud)

测试变量是:

  test
         lon     lat var1.pred
  1  22.25320 60.4314 -67.04862
  2  22.25332 60.4314 -67.07793
  3  22.25344 60.4314 -67.11007
  4  22.25356 60.4314 -67.14517
  5  22.25368 60.4314 -67.18336
  6  22.25379 60.4314 -67.22478 
  7  22.25391 60.4314 -67.26956
  8  22.25403 60.4314 -67.31783
  9  22.25415 60.4314 -67.36973
  10 22.25427 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap gstat kriging

6
推荐指数
1
解决办法
3226
查看次数

如何反向转换正态分数转换后的数据

我每天有61个测量站的降雨量,为期12年(8000平方公里).

目标是创造5公里和25公里分辨率网格日降雨量产品.由于车站的数量很少,并且即使在雨季也不是所有车站都有雨,我选择使用气候变异图.

典型日(irain)的雨量计测量如下,具有由NA表示的少量缺失值.

7.8  4.4 15.4 19.1  5.8    0   42  6.4   21    21     0     0     0  15.6 0     0    10     5   1.2     0  14.4    NA    25  13.2     0   9.2 2   6.6   7.8  13.2  15.4    NA     9     0  15.5     0  18.6     6 0   4.8  10.6     0    9     0  12.4    NA    12     0     3    14 10    10     0    68  21.8    18  14.8   5.4     7     0    NA
Run Code Online (Sandbox Code Playgroud)

作为日常雨量偏斜,变换i相测试立方根变换日志变换(log1p)每天单独.然而,对于所有这些日子来说,两种变换都不适合我用shapiro wilk测试测试.因此,我选择正常分数分数变换(NCR),如Grimes&Pardo(2009)降雨量地统计分析所示.并使用了Ashton Shortridge教授的代码

以下代码用于生成季风季节的气候变异函数.请注意,我曾使用超过30%的电台报告下雨的日子.没有找到任何参考.当我达到65%的天数超过阈值时,选择30%.

lag = 3 …
Run Code Online (Sandbox Code Playgroud)

interpolation r gstat kriging

6
推荐指数
1
解决办法
623
查看次数

循环变量 IDW gstat R

有没有办法使用 gstat 包的 IDW 插值在 R 中的 SpatialPointsDataFrame 对象内循环变量?

我的意思是这样的

for (day in list_days) {
  P.idw <- gstat::idw(day~1, P, newdata=grd, idp=2.0)
  r       <- raster(P.idw)
  plot(r)
}
Run Code Online (Sandbox Code Playgroud)

编辑:因为该结构给了我错误:

Error in predict.gstat(g, newdata = newdata, block = block, nsim = nsim,  : 
  too many spatial dimensions: 58
In addition: Warning message:
In predict.gstat(g, newdata = newdata, block = block, nsim = nsim,  :
NAs introduced by coercion
Run Code Online (Sandbox Code Playgroud)

但如果我直接写变量的名称,它就可以正常工作:

P.idw <- gstat::idw(X2018.01.14~1, P, newdata=grd, idp=2.0)
Run Code Online (Sandbox Code Playgroud)

r gstat

5
推荐指数
1
解决办法
764
查看次数

如何使用gstat预测进行普通克里金法

我试图在R中编写一个使用gstat库的代码来创建插值.我已经阅读了gstat手册,基于互联网上的一些例子,我设法编写了这段代码(这只是一部分):

 g <- gstat(id="tec", formula=TEC ~ 1, data=data)  ##I create an object
 v <- variogram(g) # plot the empirical variogram
 plot(v)
 mod<-vgm(sill=var(data$TEC),model="Sph",range=200,nugget=200) #create the variogram model

v.fit <- fit.variogram(v, model=mod,fit.method=1)  #fit the empirical variogram 
Theor_variogram=plot(variogram(g),v.fit,main="WLS Model") #plot the theoretical variogram
plot(Theor_variogram)
 ## Kriging interpolation
 p <- predict.gstat(g, model=v.fit, newdata=predGrid)
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我运行最后一个命令(预测)而不是通过普通克里金插值得到结果时,我得到一个反距离加权(IDW).我在gstat手册中读到:"当没有指定变异函数时,反距离加权插值是默认操作.当指定变异函数时,默认预测方法是普通克里金法."

但是,正如您在我的代码中所看到的,我指定了经验和理论变差函数.你知道我为什么一直得到IDW而不是普通克里金吗?它可以与我的坐标类型相关吗?例如,如果我的坐标彼此接近,或者感兴趣的区域太大?任何帮助都非常有用.

在此先感谢迪米特里斯

r automap spatial-interpolation gstat

4
推荐指数
1
解决办法
6351
查看次数

轻松分配和使用Spatial*DataFrame的数据值

是否有可能以某种方式轻松处理Spatial*DataFrame(*=点,线,多边形,像素,网格......)中的数据?特别是我在为它分配值和使用它们时遇到了困难:

require(gstat)
data(meuse)
coordinates(meuse) = ~x+y
data(meuse.grid)
gridded(meuse.grid) = ~x+y

######## 1) assigning value

meuse[1,'zinc'] <- NA
# Error in meuse[1, "zinc"] <- NA : object of type 'S4' is not subsettable
as.data.frame(meuse)[1,'zinc'] <- NA
# Error in as.data.frame(meuse)[1, "zinc"] <- NA : 
#   could not find function "as.data.frame<-"

######## 2) operating with values

meuse[, 'zinc'] + 2
# Error in meuse[, "zinc"] + 2 : non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)

我发现这两种情况都有相当难看的变通办法:

# ad 1)
meuse2 <- as.data.frame(meuse) …
Run Code Online (Sandbox Code Playgroud)

r spatial gstat spatial-data-frame

2
推荐指数
2
解决办法
2234
查看次数

R gstat中的空间插值,不显示消息

当我使用gstat包在R中进行插值时,会出现类似“ [反距离加权插值]”或“ [普通或加权最小二乘预测]”的消息。例如:

library('sp')
library('gstat')
data(meuse)
coordinates(meuse) = ~x + y 
data(meuse.grid)
coordinates(meuse.grid) = ~x + y 
gridded(meuse.grid) <- TRUE
zn.tr1 <- krige(log(zinc) ~  x + y , meuse, meuse.grid)
Run Code Online (Sandbox Code Playgroud)

[普通或加权最小二乘预测]

如何禁用该消息?

gis r spatial gstat

1
推荐指数
1
解决办法
432
查看次数