データベース2

RSQLiteパッケージ sqlite3

OSはlinux(zorinOS)

温泉観測ネットワークの鳥取岩井温泉のデータ

(準備)

1時間の平均水温、1時間の平均水位、1時間の最大水位レンジ

(1分値のデータをxts:::period.applyを使って処理した。)

sqlite3のデータベースを作成

cd /home/user/R/work
gawk ‘NR >=2’ iwai200209_201407hour.txt >iwai.csv
sqlite3 iwai.db < iwai.sql
SELECT * FROM iwai
CREATE TABLE iwai(datetime);
create index dayindex on iwai(datetime COLLATE NOCASE);

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
library(RSQLite)
drv <- dbDriver("SQLite")
dbfile <- "iwai.db"
con <- dbConnect(drv, dbfile)
dbListTables(con)
#データ全体
res<-dbGetQuery(con, "SELECT * FROM iwai ;")
x<-as.POSIXlt(res[,1])
r <-as.POSIXlt(range(x))
r1 <-as.Date(range(x))
title<-paste("鳥取 岩井温泉 ",r1[1],"~",r1[2])
#png("iwai20020910_20140801.png", family="Takao P明朝", width=1000, height=800)
par(mar = c(3,7,3,6),mfrow=c(2,1),cex.axis=0.9,family="TakaoMincho")
plot(x,res$TempAve,xaxt="n",xlab = "Date", ylab = "", main = title,las = 1,type="l",col="red")
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2],by="6 months"), format="%Y/%m")
mtext("水温(℃)", side=2, line=4)
abline(v=seq(r[1],r[2], by="6 months"),lty=3,col="gray")
par(new=T)
plot(x,res$RangeMax,xaxt="n",xlab="",yaxt="n",ylab="",type="h",ylim=c(0,2),col="blue",main="")
axis(4,las=1)
mtext("水位差(Max-Min)", side=4, line=3)
plot(x,res$LevelAve,xaxt="n",xlab="",ylab="水位(m)",type="l",col="blue",ylim=c(NULL,NULL),main="",las=1)
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2], by="6 months"), format="%Y/%m")
abline(v=seq(r[1],r[2], by="6 months"),lty=3,col="gray")
par(mfrow=c(1,1))
#dev.off()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#2010/07/01_2010/08/31(二ヶ月間)
res <- dbGetQuery(con, "SELECT * FROM iwai WHERE datetime BETWEEN '2010-07-01' AND '2010-09-01';")
x<-as.POSIXlt(res[,1])
r <-as.POSIXlt(range(x))
r1 <-as.Date(range(x))
title<-paste("鳥取 岩井温泉 ",r1[1],"~",r1[2])
#png("iwai20100701_0831.png", family="Takao P明朝", width=1000, height=800)
par(mar = c(3,7,3,6),mfrow=c(2,1),cex.axis=0.9,family="TakaoMincho")
plot(x,res$TempAve,xaxt="n",xlab = "Date", ylab = "", main = title,las = 1,type="l",col="red")
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2],by="1 days"), format="%m/%d")
mtext("水温(℃)", side=2, line=4)
abline(v=seq(r[1],r[2], by="5 days"),lty=3,col="gray")
par(new=T)
plot(x,res$RangeMax,xaxt="n",xlab="",yaxt="n",ylab="",type="h",ylim=c(0,1),col="blue",main="")
axis(4,las=1)
mtext("水位差(Max-Min)", side=4, line=3)
plot(x,res$LevelAve,xaxt="n",xlab="",ylab="水位(m)",type="l",col="blue",ylim=c(NULL,NULL),main="",las=1)
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2], by="1 days"), format="%m/%d")
abline(v=seq(r[1],r[2], by="5 days"),lty=3,col="gray")
par(mfrow=c(1,1))
#dev.off()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#2011/03/08_2011/03/11 13時
res <- dbGetQuery(con, "SELECT * FROM iwai WHERE datetime BETWEEN '2011-03-08 01:%' AND '2011-03-11 14:%';")
x<-as.POSIXlt(res[,1])
r <-as.POSIXlt(range(x))
#r1 <-as.Date(range(x))
title<-paste("鳥取 岩井温泉 ",r[1],"~",r[2])
#png("iwai20110308_11h14.png", family="Takao P明朝", width=1000, height=800)
par(mar = c(3,7,3,6),mfrow=c(2,1),cex.axis=0.9,family="TakaoMincho")
plot(x,res$TempAve,xaxt="n",xlab = "Date", ylab = "", main = title,las = 1,type="l",col="red")
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2],by="3 hours"), format="%d日%H時")
mtext("水温(℃)", side=2, line=4)
abline(v=seq(r[1],r[2], by="3 hours"),lty=3,col="gray")
par(new=T)
plot(x,res$RangeMax,xaxt="n",xlab="",yaxt="n",ylab="",type="h",ylim=c(0,1),col="blue",main="")
axis(4,las=1)
mtext("水位差(Max-Min)", side=4, line=3)
plot(x,res$LevelAve,xaxt="n",xlab="",ylab="水位(m)",type="l",col="blue",ylim=c(NULL,NULL),main="",las=1)
grid(NA,NULL,lty=3)
axis.POSIXct(1, at=seq(r[1],r[2], by="3 hours"), format="%d日%H時")
abline(v=seq(r[1],r[2], by="3 hours"),lty=3,col="gray")
par(mfrow=c(1,1))
#dev.off()

1
dbDisconnect(con)