簡體   English   中英

如何將 R 中的列表轉換為柵格?

[英]How can I convert a list in R into a raster?

我想將我必須的列表轉換為柵格,以便允許我在特定位置提取數據。

#create example data
tmintest=array(1:100, c(30,189,420))

#create example list
Variable <- list(Varname="Tmin")
Data = tmintest
xyCoords <- list(x = seq(-40.37,64.37,length.out=420), y = seq(25.37,72.37,length.out=189))
Dates <- list(start = seq(as.Date("2036-01-01"), as.Date("2065-01-01"), by="years"), end=seq(as.Date("2036-12-31"), as.Date("2065-12-31"), by="years"))
All <- list(Variable = Variable, Data=Data, xyCoords=xyCoords,Dates=Dates)

我從光柵文檔中看到它不接受列表,所以我嘗試取消列出All

unlistAll<-unlist(All)
raster(unlistAll)

返回:

Error in .local(.Object, ...) 

因此,我將使用上面列表中的信息從頭開始創建它:

myraster<-raster(nrows=108, ncols=21, xmn=-40.375, xmx=64.375,ymn=25.375,ymx=72.375,vals=All$Data)

但我得到了錯誤:

Error in setValues(r, vals) : values must be a vector

我會以錯誤的方式解決這個問題嗎? 我只想從我的列表或柵格中提取特定 x/y 坐標的數據。

要獲得程度:

xy <- cbind(x=rep(x, length(y)), rep(y, each=length(x)))
r <- rasterFromXYZ(xy)

創建一個 RasterBrick 並設置范圍

b <- brick(tmintest)
extent(b) <- extent(r)

你是如何得到這些值的? 如果你從 ncdf 文件中讀取它們,你可以只用brick(filename)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM