![](/img/trans.png)
[英]R: Create raster object from a dataframe with min and max values for x and y coordinates of raster cells
[英]Create raster out of coordinates and values
我有一個data.frame,其中存儲以下信息:
X1-數據
X2-小時(godzina)
對於上面提到的數據,我有一個名為Punkt(1,1),Punkt(1,2)的列,其中第二行可以找到質心值(例如19.65,49.5),且低於降雨。
Data <- structure(list(X1 = c("data", "20140509", "20140509", "20140509",
"20140509", "20140509", "20140509", "20140509", "20140509", "20140509",
"20140509", "20140509", "20140509", "20140509", "20140509"),
X2 = c("godzina", "0", "1", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "11", "12", "13"), `Punkt(1,1)` = c("19.55,49.5",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0.25", "0",
"0", "0.01", "0"), `Punkt(1,2)` = c("19.55,49.55", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0.4", "0", "0", "0.01",
"0"), `Punkt(1,3)` = c("19.55,49.6", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0.3", "0", "0", "0", "0")), .Names = c("X1",
"X2", "Punkt(1,1)", "Punkt(1,2)", "Punkt(1,3)"), row.names = c(NA,
15L), class = "data.frame")
我的目標是為每個時間點和日期小時創建一個柵格,並為每個小時創建一個柵格。
到目前為止,我已經成功地做到了這一點。 為了獲得列中每個柵格像元的范圍,我需要進行以下計算:
Coordinates = Data[1,][3]
xmin = as.numeric(substr(Coordinates, 1,5)) - 0.025
xmax = as.numeric(substr(Coordinates, 1,5)) + 0.025
ymin = as.numeric(substr(Coordinates, 7,11)) - 0.025
ymax = as.numeric(substr(Coordinates, 7,11)) + 0.025
我需要定義降雨率(讓我們嘗試一個正數):
Rainfall = as.numeric(Data[,3][11])
然后我可以創建一個柵格文件:
r1 <- raster(nrows=1, ncols=1, xmn=xmin, xmx=xmax, ymn=ymin, ymx=ymax)
r1 <- setValues(r1, Rainfall)
plot(r1)
有人可以幫我嗎?
要點(有空時請打開包裝:)
pts <- matrix(as.numeric(unlist(strsplit(unlist(Data[1,-c(1:2)]), ","))), ncol=2, byrow=TRUE)
與值結合:
v <- apply(as.matrix(Data[-1, -c(1:2)]), 1, as.numeric)
pv <- cbind(pts, v)
“名稱”(日期/時間)
nms <- apply(Data[-1,1:2], 1, function(i) paste(i, collapse='_'))
為了使這個玩具示例起作用,我們在您的柵格中需要多個行。 下面解決了這個問題,但是您不應該對真實數據進行處理:
pv <- rbind(pv, pv)
pv[1:3,1] <- 20
使用x,y和值的此矩陣,可以使用rasterFromXYZ:
library(raster)
r <- rasterFromXYZ(pv)
names(r) <- nms
r
#class : RasterBrick
#dimensions : 3, 2, 6, 14 (nrow, ncol, ncell, nlayers)
#resolution : 0.45, 0.05 (x, y)
#extent : 19.325, 20.225, 49.475, 49.625 (xmin, xmax, ymin, ymax)
#coord. ref. : NA
#data source : in memory
#names : X20140509_0, X20140509_1, X20140509_2, X20140509_3, X20140509_4, X20140509_5, X20140509_6, X20140509_7, X20140509_8, X20140509_9, X20140509_10, X20140509_11, X20140509_12, X20140509_13
#min values : 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.25, 0.00, 0.00, 0.00, 0.00
#max values : 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.40, 0.00, 0.00, 0.01, 0.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.