All modes now need to be explicitly specified for scoring

Dear community,

With a recent commit I changed the default for the scoring behavior.  

In the past, any mode encountered in the plans file that was not specified for scoring was treated as TransportMode.other, which had some default scoring parameters.

With the new version, such code will now throw an exception during scoring and then abort.

Reasons for this change:

  • The old behavior was automagic, and we are trying to move away from automagic.  The most recent problem that this one here caused was that someone had mode=“pt_slow” in the plans file, but mode=“slow_pt” defined in the scoring section of the config file.  Evidently, the code ran without problems, but used the pre-specified scoring parameters of TransportMode.other rather than the intended ones.
  • We would also say that the config structure should now be flexible enough to fully specify such situations, so the code does not have to hedge as much as before against plausible but not configurable use cases.

In config v2 format, you will need something like

		<parameterset type="modeParams" >
			<param name="constant" value="0.0" />
			<param name="marginalUtilityOfDistance_util_m" value="0.0" />
			<param name="marginalUtilityOfTraveling_util_hr" value="-6.0" />
			<param name="mode" value=“mySpecialMode" />
			<param name="monetaryDistanceRate" value="0.0" />
		</parameterset>

Best wishes

Kai