muttenz's blog

スイス星空だより

変な観測時刻

昨年12月28日夜の観測データの報告の中で変な観測時刻がありますよと、Katさんが注意してくださった。

 60分のデータがありました。

MASTER_OT_J042609.34+354144.8 20161228316000 13.695C Kai
 

muniwinの吐き出すデータをStandardファイルに直すスクリプトのバグでした。

JDを時、分、秒に直すときに秒を四捨五入すると、場合によっては繰り上がって分、時までかわってしまうというところです。

hh <- floor(f*24)
mm <- floor((f*24-hh)*60)
ss <- round((((f*24-hh)*60)-mm)*60, digit=0)
mm <- ifelse(ss=="60", mm1<-mm+1, mm2<-mm)
ss <- ifelse(ss=="60", ss1<-0, ss2<-ss)

ここはちょっと危ないなと思っていました。

そこで、JDの小数点以下をまず秒になおして四捨五入し、それから順次、秒、分、時の値を出すようにしました。


s0 <- round(f * 86400)
ss <- s0 %% 60
m0 <- floor(s0 / 60)
mm <- m0 %% 60
h0 <- floor(m0 / 60)
h9 <- h0 + 9

スクリプトをこう直してから、12月28日のデータをStandardに変換してみました。

MASTER 20161228320000 13.695C Kai

無事に28日32時00分00秒になりました!

ただJDの小数点以下が例えば、0.4999999となったデータをこのスクリプトで変換するとその日の33時00分00秒となってしまい、33時ができてしまいます。でもmuniwinの吐き出すJDは小数点以下が5桁で、0.49999を変換してもめでたく32時59分59秒となり、33時にはなりません。