我想弄清楚如何計算不同水位的河流橫截面積水面積。根據高度計算橫截面面積
對於橫截面我有充分25釐米在寬5米的河流和在深度的區域可以基於一個很好的回答以前的問題 Calculate area of cross section for varying height
x_profile <- seq(0, 500, 25)
y_profile <- c(50, 73, 64, 59, 60, 64, 82, 78, 79, 76, 72,
68, 63, 65, 62, 61, 56, 50, 44, 39, 25)
library(sf)
#Create matrix with coordinates
m <- matrix(c(0, x_profile, 500, 0, 0, -y_profile, 0, 0),
byrow = FALSE, ncol = 2)
#Create a polygon
poly <- st_polygon(list(m))
# Calcualte the area
st_area(poly)
來計算,但該橫截面是隻是部分充滿了水,這是我現在試圖計算的充滿水的橫截面。
的水開始填充從最深的部分橫截面和深度則有所不同,比如像這樣:
water_level<-c(40, 38, 25, 33, 40, 42, 50, 39)
有沒有人對如何可以在r中做任何想法?提前致謝。
你有相同「水位」值的數量爲「y_profile」?我認爲你只需要找出'y_profile'和'water_level'之間的差異,但是如果你沒有相同數量的值,這將很難做到。 – shea
因此,對於'water_level'是40,那麼這是一個水平的Y軸值'max(y_profile) - 40' = 42? – Spacedman
做到這一點的一種方法是在水平面上構建一個矩形,該矩形包圍輪廓並與使用'st_intersection'的輪廓相交。 – Spacedman