小编Geo*_*-sp的帖子

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

我使用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的默认边距。这意味着我要摆脱红色矩形以外的所有白色空间。这是示例:

library (raster)
library(rasterVis)

f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r, margin=T)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

r raster lattice rastervis

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

从levelplot面板区域添加文本

我想在levelplot中添加文本区域中的文本.在下面的示例中,我需要在指向位置的某处的文本.

library (raster)
library(rasterVis)

f <- system.file("external/test.grd", package="raster")
r <- raster(f)
levelplot(r) 
Run Code Online (Sandbox Code Playgroud)

我试过mtext函数没有成功.有什么建议?

mtext("text", side=3, line=0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

plot r raster lattice

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

自定义ggcorrplot

我想减少标记的大小ggcorrplot,并减少文本和图之间的空间.

library(ggcorrplot)
data(mtcars)

corr <- round(cor(mtcars), 1)
ggcorrplot(corr,sig.level=0.05 ,lab_size = 4.5, p.mat = NULL, insig = c("pch", "blank"), pch = 1, pch.col = "black", pch.cex =1,
  tl.cex = 14)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

将刻度标签添加到水平图的边距

我想添加显示valuesof 的标签latitudinal zonal averageslevelplot'sgrey margin。在以下示例中,min和 的max值分别为latitudinal means和。关于将此信息提供给 的任何建议? 286751adding an axismargin在此输入图像描述

library(raster)
library(rasterVis)
r <- raster(system.file("external/test.grd", package="raster"))
levelplot(r, at=seq(100, 1850, by = 250))
# calculating the latitudinal means
rows <- init(r, v='y')
yAve <- zonal(r, rows, fun='mean',na.rm=TRUE)  
summary(yAve)   
Run Code Online (Sandbox Code Playgroud)

plot r raster r-raster rastervis

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

在R中导入和rbind具有通用名称的多个csv文件

我有多个CSV文件,其名称中包含4个常用字符.我想知道如何使用相同的常用字符来处理文件.例如,"AM-25"在3个csv文件的名称中是常见的,而"BA-35"在另一个2的名称中是常见的.

文件类似于AM-25.myfiles.2000.csv,AM-25.myfiles.2001.csv,AM-25.myfiles.2002.csv,BA-35.myfiles.2000.csv,BA-35.myfiles .2001.csv,我用这个来读取所有文件:

files <- list.files(path=".", pattern="xyz+.csv", all.files = FALSE,full.names=TRUE )
Run Code Online (Sandbox Code Playgroud)

r dataframe rbind

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

如何提高处理大型栅格堆栈的R处理速度?

我正在处理大型栅格堆栈,因此需要重新采样和裁剪。我阅读了Tiff文件列表并创建了堆栈:

files <- list.files(path=".", pattern="tif", all.files=FALSE, full.names=TRUE) 
s <- stack(files)
r <- raster("raster.tif")
s_re <- resample(s, r,method='bilinear')
e <- extent(-180, 180, -60, 90)
s_crop <- crop(s_re, e)
Run Code Online (Sandbox Code Playgroud)

此过程需要几天才能完成!但是,使用ArcPy和python可以更快。我的问题是:为什么R中的过程如此缓慢,以及是否有一种加快过程的方法?(我使用了snow软件包进行并行处理,但这也无济于事)。这些是rs层:

> r
class       : RasterLayer 
dimensions  : 3000, 7200, 21600000  (nrow, ncol, ncell)
resolution  : 0.05, 0.05  (x, y)
extent      : -180, 180, -59.99999, 90.00001  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 

> s
class       : RasterStack 
dimensions  : 2160, 4320, 9331200, 365 …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r raster snow

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

将 alpha 值添加到点阵 xyplot 面板函数

我要分配在两个α值xyplot面板功能: alpha= 0.3线alpha=1。下面是一个例子:

library(lattice)
library(sp)
data(meuse)

xyplot(elev~ copper,data=meuse,groups=factor(soil),grid = TRUE,scales=list(tck=c(1,0), x=list(cex=1.1), y=list(cex=1.1)),
       auto.key = list(space = 'right',text=c("1", "2", "3")),
       par.settings = list(superpose.symbol = list(pch =20, cex = 1,
                                                   col = c("#006837", "#41ab5d","#fd8d3c"))),
      type = c("p", "smooth"),col.line =c("#006837", "#41ab5d","#fd8d3c"),lwd = 5,
      panel = function(x, ...) {
                panel.xyplot(x, ..., alpha = 0.3)
                panel.lines(x, ...,  alpha = 1)
            })
Run Code Online (Sandbox Code Playgroud)

r lattice

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

更改 rasterVis levelplot 中添加的形状文件的背景颜色

我想更改海洋颜色(在 shapefile 边界之外)。我可以剪辑栅格并更改背景颜色,但在这里我想使用添加的 shapefile 来实现。

library(raster)
library(rasterVis)
library(maps)
library(maptools)
library(mapdata)

r <- raster(nrow=361, ncol=576, ymn=-90, ymx=90) 
values(r) <- 1:ncell(r)
data(wrld_simpl, package = "maptools")
levelplot(r)+ layer(sp.polygons(wrld_simpl, lwd=0.1, col='gray'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plot r raster lattice r-raster

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

循环遍历数据框中的每一行,从栅格中提取值并写入 csv 文件

我有一个带有Name,longitudelatitude列的数据框。我想要一个遍历每一行的函数,从栅格堆栈中提取值并根据Name列写入 csv 文件。

Name    Lon     Lat
Name1   11.11   47.87
Name2   150.1   -40.4
Name3   -50.2   -3.5
Name4   -100.3  49.8

library(raster)
s <- stack(replicate(5, {raster(matrix(runif(2160*4320), 2160), 
         xmn=-180, xmx=180, ymn=-90, ymx=90)}))

I can do that one by one:

location <- data.frame(11.11, 47.87)
ex <- extract(s, location)
write.csv(ex, "Name1.csv")
Run Code Online (Sandbox Code Playgroud)

r raster apply dataframe

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

随时间变化的二元相关图

我想绘制随时间步长的双变量相关性,以便x轴是时间,y轴是双变量相关系数.该airquality数据可以是一个很好的例子.在这种情况下,我想绘制之间的相关性Ozone&TempOzone&Wind过度Day.谢谢!

data(airquality)
Run Code Online (Sandbox Code Playgroud)

相关矩阵如下所示:

            Ozone Solar.R  Wind  Temp Month   Day
Ozone    1.00    0.35 -0.60  0.70  0.16 -0.01
Solar.R  0.35    1.00 -0.06  0.28 -0.08 -0.15
Wind    -0.60   -0.06  1.00 -0.46 -0.18  0.03
Temp     0.70    0.28 -0.46  1.00  0.42 -0.13
Month    0.16   -0.08 -0.18  0.42  1.00 -0.01
Day     -0.01   -0.15  0.03 -0.13 -0.01  1.00
Run Code Online (Sandbox Code Playgroud)

r time-series correlation

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

ggplot2,填充线下区域时出错

我有此数据集,我想填写area under each line。但是我收到一条错误消息:

错误:stat_bin()不得用于美观。

另外,我需要使用alpha透明性值。有什么建议么?

library(reshape2)
library(ggplot2)

dat <- data.frame(
    a = rnorm(12, mean = 2, sd = 1),
    b = rnorm(12, mean = 4, sd = 2),
    month = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"))

dat$month <- factor(dat$month, 
    levels = c("JAN","FEB","MAR",'APR',"MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"), 
    ordered = TRUE)

dat <- melt(dat, id="month")

ggplot(data = dat, aes(x = month, y = value, colour = variable)) + 
    geom_line() + 
    geom_area(stat ="bin")
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

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

创建地平线图

我有以下示例数据,想要创建一个地平线图,area显示year. 有什么建议使用这样做吗ggplot2

year <- 1990:2005
area1 <- runif(16, 18,20)
area2 <- runif (16,6,6.7)
area3 <- runif(16, 7,8)
dat <- data.frame(year, area1, area2, area3)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 lattice

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