簡體   English   中英

根據坐標和值創建柵格

[英]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.

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