【问题标题】:R - Creating a raster - Right dimensions?R - 创建光栅 - 正确的尺寸?
【发布时间】:2019-08-05 11:36:39
【问题描述】:

我有一个类似下面的列表。它是从 nc 文件中提取的。我以netCDF files in R 为例。

ex = list()
ex$x = matrix((seq(-40,40, length = 89 * 86)), 89,86)
ex$y = matrix((seq(30,80, length = 89 * 86)), 89,86)
ex$z = matrix((runif(89 * 86, 20, 120)))

现在,我的列表如下所示,我想从中创建一个栅格。

library(raster)
exR = raster(ex)

但我收到一条错误消息:Error in .local(x, ...) : "z" does not have the right dimensions

有谁知道为什么会发生这种情况以及如何解决它?

【问题讨论】:

    标签: r matrix coordinates raster


    【解决方案1】:

    您的 x 和 y 坐标应该是一维向量,而 z 是具有该 x 和 y 维的矩阵。

    ex = list()
    ex$x = seq(-40,40, length = 89)
    ex$y = seq(30,80, length = 86)
    ex$z = matrix(runif(89 * 86, 20, 120),89,86)              
    
    library(raster)
    exR = raster(ex)  
    

    【讨论】:

    • 但我的问题是我无法改变它。当我从文件中提取它时,它就是这样给出的。当我得到它时,它已经是一个矩阵了。
    • 我无法下载您正在使用的 .nc,您应该可以使用 ncdf4 包打开它并将其尺寸读取为矢量:nc$dim$lat$valsnc$dim$lon$vals
    • 谢谢。不幸的是,我不能给你原始文件。当我输入 nc$dim$x$vals 时,我会得到 1-89 的数字,而对于 nc2$dim$y$vals,我会得到 1-86 的数字。但那些不是真正的网格框,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2023-03-19
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多