library(mapdata) # eqdata<-read.table(text="",col.names=c("time", "longitude", "latitude", "depth", "mag")) ymd<-seq(as.Date("2016-04-14"),as.Date("2016-04-28"), by="1 day") for (i in 1:length(ymd)){ date<-gsub("-","",ymd[i]) #ウェブスクレイピング url<-paste0("http://www.data.jma.go.jp/svd/eqev/data/daily_map/",date,".html") # doc<-readLines(url,encoding ="UTF-8") kensaku<-paste0(substr(date,1,4)," ",gsub("\\<0"," ",substr(date,5,6))," ",gsub("\\<0"," ",substr(date,7,8))) # x<-doc[grep(paste0("\\<",kensaku),doc)] #全角文字 ° が入っているので半角スペース2つに変換する x<-gsub("°", " ",x) time<-paste0(substr(x,1,4),"-",substr(x,6,7),"-",substr(x,9,10)," ",substr(x,12,16),":",substr(x,18,21)) # #南緯、西経の場合も考慮に入れると latitude = as.numeric(paste0(substr(x,23,23),as.character(as.numeric(substr(x,24,25))+as.numeric(substr(x,28,29))/60+as.numeric(substr(x,31,31))/600))) longitude = as.numeric(paste0(substr(x,34,34),as.character(as.numeric(substr(x,35,37))+as.numeric(substr(x,40,41))/60+as.numeric(substr(x,43,43))/600))) depth<-as.numeric(substr(x,48,50)) mag<-as.numeric(substr(x,55,58)) eq<-data.frame(time,longitude,latitude,depth,mag) eqdata<-rbind(eqdata,subset(eq,mag>=-4)) } # #重複した行を取り除く eqdata<-unique(eqdata) summary(eqdata) #save(eqdata,file="eqdata20160414_0419.RData") #load("eqdata20160414_0419.RData") # #震源の深さ # depth<10km eqdata1<-subset(eqdata,depth<10) eqdata1$depth_rank<-" 10km 未満" eqdata1$col<-"red" # 10<=depth<20 eqdata2<-subset(eqdata,depth>=10 & depth<20) eqdata2$depth_rank<-" 10km以上20km未満" eqdata2$col<-"orange" # 20<=depth<40 eqdata3<-subset(eqdata,depth>=20 & depth<40) eqdata3$depth_rank<-" 20km以上40km未満" eqdata3$col<-"gold4" # 40<=depth<80 eqdata4<-subset(eqdata,depth>=40 & depth<80) eqdata4$depth_rank<-" 40km以上80km未満" eqdata4$col<-"green" # 80<=depth<150 eqdata5<-subset(eqdata,depth>=80 & depth<150) eqdata5$depth_rank<-" 80km以上150km未満" eqdata5$col<-"blue" # 150<=depth eqdata6<-subset(eqdata,depth>=150) eqdata6$depth_rank<-"150km以上" eqdata6$col<-"purple" # eq<-rbind(eqdata1,eqdata2,eqdata3,eqdata4,eqdata5,eqdata6) #並べ替え:マグニチュードの昇順 sortlist <- order(eq$mag) eq<- eq[sortlist,] ## #mag>=1の地震を抽出 subeq<-subset(eq,mag>=1) #mag<1 mag1und<-subset(eq,mag<1)
|