标签: raster

如何在霍夫莫勒图的 Y 轴上放置纬度?

我正在绘制hovmoller三个栅格的图,但该函数在 x 轴上绘制纬度,在 y 轴上绘制时间。通常(更容易阅读)纬度位于 Y 轴上。可重现的例子:

library("rasterVis")
r <- raster(nrows=10, ncols=10)
r <- setValues(r, 1:ncell(r))
r1 <- raster(nrows=10, ncols=10)
r1 <- setValues(r1, 1:ncell(r))
r2 <- raster(nrows=10, ncols=10)
r2 <- setValues(r2, 1:ncell(r))
St=stack(r,r1,r2)
idx <- seq(as.Date('2008-01-15'), as.Date('2008-1-17'), 'day')
SISmm <- setZ(St, idx)
hovmoller(SISmm, contour=FALSE, panel=panel.levelplot.raster,
          yscale.components=yscale.raster.subticks,
          interpolate=TRUE, par.settings=RdBuTheme)
Run Code Online (Sandbox Code Playgroud)

这会产生:示例图

所以我希望时间在 X 轴上,纬度在 Y 轴上!

plot r raster

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

R:如何找到栅格中最大值的位置?

我怎样才能找到最大的位置?使用 R 获取栅格值?我知道最大值 栅格的值,但我需要找到它的位置。

r raster

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

如何遍历光栅砖?

我有一个 SCA(nrow=108,ncol=132,nlayers=365) 的光栅砖,它包含部分积雪。我想从这个 8 层中每层制作 46 个堆栈,并从这 46 个堆栈中计算最大部分积雪。我该怎么做?

raster

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

用R中的某些值计算栅格面积

我有一个raster图像 (.tif),每个像素的连续值在 0 和 1 之间。我想计算这个区域(也可以是多个像素),raster其中的值在一组值间隔中:即 0.1 - 0.2 , 0.3 - 0.4, 0.7 - 0.8。最终目的是看哪个区间占据的面积更大。有什么想法可以尝试或如何处理它R

r raster r-raster

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

无法打开在 R 中创建的栅格

我有两个与该错误相关的问题:

第一:我有一个合并的 dem 层和多个 shapefile,我创建了一个蒙版 shapefile 边界列表,我能够绘制所有这些,除了一个“第一个”,它是最大的一个:

> plot(DEM_masked_list[[1]])

Error in file(fn, "rb") : cannot open the connection
In addition: Warning message:
  In file(fn, "rb") :
  cannot open file '/private/var/folders/2w/rjzwcrbn3pg0jmsrfkz7n52h0000gn/T/RtmpkL8Ot5/raster/r_tmp_2018-01-29_014745_982_20879.gri': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我注意到第一个 dem 的数据源与所有其他 dem 不同,这可能是由于它的尺寸较大(单元格数量为 509141570)!

DEM_masked_list

[[1]]
class       : RasterLayer 
dimensions  : 20015, 25438, 509141570  (nrow, ncol, ncell)
resolution  : 9.259259e-05, 9.259259e-05  (x, y)
extent      : -70.43231, -68.07694, 45.98676, 47.84  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs 
data source …
Run Code Online (Sandbox Code Playgroud)

r raster temporary-files

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

在 R RasterStack 上为每个单元实现 which.max()

更新 09/17/2012

这是一段使用自包含数据重现我的问题的代码:

请记住,我拥有的实际数据维度很大......

尺寸:3105、7025、21812625、12(nrow、ncol、ncell、nlayers)

我需要的是每一行的最大值的索引,层上的列。所有 NA 都应该返回 NA 并且多个最大副本应该返回第一个最大索引(或其他东西,必须一致)

# Create a test RasterStack

require(raster)

a <- raster(matrix(c(11,11,11,
                     NA,11,11,
                     11,11,13),nrow=3))

b <- raster(matrix(c(12,12,12,
                     NA,12,12,
                     40,12,13),nrow=3))

c <- raster(matrix(c(13,9,13,
                     NA,13,13,
                     13,NA,13),nrow=3))

d <- raster(matrix(c(10,10,10,
                     NA,10,10,
                     10,10,10),nrow=3))

corr_max <- raster(matrix(c(13,12,13,
                            NA,13,13,
                            40,12,13),nrow=3))

stack <- stack(a,b,c,d)


which.max2 <- function(x, ...)which.max(x)

# stackApply method
max_v_sApp <- stackApply(stack,rep(1,4),which.max2,na.rm=NULL)

# calc method
max_v_calc <- calc(stack,which.max)
Run Code Online (Sandbox Code Playgroud)

希望这提供了足够的信息。

更新:

这可能有效......现在测试:

which.max2 <- function(x, ...){
  max_idx <- which.max(x)   # Get the max
  ifelse(length(max_idx)==0,return(NA),return(max_idx))
}
Run Code Online (Sandbox Code Playgroud)

r raster max apply

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

标签 统计

raster ×6

r ×5

apply ×1

max ×1

plot ×1

r-raster ×1

temporary-files ×1