小编fde*_*sch的帖子

合并R中的多个栅格

我一直试图找到一种时间有效的方法来合并R中的多个光栅图像.这些是来自乞力马扎罗山南部地区的相邻ASTER场景,我的目标是将它们组合在一起以获得一个大图像.

这是我到目前为止所得到的(对象'ast14dmo'代表RasterLayer对象列表):

# Loop through single ASTER scenes
for (i in seq(ast14dmo.sd)) {
  if (i == 1) {
    # Merge current with subsequent scene
    ast14dmo.sd.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
  } else if (i > 1 && i < length(ast14dmo.sd)) {
    tmp.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
    ast14dmo.sd.mrg <- merge(ast14dmo.sd.mrg, tmp.mrg, tolerance = 1)
  } else {
    # Save merged image
    writeRaster(ast14dmo.sd.mrg, paste(path.mrg, "/AST14DMO_sd_", z, "m_mrg", sep = ""), format = "GTiff", overwrite = TRUE)
  }
}
Run Code Online (Sandbox Code Playgroud)

正如你猜测的那样,代码可行.但是,考虑到每个单个栅格对象大约70 …

merge r raster satellite-image

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

GitHub显示来自README.rmd的所有代码块(尽管include = FALSE)

我目前正在为GitHub上托管R包编写文档.我knitr与R Markdown一起使用来编写README文件.点击RStudio中的"Knit HTML"按钮会产生一个像我期望的那样的HTML.

但是,将README.rmd推送到GitHub会导致您在遵循上述链接时在下页部分中看到的内容.例如,最顶层的代码块在README.rmd文件中声明如下:

```{r global_options, include = FALSE}
library(knitr)
options(width = 120)
opts_chunk$set(fig.width = 12, fig.height = 8, fig.path = 'Figs/',
               include = TRUE, warning = FALSE, message = FALSE)
```
Run Code Online (Sandbox Code Playgroud)

但是,include = FALSE在这种情况下,第一行代码中的语句被忽略,并且应该隐藏的代码片段显示在引用的GitHub页面上.此外,结果(例如,从plot(),head())不,尽管可视化opts_chunk$set(..., include = TRUE).

有没有人遇到类似的问题,我可以帮助我在GitHub上显示正确的README文档,即RStudio处理它的方式吗?

r github knitr r-markdown

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

传单包中的图标旋转

我正在学习使用传单包在 R 中编程。我想给图标一个角度,并尝试使用以下代码:

m <- leaflet()
m <- addTiles(m,urlTemplate = "http://xdworld.vworld.kr:8080/2d/Base/201310/{z}/{x}/{y}.png")
m = m %>% setView(127.074167,34.456806, zoom = 9)
arrowIcon <- makeIcon(
  iconUrl = "arrow.png" 
  ,iconWidth = 100, iconHeight = 100 
  ,iconAnchorX = 25, iconAnchorY =25
)
arrowIcon <- makeIcon(
  iconUrl = "ARROW_B2.png" 
  ,iconWidth = 100, iconHeight = 100 
  ,iconAnchorX = 25, iconAnchorY = 25
)
offset = 0.00 # zoom 10-> 0.03, 9->0.06, 8 -> 0.12, 7 -> 0.24
m_lat = 34.45 + offset
m_lon = 127.07 - offset …
Run Code Online (Sandbox Code Playgroud)

icons r angle rotation leaflet

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

使用 ggplot 在 x 轴上显示有限的时间范围

我希望下图中的 x 轴从 06:00 开始,到 22:00 结束,每 4 小时休息一次。但是,我无法弄清楚以下内容。

a) 如何使x轴从06:00开始,06:00之前没有任何空白。

b) 如何使x轴在22:00结束,22:00之后没有任何空白。现在甚至没有显示 22:00

c) 如何每 4 小时休息一次。

d) 如何为 y 轴分配标签(目前只是 X4,列名称)。

我尝试了几件事,但没有成功。一些示例数据:

range <- seq(as.POSIXct("2015/4/18 06:00"),as.POSIXct("2015/4/18 22:00"),"mins")

df <- data.frame(matrix(nrow=length(range),ncol=4))
df[,1] <- c(1:length(range))
df[,2] <- 2*c(1:length(range))
df[,3] <- 3*c(1:length(range))
df[,4] <- range
Run Code Online (Sandbox Code Playgroud)

重塑:

library(reshape2)
df2 <- melt(df,id="X4")
Run Code Online (Sandbox Code Playgroud)

图形:

library(ggplot2)
ggplot(data=df2,aes(x=X4,y=value,color=variable)) + geom_line()+
  scale_y_continuous(expand=c(0,0)) +
  coord_cartesian(xlim=c(as.POSIXct("2015/4/18 06:00:00"),as.POSIXct("2015/4/18 22:00:00")))
Run Code Online (Sandbox Code Playgroud)

这使得图表看起来像这样: 在此输入图像描述

有任何想法吗?

time r ggplot2

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

网状不会实时打印到控制台

print()在循环结构中使用 Python 的(或据我所知,任何其他控制台输出生成)函数并通过R 中的网状运行代码,输出仅在执行完成后打印。例如,采用以下循环,每次迭代后进入休眠状态 1.5 秒;循环结束后,运行号全部打印出来。将 Python 代码保存到单独的 .py 文件然后运行reticulate::py_run_file().

library(reticulate)

