Files
secondo/bin/createmvtrips.sec
2026-01-23 17:03:45 +08:00

57 lines
1.2 KiB
Plaintext

create database mvtrips
open database mvtrips
# load raw data
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 Raw = KDRSchema csvimport['../bin/Trk110731.csv', 7, "#", ","] consume
# create Trip for each day
let onehour = [const duration value (0 3600000)]
let DayTrips = Raw feed
extend[
I: str2instant(.Date + "-" + .UTC) + onehour,
P: makepoint(.Longitude, .Latitude)]
sortby[Date asc, I asc]
groupby[Date
; DayTrip: group feed approximate[I, P, [const duration value (0 300000)]] ]
consume
# alternative representation: split by trips
let Trips = DayTrips feed
projectextendstream[Date
; Trip: .DayTrip sim_trips[ [const duration value (0 300000)]] ]
consume
# finding stops
# starting and ending points for each trip
let Stops =
Trips feed projectextend[Date; Time: inst(initial(.Trip)), Stop: val(initial(.Trip)), Kind: "start"]
Trips feed projectextend[Date; Time: inst(final(.Trip)), Stop: val(final(.Trip)), Kind: "end"]
concat
sortby[Date, Time]
consume
close database