PlanPrep::PlanPrep (void) : Data_Service (), Select_Service () { Program ("PlanPrep"); Version (9); Title ("Travel Plan Processing Utility"); System_File_Type required_files [] = { PLAN, END_FILE }; System_File_Type optional_files [] = { SELECTION, NEW_PLAN, END_FILE }; int data_service_keys [] = { TRIP_SORT_TYPE, PLAN_SORT_TYPE, 0 }; int select_service_keys [] = { SELECT_HOUSEHOLDS, SELECT_MODES, SELECT_PURPOSES, SELECT_START_TIMES, SELECT_END_TIMES, SELECT_ORIGINS, SELECT_DESTINATIONS, SELECT_TRAVELER_TYPES, SELECT_LINKS, SELECT_NODES, SELECT_SUBAREA_POLYGON, SELECTION_PERCENTAGE, DELETION_FILE, DELETION_FORMAT, DELETE_HOUSEHOLDS, DELETE_MODES, DELETE_TRAVELER_TYPES, 0 }; Control_Key keys [] = { //--- code, key, level, status, type, default, range, help ---- { MERGE_PLAN_FILE, "MERGE_PLAN_FILE", LEVEL0, OPT_KEY, IN_KEY, "", PARTITION_RANGE, NO_HELP }, { MERGE_PLAN_FORMAT, "MERGE_PLAN_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, FORMAT_HELP }, { MAXIMUM_SORT_SIZE, "MAXIMUM_SORT_SIZE", LEVEL0, OPT_KEY, INT_KEY, "0", "0, >=100000 trips", NO_HELP }, END_CONTROL }; const char *reports [] = { //"FIRST_REPORT", //"SECOND_REPORT", "" }; Required_System_Files (required_files); Optional_System_Files (optional_files); Data_Service_Keys (data_service_keys); Select_Service_Keys (select_service_keys); Key_List (keys); Report_List (reports); Enable_Partitions (true); #ifdef BOOST_THREADS Enable_Threads (true); #endif #ifdef MPI_EXE Enable_MPI (true); #endif plan_processing = 0; sort_size = 0; select_flag = merge_flag = combine_flag = output_flag = new_plan_flag = false; System_Read_False (PLAN); System_Data_Reserve (PLAN, 0); }
PlanCompare::PlanCompare (void) : Data_Service (), Select_Service () { Program ("PlanCompare"); Version (3); Title ("Travel Plan Comparison Utility"); System_File_Type required_files [] = { PLAN, END_FILE }; System_File_Type optional_files [] = { SELECTION, NEW_SELECTION, NEW_PLAN, END_FILE }; int data_service_keys [] = { DAILY_WRAP_FLAG, SUMMARY_TIME_RANGES, SUMMARY_TIME_INCREMENT, PERIOD_CONTROL_POINT, 0 }; int select_service_keys [] = { SELECT_HOUSEHOLDS, SELECT_MODES, SELECT_PURPOSES, SELECT_START_TIMES, SELECT_END_TIMES, SELECT_ORIGINS, SELECT_DESTINATIONS, SELECT_VEHICLE_TYPES, SELECT_TRAVELER_TYPES, SELECT_LINKS, SELECT_NODES, SELECT_SUBAREAS, SELECTION_POLYGON, PERCENT_TIME_DIFFERENCE, MINIMUM_TIME_DIFFERENCE, MAXIMUM_TIME_DIFFERENCE, PERCENT_COST_DIFFERENCE, MINIMUM_COST_DIFFERENCE, MAXIMUM_COST_DIFFERENCE, PERCENT_PATH_DIFFERENCE, MINIMUM_PATH_DIFFERENCE, MAXIMUM_PATH_DIFFERENCE, SELECTION_PERCENTAGE, MAXIMUM_PERCENT_SELECTED, DELETION_FILE, DELETION_FORMAT, DELETE_HOUSEHOLDS, DELETE_MODES, DELETE_TRAVELER_TYPES, 0 }; Control_Key keys [] = { //--- code, key, level, status, type, default, range, help ---- { COMPARE_PLAN_FILE, "COMPARE_PLAN_FILE", LEVEL0, REQ_KEY, IN_KEY, "", PARTITION_RANGE, NO_HELP }, { COMPARE_PLAN_FORMAT, "COMPARE_PLAN_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, FORMAT_HELP }, { COMPARE_GENERALIZED_COSTS, "COMPARE_GENERALIZED_COSTS", LEVEL0, OPT_KEY, BOOL_KEY, "FALSE", BOOL_RANGE, NO_HELP }, { SELECTION_METHOD, "SELECTION_METHOD", LEVEL0, OPT_KEY, TEXT_KEY, "RANDOM", SELECT_METHOD_RANGE, NO_HELP }, { MERGE_PLAN_FILES, "MERGE_PLAN_FILES", LEVEL0, OPT_KEY, BOOL_KEY, "FALSE", BOOL_RANGE, NO_HELP }, { TIME_DISTRIBUTION_MINIMUM, "TIME_DISTRIBUTION_MINIMUM", LEVEL0, OPT_KEY, TIME_KEY, "-60 minutes", "-360..0", NO_HELP }, { TIME_DISTRIBUTION_COUNT, "TIME_DISTRIBUTION_COUNT", LEVEL0, OPT_KEY, INT_KEY, "151", "50..500", NO_HELP }, { TIME_DISTRIBUTION_INCREMENT, "TIME_DISTRIBUTION_INCREMENT", LEVEL0, OPT_KEY, TIME_KEY, "1 minute", "1..60 minutes", NO_HELP }, { COST_DISTRIBUTION_MINIMUM, "COST_DISTRIBUTION_MINIMUM", LEVEL0, OPT_KEY, INT_KEY, "-360 impedance", "-360..0 impedance", NO_HELP }, { COST_DISTRIBUTION_COUNT, "COST_DISTRIBUTION_COUNT", LEVEL0, OPT_KEY, INT_KEY, "151", "50..500", NO_HELP }, { COST_DISTRIBUTION_INCREMENT, "COST_DISTRIBUTION_INCREMENT", LEVEL0, OPT_KEY, INT_KEY, "5 impedance", "1..500", NO_HELP }, { NEW_TIME_DISTRIBUTION_FILE, "NEW_TIME_DISTRIBUTION_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP }, { NEW_COST_DISTRIBUTION_FILE, "NEW_COST_DISTRIBUTION_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP }, { NEW_TRIP_TIME_GAP_FILE, "NEW_TRIP_TIME_GAP_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP }, { NEW_TRIP_COST_GAP_FILE, "NEW_TRIP_COST_GAP_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", FILE_RANGE, NO_HELP }, { NEW_TRIP_MATCH_FILE, "NEW_TRIP_MATCH_FILE", LEVEL0, OPT_KEY, OUT_KEY, "", PARTITION_RANGE, NO_HELP }, { NEW_TRIP_MATCH_FORMAT, "NEW_TRIP_MATCH_FORMAT", LEVEL0, OPT_KEY, TEXT_KEY, "TAB_DELIMITED", FORMAT_RANGE, FORMAT_HELP }, END_CONTROL }; const char *reports [] = { "TOTAL_TIME_DISTRIBUTION", "PERIOD_TIME_DISTRIBUTIONS", "TOTAL_TIME_SUMMARY", "PERIOD_TIME_SUMMARY", "TOTAL_COST_DISTRIBUTION", "PERIOD_COST_DISTRIBUTIONS", "TOTAL_COST_SUMMARY", "PERIOD_COST_SUMMARY", "TRIP_TIME_GAP_REPORT", "TRIP_COST_GAP_REPORT", "" }; Required_System_Files (required_files); Optional_System_Files (optional_files); Data_Service_Keys (data_service_keys); Select_Service_Keys (select_service_keys); Key_List (keys); Report_List (reports); Enable_Partitions (true); #ifdef THREADS Enable_Threads (true); #endif #ifdef MPI_EXE Enable_MPI (true); #endif select_flag = cost_flag = time_sum_flag = cost_sum_flag = time_gap_flag = cost_gap_flag = merge_flag = false; select_parts = time_sort = match_flag = false; method = RANDOM_METHOD; num_trips = num_select = 0; cost_diff.Cost_Flag (true); cost_gap.Cost_Flag (true); System_Read_False (PLAN); System_Data_Reserve (PLAN, 0); }