huagrahuma.dem (topmodel パッケージ) データの紹介
このページでは,次のことを行います
前準備
使用するソフトウェア
- R システムのインストールが済んでいること
huagrahuma, huagrahuma.dem データセット
image 関数による表示 (例)
require(topmodel)
data(huagrahuma)
data(huagrahuma.dem)
image(huagrahuma.dem)

contour 関数による表示 (例)
require(topmodel)
data(huagrahuma)
data(huagrahuma.dem)
contour(huagrahuma.dem)

ggplot 関数を用いた表示 (例)
【関連する外部ページ】 http://zoas.blog112.fc2.com/blog-entry-1.html
require(ggplot2)
require(topmodel)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
plotdem(huagrahuma.dem, cm.colors(20))
plotdem(huagrahuma.dem, topo.colors(20))
plotdem(huagrahuma.dem, terrain.colors(20))
plotdem(huagrahuma.dem, heat.colors(20))
plotdem(huagrahuma.dem, rainbow(20))
◆ plotdem(huagrahuma.dem, cm.colors(20))

◆ plotdem(huagrahuma.dem, topo.colors(20))

◆ plotdem(huagrahuma.dem, terrain.colors(20))

◆ plotdem(huagrahuma.dem, heat.colors(20))

◆ plotdem(huagrahuma.dem, rainbow(20))

persp 関数による表示 (例)
require(topmodel)
data(huagrahuma)
data(huagrahuma.dem)
persp(huagrahuma.dem, theta = 135, phi = 30, shade=0.75, border=NA, box=FALSE )

scatterplot3d 関数による表示 (例)
require(scatterplot3d)
require(topmodel)
data(huagrahuma)
data(huagrahuma.dem)
rgldem <- function(DEM, col) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
z <- as.numeric(DEM)
scatterplot3d( x, y, z )
}
rgldem(huagrahuma.dem)

勾配強度
insol パッケージの cgrad + slope
require(ggplot2)
require(topmodel)
require(insol)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
slopedem <- function(DEM, dl_long, dl_lat) {
return( slope( cgrad(DEM, dl_long, dl_lat) ) )
}
plotdem(slopedem(huagrahuma.dem, 1, 1), rev(heat.colors(20)))
contour(slopedem(huagrahuma.dem, 1, 1))
◆ plotdem(slopedem(huagrahuma.dem, 1, 1), rev(heat.colors(20)))

◆ contour(slopedem(huagrahuma.dem, 1, 1))

斜面の向き
insol パッケージの cgrad + aspect
require(ggplot2)
require(topmodel)
require(insol)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
aspectdem <- function(DEM, dl_long, dl_lat) {
return( aspect( cgrad(DEM, dl_long, dl_lat) ) )
}
plotdem(aspectdem(huagrahuma.dem, 1, 1), cm.colors(20))
contour(aspectdem(huagrahuma.dem, 1, 1))
◆ plotdem(aspectdem(huagrahuma.dem, 1, 1), cm.colors(20))

◆ contour(aspectdem(huagrahuma.dem, 1, 1))

topmodel パッケージの sinkfill
require(ggplot2)
require(topmodel)
require(insol)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
plotdem( sinkfill(huagrahuma.dem, 25, 5), cm.colors(20) )
contour(sinkfill(huagrahuma.dem, 25, 5))
plotdem( sinkfill(huagrahuma.dem, 25, 8), cm.colors(20) )
contour(sinkfill(huagrahuma.dem, 25, 8))
◆ plotdem( sinkfill(huagrahuma.dem, 25, 5), cm.colors(20) )

◆ contour(sinkfill(huagrahuma.dem, 25, 5))

◆ plotdem( sinkfill(huagrahuma.dem, 25, 8), cm.colors(20) )
◆ contour(sinkfill(huagrahuma.dem, 25, 8))

topmodel パッケージの topidx
require(ggplot2)
require(topmodel)
require(insol)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
plotdem( topidx(huagrahuma.dem, resolution= 25)$atb, rev(heat.colors(20)) )
contour( topidx(huagrahuma.dem, resolution= 25)$atb )
◆ plotdem( topidx(huagrahuma.dem, resolution= 25)$atb, rev(heat.colors(20)) )
◆ contour( topidx(huagrahuma.dem, resolution= 25)$atb )

日照
doshade() 関数で影を求める
require(ggplot2)
require(topmodel)
require(insol)
require(data.table)
data(huagrahuma)
data(huagrahuma.dem)
plotdem <- function(DEM, c) {
x <- rep(1:nrow(DEM), ncol(DEM)) # 1 2 3 1 2 3 1 2 3 1 2 3
y <- rep(1:ncol(DEM), each=nrow(DEM)) # 1 1 1 1 2 2 2 2 3 3 3 3
T <- data.table(x=x, y=y, val=as.numeric(DEM))
ggplot(T, aes(x=x, y=y, fill=val)) + geom_tile() + scale_fill_gradientn("frequency", colours = c)
}
cellsize=header[5,2]
sv=normalvector(65,315)
sh=doshade(huagrahuma.dem, sv, 1)
plotdem(sh, grey(1:100/100))

関数化の途中
## add intensity of illumination in this case sun at NW 45 degrees elevation sv=normalvector(45, 315) grd=cgrad(huagrahuma.dem, cellsize) hsh=grd[,,1]*sv[1]+grd[,,2]*sv[2]+grd[,,3]*sv[3] ## remove negative incidence angles (self shading) hsh=(hsh+abs(hsh))/2 sh=doshade(huagrahuma.dem, sv, cellsize) plotdem(hsh*sh, grey(1:100/100))

insol パッケージに日陰、日当たりの機能あり
M <- array( c( x, y, D ), dim=c(nrow(D), ncol(D), 3) );
