93 lines
1.9 KiB
Plaintext
93 lines
1.9 KiB
Plaintext
################################################################################
|
|
### Importing GPS-traces from CSV-files
|
|
################################################################################
|
|
### Description:
|
|
### - This script imports GPS-traces from CSV-files.
|
|
###
|
|
### Preconditions:
|
|
### - existing database
|
|
###
|
|
### Postconditions:
|
|
###
|
|
### Authors:
|
|
### - Prof. Dr. Ralf Hartmut Güting, rhg@fernuni-hagen.de
|
|
### - Thomas Uchdorf, thomas.uchdorf(at)fernuni-hagen.de
|
|
################################################################################
|
|
|
|
open database dortmundC;
|
|
|
|
# load raw data
|
|
|
|
delete Trk101215;
|
|
|
|
let KDRSchema =
|
|
[const rel(tuple([
|
|
Latitude: real,
|
|
Longitude: real,
|
|
UTC: string,
|
|
Altitude: int,
|
|
Distance: real,
|
|
Speed: int,
|
|
Date: string,
|
|
Name: string,
|
|
Sat: int
|
|
]))
|
|
value ()];
|
|
|
|
let Trk101215 =
|
|
KDRSchema
|
|
csvimport['/Users/fernuni-student/secondo-data/gps-traces/Trk101215Modified.csv',
|
|
7,
|
|
"#",
|
|
","]
|
|
consume;
|
|
|
|
#2.95 secs
|
|
#Result size 74346
|
|
|
|
|
|
|
|
# create Trip and Altitude for each day
|
|
|
|
let Onehour =
|
|
[const duration value (0 3600000)];
|
|
|
|
delete DayTrips;
|
|
|
|
let DayTrips =
|
|
Trk101215 feed
|
|
extend[
|
|
I: str2instant(.Date + "-" + .UTC) + onehour,
|
|
P: makepoint(.Longitude, .Latitude),
|
|
Alt: int2real(.Altitude) ]
|
|
sortby[Date asc, I asc]
|
|
groupby[Date
|
|
; DayTrip: group feed approximate[I, P, [const duration value (0 300000)]],
|
|
DayAlt: group feed approximate[I, Alt, [const duration value (0 300000)]] ]
|
|
consume;
|
|
|
|
#3.79 secs
|
|
#result size 134
|
|
|
|
|
|
# compute trajectories
|
|
|
|
query DayTrips feed
|
|
extend[Traj: trajectory(.DayTrip)]
|
|
consume;
|
|
|
|
|
|
# alternative representation: split by trips
|
|
|
|
let Trips =
|
|
DayTrips feed
|
|
projectextendstream[Date;
|
|
Trip: .DayTrip sim_trips[ [const duration value (0 300000)]] ]
|
|
extend[Traj: trajectory(.Trip)]
|
|
consume;
|
|
|
|
#3.71 secs
|
|
#result size 398
|
|
|
|
|