M-241の精度に満足

Holux M-241をマンションの屋上に置いて追試。

今更気づいた。GPSは外で使用するもの(笑)。結果は上々。精度は2 m (95 %)くらい。チップセットの仕様を充分に満足。私も満足。

Holux M-241単体では無理だが、BT747というソフトを使うと、位置だけではなく、DOP (Dilution of Precision)を記録できる。

DOPは測位精度の劣化係数、理想的な場合を1とし、増えると精度は悪くなる。昨日の室内でのDOPと比較してみる。

室内のDOPは不安定で、最大値も6 (最悪値)となっている。当たり前だが、GPSは屋外で使用しましょう。最後にグラフ書くのに使ったコード (Gnu R)を載せとく。

# 2011-02-23 rikipoco

Track1 <- read.csv ("GPSDATA-20110222.csv", header=T)
Track1 [1:10, ]
Track1 <- Track1 [1:1200, ]

Track2 <- read.csv ("GPSDATA-20110223.csv", header=T)
Track2 [1:10, ]
Track2 <- Track2 [1:1200, ]

x1 <- Track1$LONGITUDE - mean (Track1$LONGITUDE)
y1 <- Track1$LATITUDE - mean (Track1$LATITUDE)

x2 <- Track2$LONGITUDE - mean (Track2$LONGITUDE)
y2 <- Track2$LATITUDE - mean (Track2$LATITUDE)

plot (x1, y1, type="l",
        main = "HOLUX M-241 Drift",
        xlab = "Longitude (deg)",
        ylab = "Latitude (deg)" ,
        xlim = c (-6.5e-4, 6.5e-4), ylim = c (-6.5e-4, 6.5e-4))

r <- 6378137
k <- 2 * pi * r / 360
x1 <- x1 * k
y1 <- y1 * k
x2 <- x2 * k
y2 <- y2 * k
xylim <- c (-6.5, 6.5) * 1e-04 * k

png (file = "m241-drift.png", width = 480, height = 480)

plot (x1, y1, type = "l",
        main = "Holux M-241 Drift",
        xlab = "X Position (m)",
        ylab = "Y Position (m)",
        xlim = xylim, ylim = xylim,
        family = "serif")

par (new = T)

plot (x2, y2, type = "l",
        main = "Holux M-241 Drift",
        xlab = "X Position (m)",
        ylab = "Y Position (m)",
        xlim = xylim, ylim = xylim,
        col = "red",
        family = "serif")

legend (35, 60, c ("Indoor", "Outdoor"), col = c ("black", "red"),
        lty = c (1, 1), merge = T)

dev.off ()

sd (sqrt (x1^2 + y1^2))
sd (sqrt (x2^2 + y2^2))

png (file = "m241-pdop.png", width = 480, height = 480)

layout (c (1, 2))
hist (Track1$PDOP, xlim = c (1, 6.4), ylim = c (0, 750),
        breaks = 32,
        main = "Indoor", xlab = "PDOP",
        family = "serif")
hist (Track2$PDOP, xlim = c (1, 6.4), ylim = c (0, 750),
        breaks = 8,
        main = "Outdoor", xlab = "PDOP",
        family = "serif")

dev.off ()