スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

点群データの作成(香川県琴平町)

library(maptools)
library(shapefiles)
library(rgeos)
library(deldir)

# chooseCRANmirror()
# $$ ←これでブログ上のTeX変換をキャンセルできることがわかった

datashp <- readShapePoly("N03-13_37_130401")
datashp2 <- subset(datashp,datashp$N03_004=="琴平町")

datashp3 <- readShapePoly("P-Y2012-MAP-AVR-TTL_MTTL-SHAPE-5133N")
num <- length(datashp3@polygons)
data <- datashp3@polygons[[1]]@labpt
for(i in c(2:num)){
temp <- datashp3@polygons[[i]]@labpt
data <- rbind(data,temp)
}
datapoly <- datashp2@polygons[[1]]@Polygons[[1]]@coords
result <- data[point.in.polygon(data[,1],data[,2],datapoly[,1],datapoly[,2])!=0,]
plot(result)
## Delauney triangulation ##
tv <- deldir(result[,1],result[,2])
plot(tv,col=c("red","#FFFFFF00"))

data <- tv$delsg
temp <- ((data$x1 - data$x2)^2 + (data$y1 - data$y2)^2 )^0.5
data <- cbind(data,temp)
data <- data[data$temp<0.0038,]

# 途中経過をチェック
pdf("delauneytest.pdf", height=8, width=8, pointsize=14)
plot(result[,1],result[,2])
for(i in c(1:length(data[,1]))){
lines(c(data[i,1],data[i,3]),c(data[i,2],data[i,4]),col="red")
}
dev.off()

delauneytest-mini.png


# 国土数値情報ダウンロードサービスの行政区域データを使用した


① 点を上から順に見ていく
② 結合する点をリストする(リストA)
③ リストAを上から順に見ていく。見た点と結合する点(①で注目する点を除く)をリストする
④ ③で作成したリストのうち、①で見ている点と合致するものが見つかったら、その三つの点を三角形の頂点のデータとし、さらにIDを振り、格納する
⑤ shape形式へ変換し、前の三角形とunionする



0時にアルゴリズムの作成を完了した。

delauneyfinal-mini.png

+chronos
スポンサーサイト
Profile

zoa

Author:zoa
Metropolis (1927)

Calendar
12 | 2013/01 | 02
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
Labels
Admin
Previous Posts
Recent Comments
Recent Trackback
Archive
このページのトップへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。