現在R言語を使用して風配図の作成を試みています。
以下のような風向、風速の情報を、
direction velocity 1 350 3.3 2 120 1.1 3 240 2.9 4 150 3.5 5 150 3.3 6 240 1.1 7 340 2.9 8 130 3.5
条件にしたがって方角の名前の情報に書き換えたいと考えています。
条件 方角 0~90 NE 90~180 SE 180~270 SW 270~360 NW
最終的に、
direction velocity 1 NW 3.3 2 SE 1.1 3 SW 2.9 4 SE 3.5 5 SE 3.3 6 SW 1.1 7 NW 2.9 8 SE 3.5
このようなデータセットの作成を目指しているのですが、うまくいきませんでした。
何か良い方法があれば、教えて頂きたいです。
念の為、風配図を作成するプログラムを示します。
R
1#!/usr/bin/env Rscript 2 3main=function() 4{ 5 6 setwd("./log") 7 files <- list.files(pattern = "\.txt$") 8 9 for (file.name in files) { 10 11 ff.png <- sub('\.[^.]*', ".png", file.name) 12 13 Data <- read.table(file.name, header=TRUE) 14 15 wind<-data.frame(direction=as.vector(Data$WD),velocity=as.numeric(as.vector(Data$WS))) 16 17 windrose<-data.frame(matrix(rep(0,16*5),ncol=16)) 18 19 20 colnames(windrose)<-c("N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW") 21 rownames(windrose)<-c("[0,1]","(1,2]","(2,3]","(3,4] ","(4, ") 22for ( i in 1:nrow(wind)){ 23 if (wind$velocity[i]<=1) { 24 windrose[1,as.vector(wind$direction)[i]]<-windrose[1,as.vector(wind$direction)[i]]+1 25 } else if (wind$velocity[i]>1 & wind$velocity[i]<=2) { 26 windrose[2,as.vector(wind$direction)[i]]<-windrose[2,as.vector(wind$direction)[i]]+1 27 } else if (wind$velocity[i]>2 & wind$velocity[i]<=3) { 28 windrose[3,as.vector(wind$direction)[i]]<-windrose[3,as.vector(wind$direction)[i]]+1 29 } else if (wind$velocity[i]>3 & wind$velocity[i]<=4) { 30 windrose[4,as.vector(wind$direction)[i]]<-windrose[4,as.vector(wind$direction)[i]]+1 31 } else if (wind$velocity[i]>4) { 32 windrose[5,as.vector(wind$direction)[i]]<-windrose[5,as.vector(wind$direction)[i]]+1 33 } 34 } 35#風配図 36#install.packages("knitr") 37#install.packages("climatol") 38#install.packages("maps") 39#install.packages("mapdata") 40 41 42library(maps) 43library(mapdata) 44library(knitr) 45kable(windrose) 46library(climatol) 47png(ff.png,width=800,height=800) 48rosavent(windrose,5,5,ang=-3*pi/16,main="windrose(test)") 49print(windrose) 50 51dev.off() 52 53} 54 55} 56main() 57

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/14 06:06