0

誰かから入手したこのマット ファイルがあり、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 年間の時系列の日降雨量グリッドであるはずです。しかし、理由はわかりません。このマット ファイルからレイヤーの数を特定できませんでした。私は配列からレンガのように試しました

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

とにかく私を助けることができますか?よろしくお願いします

4

1 に答える 1

1

次のようなものを試すことができます:

x <- cbind(SM2RF$lonubn, SM2RF$latubn, t(SM2RF$Psim)) 
b <- rasterFromXYZ(x)
于 2015-03-25T21:18:37.367 に答える