################################################################################ ### 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