diff --git a/R/plan.R b/R/plan.R index d38012a..733f67c 100644 --- a/R/plan.R +++ b/R/plan.R @@ -8,6 +8,8 @@ generatePlans <- function(N, csv, endcsv, binCols, outdir, writeInterval) { # writeInterval<-20 # write to file every so many plans suppressPackageStartupMessages(library(dplyr)) + # Suppress summarise info + options(dplyr.summarise.inform = FALSE) getActivityGroups <- function(bins) { groups<-unique(bins$Activity.Group) @@ -117,12 +119,17 @@ generatePlans <- function(N, csv, endcsv, binCols, outdir, writeInterval) { # all probabilities are zero so make them equally non-zero for bins >= sbin # therefore we will select randomly from them ebins[sbin:length(ebins)]<-1 - } + } ebin<-selectIndexFromProbabilities(ebins) # save it plan[nrow(plan)+1,]<-list(act, sbin, ebin) # pick the next time bin + if ((sum(ebins==0)==length(ebins)-1) && (ebins[sbin]==1)) { + # the activity always finishes in the start bin so will get an endless loop + # so adding a small proabability that it can finishes sometime later too + ebin<-ebin+1 + } bin<-ebin } # if we did not make a plan then just stay at home @@ -457,3 +464,54 @@ generatePlans <- function(N, csv, endcsv, binCols, outdir, writeInterval) { padWithHomeActivity(inplansfile, outplansfile, numOfBins) echo(paste0("Wrote ",outplansfile,"\n")) } + + +generatePlansByGroup <- function(groupIds, + matched_persons_csv_prefix, + csv_gz_prefix, + endcsv_gz_prefix, + binCols, + outdir_prefix, + writeInterval + ) { + # example inputs + # groupIds <- getGroupIds('../data/vistaCohorts.csv.gz') + # matched_persons_csv_prefix <- '../output/3.match/match_' + # csv_gz_prefix <- '../output/1.setup/vista_2012_18_extracted_activities_weekday_time_bins_' + # endcsv_gz_prefix <- '../output/1.setup/vista_2012_18_extracted_activities_weekday_end_dist_for_start_bins_' + # binCols <- 3:50 # specifies that columns 3-50 correspond to 48 time bins, i.e., 30-mins each + # outdir_prefix <- '../output/4.plan/' + # writeInterval <- 500 # write to file every 1000 plans + + for (gid in groupIds) { + matched_persons_csv <- paste0(matched_persons_csv_prefix, gid, ".csv") + gz1<-gzfile(matched_persons_csv, 'rt') + all<-read.csv(gz1, header=T, stringsAsFactors=F, strip.white=T ) + close(gz1) + N <- nrow(all) + csv_gz <- paste0(csv_gz_prefix, gid, ".csv.gz") + endcsv_gz <- paste0(endcsv_gz_prefix, gid, ".csv.gz") + outdir <- paste0(outdir_prefix, gid) + echo(paste0('Generating groups plans in directory ', outdir, '\n')) + generatePlans(N, csv_gz, endcsv_gz, binCols, outdir, writeInterval) + } +} + +combinePlans <- function(groupIds, + outdir_prefix, + out_csv) { + echo(paste0('Combining groups plans into ', out_csv, '\n')) + nextId <- 0 + allplans <- data.frame() + for (gid in groupIds) { + infile <- paste0(outdir_prefix, gid, '/plan.csv') + gz1<-gzfile(infile, 'rt') + all<-read.csv(gz1, header=T, stringsAsFactors=F, strip.white=T ) + close(gz1) + all$PlanId <- all$PlanId + nextId # increment plan id for each group by an appropriate offset + all$GroupId <- gid # add group id column + allplans <- rbind(allplans, all) + nextId <- nextId + length(unique(all$PlanId)) + } + write.table(allplans, out_csv, row.names=FALSE, col.names=TRUE, quote=TRUE, sep=",", append=FALSE) +} \ No newline at end of file diff --git a/tests/expected/3.plan/plan.csv b/tests/expected/3.plan/plan.csv deleted file mode 100644 index 085146e..0000000 --- a/tests/expected/3.plan/plan.csv +++ /dev/null @@ -1,286 +0,0 @@ -"PlanId","Activity","StartBin","EndBin" -1,"Home",1,22 -1,"Personal",22,23 -1,"Shop",23,24 -1,"Personal",24,28 -1,"Home",28,30 -1,"Personal",30,30 -1,"Shop",30,35 -1,"Personal",35,35 -1,"Shop",35,36 -1,"Pickup/Dropoff/Deliver",36,36 -1,"Social/Recreational",36,38 -1,"Pickup/Dropoff/Deliver",38,38 -1,"Social/Recreational",38,45 -1,"Home",45,48 -2,"Home",1,11 -2,"Pickup/Dropoff/Deliver",11,11 -2,"Work",11,26 -2,"Home",26,48 -3,"Home",1,12 -3,"Social/Recreational",12,42 -3,"Shop",42,42 -3,"Personal",42,45 -3,"Home",46,48 -4,"Home",1,16 -4,"Other",16,16 -4,"Social/Recreational",16,16 -4,"Work",16,34 -4,"Personal",34,34 -4,"Pickup/Dropoff/Deliver",34,34 -4,"Personal",34,34 -4,"Home",34,40 -4,"Social/Recreational",40,41 -4,"Other",41,43 -4,"Home",43,48 -5,"Home",13,34 -5,"Other",37,43 -5,"Home",44,48 -6,"Home",1,19 -6,"Pickup/Dropoff/Deliver",19,19 -6,"Social/Recreational",19,24 -6,"Shop",25,29 -6,"Work",29,32 -6,"Shop",32,34 -6,"Personal",37,40 -6,"Shop",47,48 -6,"Home",48,48 -7,"Home",1,14 -7,"Shop",14,15 -7,"Home",15,17 -7,"Study",17,32 -7,"Home",32,48 -8,"Home",1,16 -8,"Other",16,42 -8,"Home",42,48 -9,"Home",1,17 -9,"Social/Recreational",17,18 -9,"Pickup/Dropoff/Deliver",18,19 -9,"Home",20,31 -9,"Personal",31,35 -9,"Social/Recreational",35,35 -9,"Personal",35,36 -9,"Home",37,48 -10,"Home",1,28 -10,"Work",28,37 -10,"Shop",39,42 -10,"Home",42,48 -11,"Home",1,16 -11,"Other",16,16 -11,"Social/Recreational",16,27 -11,"Work",27,37 -11,"Other",39,45 -11,"Home",45,48 -12,"Home",1,17 -12,"Shop",17,17 -12,"Pickup/Dropoff/Deliver",17,17 -12,"Social/Recreational",17,29 -12,"Study",31,32 -12,"Pickup/Dropoff/Deliver",32,32 -12,"Shop",32,35 -12,"Other",39,44 -12,"Home",44,48 -13,"Home",1,16 -13,"Study",17,35 -13,"Personal",37,48 -13,"Home",48,48 -14,"Home",1,15 -14,"Work",15,26 -14,"Social/Recreational",26,31 -14,"Pickup/Dropoff/Deliver",31,31 -14,"Social/Recreational",31,31 -14,"Pickup/Dropoff/Deliver",31,32 -14,"Work",32,37 -14,"Pickup/Dropoff/Deliver",39,39 -14,"Home",39,48 -15,"Home",1,16 -15,"Other",16,16 -15,"Work",16,19 -15,"Shop",19,21 -15,"Pickup/Dropoff/Deliver",21,22 -15,"Shop",22,23 -15,"Social/Recreational",23,25 -15,"Pickup/Dropoff/Deliver",25,25 -15,"Personal",25,27 -15,"Home",27,30 -15,"Work",33,35 -15,"Other",41,46 -15,"Home",46,48 -16,"Home",1,1 -16,"Social/Recreational",1,23 -16,"Pickup/Dropoff/Deliver",24,25 -16,"Shop",27,28 -16,"Social/Recreational",32,39 -16,"Other",41,43 -16,"Home",43,48 -17,"Home",1,12 -17,"Social/Recreational",12,46 -17,"Home",46,48 -18,"Home",1,17 -18,"Shop",17,42 -18,"Home",42,48 -19,"Home",1,17 -19,"Work",17,35 -19,"Social/Recreational",35,42 -19,"Home",42,48 -20,"Home",1,16 -20,"Study",16,34 -20,"Home",36,48 -21,"Home",17,25 -21,"Social/Recreational",28,29 -21,"Home",30,33 -21,"Pickup/Dropoff/Deliver",33,33 -21,"Social/Recreational",33,36 -21,"Other",37,47 -21,"Home",47,48 -22,"Home",1,12 -22,"Work",13,36 -22,"Other",39,41 -22,"Home",41,48 -23,"Home",1,16 -23,"Personal",16,48 -23,"Home",48,48 -24,"Home",1,18 -24,"Study",18,31 -24,"Shop",32,32 -24,"Pickup/Dropoff/Deliver",32,37 -24,"Home",37,48 -25,"Home",1,17 -25,"Pickup/Dropoff/Deliver",17,18 -25,"Study",18,35 -25,"Home",35,48 -26,"Home",1,18 -26,"Study",18,27 -26,"Social/Recreational",27,27 -26,"Shop",27,27 -26,"Work",27,34 -26,"Pickup/Dropoff/Deliver",38,45 -26,"Home",45,48 -27,"Home",1,30 -27,"Pickup/Dropoff/Deliver",31,32 -27,"Study",33,39 -27,"Other",39,41 -27,"Home",41,48 -28,"Home",1,16 -28,"Other",16,16 -28,"Personal",16,23 -28,"Shop",23,26 -28,"Social/Recreational",26,27 -28,"Home",29,29 -28,"Shop",29,34 -28,"Home",34,48 -29,"Home",1,17 -29,"Study",17,31 -29,"Social/Recreational",33,33 -29,"Shop",33,36 -29,"Home",36,48 -30,"Home",1,23 -30,"Social/Recreational",25,40 -30,"Home",40,48 -31,"Home",1,15 -31,"Shop",15,16 -31,"Study",17,31 -31,"Home",31,48 -32,"Home",1,18 -32,"Pickup/Dropoff/Deliver",18,18 -32,"Study",18,27 -32,"Shop",30,43 -32,"Home",43,48 -33,"Home",1,18 -33,"Personal",18,22 -33,"Study",22,31 -33,"Social/Recreational",32,36 -33,"Other",37,42 -33,"Home",42,48 -34,"Home",1,16 -34,"Other",16,16 -34,"Work",16,31 -34,"Pickup/Dropoff/Deliver",33,34 -34,"Personal",35,35 -34,"Shop",35,45 -34,"Home",45,48 -35,"Home",1,11 -35,"Study",17,32 -35,"Personal",37,40 -35,"Other",41,43 -35,"Home",43,48 -36,"Home",1,18 -36,"Study",18,30 -36,"Home",32,33 -36,"Social/Recreational",39,45 -36,"Home",45,48 -37,"Home",1,14 -37,"Shop",14,14 -37,"Home",14,48 -38,"Home",1,12 -38,"Shop",12,12 -38,"Work",12,33 -38,"Home",33,48 -39,"Home",1,17 -39,"Work",17,37 -39,"Other",39,41 -39,"Home",41,48 -40,"Home",1,18 -40,"Study",18,34 -40,"Home",34,48 -41,"Home",18,24 -41,"Shop",24,25 -41,"Pickup/Dropoff/Deliver",25,26 -41,"Social/Recreational",28,28 -41,"Personal",28,29 -41,"Shop",31,32 -41,"Personal",33,36 -41,"Home",36,48 -42,"Home",1,33 -42,"Social/Recreational",37,39 -42,"Other",41,43 -42,"Home",43,48 -43,"Home",1,16 -43,"Other",16,16 -43,"Personal",16,44 -43,"Home",44,48 -44,"Home",1,17 -44,"Study",17,32 -44,"Shop",32,34 -44,"Social/Recreational",35,35 -44,"Pickup/Dropoff/Deliver",35,35 -44,"Personal",35,35 -44,"Pickup/Dropoff/Deliver",35,37 -44,"Social/Recreational",38,38 -44,"Work",38,47 -44,"Home",47,48 -45,"Home",1,21 -45,"Study",21,37 -45,"Shop",39,40 -45,"Home",40,48 -46,"Home",1,17 -46,"Pickup/Dropoff/Deliver",17,17 -46,"Work",17,25 -46,"Home",25,48 -47,"Home",1,18 -47,"Study",18,26 -47,"Social/Recreational",26,26 -47,"Shop",26,26 -47,"Work",26,34 -47,"Social/Recreational",36,39 -47,"Home",39,48 -48,"Home",1,16 -48,"Other",16,16 -48,"Pickup/Dropoff/Deliver",16,16 -48,"Other",16,16 -48,"Home",16,25 -48,"Study",30,44 -48,"Home",44,48 -49,"Home",1,18 -49,"Study",18,31 -49,"Pickup/Dropoff/Deliver",31,31 -49,"Shop",31,31 -49,"Home",31,32 -49,"Shop",32,34 -49,"Pickup/Dropoff/Deliver",37,37 -49,"Social/Recreational",37,45 -49,"Home",45,48 -50,"Home",1,15 -50,"Shop",15,36 -50,"Other",39,41 -50,"Home",41,48 diff --git a/tests/expected/4.plan/plan.csv b/tests/expected/4.plan/plan.csv new file mode 100644 index 0000000..3a1cfa6 --- /dev/null +++ b/tests/expected/4.plan/plan.csv @@ -0,0 +1,2018 @@ +"PlanId","Activity","StartBin","EndBin","GroupId" +1,"Home",1,18,1 +1,"Work",18,34,1 +1,"Home",34,48,1 +2,"Home",1,16,1 +2,"Other",16,16,1 +2,"Study",17,17,1 +2,"Shop",17,17,1 +2,"Home",19,31,1 +2,"Pickup/Dropoff/Deliver",31,31,1 +2,"Study",31,36,1 +2,"Home",36,48,1 +3,"Home",1,16,1 +3,"Other",16,39,1 +3,"Home",39,48,1 +4,"Home",1,18,1 +4,"Pickup/Dropoff/Deliver",18,18,1 +4,"Study",21,29,1 +4,"Social/Recreational",30,31,1 +4,"Pickup/Dropoff/Deliver",32,33,1 +4,"Personal",35,35,1 +4,"Social/Recreational",37,39,1 +4,"Home",39,48,1 +5,"Home",1,1,1 +5,"Social/Recreational",1,23,1 +5,"Home",24,48,1 +6,"Home",1,16,1 +6,"Other",16,16,1 +6,"Study",18,32,1 +6,"Social/Recreational",32,37,1 +6,"Home",38,48,1 +7,"Home",1,18,1 +7,"Social/Recreational",18,33,1 +7,"Personal",33,33,1 +7,"Social/Recreational",33,36,1 +7,"Home",36,48,1 +8,"Home",1,16,1 +8,"Other",16,16,1 +8,"Social/Recreational",17,18,1 +8,"Study",18,36,1 +8,"Home",36,48,1 +9,"Home",1,1,1 +9,"Social/Recreational",1,25,1 +9,"Home",27,48,1 +10,"Home",1,18,1 +10,"Study",18,32,1 +10,"Social/Recreational",32,33,1 +10,"Pickup/Dropoff/Deliver",33,33,1 +10,"Social/Recreational",35,35,1 +10,"Home",35,48,1 +11,"Home",1,16,1 +11,"Other",16,16,1 +11,"Study",18,30,1 +11,"Social/Recreational",32,37,1 +11,"Home",37,48,1 +12,"Home",1,17,1 +12,"Study",17,31,1 +12,"Shop",32,36,1 +12,"Home",36,48,1 +13,"Home",1,16,1 +13,"Other",16,16,1 +13,"Social/Recreational",18,41,1 +13,"Home",41,48,1 +14,"Home",1,17,1 +14,"Study",18,32,1 +14,"Social/Recreational",32,33,1 +14,"Study",33,47,1 +14,"Home",47,48,1 +15,"Home",1,18,1 +15,"Social/Recreational",18,44,1 +15,"Home",44,48,1 +16,"Home",1,18,1 +16,"Study",18,31,1 +16,"Pickup/Dropoff/Deliver",31,32,1 +16,"Shop",32,33,1 +16,"Social/Recreational",33,47,1 +16,"Home",47,48,1 +17,"Home",1,16,1 +17,"Other",16,16,1 +17,"Study",17,32,1 +17,"Pickup/Dropoff/Deliver",32,32,1 +17,"Home",34,34,1 +17,"Personal",35,46,1 +17,"Home",46,48,1 +18,"Home",1,1,1 +18,"Social/Recreational",1,23,1 +18,"Home",28,48,1 +19,"Home",1,16,1 +19,"Other",16,16,1 +19,"Social/Recreational",18,45,1 +19,"Home",45,48,1 +20,"Home",1,18,1 +20,"Study",18,31,1 +20,"Home",31,48,1 +21,"Home",1,18,1 +21,"Study",18,34,1 +21,"Shop",35,36,1 +21,"Home",37,48,1 +22,"Home",1,16,1 +22,"Other",16,16,1 +22,"Social/Recreational",17,28,1 +22,"Shop",32,34,1 +22,"Social/Recreational",35,39,1 +22,"Home",39,48,1 +23,"Home",1,29,1 +23,"Shop",32,33,1 +23,"Personal",33,36,1 +23,"Home",36,48,1 +24,"Home",1,16,1 +24,"Other",16,16,1 +24,"Social/Recreational",18,43,1 +24,"Home",43,48,1 +25,"Home",1,18,1 +25,"Study",18,31,1 +25,"Social/Recreational",32,37,1 +25,"Home",37,48,1 +26,"Home",1,18,1 +26,"Work",18,30,1 +26,"Social/Recreational",32,33,1 +26,"Pickup/Dropoff/Deliver",33,37,1 +26,"Home",37,48,1 +27,"Home",1,17,1 +27,"Study",17,35,1 +27,"Personal",35,35,1 +27,"Home",35,48,1 +28,"Home",1,16,1 +28,"Other",16,16,1 +28,"Study",18,31,1 +28,"Pickup/Dropoff/Deliver",31,32,1 +28,"Social/Recreational",32,37,1 +28,"Home",37,48,1 +29,"Home",1,48,1 +30,"Home",1,18,1 +30,"Pickup/Dropoff/Deliver",18,22,1 +30,"Study",22,31,1 +30,"Home",32,48,1 +31,"Home",1,16,1 +31,"Other",16,16,1 +31,"Study",18,35,1 +31,"Home",35,48,1 +32,"Home",1,17,1 +32,"Study",17,32,1 +32,"Home",32,33,1 +32,"Personal",33,33,1 +32,"Home",35,48,1 +33,"Home",1,18,1 +33,"Study",18,32,1 +33,"Pickup/Dropoff/Deliver",32,32,1 +33,"Social/Recreational",33,36,1 +33,"Home",36,48,1 +34,"Home",1,16,1 +34,"Other",16,16,1 +34,"Social/Recreational",18,23,1 +34,"Study",30,32,1 +34,"Home",32,48,1 +35,"Home",1,16,1 +35,"Other",16,16,1 +35,"Shop",17,30,1 +35,"Pickup/Dropoff/Deliver",31,32,1 +35,"Home",33,48,1 +36,"Home",1,18,1 +36,"Study",18,31,1 +36,"Social/Recreational",32,33,1 +36,"Shop",34,35,1 +36,"Social/Recreational",35,35,1 +36,"Home",35,48,1 +37,"Home",1,1,1 +37,"Social/Recreational",1,23,1 +37,"Shop",32,34,1 +37,"Personal",35,35,1 +37,"Social/Recreational",37,46,1 +37,"Home",46,48,1 +38,"Home",1,16,1 +38,"Other",16,16,1 +38,"Study",17,31,1 +38,"Shop",32,37,1 +38,"Home",37,48,1 +39,"Home",1,18,1 +39,"Study",18,32,1 +39,"Shop",32,34,1 +39,"Social/Recreational",35,35,1 +39,"Home",35,48,1 +40,"Home",1,16,1 +40,"Other",16,16,1 +40,"Study",18,32,1 +40,"Social/Recreational",32,37,1 +40,"Home",37,48,1 +41,"Home",1,17,1 +41,"Social/Recreational",18,48,1 +41,"Home",48,48,1 +42,"Home",1,18,1 +42,"Social/Recreational",18,30,1 +42,"Pickup/Dropoff/Deliver",31,33,1 +42,"Shop",35,40,1 +42,"Home",40,48,1 +43,"Home",1,16,1 +43,"Other",16,16,1 +43,"Study",17,32,1 +43,"Shop",32,34,1 +43,"Social/Recreational",35,35,1 +43,"Home",35,48,1 +44,"Home",1,18,1 +44,"Pickup/Dropoff/Deliver",18,18,1 +44,"Shop",32,32,1 +44,"Pickup/Dropoff/Deliver",32,32,1 +44,"Home",33,48,1 +45,"Home",1,1,1 +45,"Social/Recreational",1,23,1 +45,"Pickup/Dropoff/Deliver",32,33,1 +45,"Shop",35,36,1 +45,"Home",36,48,1 +46,"Home",1,16,1 +46,"Other",16,16,1 +46,"Social/Recreational",17,18,1 +46,"Study",18,32,1 +46,"Pickup/Dropoff/Deliver",32,32,1 +46,"Personal",33,33,1 +46,"Shop",34,44,1 +46,"Home",44,48,1 +47,"Home",1,16,1 +47,"Other",16,16,1 +47,"Social/Recreational",18,47,1 +47,"Home",47,48,1 +48,"Home",1,18,1 +48,"Study",18,32,1 +48,"Pickup/Dropoff/Deliver",32,33,1 +48,"Personal",35,35,1 +48,"Home",35,48,1 +49,"Home",1,1,1 +49,"Social/Recreational",1,23,1 +49,"Pickup/Dropoff/Deliver",31,32,1 +49,"Shop",32,34,1 +49,"Personal",35,35,1 +49,"Home",35,48,1 +50,"Home",1,16,1 +50,"Other",16,16,1 +50,"Shop",17,17,1 +50,"Study",18,31,1 +50,"Personal",33,36,1 +50,"Home",36,48,1 +51,"Home",1,16,1 +51,"Other",16,16,1 +51,"Social/Recreational",18,40,1 +51,"Home",40,48,1 +52,"Home",1,18,1 +52,"Social/Recreational",18,35,1 +52,"Personal",35,35,1 +52,"Home",35,48,1 +53,"Home",1,16,1 +53,"Pickup/Dropoff/Deliver",18,32,1 +53,"Personal",33,33,1 +53,"Home",33,48,1 +54,"Home",1,17,1 +54,"Study",17,31,1 +54,"Pickup/Dropoff/Deliver",31,31,1 +54,"Home",31,48,1 +55,"Home",1,16,1 +55,"Other",16,16,1 +55,"Social/Recreational",18,22,1 +55,"Shop",32,33,1 +55,"Pickup/Dropoff/Deliver",33,33,1 +55,"Social/Recreational",37,39,1 +55,"Home",39,48,1 +56,"Home",1,18,1 +56,"Study",18,19,1 +56,"Shop",32,34,1 +56,"Personal",35,35,1 +56,"Home",36,48,1 +57,"Home",1,1,1 +57,"Social/Recreational",1,23,1 +57,"Pickup/Dropoff/Deliver",32,32,1 +57,"Personal",33,33,1 +57,"Home",33,48,1 +58,"Home",1,16,1 +58,"Other",16,16,1 +58,"Study",17,32,1 +58,"Shop",32,33,1 +58,"Personal",35,35,1 +58,"Home",35,48,1 +59,"Home",1,16,1 +59,"Other",16,16,1 +59,"Social/Recreational",18,21,1 +59,"Shop",32,34,1 +59,"Home",34,48,1 +60,"Home",1,18,1 +60,"Pickup/Dropoff/Deliver",18,18,1 +60,"Social/Recreational",30,48,1 +60,"Home",48,48,1 +61,"Home",1,17,1 +61,"Pickup/Dropoff/Deliver",18,32,1 +61,"Social/Recreational",33,36,1 +61,"Home",36,48,1 +62,"Home",1,16,1 +62,"Other",16,16,1 +62,"Shop",17,17,1 +62,"Study",18,32,1 +62,"Pickup/Dropoff/Deliver",32,33,1 +62,"Personal",35,35,1 +62,"Home",35,48,1 +63,"Home",1,16,1 +63,"Other",16,16,1 +63,"Work",18,34,1 +63,"Home",34,48,1 +64,"Home",1,18,1 +64,"Pickup/Dropoff/Deliver",18,31,1 +64,"Study",31,32,1 +64,"Pickup/Dropoff/Deliver",32,32,1 +64,"Personal",33,36,1 +64,"Home",36,48,1 +65,"Home",1,1,1 +65,"Social/Recreational",1,23,1 +65,"Pickup/Dropoff/Deliver",32,33,1 +65,"Personal",35,35,1 +65,"Home",35,48,1 +66,"Home",1,16,1 +66,"Other",16,16,1 +66,"Shop",17,17,1 +66,"Study",18,32,1 +66,"Home",32,48,1 +67,"Home",1,18,1 +67,"Study",18,31,1 +67,"Shop",32,33,1 +67,"Personal",33,33,1 +67,"Social/Recreational",35,35,1 +67,"Home",35,48,1 +68,"Home",1,16,1 +68,"Other",16,16,1 +68,"Study",18,31,1 +68,"Shop",32,32,1 +68,"Social/Recreational",32,33,1 +68,"Home",33,48,1 +69,"Home",1,17,1 +69,"Study",17,17,1 +69,"Social/Recreational",17,18,1 +69,"Pickup/Dropoff/Deliver",18,32,1 +69,"Study",33,47,1 +69,"Home",47,48,1 +70,"Home",1,16,1 +70,"Other",16,16,1 +70,"Study",18,31,1 +70,"Pickup/Dropoff/Deliver",31,32,1 +70,"Personal",35,35,1 +70,"Social/Recreational",37,39,1 +70,"Home",39,48,1 +71,"Home",1,18,1 +71,"Study",18,30,1 +71,"Shop",32,34,1 +71,"Home",34,48,1 +72,"Home",1,18,1 +72,"Work",18,34,1 +72,"Shop",34,35,1 +72,"Social/Recreational",35,35,1 +72,"Home",35,48,1 +73,"Home",1,16,1 +73,"Other",16,16,1 +73,"Study",18,32,1 +73,"Social/Recreational",32,37,1 +73,"Home",37,48,1 +74,"Home",1,16,1 +74,"Other",16,16,1 +74,"Pickup/Dropoff/Deliver",18,31,1 +74,"Study",31,32,1 +74,"Pickup/Dropoff/Deliver",32,33,1 +74,"Home",33,48,1 +75,"Home",1,17,1 +75,"Shop",17,17,1 +75,"Study",18,19,1 +75,"Shop",32,34,1 +75,"Social/Recreational",35,35,1 +75,"Home",35,48,1 +76,"Home",1,1,1 +76,"Social/Recreational",1,23,1 +76,"Shop",32,34,1 +76,"Home",34,48,1 +77,"Home",1,16,1 +77,"Other",16,16,1 +77,"Work",18,34,1 +77,"Home",34,48,1 +78,"Home",1,18,1 +78,"Social/Recreational",18,19,1 +78,"Pickup/Dropoff/Deliver",32,32,1 +78,"Social/Recreational",33,36,1 +78,"Home",36,48,1 +79,"Home",1,18,1 +79,"Study",18,35,1 +79,"Social/Recreational",35,35,1 +79,"Home",35,48,1 +80,"Home",1,16,1 +80,"Other",16,16,1 +80,"Social/Recreational",17,18,1 +80,"Work",18,34,1 +80,"Home",34,48,1 +81,"Home",1,18,1 +81,"Social/Recreational",18,20,1 +81,"Pickup/Dropoff/Deliver",31,31,1 +81,"Study",31,36,1 +81,"Home",36,48,1 +82,"Home",1,16,1 +82,"Other",16,16,1 +82,"Study",18,32,1 +82,"Shop",32,34,1 +82,"Home",35,48,1 +83,"Home",1,18,1 +83,"Study",18,31,1 +83,"Social/Recreational",32,33,1 +83,"Personal",33,33,1 +83,"Home",33,48,1 +84,"Home",1,17,1 +84,"Shop",17,17,1 +84,"Work",18,34,1 +84,"Home",34,48,1 +85,"Home",1,18,1 +85,"Social/Recreational",18,18,1 +85,"Study",18,36,1 +85,"Home",36,48,1 +86,"Home",1,16,1 +86,"Other",16,16,1 +86,"Social/Recreational",18,28,1 +86,"Shop",32,32,1 +86,"Social/Recreational",32,39,1 +86,"Home",39,48,1 +87,"Home",1,16,1 +87,"Other",16,16,1 +87,"Social/Recreational",18,45,1 +87,"Home",45,48,1 +88,"Home",1,18,1 +88,"Pickup/Dropoff/Deliver",18,18,1 +88,"Study",30,47,1 +88,"Home",47,48,1 +89,"Home",1,17,1 +89,"Study",17,32,1 +89,"Home",32,48,1 +90,"Home",1,18,1 +90,"Study",18,32,1 +90,"Shop",32,33,1 +90,"Pickup/Dropoff/Deliver",33,33,1 +90,"Home",34,34,1 +90,"Shop",35,36,1 +90,"Social/Recreational",37,39,1 +90,"Home",39,48,1 +91,"Home",1,25,1 +91,"Shop",32,33,1 +91,"Pickup/Dropoff/Deliver",33,33,1 +91,"Personal",35,35,1 +91,"Home",38,48,1 +92,"Home",1,16,1 +92,"Other",16,16,1 +92,"Study",17,17,1 +92,"Shop",17,17,1 +92,"Social/Recreational",18,20,1 +92,"Pickup/Dropoff/Deliver",32,33,1 +92,"Personal",35,35,1 +92,"Home",35,48,1 +93,"Home",1,1,1 +93,"Social/Recreational",1,23,1 +93,"Pickup/Dropoff/Deliver",31,32,1 +93,"Shop",32,32,1 +93,"Social/Recreational",32,37,1 +93,"Home",37,48,1 +94,"Home",1,16,1 +94,"Other",16,16,1 +94,"Study",18,31,1 +94,"Personal",33,36,1 +94,"Home",36,48,1 +95,"Home",1,16,1 +95,"Other",16,16,1 +95,"Work",18,34,1 +95,"Personal",35,35,1 +95,"Home",35,48,1 +96,"Home",1,18,2 +96,"Study",18,27,2 +96,"Social/Recreational",27,29,2 +96,"Work",29,36,2 +96,"Home",36,48,2 +97,"Home",1,14,2 +97,"Work",14,33,2 +97,"Pickup/Dropoff/Deliver",33,34,2 +97,"Work",34,38,2 +97,"Social/Recreational",38,42,2 +97,"Home",43,48,2 +98,"Home",1,16,2 +98,"Study",16,34,2 +98,"Home",35,48,2 +99,"Home",1,17,2 +99,"Work",17,34,2 +99,"Home",39,48,2 +100,"Home",1,16,2 +100,"Work",16,32,2 +100,"Pickup/Dropoff/Deliver",33,46,2 +100,"Home",46,47,2 +100,"Shop",47,48,2 +100,"Home",48,48,2 +101,"Home",1,18,2 +101,"Study",18,19,2 +101,"Work",19,27,2 +101,"Social/Recreational",27,28,2 +101,"Pickup/Dropoff/Deliver",33,34,2 +101,"Home",45,45,2 +101,"Shop",47,48,2 +101,"Home",48,48,2 +102,"Home",1,17,2 +102,"Study",18,27,2 +102,"Social/Recreational",27,29,2 +102,"Pickup/Dropoff/Deliver",33,34,2 +102,"Home",38,48,2 +103,"Home",1,16,2 +103,"Study",16,31,2 +103,"Pickup/Dropoff/Deliver",33,34,2 +103,"Shop",47,48,2 +103,"Home",48,48,2 +104,"Home",1,18,2 +104,"Study",18,27,2 +104,"Social/Recreational",27,28,2 +104,"Pickup/Dropoff/Deliver",33,34,2 +104,"Home",34,48,2 +105,"Home",1,18,2 +105,"Study",18,27,2 +105,"Home",27,40,2 +105,"Shop",47,48,2 +105,"Home",48,48,2 +106,"Home",1,21,2 +106,"Work",22,35,2 +106,"Shop",47,48,2 +106,"Home",48,48,2 +107,"Home",1,16,2 +107,"Work",16,22,2 +107,"Home",25,37,2 +107,"Shop",47,48,2 +107,"Home",48,48,2 +108,"Home",1,18,2 +108,"Study",18,27,2 +108,"Home",27,30,2 +108,"Pickup/Dropoff/Deliver",33,34,2 +108,"Shop",47,48,2 +108,"Home",48,48,2 +109,"Home",1,13,2 +109,"Work",18,35,2 +109,"Social/Recreational",38,46,2 +109,"Shop",47,48,2 +109,"Home",48,48,2 +110,"Home",1,16,2 +110,"Study",16,34,2 +110,"Shop",47,48,2 +110,"Home",48,48,2 +111,"Home",1,17,2 +111,"Work",17,33,2 +111,"Pickup/Dropoff/Deliver",33,34,2 +111,"Shop",47,48,2 +111,"Home",48,48,2 +112,"Home",1,18,2 +112,"Work",18,43,2 +112,"Home",43,48,2 +113,"Home",1,18,2 +113,"Work",18,43,2 +113,"Home",43,48,2 +114,"Home",1,18,2 +114,"Study",18,27,2 +114,"Social/Recreational",27,29,2 +114,"Home",29,48,2 +115,"Home",1,17,2 +115,"Study",18,27,2 +115,"Social/Recreational",27,29,2 +115,"Pickup/Dropoff/Deliver",33,34,2 +115,"Work",34,40,2 +115,"Shop",47,48,2 +115,"Home",48,48,2 +116,"Home",1,14,2 +116,"Work",14,29,2 +116,"Pickup/Dropoff/Deliver",33,34,2 +116,"Home",38,41,2 +116,"Shop",47,48,2 +116,"Home",48,48,2 +117,"Home",1,16,2 +117,"Study",16,34,2 +117,"Shop",47,48,2 +117,"Home",48,48,2 +118,"Home",1,33,2 +118,"Pickup/Dropoff/Deliver",33,34,2 +118,"Home",34,48,2 +119,"Home",1,18,2 +119,"Study",18,27,2 +119,"Social/Recreational",27,28,2 +119,"Pickup/Dropoff/Deliver",33,34,2 +119,"Home",34,48,2 +120,"Home",1,16,2 +120,"Work",16,32,2 +120,"Pickup/Dropoff/Deliver",33,34,2 +120,"Shop",47,48,2 +120,"Home",48,48,2 +121,"Home",1,18,2 +121,"Study",18,27,2 +121,"Home",27,48,2 +122,"Home",1,18,2 +122,"Study",18,27,2 +122,"Home",27,43,2 +122,"Shop",47,48,2 +122,"Home",48,48,2 +123,"Home",1,14,2 +123,"Work",18,35,2 +123,"Home",36,48,2 +124,"Home",1,18,3 +124,"Personal",18,22,3 +124,"Social/Recreational",23,29,3 +124,"Work",29,32,3 +124,"Home",32,48,3 +125,"Home",1,11,3 +125,"Work",11,39,3 +125,"Other",39,41,3 +125,"Home",41,48,3 +126,"Home",1,12,3 +126,"Shop",12,12,3 +126,"Work",13,32,3 +126,"Home",33,48,3 +127,"Home",1,14,3 +127,"Shop",14,14,3 +127,"Social/Recreational",15,16,3 +127,"Personal",16,18,3 +127,"Pickup/Dropoff/Deliver",19,19,3 +127,"Home",20,31,3 +127,"Shop",31,31,3 +127,"Personal",34,34,3 +127,"Pickup/Dropoff/Deliver",35,44,3 +127,"Home",44,48,3 +128,"Home",1,11,3 +128,"Work",17,33,3 +128,"Personal",35,36,3 +128,"Pickup/Dropoff/Deliver",36,36,3 +128,"Personal",37,40,3 +128,"Home",40,48,3 +129,"Home",1,15,3 +129,"Shop",15,16,3 +129,"Pickup/Dropoff/Deliver",18,18,3 +129,"Social/Recreational",19,20,3 +129,"Personal",20,21,3 +129,"Work",21,38,3 +129,"Home",38,48,3 +130,"Home",1,20,3 +130,"Shop",24,33,3 +130,"Pickup/Dropoff/Deliver",34,34,3 +130,"Shop",36,46,3 +130,"Home",47,48,3 +131,"Home",1,16,3 +131,"Personal",16,40,3 +131,"Home",45,48,3 +132,"Home",1,18,3 +132,"Personal",18,27,3 +132,"Social/Recreational",27,31,3 +132,"Work",32,33,3 +132,"Personal",35,38,3 +132,"Home",39,48,3 +133,"Home",1,19,3 +133,"Pickup/Dropoff/Deliver",19,24,3 +133,"Shop",25,25,3 +133,"Work",26,37,3 +133,"Personal",37,39,3 +133,"Social/Recreational",39,44,3 +133,"Home",44,48,3 +134,"Home",1,28,3 +134,"Social/Recreational",28,28,3 +134,"Home",28,38,3 +134,"Social/Recreational",38,45,3 +134,"Home",45,48,3 +135,"Home",1,12,3 +135,"Work",12,25,3 +135,"Social/Recreational",26,27,3 +135,"Shop",27,27,3 +135,"Work",30,36,3 +135,"Social/Recreational",36,44,3 +135,"Home",44,48,3 +136,"Home",1,13,3 +136,"Pickup/Dropoff/Deliver",13,15,3 +136,"Work",16,35,3 +136,"Personal",35,36,3 +136,"Home",37,38,3 +136,"Social/Recreational",39,40,3 +136,"Home",40,48,3 +137,"Home",1,14,3 +137,"Pickup/Dropoff/Deliver",15,15,3 +137,"Work",17,36,3 +137,"Home",36,48,3 +138,"Home",1,18,3 +138,"Personal",18,22,3 +138,"Shop",23,23,3 +138,"Home",23,48,3 +139,"Home",1,15,3 +139,"Work",15,34,3 +139,"Home",34,48,3 +140,"Home",1,18,3 +140,"Work",18,35,3 +140,"Social/Recreational",37,44,3 +140,"Home",44,48,3 +141,"Home",1,18,3 +141,"Work",18,37,3 +141,"Pickup/Dropoff/Deliver",37,46,3 +141,"Home",46,48,3 +142,"Home",1,14,3 +142,"Shop",19,20,3 +142,"Work",20,37,3 +142,"Personal",37,40,3 +142,"Home",40,48,3 +143,"Home",1,14,3 +143,"Work",14,19,3 +143,"Pickup/Dropoff/Deliver",19,19,3 +143,"Work",20,24,3 +143,"Shop",26,28,3 +143,"Pickup/Dropoff/Deliver",31,48,3 +143,"Home",48,48,3 +144,"Home",1,16,3 +144,"Personal",16,38,3 +144,"Home",39,48,3 +145,"Home",1,19,3 +145,"Work",19,19,3 +145,"Social/Recreational",19,27,3 +145,"Work",28,37,3 +145,"Social/Recreational",38,44,3 +145,"Home",44,48,3 +146,"Home",1,48,3 +147,"Home",1,13,3 +147,"Pickup/Dropoff/Deliver",13,13,3 +147,"Social/Recreational",15,23,3 +147,"Home",25,39,3 +147,"Other",39,39,3 +147,"Social/Recreational",39,44,3 +147,"Home",44,48,3 +148,"Home",1,12,3 +148,"Work",12,35,3 +148,"Pickup/Dropoff/Deliver",35,37,3 +148,"Social/Recreational",37,44,3 +148,"Home",44,48,3 +149,"Home",1,18,3 +149,"Pickup/Dropoff/Deliver",18,32,3 +149,"Personal",34,37,3 +149,"Other",39,41,3 +149,"Home",41,48,3 +150,"Home",1,19,3 +150,"Work",19,35,3 +150,"Personal",35,36,3 +150,"Pickup/Dropoff/Deliver",36,41,3 +150,"Home",41,48,3 +151,"Home",1,19,3 +151,"Personal",20,40,3 +151,"Home",40,48,3 +152,"Home",1,18,3 +152,"Work",18,25,3 +152,"Social/Recreational",26,28,3 +152,"Pickup/Dropoff/Deliver",31,34,3 +152,"Social/Recreational",36,44,3 +152,"Home",44,48,3 +153,"Home",1,16,3 +153,"Work",16,19,3 +153,"Social/Recreational",26,26,3 +153,"Work",26,32,3 +153,"Shop",32,35,3 +153,"Social/Recreational",37,44,3 +153,"Home",44,48,3 +154,"Home",1,15,3 +154,"Pickup/Dropoff/Deliver",15,19,3 +154,"Work",19,37,3 +154,"Home",39,48,3 +155,"Home",1,16,3 +155,"Work",17,34,3 +155,"Personal",34,34,3 +155,"Home",35,48,3 +156,"Home",1,18,3 +156,"Personal",18,22,3 +156,"Work",23,24,3 +156,"Social/Recreational",27,39,3 +156,"Home",39,48,3 +157,"Home",1,20,3 +157,"Shop",20,20,3 +157,"Work",28,36,3 +157,"Shop",36,38,3 +157,"Social/Recreational",39,44,3 +157,"Home",44,48,3 +158,"Home",1,19,3 +158,"Pickup/Dropoff/Deliver",19,19,3 +158,"Shop",26,26,3 +158,"Home",32,33,3 +158,"Social/Recreational",37,39,3 +158,"Other",39,41,3 +158,"Home",41,48,3 +159,"Home",1,13,3 +159,"Work",15,37,3 +159,"Social/Recreational",37,39,3 +159,"Other",39,41,3 +159,"Home",41,48,3 +160,"Home",1,13,3 +160,"Pickup/Dropoff/Deliver",13,13,3 +160,"Personal",16,45,3 +160,"Home",45,48,3 +161,"Home",1,12,3 +161,"Work",12,35,3 +161,"Personal",35,35,3 +161,"Pickup/Dropoff/Deliver",35,37,3 +161,"Home",38,48,3 +162,"Home",1,18,3 +162,"Personal",18,22,3 +162,"Home",27,48,3 +163,"Home",1,18,3 +163,"Work",18,35,3 +163,"Shop",36,44,3 +163,"Home",44,48,3 +164,"Home",1,17,3 +164,"Social/Recreational",19,20,3 +164,"Home",20,37,3 +164,"Social/Recreational",39,44,3 +164,"Home",44,48,3 +165,"Home",1,21,3 +165,"Work",21,33,3 +165,"Personal",34,34,3 +165,"Home",37,48,3 +166,"Home",1,23,3 +166,"Shop",23,31,3 +166,"Pickup/Dropoff/Deliver",31,34,3 +166,"Other",39,41,3 +166,"Home",41,48,3 +167,"Home",1,14,3 +167,"Shop",14,40,3 +167,"Home",40,48,3 +168,"Home",1,15,3 +168,"Social/Recreational",15,16,3 +168,"Pickup/Dropoff/Deliver",19,19,3 +168,"Personal",20,21,3 +168,"Shop",24,32,3 +168,"Pickup/Dropoff/Deliver",32,32,3 +168,"Other",39,41,3 +168,"Home",41,48,3 +169,"Home",1,17,3 +169,"Personal",18,22,3 +169,"Social/Recreational",26,26,3 +169,"Shop",26,26,3 +169,"Social/Recreational",28,29,3 +169,"Pickup/Dropoff/Deliver",32,38,3 +169,"Other",39,41,3 +169,"Home",41,48,3 +170,"Home",1,16,3 +170,"Work",16,20,3 +170,"Shop",25,30,3 +170,"Personal",34,36,3 +170,"Pickup/Dropoff/Deliver",36,36,3 +170,"Personal",37,40,3 +170,"Home",40,48,3 +171,"Home",1,48,3 +172,"Home",1,17,3 +172,"Work",17,35,3 +172,"Home",35,48,3 +173,"Home",13,48,3 +174,"Home",1,15,3 +174,"Social/Recreational",15,16,3 +174,"Pickup/Dropoff/Deliver",18,19,3 +174,"Shop",20,47,3 +174,"Home",47,48,3 +175,"Home",1,19,3 +175,"Pickup/Dropoff/Deliver",19,19,3 +175,"Shop",27,37,3 +175,"Personal",37,40,3 +175,"Home",40,48,3 +176,"Home",1,19,3 +176,"Pickup/Dropoff/Deliver",19,32,3 +176,"Home",35,48,3 +177,"Home",1,12,3 +177,"Shop",12,36,3 +177,"Home",36,37,3 +177,"Social/Recreational",38,38,3 +177,"Home",38,48,3 +178,"Home",1,15,3 +178,"Personal",16,30,3 +178,"Shop",32,47,3 +178,"Home",47,48,3 +179,"Home",1,18,3 +179,"Work",18,27,3 +179,"Shop",31,48,3 +179,"Home",48,48,3 +180,"Home",1,23,3 +180,"Social/Recreational",23,37,3 +180,"Shop",37,39,3 +180,"Home",39,48,3 +181,"Home",1,19,3 +181,"Social/Recreational",19,28,3 +181,"Pickup/Dropoff/Deliver",34,40,3 +181,"Home",40,48,3 +182,"Home",1,15,3 +182,"Shop",15,31,3 +182,"Other",39,41,3 +182,"Home",41,48,3 +183,"Home",1,18,3 +183,"Work",18,37,3 +183,"Home",39,48,3 +184,"Home",1,16,3 +184,"Personal",20,21,3 +184,"Work",26,39,3 +184,"Home",39,48,3 +185,"Home",28,35,3 +185,"Personal",35,36,3 +185,"Social/Recreational",36,44,3 +185,"Home",44,48,3 +186,"Home",1,32,3 +186,"Pickup/Dropoff/Deliver",32,32,3 +186,"Social/Recreational",37,37,3 +186,"Personal",37,40,3 +186,"Home",40,48,3 +187,"Home",1,16,3 +187,"Personal",16,25,3 +187,"Social/Recreational",26,27,3 +187,"Other",39,41,3 +187,"Home",41,48,3 +188,"Home",1,18,3 +188,"Personal",18,22,3 +188,"Work",27,37,3 +188,"Home",39,48,3 +189,"Home",1,17,3 +189,"Work",17,36,3 +189,"Other",39,41,3 +189,"Home",41,48,3 +190,"Home",1,13,3 +190,"Work",13,31,3 +190,"Personal",34,36,3 +190,"Shop",36,39,3 +190,"Other",39,41,3 +190,"Home",41,48,3 +191,"Home",1,15,3 +191,"Shop",15,16,3 +191,"Social/Recreational",19,20,3 +191,"Personal",20,36,3 +191,"Other",39,41,3 +191,"Home",41,48,3 +192,"Home",1,18,3 +192,"Work",18,35,3 +192,"Personal",35,36,3 +192,"Home",39,48,3 +193,"Home",1,30,3 +193,"Other",39,41,3 +193,"Home",41,48,3 +194,"Home",1,12,3 +194,"Shop",12,12,3 +194,"Work",14,15,3 +194,"Pickup/Dropoff/Deliver",19,19,3 +194,"Social/Recreational",23,29,3 +194,"Other",39,41,3 +194,"Home",41,48,3 +195,"Home",1,16,3 +195,"Personal",16,43,3 +195,"Home",43,48,3 +196,"Home",1,19,3 +196,"Social/Recreational",19,28,3 +196,"Home",29,35,3 +196,"Personal",35,36,3 +196,"Shop",37,38,3 +196,"Social/Recreational",39,44,3 +196,"Home",44,48,3 +197,"Home",1,15,3 +197,"Shop",15,16,3 +197,"Personal",18,22,3 +197,"Shop",26,28,3 +197,"Social/Recreational",28,28,3 +197,"Home",31,48,3 +198,"Home",1,12,3 +198,"Personal",20,21,3 +198,"Shop",25,25,3 +198,"Pickup/Dropoff/Deliver",32,32,3 +198,"Work",34,34,3 +198,"Home",36,48,3 +199,"Home",1,19,3 +199,"Social/Recreational",19,27,3 +199,"Pickup/Dropoff/Deliver",37,38,3 +199,"Social/Recreational",38,38,3 +199,"Work",38,40,3 +199,"Home",40,48,3 +200,"Home",1,18,3 +200,"Work",18,34,3 +200,"Personal",35,35,3 +200,"Home",35,48,3 +201,"Home",1,48,3 +202,"Home",1,26,3 +202,"Social/Recreational",26,38,3 +202,"Home",39,48,3 +203,"Home",1,15,3 +203,"Shop",15,16,3 +203,"Personal",16,39,3 +203,"Home",39,48,3 +204,"Home",1,13,3 +204,"Pickup/Dropoff/Deliver",13,13,3 +204,"Work",19,31,3 +204,"Shop",32,48,3 +204,"Home",48,48,3 +205,"Home",1,18,3 +205,"Personal",18,22,3 +205,"Shop",23,24,3 +205,"Social/Recreational",27,31,3 +205,"Pickup/Dropoff/Deliver",34,34,3 +205,"Shop",36,43,3 +205,"Home",43,48,3 +206,"Home",1,23,3 +206,"Social/Recreational",26,26,3 +206,"Work",26,37,3 +206,"Personal",37,40,3 +206,"Home",40,48,3 +207,"Home",1,12,3 +207,"Work",12,33,3 +207,"Personal",37,40,3 +207,"Home",40,48,3 +208,"Home",1,17,3 +208,"Work",17,22,3 +208,"Home",28,48,3 +209,"Home",1,19,3 +209,"Shop",19,30,3 +209,"Social/Recreational",36,44,3 +209,"Home",44,48,3 +210,"Home",1,18,3 +210,"Personal",18,22,3 +210,"Home",39,48,3 +211,"Home",1,15,3 +211,"Shop",15,20,3 +211,"Social/Recreational",39,44,3 +211,"Home",44,48,3 +212,"Home",1,18,3 +212,"Work",20,37,3 +212,"Other",39,41,3 +212,"Home",41,48,3 +213,"Home",1,16,3 +213,"Work",16,35,3 +213,"Social/Recreational",39,44,3 +213,"Home",44,48,3 +214,"Home",1,20,3 +214,"Shop",20,20,3 +214,"Work",21,36,3 +214,"Social/Recreational",37,44,3 +214,"Home",44,48,3 +215,"Home",1,19,3 +215,"Social/Recreational",19,20,3 +215,"Shop",31,31,3 +215,"Work",32,40,3 +215,"Home",40,48,3 +216,"Home",1,18,3 +216,"Personal",18,35,3 +216,"Home",35,48,3 +217,"Home",1,24,3 +217,"Shop",24,34,3 +217,"Personal",34,34,3 +217,"Pickup/Dropoff/Deliver",36,36,3 +217,"Home",39,48,3 +218,"Home",1,18,3 +218,"Work",23,47,3 +218,"Home",47,48,3 +219,"Home",1,14,3 +219,"Shop",14,27,3 +219,"Work",30,47,3 +219,"Home",47,48,3 +220,"Home",1,15,3 +220,"Work",15,26,3 +220,"Home",27,27,3 +220,"Shop",27,27,3 +220,"Social/Recreational",37,44,3 +220,"Home",44,48,3 +221,"Home",1,13,3 +221,"Work",13,35,3 +221,"Personal",35,36,3 +221,"Home",39,48,3 +222,"Home",1,18,3 +222,"Work",18,26,3 +222,"Social/Recreational",26,28,3 +222,"Other",39,41,3 +222,"Home",41,48,3 +223,"Home",1,16,3 +223,"Personal",16,21,3 +223,"Social/Recreational",28,44,3 +223,"Home",44,48,3 +224,"Home",1,19,3 +224,"Pickup/Dropoff/Deliver",19,19,3 +224,"Shop",20,20,3 +224,"Home",36,48,3 +225,"Home",1,12,3 +225,"Work",12,33,3 +225,"Pickup/Dropoff/Deliver",34,46,3 +225,"Home",46,48,3 +226,"Home",1,17,3 +226,"Work",17,35,3 +226,"Shop",37,39,3 +226,"Social/Recreational",39,44,3 +226,"Home",44,48,3 +227,"Home",1,18,3 +227,"Pickup/Dropoff/Deliver",18,18,3 +227,"Shop",19,20,3 +227,"Pickup/Dropoff/Deliver",32,32,3 +227,"Social/Recreational",39,44,3 +227,"Home",44,48,3 +228,"Home",1,12,3 +228,"Work",15,28,3 +228,"Personal",35,36,3 +228,"Social/Recreational",39,44,3 +228,"Home",44,48,3 +229,"Home",20,48,3 +230,"Home",1,19,3 +230,"Pickup/Dropoff/Deliver",19,19,3 +230,"Home",25,25,3 +230,"Shop",25,25,3 +230,"Home",26,48,3 +231,"Home",1,18,3 +231,"Work",18,29,3 +231,"Home",31,48,3 +232,"Home",1,16,3 +232,"Work",16,26,3 +232,"Home",36,48,3 +233,"Home",23,36,3 +233,"Personal",37,40,3 +233,"Home",40,48,3 +234,"Home",1,19,3 +234,"Social/Recreational",38,45,3 +234,"Home",45,48,3 +235,"Home",1,28,3 +235,"Social/Recreational",28,29,3 +235,"Personal",35,35,3 +235,"Social/Recreational",39,44,3 +235,"Home",44,48,3 +236,"Home",1,19,3 +236,"Pickup/Dropoff/Deliver",19,19,3 +236,"Personal",34,34,3 +236,"Pickup/Dropoff/Deliver",37,48,3 +236,"Home",48,48,3 +237,"Home",1,13,3 +237,"Pickup/Dropoff/Deliver",13,15,3 +237,"Personal",20,21,3 +237,"Shop",32,35,3 +237,"Other",39,41,3 +237,"Home",41,48,3 +238,"Home",1,15,3 +238,"Social/Recreational",15,16,3 +238,"Personal",18,22,3 +238,"Social/Recreational",26,27,3 +238,"Home",39,48,3 +239,"Home",1,48,3 +240,"Home",1,36,3 +240,"Shop",36,41,3 +240,"Home",41,48,3 +241,"Home",1,39,3 +241,"Other",39,41,3 +241,"Home",41,48,3 +242,"Home",1,19,3 +242,"Pickup/Dropoff/Deliver",19,19,3 +242,"Social/Recreational",37,44,3 +242,"Home",44,48,3 +243,"Home",1,12,3 +243,"Shop",12,12,3 +243,"Personal",35,36,3 +243,"Other",39,41,3 +243,"Home",41,48,3 +244,"Home",1,16,3 +244,"Work",16,19,3 +244,"Home",39,48,3 +245,"Home",1,18,3 +245,"Personal",18,22,3 +245,"Social/Recreational",39,44,3 +245,"Home",44,48,3 +246,"Home",1,15,3 +246,"Pickup/Dropoff/Deliver",15,15,3 +246,"Home",39,48,3 +247,"Home",1,30,3 +247,"Work",38,48,3 +247,"Home",48,48,3 +248,"Home",1,20,3 +248,"Work",20,24,3 +248,"Home",26,37,3 +248,"Social/Recreational",39,44,3 +248,"Home",44,48,3 +249,"Home",1,17,3 +249,"Work",17,36,3 +249,"Pickup/Dropoff/Deliver",36,36,3 +249,"Shop",37,38,3 +249,"Home",39,48,3 +250,"Home",1,14,3 +250,"Shop",14,14,3 +250,"Pickup/Dropoff/Deliver",18,18,3 +250,"Work",19,31,3 +250,"Shop",31,31,3 +250,"Pickup/Dropoff/Deliver",32,32,3 +250,"Personal",34,35,3 +250,"Pickup/Dropoff/Deliver",35,37,3 +250,"Home",39,48,3 +251,"Home",1,48,3 +252,"Home",1,19,3 +252,"Pickup/Dropoff/Deliver",19,19,3 +252,"Work",23,29,3 +252,"Home",33,48,3 +253,"Home",1,15,3 +253,"Shop",15,16,3 +253,"Personal",16,42,3 +253,"Home",42,48,3 +254,"Home",1,13,3 +254,"Pickup/Dropoff/Deliver",13,13,3 +254,"Work",18,27,3 +254,"Home",27,48,3 +255,"Home",1,20,3 +255,"Personal",20,21,3 +255,"Social/Recreational",26,26,3 +255,"Home",26,48,3 +256,"Home",1,11,3 +256,"Social/Recreational",28,29,3 +256,"Work",34,43,3 +256,"Home",43,48,3 +257,"Home",1,19,3 +257,"Work",19,37,3 +257,"Pickup/Dropoff/Deliver",37,38,3 +257,"Home",39,48,3 +258,"Home",1,35,3 +258,"Personal",35,35,3 +258,"Pickup/Dropoff/Deliver",35,37,3 +258,"Shop",37,39,3 +258,"Home",39,48,3 +259,"Home",1,12,3 +259,"Shop",12,12,3 +259,"Work",18,34,3 +259,"Home",36,48,3 +260,"Home",1,32,3 +260,"Pickup/Dropoff/Deliver",32,32,3 +260,"Social/Recreational",38,45,3 +260,"Home",45,48,3 +261,"Home",1,14,3 +261,"Pickup/Dropoff/Deliver",15,15,3 +261,"Shop",23,23,3 +261,"Social/Recreational",23,29,3 +261,"Home",39,48,3 +262,"Home",1,16,4 +262,"Work",16,35,4 +262,"Home",35,38,4 +262,"Pickup/Dropoff/Deliver",38,38,4 +262,"Social/Recreational",39,39,4 +262,"Shop",39,42,4 +262,"Home",42,48,4 +263,"Home",1,11,4 +263,"Pickup/Dropoff/Deliver",11,11,4 +263,"Shop",12,12,4 +263,"Social/Recreational",12,14,4 +263,"Shop",14,15,4 +263,"Work",15,26,4 +263,"Social/Recreational",26,26,4 +263,"Pickup/Dropoff/Deliver",27,27,4 +263,"Personal",28,29,4 +263,"Pickup/Dropoff/Deliver",29,34,4 +263,"Home",34,48,4 +264,"Home",1,13,4 +264,"Personal",13,13,4 +264,"Social/Recreational",17,18,4 +264,"Study",18,26,4 +264,"Pickup/Dropoff/Deliver",30,31,4 +264,"Home",31,48,4 +265,"Home",1,13,4 +265,"Social/Recreational",18,45,4 +265,"Home",46,48,4 +266,"Home",17,41,4 +266,"Other",41,43,4 +266,"Home",43,48,4 +267,"Home",1,18,4 +267,"Pickup/Dropoff/Deliver",18,19,4 +267,"Personal",19,20,4 +267,"Work",20,37,4 +267,"Other",37,38,4 +267,"Home",40,48,4 +268,"Home",1,16,4 +268,"Social/Recreational",16,16,4 +268,"Home",18,24,4 +268,"Social/Recreational",24,30,4 +268,"Pickup/Dropoff/Deliver",31,32,4 +268,"Shop",32,35,4 +268,"Home",35,39,4 +268,"Other",41,46,4 +268,"Home",46,48,4 +269,"Home",1,18,4 +269,"Pickup/Dropoff/Deliver",18,18,4 +269,"Home",19,48,4 +270,"Home",1,18,4 +270,"Work",18,37,4 +270,"Other",37,42,4 +270,"Home",44,48,4 +271,"Home",1,18,4 +271,"Pickup/Dropoff/Deliver",18,18,4 +271,"Personal",20,21,4 +271,"Pickup/Dropoff/Deliver",21,22,4 +271,"Work",22,24,4 +271,"Personal",25,27,4 +271,"Social/Recreational",27,27,4 +271,"Shop",27,27,4 +271,"Social/Recreational",27,44,4 +271,"Home",44,48,4 +272,"Home",1,17,4 +272,"Shop",17,17,4 +272,"Social/Recreational",18,42,4 +272,"Home",42,48,4 +273,"Home",18,31,4 +273,"Pickup/Dropoff/Deliver",31,32,4 +273,"Home",33,48,4 +274,"Home",1,16,4 +274,"Pickup/Dropoff/Deliver",16,16,4 +274,"Work",18,36,4 +274,"Home",36,48,4 +275,"Home",1,18,4 +275,"Work",18,35,4 +275,"Shop",36,36,4 +275,"Personal",37,44,4 +275,"Home",44,48,4 +276,"Home",1,21,4 +276,"Work",21,32,4 +276,"Home",32,48,4 +277,"Home",1,18,4 +277,"Pickup/Dropoff/Deliver",18,18,4 +277,"Social/Recreational",20,25,4 +277,"Work",25,37,4 +277,"Social/Recreational",37,43,4 +277,"Home",43,48,4 +278,"Home",1,17,4 +278,"Work",17,37,4 +278,"Personal",37,39,4 +278,"Social/Recreational",39,46,4 +278,"Home",46,48,4 +279,"Home",1,18,4 +279,"Social/Recreational",18,21,4 +279,"Personal",23,24,4 +279,"Home",24,27,4 +279,"Social/Recreational",28,29,4 +279,"Shop",30,46,4 +279,"Home",46,48,4 +280,"Home",1,18,4 +280,"Social/Recreational",18,21,4 +280,"Shop",23,30,4 +280,"Social/Recreational",31,45,4 +280,"Home",45,48,4 +281,"Home",18,37,4 +281,"Pickup/Dropoff/Deliver",37,37,4 +281,"Home",38,48,4 +282,"Home",1,17,4 +282,"Social/Recreational",18,20,4 +282,"Personal",25,44,4 +282,"Home",44,48,4 +283,"Home",1,13,4 +283,"Work",13,36,4 +283,"Social/Recreational",37,39,4 +283,"Shop",39,40,4 +283,"Other",41,43,4 +283,"Home",43,48,4 +284,"Home",16,18,4 +284,"Pickup/Dropoff/Deliver",18,19,4 +284,"Work",19,30,4 +284,"Personal",31,35,4 +284,"Shop",35,36,4 +284,"Work",36,42,4 +284,"Shop",42,42,4 +284,"Home",42,48,4 +285,"Home",1,17,4 +285,"Social/Recreational",17,18,4 +285,"Work",18,34,4 +285,"Pickup/Dropoff/Deliver",34,34,4 +285,"Personal",35,35,4 +285,"Shop",35,44,4 +285,"Home",44,48,4 +286,"Home",1,18,4 +286,"Social/Recreational",18,48,4 +286,"Home",48,48,4 +287,"Home",1,20,4 +287,"Social/Recreational",20,23,4 +287,"Personal",28,37,4 +287,"Social/Recreational",37,41,4 +287,"Other",41,43,4 +287,"Home",43,48,4 +288,"Home",1,20,4 +288,"Personal",22,23,4 +288,"Home",25,25,4 +288,"Pickup/Dropoff/Deliver",25,26,4 +288,"Work",26,33,4 +288,"Personal",33,36,4 +288,"Pickup/Dropoff/Deliver",38,42,4 +288,"Home",42,48,4 +289,"Home",1,16,4 +289,"Social/Recreational",16,41,4 +289,"Home",41,48,4 +290,"Home",1,17,4 +290,"Pickup/Dropoff/Deliver",17,17,4 +290,"Work",17,42,4 +290,"Home",42,48,4 +291,"Home",1,18,4 +291,"Work",18,39,4 +291,"Home",39,48,4 +292,"Home",1,18,4 +292,"Study",18,41,4 +292,"Home",41,48,4 +293,"Home",18,21,4 +293,"Personal",24,28,4 +293,"Shop",29,30,4 +293,"Work",30,34,4 +293,"Other",37,41,4 +293,"Home",41,48,4 +294,"Home",1,14,4 +294,"Study",18,26,4 +294,"Work",27,34,4 +294,"Pickup/Dropoff/Deliver",37,42,4 +294,"Home",42,48,4 +295,"Home",1,18,4 +295,"Pickup/Dropoff/Deliver",18,18,4 +295,"Personal",19,26,4 +295,"Shop",31,33,4 +295,"Social/Recreational",33,41,4 +295,"Other",41,43,4 +295,"Home",43,48,4 +296,"Home",1,18,4 +296,"Pickup/Dropoff/Deliver",18,18,4 +296,"Social/Recreational",20,23,4 +296,"Pickup/Dropoff/Deliver",31,31,4 +296,"Shop",32,33,4 +296,"Personal",33,33,4 +296,"Shop",34,35,4 +296,"Home",36,48,4 +297,"Home",1,12,4 +297,"Shop",12,13,4 +297,"Pickup/Dropoff/Deliver",16,44,4 +297,"Home",44,48,4 +298,"Home",18,31,4 +298,"Shop",32,34,4 +298,"Personal",37,47,4 +298,"Home",47,48,4 +299,"Home",1,11,4 +299,"Study",18,26,4 +299,"Social/Recreational",27,27,4 +299,"Shop",27,29,4 +299,"Work",29,33,4 +299,"Social/Recreational",33,43,4 +299,"Home",43,48,4 +300,"Home",1,18,4 +300,"Work",18,19,4 +300,"Shop",19,21,4 +300,"Social/Recreational",21,25,4 +300,"Home",28,30,4 +300,"Personal",30,37,4 +300,"Pickup/Dropoff/Deliver",37,37,4 +300,"Home",39,40,4 +300,"Social/Recreational",40,41,4 +300,"Other",41,43,4 +300,"Home",43,48,4 +301,"Home",1,17,4 +301,"Pickup/Dropoff/Deliver",17,18,4 +301,"Personal",20,24,4 +301,"Home",31,36,4 +301,"Social/Recreational",38,47,4 +301,"Home",47,48,4 +302,"Home",1,14,4 +302,"Pickup/Dropoff/Deliver",18,18,4 +302,"Personal",23,38,4 +302,"Pickup/Dropoff/Deliver",39,39,4 +302,"Home",41,48,4 +303,"Home",13,15,4 +303,"Work",16,33,4 +303,"Home",33,35,4 +303,"Personal",35,36,4 +303,"Other",37,43,4 +303,"Home",43,48,4 +304,"Home",1,18,4 +304,"Social/Recreational",18,40,4 +304,"Other",41,43,4 +304,"Home",43,48,4 +305,"Home",1,14,4 +305,"Shop",14,44,4 +305,"Home",44,48,4 +306,"Home",1,17,4 +306,"Social/Recreational",17,38,4 +306,"Home",41,48,4 +307,"Home",18,21,4 +307,"Work",24,44,4 +307,"Home",44,48,4 +308,"Home",1,18,4 +308,"Work",18,31,4 +308,"Personal",31,31,4 +308,"Pickup/Dropoff/Deliver",32,35,4 +308,"Shop",36,48,4 +308,"Home",48,48,4 +309,"Home",1,25,4 +309,"Shop",25,27,4 +309,"Work",32,37,4 +309,"Other",37,44,4 +309,"Home",44,48,4 +310,"Home",18,31,4 +310,"Pickup/Dropoff/Deliver",32,32,4 +310,"Shop",33,34,4 +310,"Personal",35,46,4 +310,"Home",46,48,4 +311,"Home",1,18,4 +311,"Pickup/Dropoff/Deliver",18,19,4 +311,"Home",19,31,4 +311,"Pickup/Dropoff/Deliver",31,31,4 +311,"Social/Recreational",32,33,4 +311,"Home",33,37,4 +311,"Social/Recreational",37,39,4 +311,"Work",39,40,4 +311,"Other",41,43,4 +311,"Home",43,48,4 +312,"Home",1,16,4 +312,"Social/Recreational",16,18,4 +312,"Work",18,37,4 +312,"Home",40,48,4 +313,"Home",1,17,4 +313,"Pickup/Dropoff/Deliver",17,17,4 +313,"Study",18,26,4 +313,"Home",27,48,4 +314,"Home",1,16,4 +314,"Study",18,26,4 +314,"Social/Recreational",28,36,4 +314,"Personal",37,38,4 +314,"Other",41,43,4 +314,"Home",43,48,4 +315,"Home",1,12,4 +315,"Social/Recreational",12,18,4 +315,"Home",18,24,4 +315,"Work",25,32,4 +315,"Home",32,48,4 +316,"Home",1,18,4 +316,"Pickup/Dropoff/Deliver",18,18,4 +316,"Shop",19,36,4 +316,"Pickup/Dropoff/Deliver",38,38,4 +316,"Social/Recreational",39,43,4 +316,"Home",43,48,4 +317,"Home",1,18,4 +317,"Work",18,34,4 +317,"Home",34,37,4 +317,"Other",37,40,4 +317,"Home",41,48,4 +318,"Home",1,17,4 +318,"Shop",17,21,4 +318,"Home",21,30,4 +318,"Personal",30,35,4 +318,"Pickup/Dropoff/Deliver",35,35,4 +318,"Other",41,43,4 +318,"Home",43,48,4 +319,"Home",1,15,4 +319,"Work",16,32,4 +319,"Shop",32,34,4 +319,"Social/Recreational",36,39,4 +319,"Other",41,43,4 +319,"Home",43,48,4 +320,"Home",1,18,4 +320,"Pickup/Dropoff/Deliver",18,18,4 +320,"Personal",20,21,4 +320,"Work",22,34,4 +320,"Home",41,48,4 +321,"Home",1,18,4 +321,"Social/Recreational",18,19,4 +321,"Personal",20,24,4 +321,"Work",24,25,4 +321,"Home",26,31,4 +321,"Pickup/Dropoff/Deliver",31,31,4 +321,"Personal",33,33,4 +321,"Other",37,43,4 +321,"Home",43,48,4 +322,"Home",1,13,4 +322,"Personal",13,32,4 +322,"Pickup/Dropoff/Deliver",32,32,4 +322,"Personal",35,36,4 +322,"Pickup/Dropoff/Deliver",39,42,4 +322,"Home",42,48,4 +323,"Home",1,23,4 +323,"Work",23,25,4 +323,"Home",25,32,4 +323,"Personal",33,36,4 +323,"Pickup/Dropoff/Deliver",37,37,4 +323,"Other",41,43,4 +323,"Home",43,48,4 +324,"Home",1,15,4 +324,"Work",15,34,4 +324,"Other",41,43,4 +324,"Home",43,48,4 +325,"Home",1,16,4 +325,"Pickup/Dropoff/Deliver",16,17,4 +325,"Home",18,21,4 +325,"Work",21,29,4 +325,"Pickup/Dropoff/Deliver",29,42,4 +325,"Personal",42,46,4 +325,"Home",46,48,4 +326,"Home",1,17,4 +326,"Pickup/Dropoff/Deliver",17,19,4 +326,"Home",19,33,4 +326,"Pickup/Dropoff/Deliver",34,40,4 +326,"Home",41,48,4 +327,"Home",17,20,4 +327,"Personal",20,21,4 +327,"Pickup/Dropoff/Deliver",27,44,4 +327,"Home",44,48,4 +328,"Home",1,27,4 +328,"Shop",27,27,4 +328,"Home",27,30,4 +328,"Work",30,45,4 +328,"Home",45,48,4 +329,"Home",1,18,4 +329,"Work",18,39,4 +329,"Social/Recreational",39,44,4 +329,"Home",44,48,4 +330,"Home",18,18,4 +330,"Pickup/Dropoff/Deliver",18,19,4 +330,"Social/Recreational",28,29,4 +330,"Pickup/Dropoff/Deliver",31,32,4 +330,"Social/Recreational",32,36,4 +330,"Home",36,48,4 +331,"Home",1,18,4 +331,"Pickup/Dropoff/Deliver",18,18,4 +331,"Social/Recreational",24,48,4 +331,"Home",48,48,4 +332,"Home",1,12,4 +332,"Work",12,37,4 +332,"Other",37,41,4 +332,"Home",41,48,4 +333,"Home",1,16,4 +333,"Work",16,28,4 +333,"Social/Recreational",31,33,4 +333,"Pickup/Dropoff/Deliver",33,33,4 +333,"Shop",33,42,4 +333,"Personal",42,48,4 +333,"Home",48,48,4 +334,"Home",1,19,4 +334,"Personal",19,20,4 +334,"Work",20,24,4 +334,"Shop",25,25,4 +334,"Pickup/Dropoff/Deliver",31,31,4 +334,"Home",35,39,4 +334,"Other",41,43,4 +334,"Home",43,48,4 +335,"Home",1,17,4 +335,"Shop",17,17,4 +335,"Social/Recreational",18,33,4 +335,"Other",37,45,4 +335,"Home",45,48,4 +336,"Home",1,18,4 +336,"Pickup/Dropoff/Deliver",18,18,4 +336,"Shop",23,26,4 +336,"Personal",28,29,4 +336,"Pickup/Dropoff/Deliver",29,46,4 +336,"Home",46,48,4 +337,"Home",18,18,4 +337,"Pickup/Dropoff/Deliver",18,18,4 +337,"Social/Recreational",27,29,4 +337,"Work",30,34,4 +337,"Personal",35,36,4 +337,"Social/Recreational",37,39,4 +337,"Shop",39,40,4 +337,"Social/Recreational",40,47,4 +337,"Home",47,48,4 +338,"Home",1,15,4 +338,"Work",16,34,4 +338,"Home",37,48,4 +339,"Home",1,17,4 +339,"Social/Recreational",17,18,4 +339,"Pickup/Dropoff/Deliver",18,19,4 +339,"Work",20,27,4 +339,"Pickup/Dropoff/Deliver",31,31,4 +339,"Work",32,37,4 +339,"Home",38,39,4 +339,"Other",41,43,4 +339,"Home",43,48,4 +340,"Home",1,18,4 +340,"Study",18,26,4 +340,"Social/Recreational",26,35,4 +340,"Work",36,42,4 +340,"Home",42,48,4 +341,"Home",1,18,4 +341,"Study",18,26,4 +341,"Pickup/Dropoff/Deliver",31,32,4 +341,"Social/Recreational",32,33,4 +341,"Shop",34,38,4 +341,"Home",38,48,4 +342,"Home",1,13,4 +342,"Personal",13,13,4 +342,"Pickup/Dropoff/Deliver",18,18,4 +342,"Work",19,36,4 +342,"Social/Recreational",37,44,4 +342,"Home",44,48,4 +343,"Home",1,20,4 +343,"Social/Recreational",21,29,4 +343,"Work",33,35,4 +343,"Pickup/Dropoff/Deliver",35,48,4 +343,"Home",48,48,4 +344,"Home",17,48,4 +345,"Home",1,18,4 +345,"Work",18,36,4 +345,"Home",37,37,4 +345,"Personal",37,47,4 +345,"Home",47,48,4 +346,"Home",1,16,4 +346,"Work",16,31,4 +346,"Pickup/Dropoff/Deliver",31,31,4 +346,"Shop",32,40,4 +346,"Other",41,43,4 +346,"Home",43,48,4 +347,"Home",1,18,4 +347,"Work",18,45,4 +347,"Home",45,48,4 +348,"Home",1,18,4 +348,"Study",18,26,4 +348,"Pickup/Dropoff/Deliver",27,27,4 +348,"Social/Recreational",39,39,4 +348,"Pickup/Dropoff/Deliver",39,39,4 +348,"Home",41,48,4 +349,"Home",18,18,4 +349,"Social/Recreational",18,41,4 +349,"Home",41,48,4 +350,"Home",1,18,4 +350,"Pickup/Dropoff/Deliver",18,18,4 +350,"Work",20,32,4 +350,"Other",41,43,4 +350,"Home",43,48,4 +351,"Home",1,12,4 +351,"Shop",12,15,4 +351,"Social/Recreational",17,18,4 +351,"Work",18,25,4 +351,"Personal",25,27,4 +351,"Work",27,27,4 +351,"Social/Recreational",28,29,4 +351,"Work",30,32,4 +351,"Personal",33,33,4 +351,"Home",41,48,4 +352,"Home",14,31,4 +352,"Shop",31,31,4 +352,"Pickup/Dropoff/Deliver",32,32,4 +352,"Personal",35,35,4 +352,"Shop",35,36,4 +352,"Social/Recreational",36,37,4 +352,"Other",37,45,4 +352,"Home",45,48,4 +353,"Home",1,25,4 +353,"Work",25,44,4 +353,"Home",44,48,4 +354,"Home",16,33,4 +354,"Personal",37,45,4 +354,"Home",45,48,4 +355,"Home",1,17,4 +355,"Pickup/Dropoff/Deliver",17,17,4 +355,"Work",17,36,4 +355,"Home",38,48,4 +356,"Home",1,18,4 +356,"Work",18,20,4 +356,"Personal",20,25,4 +356,"Shop",29,46,4 +356,"Home",46,48,4 +357,"Home",1,18,4 +357,"Study",18,26,4 +357,"Pickup/Dropoff/Deliver",39,39,4 +357,"Other",41,43,4 +357,"Home",43,48,4 +358,"Home",1,18,4 +358,"Work",18,37,4 +358,"Home",41,48,4 +359,"Home",1,18,4 +359,"Pickup/Dropoff/Deliver",18,19,4 +359,"Work",19,34,4 +359,"Home",34,48,4 +360,"Home",1,18,4 +360,"Work",18,36,4 +360,"Other",37,38,4 +360,"Home",41,48,4 +361,"Home",1,31,4 +361,"Social/Recreational",31,34,4 +361,"Other",41,43,4 +361,"Home",43,48,4 +362,"Home",1,16,4 +362,"Work",16,35,4 +362,"Other",41,43,4 +362,"Home",43,48,4 +363,"Home",1,18,4 +363,"Study",18,26,4 +363,"Social/Recreational",27,29,4 +363,"Shop",32,33,4 +363,"Pickup/Dropoff/Deliver",33,34,4 +363,"Home",42,48,4 +364,"Home",18,31,4 +364,"Other",37,41,4 +364,"Home",41,48,4 +365,"Home",18,24,4 +365,"Social/Recreational",24,30,4 +365,"Work",30,39,4 +365,"Shop",39,40,4 +365,"Social/Recreational",40,41,4 +365,"Home",41,48,4 +366,"Home",1,13,4 +366,"Personal",13,13,4 +366,"Pickup/Dropoff/Deliver",18,18,4 +366,"Personal",19,29,4 +366,"Pickup/Dropoff/Deliver",31,32,4 +366,"Social/Recreational",36,39,4 +366,"Other",41,43,4 +366,"Home",43,48,4 +367,"Home",1,18,4 +367,"Pickup/Dropoff/Deliver",18,18,4 +367,"Social/Recreational",20,23,4 +367,"Personal",23,24,4 +367,"Home",24,25,4 +367,"Work",25,37,4 +367,"Home",37,48,4 +368,"Home",1,30,5 +368,"Personal",30,30,5 +368,"Pickup/Dropoff/Deliver",31,32,5 +368,"Home",32,48,5 +369,"Home",1,15,5 +369,"Pickup/Dropoff/Deliver",15,15,5 +369,"Work",17,28,5 +369,"Social/Recreational",28,39,5 +369,"Home",39,48,5 +370,"Home",1,20,5 +370,"Work",20,36,5 +370,"Social/Recreational",36,45,5 +370,"Home",45,48,5 +371,"Home",1,17,5 +371,"Work",17,25,5 +371,"Personal",25,30,5 +371,"Home",33,48,5 +372,"Home",1,23,5 +372,"Shop",23,24,5 +372,"Pickup/Dropoff/Deliver",24,25,5 +372,"Work",25,37,5 +372,"Social/Recreational",37,45,5 +372,"Home",45,48,5 +373,"Home",1,17,5 +373,"Work",17,35,5 +373,"Home",35,48,5 +374,"Home",1,20,5 +374,"Personal",20,24,5 +374,"Pickup/Dropoff/Deliver",25,25,5 +374,"Home",26,48,5 +375,"Home",1,22,5 +375,"Personal",22,22,5 +375,"Home",23,48,5 +376,"Home",1,48,5 +377,"Home",1,22,5 +377,"Social/Recreational",22,22,5 +377,"Pickup/Dropoff/Deliver",24,38,5 +377,"Home",38,48,5 +378,"Home",1,17,5 +378,"Work",17,28,5 +378,"Personal",28,39,5 +378,"Home",39,48,5 +379,"Home",1,22,5 +379,"Shop",22,24,5 +379,"Personal",25,30,5 +379,"Shop",30,35,5 +379,"Home",36,48,5 +380,"Home",1,15,5 +380,"Pickup/Dropoff/Deliver",15,17,5 +380,"Home",22,48,5 +381,"Home",1,17,5 +381,"Work",17,35,5 +381,"Home",37,48,5 +382,"Home",1,20,5 +382,"Work",20,39,5 +382,"Home",39,48,5 +383,"Home",1,22,5 +383,"Social/Recreational",22,33,5 +383,"Home",34,48,5 +384,"Home",23,48,5 +385,"Home",1,24,5 +385,"Pickup/Dropoff/Deliver",24,25,5 +385,"Work",25,34,5 +385,"Home",34,48,5 +386,"Home",1,17,5 +386,"Work",17,25,5 +386,"Personal",25,40,5 +386,"Home",40,48,5 +387,"Home",1,25,5 +387,"Pickup/Dropoff/Deliver",25,41,5 +387,"Home",41,48,5 +388,"Home",1,25,5 +388,"Social/Recreational",25,37,5 +388,"Home",37,48,5 +389,"Home",22,48,5 +390,"Home",1,25,5 +390,"Pickup/Dropoff/Deliver",25,25,5 +390,"Shop",27,44,5 +390,"Home",44,48,5 +391,"Home",1,16,5 +391,"Pickup/Dropoff/Deliver",25,25,5 +391,"Home",28,48,5 +392,"Home",1,17,5 +392,"Work",17,35,5 +392,"Social/Recreational",36,36,5 +392,"Home",36,48,5 +393,"Home",1,20,5 +393,"Work",20,36,5 +393,"Home",36,48,5 +394,"Home",1,22,5 +394,"Personal",22,31,5 +394,"Shop",31,34,5 +394,"Home",34,48,5 +395,"Home",1,23,5 +395,"Shop",23,26,5 +395,"Social/Recreational",28,43,5 +395,"Home",43,48,5 +396,"Home",1,25,5 +396,"Shop",25,39,5 +396,"Home",39,48,5 +397,"Home",1,24,5 +397,"Pickup/Dropoff/Deliver",24,25,5 +397,"Social/Recreational",25,25,5 +397,"Work",25,37,5 +397,"Home",37,48,5 +398,"Home",1,48,5 +399,"Home",1,17,5 +399,"Work",17,25,5 +399,"Personal",28,48,5 +399,"Home",48,48,5 +400,"Home",15,48,5 +401,"Home",1,22,5 +401,"Shop",22,23,5 +401,"Personal",30,33,5 +401,"Social/Recreational",33,33,5 +401,"Home",33,48,5 +402,"Home",1,17,5 +402,"Work",17,28,5 +402,"Shop",30,34,5 +402,"Social/Recreational",37,43,5 +402,"Home",43,48,5 +403,"Home",1,20,5 +403,"Personal",20,39,5 +403,"Home",39,48,5 +404,"Home",1,24,5 +404,"Personal",25,30,5 +404,"Shop",30,35,5 +404,"Social/Recreational",36,36,5 +404,"Home",36,48,5 +405,"Home",1,22,5 +405,"Social/Recreational",22,22,5 +405,"Shop",23,25,5 +405,"Personal",30,30,5 +405,"Pickup/Dropoff/Deliver",31,40,5 +405,"Home",40,48,5 +406,"Home",1,17,5 +406,"Work",17,28,5 +406,"Personal",28,46,5 +406,"Home",46,48,5 +407,"Home",24,31,5 +407,"Pickup/Dropoff/Deliver",31,32,5 +407,"Shop",33,34,5 +407,"Home",34,48,5 +408,"Home",1,22,5 +408,"Shop",22,23,5 +408,"Personal",25,30,5 +408,"Shop",31,32,5 +408,"Social/Recreational",33,41,5 +408,"Home",41,48,5 +409,"Home",1,17,5 +409,"Work",17,35,5 +409,"Home",35,48,5 +410,"Home",1,20,5 +410,"Work",20,36,5 +410,"Home",36,48,5 +411,"Home",1,25,5 +411,"Personal",25,30,5 +411,"Shop",30,35,5 +411,"Home",35,48,5 +412,"Home",1,22,5 +412,"Shop",22,24,5 +412,"Work",25,37,5 +412,"Home",37,48,5 +413,"Home",1,17,5 +413,"Work",17,28,5 +413,"Social/Recreational",28,45,5 +413,"Home",45,48,5 +414,"Home",1,17,5 +414,"Shop",23,40,5 +414,"Home",40,48,5 +415,"Home",1,15,5 +415,"Pickup/Dropoff/Deliver",15,15,5 +415,"Home",25,48,5 +416,"Home",1,22,5 +416,"Personal",22,22,5 +416,"Home",24,48,5 +417,"Home",1,20,5 +417,"Personal",20,24,5 +417,"Shop",25,41,5 +417,"Home",41,48,5 +418,"Home",1,17,5 +418,"Work",17,25,5 +418,"Home",25,26,5 +418,"Shop",27,43,5 +418,"Home",43,48,5 +419,"Home",1,25,5 +419,"Personal",25,30,5 +419,"Shop",30,35,5 +419,"Home",36,48,5 +420,"Home",1,23,5 +420,"Personal",28,30,5 +420,"Pickup/Dropoff/Deliver",31,32,5 +420,"Shop",33,43,5 +420,"Home",43,48,5 +421,"Home",1,17,5 +421,"Work",17,28,5 +421,"Pickup/Dropoff/Deliver",31,32,5 +421,"Social/Recreational",33,45,5 +421,"Home",45,48,5 +422,"Home",1,22,5 +422,"Social/Recreational",22,22,5 +422,"Shop",23,26,5 +422,"Pickup/Dropoff/Deliver",31,32,5 +422,"Shop",33,34,5 +422,"Social/Recreational",37,45,5 +422,"Home",45,48,5 +423,"Home",1,13,5 +423,"Work",17,35,5 +423,"Social/Recreational",36,36,5 +423,"Home",36,48,5 +424,"Home",1,20,5 +424,"Personal",20,24,5 +424,"Pickup/Dropoff/Deliver",24,25,5 +424,"Social/Recreational",25,28,5 +424,"Personal",30,30,5 +424,"Home",31,48,5 +425,"Home",1,17,5 +425,"Work",17,28,5 +425,"Social/Recreational",28,45,5 +425,"Home",45,48,5 +426,"Home",1,15,5 +426,"Pickup/Dropoff/Deliver",15,15,5 +426,"Personal",22,22,5 +426,"Shop",23,24,5 +426,"Home",25,48,5 +427,"Home",1,15,5 +427,"Shop",22,23,5 +427,"Social/Recreational",25,35,5 +427,"Home",35,48,5 diff --git a/tests/testthat/testPlan.R b/tests/testthat/testPlan.R index e484b18..641baad 100644 --- a/tests/testthat/testPlan.R +++ b/tests/testthat/testPlan.R @@ -4,14 +4,26 @@ source("../../R/plan.R") test_that("VISTA-like plans generation works", { set.seed(12345) - csv<-paste0('../expected/1.setup/vista_2012_18_extracted_activities_weekday_time_bins.csv.gz') - endcsv<-paste0('../expected/1.setup/vista_2012_18_extracted_activities_weekday_end_dist_for_start_bins.csv.gz') - binCols<-3:50 # specifies that columns 3-50 correspond to 48 time bins, i.e., 30-mins each - outdir<-'../actual/3.plan' + outdir<-'../actual/4.plan' dir.create(outdir, showWarnings = FALSE, recursive=TRUE) - writeInterval <- 20 # write to file every 1000 plans + + capture_output( + generatePlansByGroup( + getGroupIds('../data/vistaCohorts.csv.gz'), + '../expected/3.match/match_', + '../expected/1.setup/vista_2012_18_extracted_activities_weekday_time_bins_', + '../expected/1.setup/vista_2012_18_extracted_activities_weekday_end_dist_for_start_bins_', + 3:50, # specifies that columns 3-50 correspond to 48 time bins, i.e., 30-mins each + '../actual/4.plan/', + 20 # write to file every so often + ) + ) capture_output( - generatePlans(50, csv, endcsv, binCols, outdir, writeInterval) + combinePlans( + getGroupIds('../data/vistaCohorts.csv.gz'), + '../actual/4.plan/', + '../actual/4.plan/plan.csv' + ) ) files<-c( @@ -24,9 +36,15 @@ test_that("VISTA-like plans generation works", { 'analysis-activity-times-by-bin.pdf', 'plan.csv' ) - for (file in files) { - expect_true(file.exists(paste0('../actual/3.plan/', file))) + + groups<-getGroupIds('../data/vistaCohorts.csv.gz') + for (gid in groups) { + for (file in files) { + expect_true(file.exists(paste0('../actual/4.plan/',gid,'/',file))) + } } - expect_true(md5sum('../actual/3.plan/plan.csv') == md5sum('../expected/3.plan/plan.csv')) + + expect_true(file.exists('../actual/4.plan/plan.csv')) + expect_true(md5sum('../actual/4.plan/plan.csv') == md5sum('../expected/4.plan/plan.csv')) }) \ No newline at end of file