我想在ggplot2中使用覆盖GoogleMaps基本地图的栅格绘制地图.因此,我用get_map()和insert_raster()这样的:
library(ggplot2)
library(ggmap)
bm <- ggmap(get_map(location = "Bangkok", maptype = "hybrid"))
bm + inset_raster(as.raster(r), xmin = r@extent[1], xmax = r@extent[2],
ymin = r@extent[3], ymax = r@extent[4])
Run Code Online (Sandbox Code Playgroud)
是否有可能设置alpha和更改fill颜色?
我想在10万个类似SpatialLines对象的10 km缓冲区中提取空间数据,并计算缓冲线周围每种土地覆盖类型的比例.在第一次,我使用该功能crop来裁剪我的栅格.然后,我使用函数extract(包栅格)来计算10种土地覆盖类型的比例.这是我的代码:
lapply(1:nrow(tab_lines), FUN=function(k){
Run Code Online (Sandbox Code Playgroud)
buf_line <- gBuffer(seg_line[k], width=10000) ## seg_line = Lines objects
Run Code Online (Sandbox Code Playgroud)
ha <-extract(x=data_raster,y=buf_line)
Run Code Online (Sandbox Code Playgroud)
每种土地覆盖类型的比例必须是列(一列=一个土地覆盖类型)
ha_1 <-length(ha[[1]][ha[[1]]==1])/length(ha[[1]])
ha_2 <-length(ha[[1]][ha[[1]]==2])/length(ha[[1]])
ha_3 <-length(ha[[1]][ha[[1]]==3])/length(ha[[1]])
ha_4 <-length(ha[[1]][ha[[1]]==4])/length(ha[[1]])
ha_5 <-length(ha[[1]][ha[[1]]==5])/length(ha[[1]])
ha_6 <-length(ha[[1]][ha[[1]]==6])/length(ha[[1]])
ha_7 <-length(ha[[1]][ha[[1]]==7])/length(ha[[1]])
ha_8 <-length(ha[[1]][ha[[1]]==8])/length(ha[[1]])
ha_9 <-length(ha[[1]][ha[[1]]==9])/length(ha[[1]])
ha_10 <-length(ha[[1]][ha[[1]]==10])/length(ha[[1]])
return(cbind(ha_1, ha_2, ha_3, ha_4, ha_5, ha_6, ha_7, ha_8, ha_9, ha_10))
})
Run Code Online (Sandbox Code Playgroud)
如何加快30 000个空间线的处理时间?R中是否还有其他软件包可以为这种类型的提取提供更快的处理?
我有一些大型的geoTIFF,现在我想将它们转换为ASCII文件,在进行一些搜索之后,我编写了以下代码:
library(raster)
f <- list.files("inputFolder", pattern = "*.tif", full.names = TRUE)
r <- lapply(f, raster)
a <- lapply(r, writeRaster, filename = "output", format = "ascii")
Run Code Online (Sandbox Code Playgroud)
令我感到困惑的是,如何根据原始名称分别命名输出文件?
我试过了:
a <- lapply(r, writeRaster, filename = "outputFolder" + f, format = "ascii")
Run Code Online (Sandbox Code Playgroud)
但是我收到错误:
二进制运算符的非数字参数
然后我尝试了:
a <- lapply(r, writeRaster, filename = paste0(f, ".asc"), format = "ascii")
Run Code Online (Sandbox Code Playgroud)
但是我收到了:
file(filename,“ w”)中的错误:无效的'description'参数另外:警告消息:1:如果if(filename ==“”){:条件的长度> 1,则仅使用第一个元素2 :in if(!file.exists(dirname(filename))){:条件的长度> 1并且仅使用第一个元素3:In if(toupper(x @ file @ name)== toupper(filename) ){:条件的长度> 1,仅第一个元素将被使用4:In if(trim(filename)==“”){:条件的长度> 1,仅第一个元素将被使用5:In if(!file.exists(dirname(filename))){:条件的长度> 1,仅第一个元素将被使用6:in if(filename ==“”){:条件的长度> 1,且仅第一个元素将被使用7:在if(!overwrite&file.exists(filename)){中:条件的长度> 1,并且仅使用第一个元素
r ×3
r-raster ×2
geospatial ×1
ggmap ×1
ggplot2 ×1
lapply ×1
performance ×1
plot ×1
spatial ×1