Skip to content

Commit

Permalink
Merge pull request #198 from Caliper-Corporation/dev
Browse files Browse the repository at this point in the history
Bring final model changes into main
  • Loading branch information
dkyleward committed Apr 12, 2022
2 parents 2436d3a + 07e1771 commit ba74ffa
Show file tree
Hide file tree
Showing 131 changed files with 2,576 additions and 1,975 deletions.
2 changes: 1 addition & 1 deletion docs/R/ieei.R
Expand Up @@ -4,7 +4,7 @@ data_dir <- "data/input/ieei/"
output_dir <- "data/output/ieei/"
master_dir <- "../master/"

taz_shape_filename <- paste0(master_dir, "tazs/master_tazs.shp")
taz_shape_filename <- "data/input/tazs/master_tazs.shp"
socec_filename <- paste0(data_dir, "se_2016.csv")
consolidated_streetlight_filename <- paste0(private_dir, "streetlight-ieei-flows.RDS")
ncstm_filename <- paste0(data_dir, "ncstm-demand.rds")
Expand Down
2 changes: 2 additions & 0 deletions docs/_site.yml
Expand Up @@ -31,6 +31,8 @@ navbar:
href: parking.html
- text: "Destination Choice"
href: resident_dest_choice.html
- text: "Mode Choice"
href: resident_mode_choice.html
- text: "Non-homebased"
href: nhb.html
- text: Other Models
Expand Down
48 changes: 13 additions & 35 deletions docs/assignment_roadway.Rmd
Expand Up @@ -71,54 +71,32 @@ added to HOV3+.

## Value of time

Once trips are collapsed into the primary vehicle classes, they are split into
different value of time categories. The procedure for doing this is borrowed
from the NC Statewide Model
([documentation](other_docs/NCSTM_TollDocumentation_Section11-2.docx)). For
residents, this stratification is informed by household income, time of day of
the trip, and by the length of the trip.
Once trips are collapsed into the primary vehicle classes, they are assigned
values of time. The base values were borrowed from the NC Statewide Model, but
were then calibrated to match NC 540 traffic counts.

Qualitatively, value of time goes up:

- As income increases
- As trip length increases
- In the peak periods (where work trips are most common)

The NCSTM/TRMG2 procedure divides each class into five VOT categories, except
SUT which is divided into three. These are shown in the table below.
```{r, include=FALSE}
tbl <- read_csv("../master/assignment/vot_params.csv")
```

```{r}
tbl <- tbl[1:18, c("Name", "Value")]
tbl <- tbl %>%
separate(Name, into = c("a", "b", "c"), fill = "right") %>%
mutate(
Name = ifelse(!is.na(c), paste(a, b), a),
VOT = ifelse(is.na(c), b, c)
) %>%
select(Name, VOT, Value) %>%
pivot_wider(names_from = Name, values_from = Value) %>%
mutate(VOT = gsub("vot", "", VOT)) %>%
rename(
`VOT Group` = VOT,
`PK Auto` = `pk auto`,
`OP Auto` = `op auto`,
SUT = sut,
MUT = mut
)
select(Name, Value) %>%
mutate(Name = case_when(
Name == "pk_auto" ~ "Autos/CV (PK)",
Name == "op_auto" ~ "Autos/CV (OP)",
Name == "sut" ~ "SUT",
Name == "mut" ~ "MUT",
TRUE ~ "Calibration Factor"
)) %>%
rename(`VOT ($/hr)` = Value)
tbl %>%
kable() %>%
kable_styling(full_width = FALSE)
```

Such a high number of classes significantly increases assignment run time. To
mitigate this, categories 1-3 for the auto classes are collapsed and use the
values from VOT group 2. This trade off is reasonable given that it is the
higher VOT categories that are most likely to consider toll facilities.

## Assignment parameters

Relevant assignment details are listed below:
Expand Down

0 comments on commit ba74ffa

Please sign in to comment.