« 『回 答 高レベル放射性廃棄物の処分について』平成24年(2012年)9月11日 日本学術会議 | トップページ | ゆれやすさマップ/木更津市,袖ヶ浦市,君津市,富津市【はさみとのりで行う作業をPCで】 »

2012年10月18日 (木)

大間原子力建設所周辺のグーグルマップ(RgoogleMapsを用いて)

■大間原子力建設所周辺のグーグルマップを
『Package ‘RgoogleMaps’』でつくる

・R version2.15.1(2012-06-22)を利用
・作図例
「ohma_jp.jpg」
「ohma_jp_gr.jpg」  (グレースケール画像)

■参考サイト
●円の作成は『Google Maps APIで円を描く
を利用させていただきました(感謝).Rに書き換え(一部変更)利用
http://www.nanchatte.com/map/circle.html

日本の測地座標系
http://vldb.gsi.go.jp/sokuchi/datum/tokyodatum.html#p1
準拠楕円体
http://vldb.gsi.go.jp/sokuchi/patchjgd_h/download/ellipsoi.htm

●Package ‘RgoogleMaps’は奥村先生のサイトで少し学習しました(感謝).
RgoogleMapsを使った放射線地図
http://oku.edu.mie-u.ac.jp/~okumura/stat/rgooglemaps.html
放射線量等分布マップ
http://oku.edu.mie-u.ac.jp/~okumura/stat/110903.html
統計・データ解析
http://oku.edu.mie-u.ac.jp/~okumura/stat/
Index of /~okumura/stat/data
http://oku.edu.mie-u.ac.jp/~okumura/stat/data/

CRAN - Package RgoogleMaps
http://cran.r-project.org/web/packages/RgoogleMaps/index.html
RgoogleMaps.pdf
http://cran.r-project.org/web/packages/RgoogleMaps/RgoogleMaps.pdf

※GetMapパッケージは下記の奥村先生のソースを利用
source("http://oku.edu.mie-u.ac.jp/~okumura/stat/data/GetMap.R") # バグフィックス
(これを利用すると日本語地名のマップが表示できました)

コード例  (緯度,経度の順番に気をつける)
rm(list=ls(all=TRUE))
library(RgoogleMaps)

GCircle<- function(Center, Radius){ #円のプロットデータ作成
関数 (Center:中心(経度,緯度), Radius:半径 km単位)
  points <- c()
  vertex <- 360 #頂点の数
  EquatorialRadius <- 6378137 #赤道半径
  F <-  298.257222101 #扁平率の逆数

  Center.lat=Center[2] #lat=緯度
  Center.lon=Center[1] #lon=経度

  # 離心率の2乗
  E <- (2 * F -1) / (F^2)
  ER <- EquatorialRadius

  # 1 - e^2 sin^2 (θ)
  Center.lat.rad=Center.lat*pi/180 #緯度
  TMP <- 1 - E * sin(Center.lat.rad)^2

  # 経度1度あたりの長さ(m)
  arc_lat <- pi * ER * (1 - E) / (180 *(TMP^(3/2)))

  # 緯度1度あたりの長さ(m)
  arc_lon <- pi * ER * cos(Center.lat.rad) / (180 * (TMP^(1/2)))

  # 半径をm単位に
  R <- Radius * 1000

  for (i in 0:vertex) {
    rad <- i / (vertex / 2) * pi
    lat <- (R / arc_lat) * sin(rad) + Center.lat
    lon <- (R / arc_lon) * cos(rad) + Center.lon
    points <- c(points,c(lon,lat))
  }
  Tmp <- matrix(points,ncol=2,byrow=TRUE)
  Out <- Tmp
}

#png(filename="Map_%02d.png", width=640, height=640) #グラフィックの出力先の設定(作図デバイスを開く)

source("http://oku.edu.mie-u.ac.jp/~okumura/stat/data/GetMap.R") # バグフィックス(奥村先生サイトから)

ohma <- c(41.50877,140.909806) #大間原子力建設の緯度,経度(
順番に注意)

center <- ohma

OhmaMap <- GetMap(center=center, zoom=8,sensor="false",
           markers = "&markers=color:blue|label:O|41.50877,140.909806",
           destfile = "Ohma.png",maptype="terrain")

ohma1 <- c(140.909806,41.50877) #大間原子力建設の経度,緯度(
順番に注意)

col <
-  "gray90"#円の色の指定
tmp <-
GCircle(ohma1,30) # 半径30km
PlotOnStaticMap(OhmaMap, lat=tmp[,2],lon=tmp[,1], lwd=2, col=col,FUN = lines)
TextOnStaticMap(OhmaMap, lat=tmp[225,2],lon=tmp[225,1], "30km", cex=1.5, col = "red",add=TRUE)

tmp <-
GCircle(ohma1,50) # 半径50km
PlotOnStaticMap(OhmaMap, lat=tmp[,2],lon=tmp[,1], lwd=2, col=col,FUN = lines,add=TRUE)
TextOnStaticMap(OhmaMap, lat=tmp[225,2],lon=tmp[225,1], "50km", cex=1.5, col = "red",add=TRUE)

tmp <-
GCircle(ohma1,100) # 半径100km
PlotOnStaticMap(OhmaMap, lat=tmp[,2],lon=tmp[,1], lwd=2, col=col,FUN = lines,add=TRUE)
TextOnStaticMap(OhmaMap, lat=tmp[225,2],lon=tmp[225,1], "100km", cex=1.5, col = "red",add=TRUE)

TextOnStaticMap(OhmaMap, lat=ohma[1],lon=ohma[2], "大間原子力建設所", cex=1, col = "red",add=TRUE)

#dev.off()
#作図デバイスを閉じる

Ohma_image


※Package ‘RgoogleMaps’を利用することで
円や線,文字列表示などが比較的容易にできるようです.
30km50km100kmの表示位置は,lat=tmp[225,2],lon=tmp[225,1]の225で指定している.
これは反時計まわりで225度(東を0として)の位置のこと.180にすると西の位置に表示すると思います
コード例では,vertex=360であるため,225はvertex*5/8(南西),180はvertex/2(西)となる.
lwd=2cex=1.5col = "red"は線の太さ,文字のサイズ,色の指定

■Static Maps AP関連サイト
Static Maps API V2 デベロッパー ガイド
https://developers.google.com/maps/documentation/staticmaps/?hl=ja
Google Static Maps API v2 を使う
http://kurage.ready.jp/w_map/static-g2.html



« 『回 答 高レベル放射性廃棄物の処分について』平成24年(2012年)9月11日 日本学術会議 | トップページ | ゆれやすさマップ/木更津市,袖ヶ浦市,君津市,富津市【はさみとのりで行う作業をPCで】 »

巨大地震と環境」カテゴリの記事

無料ブログはココログ
2019年4月
  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