1

3D水深グリッドデータ(海)と2Dポリゴン(陸)を組み合わせた図形を作りたいと思っています。

たとえば、このようなプロット ( http://chenangliu.info/en/wp-content/uploads/2014/02/wireframe.jpg ) で、紫色の領域に平面と点を追加したいと思います。文章、...

パッケージ rasterVis に気付きました。これは、水深計ラスターを完全に描画します。ただし、通常の 2D ポリゴンと同様に、土地を追加する方法がわかりません。陸域のグリッド値をゼロに設定してこの問題を回避しようとしましたが、境界が不鮮明で、湖があり、3D であってはならないため、結果は完璧ではありません。

したがって、これはうまく機能します:

library(rasterVis)
pal<-colorRampPalette(c("darkblue","lightblue","green"))
    #----this doesn't help
     bathy[bathy>0,]=0
    #----
plot3D(bathy,col=pal)

これはしません:

polygon3d(europa)  # error: Error: n > 2 is not TRUE

私の他の人がこれをやろうとしているのと同じように、最後の関数は機能しません[polygon()の同上]。これを行うのはそれほど難しいことではないと思いますが、この例を詳しく説明することはできません。したがって、ヒントは大歓迎です。

4

1 に答える 1

1

polygon3dその仕様に従って使用する必要があります。コードを再現するためのデータを提供していないため、次のヘルプ ページの例を使用しますplot3D

library(raster)
library(rasterVis)
library(rgl)

data(volcano)
r <- raster(volcano)
extent(r) <- c(0, 610, 0, 870)

plot3D(r)

これで、パッケージで定義された関数を使用して 3D ポリゴンを追加できますrgl

x <- c(30, 400, 400, 30)
y <- c(30, 30, 500, 500)

polygon3d(x, y, z=rep(100, 4), col = 'red')
polygon3d(x, y, z=rep(120, 4), col = 'blue')
polygon3d(x, y, z=rep(140, 4), col = 'black')
于 2014-06-27T12:27:57.783 に答える