在这里,我发现了一个非常有趣的博客:温度效应和经验方法中的临界阈值非常有趣,所以我想在R中实现它的想法。然而,我在大型RasterBrick对象中有德国历史日温度(15年历史日平均温度)的多层光栅数据。根据《启发帖》中讨论的经验方法,我需要从多层光栅数据构建温度分布。
更新2:可复制形状文件:
我知道从第三方网站下载shapefile是不现实的,所以在这里我提出了可复制的shapefile来尝试一下:
library(sf)
library(maps)
library(rgeos)
library(mapdata)
germany <- st_as_sf(map("Germany", plot = FALSE, fill = TRUE))
write_sf(germany, "germany.shp")
为了方便地继续我的帖子,我创建了可复制的光栅数据,以便在R中使用。我还提供了来自欧盟统计局网站的德国形状文件;这是正在运行的shapefile(我可以保证链接非常安全,文件非常小):欧盟统计局的shapefile,这是方便的可复制光栅数据:
可重复数据
library(raster)
library(lubridate)
library(tidyverse)
r <- raster(xmn=5.75, xmx= 15, ymn = 47.25, ymx =55,res=c(0.25,0.25))
Deu_crop <- do.call(stack,lapply(1:5479,function(i) setValues(r,round(runif(n = ncell(r),min = -10,max = 25)))))
names(Deu_crop) <- paste0('X',gsub('-','.',ymd('1980.01.01') + days(1:5479)))
shp <- shapefile('eurostat_NUTS3/deu_adm_2006.shp')
e <- raster::extract(Deu_crop,shp)
names(e) <- shp$NUTS_ID
因此,为了测试在inspired post中介绍的工作流,我需要设计几个全局变量,这些变量将用于这里介绍的助手函数。但我不知道如何设计一些用于完成其工作流程的关键全局变量;建议定义全局变量,如:w
-天气数据<代码>tempDat:特定聚合天气数据<代码>Trows:span聚合网格数据;和T:integer temperature的向量(详情可在此处找到:details)。
我想从网格化的每日天气数据中估计温度随时间的分布。但是我很难测试这篇受启发的文章中提出的经验步骤,因为它没有提到处理多层栅格数据的解决方案,所以我不知道如何在R中独自采用它的奇思妙想。
以下是我在灵感贴子中使用辅助函数之前,从shapefile(欧盟统计局的“shapefile”)为每个多边形聚合多层光栅数据的方法:
最初尝试操作多层光栅:
rasterHelper <- function(ix,e){
gather(data.frame(e[[ix]],stringsAsFactors = F),'colname','temp') %>%
group_by(colname) %>% summarise(temp = mean(temp)) %>% ungroup() %>% # spatial mean
mutate(year = sub('X(\\d{4}).+','\\1',colname)) %>%
group_by(year) %>% summarise_all(funs(sum)) %>% mutate(NUTS_ID = names(e)[ix])
}
do.call(rbind,lapply(1:length(e),function(ix) rasterHelper(ix)))
但是我上面的尝试不起作用;在我的尝试中,我打算为每个多边形聚合温度光栅数据。灵感帖子的实现非常有用,但处理多层光栅数据仍然很难跟进。我假设我应该在每个光栅层上工作并随着时间的推移构建温度分布,但真的没有一个坚实的想法如何在R中做任何想法?
更新:
这是我从中得到启发的论文:非线性温度效应。。。,但对我来说,实现所提出的方法仍然是一个挑战,即使我遵循了各自博客中介绍的工作流程:搜索温度效应的临界阈值
有没有人告诉我如何在R中的多层光栅数据上采用它的经验方法?我如何估计温度随时间的分布?我如何在R中实现这一点?还有什么想法吗?谢谢
我不太清楚你想做什么。
设置一个较小的示例:
library(raster)
lux <- shapefile(system.file("external/lux.shp", package="raster"))
r <- raster(lux)
s <- stack(lapply(1:12, function(i) setValues(r, 1:ncell(r))))
e <- extract(s, lux)
现在你说你想聚合——这有点模棱两可,但也许你想要的是
x <- lapply(e, function(i) apply(i,2,mean))
相当于
y <- extract(s, lux, fun='mean')
我正在尝试在R中设置一个randomForest,以便根据其他光栅图像对光栅图像进行分类。我的训练数据是一个完全填充的光栅图像,我想训练许多其他光栅,以尝试基于初始光栅创建光栅输出。代码示例如下: <代码>rf1 ...其中,是我的光栅格式的实际已知值,而到是我想用来预测trainingRaster1是什么的其他光栅图像。我知道您将使用向量或点的训练类来训练一系列光栅,但在我的情况下,我希望使用光
在R中,与包“光栅”中的“提取”相比,在包“空间生态”的函数“zonal.stats”中计算平均值存在偏差。对于两者,我都使用多边形作为区域字段,并使用光栅作为值。 这是一个例子: z2和z1偏差的原因是什么?
本文向大家介绍R加载多层栅格,包括了R加载多层栅格的使用技巧和注意事项,需要的朋友参考一下
下面的代码在我的图像上生成两个框。我正计划进一步分析这些框内的像素。 在下面的例子中,在红色方块的情况下,我不想继续下去,因为它的右上角有黑色像素。而我想继续在绿色方块的情况下,因为它没有一个黑色像素沿着它的边缘。
我有一个带有空间坐标和一个变量的矩阵数据。空间分辨率为1000米。 我想将其转换为光栅格式。 我使用下面的代码来完成它。但我得到的决心与我得到的不一样。有没有更好的方法可以用我的真实数据获得相同的分辨率?
我想将光栅数据聚合到自定义形状文件中的每个多边形。 在这种情况下,我想获得撒哈拉以南非洲次国家区域城市化的平均程度。 我的sf如下所示: 或绘制: 另一方面,光栅数据采用以下形式: 这些比整个星球所需的要细得多。为了加速计算,我首先聚合光栅,然后将其转换为shapefile,剩余的每个光栅像素都转换为shapefile中的点几何形状。然后,这个shapefile可以聚合到我的区域边界。诚然,这不是