ActivitySim/sandag-abm3-example

Sharrow performance in non-mandatory disaggregate accessibility

Opened this issue · 0 comments

In this expression (and others like it)

Distance_female,"@_DIST.clip(0,20) * df.female * np.where(df.get('tour_category', default=False) == 'joint', 0, 1)",coef_zero,coef_distfemale_shopping,coef_zero,coef_zero,coef_zero,coef_distfemale_disc

the term df.get('tour_category', default=False) == 'joint' is resolved by sharrow to be df['tour_category'] == 'joint' when the tour_category column is present in the input data.

Currently, in disaggregate accessibility, this expression is not further compiling down to use a categorical dtype from tour_category to convert the string comparison to an integer comparison. This might be a bug in sharrow (fails to use categorical dtype inside .get terms) or a bug in ActivitySim (tour_category isn't correctly encoded as categorical at this point in the model).