2017-10-09 4 views
2

私は川の断面の面積を計算する方法を理解しようとしています。さまざまな高さの断面の面積を計算します

断面については、5m幅の川の上に25cmごとに深さがあります。

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) 

誰かがこれをrでどのように行うことができるかについてのご意見がありましたら、高く評価されます。

+0

それは私への統合の問題のように見えます。線形補間を使用し、直交方程式を適用することでアプローチします(最も明らかな選択は[台形ルール](https://en.wikipedia.org/wiki/Trapezoidal_rule)です)。この式は本質的に、 'step * depth_i'の' i'の上にある 'step = 0.5m'の部分まで単純化します。 – tonytonov

答えて

5

sfパッケージを使用して、断面を示すポリゴンを作成し、面積を計算することができます。ポリゴンを作成するには、マトリクスmを作成するときに、c(0, 0),c(500, 0)c(0, 0)という3つのポイントを追加する必要があります。

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)) 

# View the polygon 
plot(poly) 

enter image description here

# Calcualte the area 
st_area(poly) 
31312.5 
+0

ありがとうございました!それは素晴らしいね!水が水深の関数としてどのように面積を計算できるかについてのアイデアは、水深が深いところから始まって断面を埋めるようになるでしょうか? – Nicolle

+0

@Nicolleまだ分かりません。 1つのアイデアは、深さを示す線を使用してポリゴンを分割し、面積を計算することです。 – www

+0

@Nicolleところで、誰かが元の質問への答えを提供した後、あなたの質問を変更することは良い考えではありません。私は時間があれば私の答えを更新するかもしれませんが、それは保証できません。 – www

関連する問題