2011-12-06 30 views
6

Rの等高線内の面積はどのようにして計算できますか? R.で輪郭内の領域をcaclulateすることが可能である場合、私は思ったんだけど

は例えば、から得られる輪郭の面積:

sw<-loess(m~l+d) 
mypredict<-predict(sw, fitdata) # Where fitdata is a data.frame of an x and y matrix 

contour(x=seq(from=-2, to=2, length=30), y=seq(from=0, to=5, length=30), z=mypredict) 

申し訳ありませんが、私はこのコードがかもしれない知っています畳み込まれる。読むのが難しい場合。単純に生成された等高線の面積を計算する方法を私に示すことができるすべての例が参考になります。

ありがとうございました。

+1

輪郭内の*を意味しますか? – Phonon

+0

等高線はどのように定義されていますか(例)...どの領域が必要ですか?境界の座標がある場合は比較的簡単です。 – John

+0

はい。輪郭内の領域。 @ジョン:私は元の質問に例を編集します。 –

答えて

5

おかげで、とsos(私の好きなRパッケージ!)とsplancsの作者に...

library(sos) 
findFn("area polygon compute") 
library(splancs) 
with(clines[[9]],areapl(cbind(x,y))) 

は慰めて@DWin、同じ答えを取得します。 (おそらくそれは同じアルゴリズムですが、splancsパッケージのFortranルーチン内で実装されています...)

+2

私はちょうど 'help(contourlInes)'のページに行き、その例をつかんでからかなりのクレジットを得られません。 @BurtonGusterは、Benにチェックマークを付けるのは気にならないはずです。私はおそらく彼がここに投稿したすべての良い仕事とR-helpメーリングリストに数千点を寄付するべきです。同様にハドレーとGabor Grothendeickに –

+0

私は@DWinに同意します – Andrie

+0

@DWinとベン:助けてくれてありがとう! –

6

私はcontourLinesによって返されたオブジェクトを使って作業していると仮定します。 (各レベルでxとyの成分を持つ無名のリスト)私はアクセスしやすい場所でこれを見つけることを期待していましたが、代わりにhttp://finzi.psych.upenn.edu/R/library/PBSmapping/doc/PBSmapping-UG.pdfを見て覚えているアルゴリズムを提供するpdfファイルが見つかりました(pdf 19ページ、 -11- ")(注意事項を追加しました:上のWikipediaの記事 "ポリゴン" は測量式のこの議論引用:http://www.maa.org/pubs/Calc_articles/ma063.pdf、ABS(の私の使用を正当化する)。)

例のビルド:

x <- 10*1:nrow(volcano) 
y <- 10*1:ncol(volcano) 
contour(x, y, volcano); 
clines <- contourLines(x, y, volcano) 
x <- clines[[9]][["x"]] 
y <- clines[[9]][["y"]] 
level <- clines[[9]][["level"]] 
level 
#[1] 130 

レベル== 130(2つの130レベルがなく、プロット境界のいずれにも合致しないために選択されたエリア)は、

です。再現性の例えば@DWinへの
A = 0.5* abs(sum(x[1:(length(x)-1)]*y[2:length(x)] - y[1:(length(x)-1)]*x[2:length(x)])) 
A 
#[1] 233542.1 
関連する問題