0

Rで3Dグラフを用意したい!ラスター データを使用します。ラスター パッケージのコマンド plot3d について聞きました。残念ながら、GeoTiff 形式のデータがあるため、ラスター パッケージから直接読み取ることはできません (代わりに、このファイルを読み込むために、readGDAL コマンドを使用しています)。

そのようなデータを使用して 3D グラフを作成する機会はありますか? 座標を取得するにはどうすればよいですか? as.matrix コマンドを使用してラスターの値を取得する方法は知っていますが、GeoTiff 形式であるため、xmin または xmax を使用できません。

4

1 に答える 1

1

で geotiff を読み取れない理由はわかりませんが、とにかくraster(パッケージ rgdal)SpatialGridDataFrameによって提供される (パッケージ sp)readGDALを に直接渡すことができますraster()

rgdal パッケージの GeoTIFF の例を次に示します。rasterVis 関数は別のパッケージにあり、呼び出されることに注意してくださいplot3D(rgl パッケージにある plot3d ではありません)。

library(rgdal)
library(rasterVis)

r <- raster(system.file("pictures/cea.tif", package = "rgdal")[1])
plot3D(r)

ばかげたデフォルトの 3D プロット

rasterVis パッケージは、すべてのスケーリングと色を処理し、優れたデフォルトを提供します。

サポート パッケージをさらに詳しく調べたい場合は、簡単な例を次に示します。

library(rgdal)
library(raster)
library(rgl)

## read the file with raster 

r <- raster(system.file("external/test.ag", package="sp")[1])

## just use simple persp plot
persp(r)

## convert to sp's SpatialGridDataFrame (or use readGDAL directly)
## (for very large rasters this could be prohibitive in terms of memory)
sgdf <- as(r, "SpatialGridDataFrame")

## convert to R's image() format, a list with x,y vector and z matrix

x <- as.image.SpatialGridDataFrame(sgdf)

## plot with rgl, ugly but see ?surface3d for colour options etc.
surface3d(x$x, x$y, x$z)

簡単なプロット

于 2011-09-11T21:36:42.953 に答える