2020年1月3日までの作業内容や海苔の様子については以下を参照
(ファイルサイズの都合で1つのhtmlとしてアップロードできないため)
使うライブラリ
library(gsheet)
データの在処は表示しない
データの読み込み
data_ <- gsheet2tbl(url)
data.md <- data_[1:9,]
colnames(data.md) <- c("Date", "Day", "Temp", "Off_Fuji", "Off_Ctr", "Off_Rbw",
"Bch_Fuji", "Bch_Ctr", "Bch_Rbw")
DT::datatable(data.md[c(1:9)])
表の凡例 Temp: Water temperature, Off: Offshore, Bch: Beach, Fuji: Fuji TV, Ctr: Center, Rbw: Rainbow bridge
par(family = "HiraKakuProN-W3") #Macintoshの場合
par(oma = c(0, 0, 4, 0))
par(mfrow=c(2,3))
plot(data_$Day, data_$Offshore_Fuji, xlim = c(0,50), ylim=c(0,500),
type = "b", pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "沖・フジTV側")
plot(data_$Day, data_$Offshore_Center, xlim = c(0,50), ylim = c(0,500),
type = "b", pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "沖・中央")
plot(data_$Day, data_$Offshore_Rainbow, xlim = c(0,50), ylim = c(0,500),
type = "b", pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "沖・レインボー側")
plot(data_$Day, data_$Beach_Fuji, xlim=c(0,50), ylim=c(0,500), type = "b",
pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "浜・フジTV側")
plot(data_$Day, data_$Beach_Center, xlim=c(0,50), ylim=c(0,500),
type = "b", pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "浜・中央")
plot(data_$Day, data_$Beach_Rainbow, xlim = c(0,50), ylim = c(0,500),
type = "b", pch = 4, col = 1, xlab = "Day", ylab = "Length (mm) ",
main = "浜・レインボー側")
\(length = a \times b^{day}\)
# 指数回帰の係数を推定する
exp.b.f <- nls(Bch_Fuji ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
exp.b.c <- nls(Bch_Ctr ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
exp.b.r <- nls(Bch_Rbw ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
exp.o.f <- nls(Off_Fuji ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
exp.o.c <- nls(Off_Ctr ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
exp.o.r <- nls(Off_Rbw ~ a*b^Day, data = data.md, start = list(a = 1, b = 1))
# 推定値を格納する
sum.b.f <- summary(exp.b.f)
sum.b.c <- summary(exp.b.c)
sum.b.r <- summary(exp.b.r)
sum.o.f <- summary(exp.o.f)
sum.o.c <- summary(exp.o.c)
sum.o.r <- summary(exp.o.r)
b.f.a <- sum.b.f$coefficients[1,1]; b.f.b <- sum.b.f$coefficients[2,1]
b.c.a <- sum.b.c$coefficients[1,1]; b.c.b <- sum.b.c$coefficients[2,1]
b.r.a <- sum.b.r$coefficients[1,1]; b.r.b <- sum.b.r$coefficients[2,1]
o.f.a <- sum.o.f$coefficients[1,1]; o.f.b <- sum.o.f$coefficients[2,1]
o.c.a <- sum.o.c$coefficients[1,1]; o.c.b <- sum.o.c$coefficients[2,1]
o.r.a <- sum.o.r$coefficients[1,1]; o.r.b <- sum.o.r$coefficients[2,1]
沖・フジTV側
summary(exp.b.f)
##
## Formula: Bch_Fuji ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 8.11244 5.73165 1.415 0.207
## b 1.10670 0.02503 44.218 8.96e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 34.61 on 6 degrees of freedom
##
## Number of iterations to convergence: 9
## Achieved convergence tolerance: 2.142e-06
## (1 observation deleted due to missingness)
沖・中央
summary(exp.b.c)
##
## Formula: Bch_Ctr ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 5.96547 3.39517 1.757 0.129
## b 1.11814 0.02015 55.500 2.3e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 25.56 on 6 degrees of freedom
##
## Number of iterations to convergence: 8
## Achieved convergence tolerance: 5.91e-06
## (1 observation deleted due to missingness)
沖・レインボー側
summary(exp.b.r)
##
## Formula: Bch_Rbw ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 7.34149 5.62367 1.305 0.24
## b 1.10597 0.02714 40.752 1.46e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 33.49 on 6 degrees of freedom
##
## Number of iterations to convergence: 12
## Achieved convergence tolerance: 9.037e-06
## (1 observation deleted due to missingness)
浜・フジTV側
summary(exp.o.f)
##
## Formula: Off_Fuji ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 4.59045 2.39623 1.916 0.104
## b 1.11215 0.01848 60.179 1.41e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16.06 on 6 degrees of freedom
##
## Number of iterations to convergence: 8
## Achieved convergence tolerance: 1.068e-06
## (1 observation deleted due to missingness)
浜・中央
summary(exp.o.c)
##
## Formula: Off_Ctr ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 3.21905 1.31137 2.455 0.0495 *
## b 1.12450 0.01443 77.951 3e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.2 on 6 degrees of freedom
##
## Number of iterations to convergence: 8
## Achieved convergence tolerance: 5.497e-07
## (1 observation deleted due to missingness)
浜・レインボー側
summary(exp.o.r)
##
## Formula: Off_Rbw ~ a * b^Day
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## a 2.62538 0.88888 2.954 0.0255 *
## b 1.13659 0.01201 94.622 9.39e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.7 on 6 degrees of freedom
##
## Number of iterations to convergence: 8
## Achieved convergence tolerance: 6.676e-06
## (1 observation deleted due to missingness)
これらの結果をまとめると以下の通り
沖・フジTV側
沖・中央 沖・レインボー側 浜・フジTV側 浜・中央 浜・レインボー側例えば,20日後の長さの推定値を求めたい場合,\(length = a \times b^{day}\)であるから,aの値と,bの値の20乗をかけることで,長さの推定値が求まる。
仮に\(a = 0.38\), \(b = 1.24\)で20日後の長さを求めるのであれば,\(0.38 \times 1.24^{20} = 28.06\)となる。
# 作図する
plot(data.md$Day, data.md$Bch_Fuji, xlim = c(0,36), ylim = c(0,500),
pch = 0, col = 2,xlab = "Day", ylab = "Length (mm) ",
main = "Odaiba-nori Growth Estimate 2019-20")
par(new=T)
plot(data.md$Day, data.md$Bch_Ctr, xlim = c(0,36), ylim = c(0,500),
pch = 1, col = 2, axes = F, xlab = "", ylab = "")
par(new=T)
plot(data.md$Day, data.md$Bch_Rbw, xlim = c(0,36), ylim = c(0,500),
pch = 2, col = 2, axes = F, xlab = "", ylab = "")
par(new = T)
plot(data.md$Day, data.md$Off_Fuji, xlim = c(0,36), ylim = c(0,500),
pch = 0, col = 4, axes = F, xlab="", ylab="")
par(new = T)
plot(data.md$Day, data.md$Off_Ctr, xlim = c(0,36), ylim = c(0,500),
pch = 1, col = 4, axes = F, xlab = "", ylab = "")
par(new = T)
plot(data.md$Day, data.md$Off_Rbw, xlim = c(0,36), ylim = c(0,500),
pch = 2, col = 4, axes = F, xlab = "", ylab = "")
data.day <- c(1:36)
lines(data.day, b.f.a*b.f.b^data.day, col = 2, lty = 1, lwd = 2)
lines(data.day, b.c.a*b.c.b^data.day, col = 2, lty = 3, lwd = 2)
lines(data.day, b.r.a*b.r.b^data.day, col = 2, lty = 4, lwd = 2)
lines(data.day, o.f.a*o.f.b^data.day, col = 4, lty = 1, lwd = 2)
lines(data.day, o.c.a*o.c.b^data.day, col = 4, lty = 3, lwd = 2)
lines(data.day, o.r.a*o.r.b^data.day, col = 4, lty = 4, lwd = 2)
legend (0, 500,
c("Beach_Fuji", "Beach_Center", "Beach_Rainbow",
"Offshore_Fuji", "Offshore_Center", "Offshore_Rainbow"),
lwd = 1,
pch = c(0,1,2,0,1,2), lty = c(1,3,4,1,3,4), col = c(2,2,2,4,4,4),
bty = "n", bg = "n", cex = 0.8
)
# dec 29 (16days)
days <- 16
d29.b.f <- b.f.a*b.f.b^days; d29.b.c <- b.c.a*b.c.b^days
d29.b.r <- b.r.a*b.r.b^days; d29.o.f <- o.f.a*o.f.b^days
d29.o.c <- o.c.a*o.c.b^days; d29.o.r <- o.r.a*o.r.b^days
# Jan 3 (21days)
days <- 21
j3.b.f <- b.f.a*b.f.b^days; j3.b.c <- b.c.a*b.c.b^days
j3.b.r <- b.r.a*b.r.b^days; j3.o.f <- o.f.a*o.f.b^days
j3.o.c <- o.c.a*o.c.b^days; j3.o.r <- o.r.a*o.r.b^days
# Jan 8 (26days)
days <- 26
j8.b.f <- b.f.a*b.f.b^days; j8.b.c <- b.c.a*b.c.b^days
j8.b.r <- b.r.a*b.r.b^days; j8.o.f <- o.f.a*o.f.b^days
j8.o.c <- o.c.a*o.c.b^days; j8.o.r <- o.r.a*o.r.b^days
# Jan 11 (29days)
days <- 29
j11.b.f <- b.f.a*b.f.b^days; j11.b.c <- b.c.a*b.c.b^days
j11.b.r <- b.r.a*b.r.b^days; j11.o.f <- o.f.a*o.f.b^days
j11.o.c <- o.c.a*o.c.b^days; j11.o.r <- o.r.a*o.r.b^days
# Jan 16 (34days)
days <- 34
j16.b.f <- b.f.a*b.f.b^days; j16.b.c <- b.c.a*b.c.b^days
j16.b.r <- b.r.a*b.r.b^days; j16.o.f <- o.f.a*o.f.b^days
j16.o.c <- o.c.a*o.c.b^days; j16.o.r <- o.r.a*o.r.b^days
# Jan 18 (36days)
days <- 36
j18.b.f <- b.f.a*b.f.b^days; j18.b.c <- b.c.a*b.c.b^days
j18.b.r <- b.r.a*b.r.b^days; j18.o.f <- o.f.a*o.f.b^days
j18.o.c <- o.c.a*o.c.b^days; j18.o.r <- o.r.a*o.r.b^days
md.es.tab <- data.frame(t(
matrix(c(d29.b.f, d29.b.c, d29.b.r, d29.o.f, d29.o.c, d29.o.r,
j3.b.f, j3.b.c, j3.b.r, j3.o.f, j3.o.c, j3.o.r,
j8.b.f, j8.b.c, j8.b.r, j8.o.f, j8.o.c, j8.o.r,
j11.b.f, j11.b.c, j11.b.r, j11.o.f, j11.o.c, j11.o.r,
j16.b.f, j16.b.c, j16.b.r, j16.o.f, j16.o.c, j16.o.r,
j18.b.f, j18.b.c, j18.b.r, j18.o.f, j18.o.c, j18.o.r),
nrow = 6, ncol = 6)
))
colnames(md.es.tab) <- c( "Off_Fuji", "Off_Ctr", "Off_Rbw",
"Bch_Fuji", "Bch_Ctr", "Bch_Rbw")
rownames(md.es.tab) <- c("Dec.29", "Jan.03", "Jan.08",
"Jan.11", "Jan.16", "Jan.18")
DT::datatable(format(md.es.tab, digits = 2, nsmall = 2))
Jan.03 | |
---|---|
作業時刻 | 15:00-15:40 |
水温 | 13 |
実測潮位 | 119cm |
参加者 | 委員長,副委員長,小学生1名,中学生1名,ほか4名(台場担当係長不在) |
作業内容 | 観察,動画撮影。前回の海苔網の高さ調整後成長の早かった部分の抑制ができたため,調整は行わなかった。 |
. | . |
Jan.08 | |
---|---|
作業時刻 | 10:00-10:20 |
水温 | 12 |
実測潮位 | 135cm |
参加者 | 委員長,台場担当,他2名 |
作業内容 | 観察,動画撮影。 |
. | . |
Jan.11 | |
---|---|
作業時刻 | 21:00-21:45 |
水温 | 14 |
実測潮位 | 70cm |
参加者 | 委員長,副委員長,小学生1名,ほか10名。 |
作業内容 | 網が重さで下がっており,また学校側は海苔が底に届いて擦れていたため,網の高さ調整。潮位105cmに合わせた。次回,沖の海苔の伸びがあまり見られないようであれば,網を下げて伸ばすこととした。 |
. | . |
. | . |
Jan.16 | |
---|---|
作業時刻 | 13:00-14:30 |
水温 | 13 |
実測潮位 | 75cm |
参加者 | 委員長,副校長,台場担当,ほか4名 |
作業内容 | 400-500mmのもある。白化箇所を除去。伸びすぎた箇所を剪定。17日夜から18日未明にかけて雨天の予報のため,海苔が雨に当たらないよう,学校側,沖ともに網の高さを潮位75cmに合わせて下げた。 |
. | . |
. | . |