【问题标题】:How to change matlab list into raster brick in R如何将matlab列表更改为R中的光栅砖
【发布时间】:2015-03-25 12:57:02
【问题描述】:

我有一个从某人那里得到的 mat 文件,我想将它更改为 R 中的光栅砖。

导入没问题,我可以使用 R.matlab 包导入

library(raster)
library(rgdal)`enter code here`
library(R.matlab)

SM2RF<-readMat("/..../Nile_DISTR.mat")
str(SM2RF)
    List of 3
 $ lonubn: num [1:231, 1] 34.6 34.6 34.6 34.6 34.6 ...
 $ latubn: num [1:231, 1] 10.12 9.88 9.62 9.38 9.12 ...
 $ Psim  : num [1:8766, 1:231] NaN NaN NaN NaN NaN NaN NaN N NaN   ...
 - attr(*, "header")=List of 3
  ..$ description: chr "MATLAB 5.0 MAT-file, Platform: PCWIN64, Created  
   on: Fri Dec 19 10:10:41 2014                                        "
 ..$ version    : chr "5"
 ..$ endian     : chr "little"

列表中有纬度、经度和 Psim。

我曾经使用光栅砖功能转换为光栅砖。但是,我不知道matlab中栅格的结构,它应该是24年的时间序列每日降雨网格。但我不知道为什么,我无法从这个 mat 文件中识别出层数。我试过像数组中的砖一样,像

r <-brick(SM2RF$Psim, xmn = min(SM2RF[[1]]),xmx=max(SM2RF[[1]]), ymn = min(SM2RF[[2]]), ymx=max(SM2RF[[2]]),crs=CRS("+init=epsg:20136")) 

但是,我发现了这个错误。

Error in .local(x, ...) : cannot coerce a matrix to a RasterBrick

无论如何可以帮助我吗? 最好的问候

【问题讨论】:

    标签: r raster mat r-raster


    【解决方案1】:

    你可以试试这样的:

    x <- cbind(SM2RF$lonubn, SM2RF$latubn, t(SM2RF$Psim)) 
    b <- rasterFromXYZ(x)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 2023-03-17
      • 1970-01-01
      • 2020-03-22
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多