py_run_string("
import time

for i in range(5):
   print(str(i))
   time.sleep(1.5) # sleep for 1.5 sec
")
Run Code Online (Sandbox Code Playgroud)

有谁知道这种行为的来源,如果可能的话,如何规避它?

python r console-output reticulate

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

使用按时间范围过滤的共享数据创建交互式条形图

我想创建一个交互式条形图,让用户可以根据一系列值过滤观察结果,然后动态呈现所选时间段内每个类的计数。由于过滤后的数据需要可用于许多这样的图表,我认为串扰plotly/ggplot的组合可能会证明是有价值的。

我在下面附加了一个 reprex,它使用共享数据和来自串扰的过滤功能来允许动态过滤部分。当我编织文档时,只要选择了全部范围的值(默认值),条形图就会很好地呈现。

满的

但是,绘图区域对于任何其他区域都为空,即。用户调整范围。

部分的

我到底错过了什么?我认为ggplotly()无法处理的完整共享数据集和过滤共享数据集之间一定存在差异。也许我可以遵循另一种方法来实现我的目标?

这是我的 .Rmd 文件的内容:

---
title: mpg class counts filtered by time period
output: html_document
---

```{r echo = FALSE, message = FALSE, warning = FALSE}
library(crosstalk)
library(plotly)

# Wrap data frame in SharedData
sd = SharedData$new(mpg)

# Create a filter input
filter_slider("Year", "Year", sd, column = ~ year, step = 1, width = 250)

# Render graph
bscols(
  ggplotly(
    ggplot(aes(x = class), data = sd) + 
      geom_bar() …
Run Code Online (Sandbox Code Playgroud)

visualization r ggplotly r-plotly crosstalk

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

`devtools::load_all()` 键盘快捷键不起作用

我重新安装了最新版本的 R 和 R Studio,重新启动了我的电脑并下载了我需要的所有软件包 \xe2\x80\x93 devtools就是其中之一。然而,键盘短路Ctrl+Shift+L停止工作。

\n

devtools::load_all()如果我在控制台中手动输入,它仍然有效。我该如何解决这个问题?

\n

keyboard r shortcut

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

多次堆叠现有的RasterStack

我的问题非常类似于最近发布在Stackoverflow上的一个遗憾的问题.我正在处理一个RasterStack由十二层组成的对象(一年中每个月一个),我想复制这些层十次,最后RasterStack组成120层,每12层相似(即层与图1相同的是,层13与层25相同,等等.

出于复制目的,让我们从raster包中获取一个示例:

library(raster)

file <- system.file("external/test.grd", package = "raster")
s <- stack(file, file, file, file, file, file, file, file, file, file, file, file)

stack(s, s, s, s, s, s, s, s, s, s)

class       : RasterStack 
dimensions  : 115, 80, 9200, 120  (nrow, ncol, ncell, nlayers)
resolution  : 40, 40  (x, y)
extent      : 178400, 181600, 329400, 334000  (xmin, xmax, ymin, ymax)
coord. ref. : +init=epsg:28992 +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812 +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 …
Run Code Online (Sandbox Code Playgroud)

r raster

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

通过RasterStack对象的单个单元格进行速度优化循环

我正在使用两个RasterStack对象,每个对象由十个层组成,代表单个时间步.

# Mock data
pred.rst.stck <- do.call("stack", lapply(seq(10), function(i) {
  pred.rst <- raster(nrows = 15, ncols = 15, xmn= 0, xmx = 10, ymn = 0, ymx = 10)
  pred.rst[] <- rnorm(225, 50, 10)
  return(pred.rst)
})
resp.rst.stck <- do.call("stack", lapply(seq(10), function(i) {
  resp.rst <- raster(nrows = 10, ncols = 10, xmn = 0, xmx = 10, ymn = 0, ymx = 10)
  resp.rst[] <- rnorm(100, 50, 10)
  return(resp.rst)
})
Run Code Online (Sandbox Code Playgroud)

pred.rst.stck用作预测变量resp.rst.stck集和响应变量集.对于预测器RasterStack的每个单个单元格,我想在响应RasterStack的每个单元格上拟合线性模型,提取每个拟合模型的相应R平方并将它们相加.简而言之,这是迄今为止使用R parallel包的最快方法:

# Parallelization
library(parallel)
n.cores <- …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r raster

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

如何计算网格轴限制?

假设我想在xyplot没有明确指定轴限制的情况下创建一个普通的,那么轴限制是如何计算的?

以下代码行生成一个简单的散点图。但是,轴限制的范围并不完全在 1 到 10 之间,而是略微扩展到左侧和右侧以及顶部和底部(大约 0.5)。

library(lattice)
xyplot(1:10 ~ 1:10, cex = 1.5, pch = 20, col = "black", 
       xlab = "x", ylab = "y")
Run Code Online (Sandbox Code Playgroud)

xyplot_axis_extension

有没有办法确定轴在每个站点上扩展的因子,例如使用trellis.par.get?执行上述xyplot命令后,我已经尝试了以下操作:

library(grid)
downViewport(trellis.vpname(name = "figure"))
current.panel.limits()
$xlim
[1] 0 1

$ylim
[1] 0 1
Run Code Online (Sandbox Code Playgroud)

不幸的是,面板限制作为归一化父坐标返回,这使得无法获得“真实”限制。任何建议将不胜感激!

更新:
使用 base-R plot,默认情况下,数据范围(以及轴限制)在每侧扩展 4%,请参阅?par。但是这个因素似乎不适用于“格子”对象。所以我正在寻找的是类似于在par.

r lattice trellis

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