118 lines
2.8 KiB
Plaintext
118 lines
2.8 KiB
Plaintext
---
|
|
title: "Location Based Services"
|
|
author: "Erik Neller"
|
|
date: "`r Sys.Date()`"
|
|
output: pdf_document
|
|
---
|
|
|
|
```{r setup, include=FALSE}
|
|
knitr::opts_chunk$set(echo = TRUE)
|
|
rm(list=ls())
|
|
```
|
|
# Data Info
|
|
- GPST: Timestamp
|
|
- latitude/longitude/height: Position estimates.
|
|
- Q: Quality indicator (e.g., 5 = single-point positioning).
|
|
- ns: Number of satellites used
|
|
- sdn/sde/sdu: Standard deviations (North, East, Up)
|
|
- sdne/sdeu/sdun: Combined standard deviations
|
|
|
|
|
|
|
|
```{r echo=FALSE}
|
|
library(DataExplorer)
|
|
library(sf)
|
|
library(lubridate)
|
|
earthrad <- 6378137
|
|
d <- read.csv('rec.csv',header = FALSE, sep='',skip=15)
|
|
|
|
doy <- yday(d$V1)
|
|
res1 <- ymd_hms(paste(d$V1,d$V2, sep=' '))
|
|
hour <- hour(res1)
|
|
min <- minute(res1)
|
|
sec <- second(res1)
|
|
|
|
timer <- doy + hour/24 + min/(24*60) + sec/(24*3600)
|
|
# calculate the error of lat lon elevation
|
|
latitude <- (d$V3 + 12.843697222222223)*earthrad*pi/180
|
|
longitude <- (d$V4 - 131.13274444444443)*earthrad*pi/180
|
|
height <- d$V5 - 125.1
|
|
df <- as.data.frame(cbind(longitude, latitude, height))
|
|
```
|
|
# Error Plot
|
|
```{r echo=FALSE}
|
|
plot(timer, latitude, type='l', col = 'red',
|
|
ylim = c(min(latitude, longitude,height),
|
|
max(latitude, longitude,height)),
|
|
xlab='time [day in 2015]',ylab='errors [m]')
|
|
lines(timer, longitude, col= 'dark green')
|
|
lines(timer, height, col= 'blue')
|
|
legend('topright', legend=c('latitude', 'longitude','height'),
|
|
col=c('red','dark green', 'blue'), lty=1:1, cex=0.8,
|
|
box.lty=0)
|
|
|
|
```
|
|
# Error Summary
|
|
```{r}
|
|
summary(latitude)
|
|
summary(longitude)
|
|
summary(height)
|
|
```
|
|
|
|
# Tests
|
|
```{r}
|
|
shapiro.test(latitude)
|
|
ks.test(latitude, 'pnorm')
|
|
|
|
shapiro.test(longitude)
|
|
ks.test(longitude, 'pnorm')
|
|
|
|
shapiro.test(height)
|
|
ks.test(height, 'pnorm')
|
|
|
|
ks.test(latitude, 'pnorm')
|
|
```
|
|
Both SW and KS Test suggest that the errors do not follow a normal distribution which is supported by visual inspection:
|
|
|
|
```{r visualerr}
|
|
library(ggplot2)
|
|
ggplot(df, aes(x = latitude)) +
|
|
geom_histogram(bins = 30, fill = "blue", alpha = 0.7) +
|
|
ggtitle("Distribution of Latitude Error") +
|
|
xlab("Error (m)") +
|
|
ylab("Frequency")
|
|
|
|
ggplot(df, aes(x = longitude)) +
|
|
geom_histogram(bins = 30, fill = "green", alpha = 0.7) +
|
|
ggtitle("Distribution of Longitude Error") +
|
|
xlab("Error (m)") +
|
|
ylab("Frequency")
|
|
|
|
ggplot(df, aes(x = height)) +
|
|
geom_histogram(bins = 30, fill = "red", alpha = 0.7) +
|
|
ggtitle("Distribution of Height Error") +
|
|
xlab("Error (m)") +
|
|
ylab("Frequency")
|
|
```
|
|
```{r}
|
|
var.test(latitude, longitude)
|
|
cor.test(latitude, longitude)
|
|
|
|
var.test(height, longitude)
|
|
cor.test(height, longitude)
|
|
|
|
var.test(latitude, height)
|
|
cor.test(latitude, height)
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
Variances of the samples are not equal and not similar.
|
|
However, the correlation of latitude and height is highly correlated, suggesting a linear relationship.
|
|
# Grouping by numsatellites
|
|
```{r numsatellites}
|
|
d_split <- split(d,d$V7)
|
|
summary(d_split)
|
|
``` |