Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7268

Rで日本地図出して、気象庁のデータ読み込んで、軌跡を描くところまでは、できた

$
0
0
きのう(8月30日)「夏休み最後の自由研究をしよう!データビジュアライゼーションもくもく会」に行って来た!

その内容をメモメモ



本日の趣旨
 手を動かして作る
 これまでのダイジェスト
 最後に成果発表

AITCの紹介


■R言語ではじめよう、データサイエンス!(ハンズオン勉強会)
〜機械学習・データビジュアタイゼーション事始め〜
(すがいさん)
http://www.slideshare.net/dsuket/ss-38507785

・SVMとK−means
・R-Studio
・ggplot2
  気象庁の台風の軌道

・〜相関分析による需要予測〜
東京電力の電力使用量
気温

■D3.jsでLODをビジュアライゼーション
http://www.slideshare.net/dsuket/d3js-35239244
Data駆動→グラフツールではない。
 宣言的に記述。何を表すかを記述する
 データセット→順次指定
  足りないとき、Enter,Exit
  スケール
地図を表示できる
SPARQL
 DBPedia

■D3.JSを使ったデータビジュアライズ勉強会
http://cloud.aitc.jp/20140717_D3js/
のall.zipを解凍すればOK
・横浜のオープンデータ
・横浜市統計情報ポータルサイト
横浜市/統計白書
Excel→CSVへ
緯度経度に直すサイト
テレビ受信→地図へ



「もくもく会」でやったこと

<<目標>>
台風の軌道をD3.jsで書く

■まずは、Rで書くことの復習

(1)Rで日本を書く
  R起動
  install.packages("maps")
  library(maps)
  map(xlim=c(121,155),ylim=c(20,50))

(2)気象庁データのダウンロード:2014年版を利用
  bst<-readLines('http://www.jma.go.jp/jma/jma-eng/jma-center/rsmc-hp-pub-eg/Besttracks/bst2014.txt')
View(bst)

 ・ヘッダー部分処理
  header<-read.table(textConnection(bst[grep("^66666",bst)]))
View(header)

 ・レコード部
  record<-read.table(textConnection(bst[-grep("^66666",bst)]),fill=TRUE)
record<-record[!is.na(record[,7]),]
View(record)

 ・必要な行のみ抽出し、列名をつける
header<-header[,c(3,4,8)]
names(header)<-c("NROW","TC_NO","NAME")
View(header)

record<-record[,c(1,3:7)]
names(record)<-c("DATE_TIME","GRADE","LAT","LON","HPA","KT")
View(record)

・RecordにHeaderのID(TC_NO)を付与
  record$TC_NO<-rep(header$TC_NO,header$NROW)
View(record)

・HeaderとRecodeをJoin(merge)する
  data<-merge(header,record,by="TC_NO")
View(data)

 ・緯度経度補正(10倍されている)
  data<-transform(data,LAT=LAT/10,LON=LON/10)
View(data)

 ・緯度経度幅の確認
  range_lon<-range(data$LON)
range_lon
  range_lat<-range(data$LAT)
range_lat
 →103.6〜183.2,1.8〜53.7と確認できる

(3)mapに台風の軌道を書く
map<-data.frame(map(plot=FALSE,
xlim=c(range_lon[1]-10,range_lon[2]+10),
ylim=c(range_lat[1]-5,range_lat[2]+5))[c("x","y")])

 ・描画
install.packages("ggplot2")
library(ggplot2)
ggplot(data,aes(LON,LAT,colour=NAME))+
geom_point(aes(size=GRADE))+
geom_path(aes(x,y,colour=NULL),map)

 ・保存(change dirで適当な作業ディレクトリに変更後)
 p<-ggplot(data,aes(LON,LAT,colour=NAME))+
geom_point(aes(size=GRADE))+
geom_path(aes(x,y,colour=NULL),map)
ggsave("typhoons2014.png",p)

(4)CSVファイルに保存
write.csv(data,file="typhoons2014.txt")

■D3.jsで日本地図を出し、プロットしてみる
・jsfiddleで日本地図表示
   http://jsfiddle.net/に行く
   http://jsfiddle.net/sEFjd/ のjavascriptの内容をコピー
   Framework&Extensionsを
     D3 3.0.4
     OnDomready
   に設定
   External Resourcesに topojson.v0.min.js を追加

・ここで終わってしまいました・・・
 このあと、http://jsfiddle.net/dsuket/W9sVC/を参考に
 点を書く予定でした。

■発表会
NVD3
c3.js



このあと、D3.jsで日本地図出して、点をうつ方法までは分かりました。
別エントリで書きます

Viewing all articles
Browse latest Browse all 7268

Trending Articles