matsim-org / matsim-libs

Multi-Agent Transport Simulation
www.matsim.org
484 stars 447 forks source link

a strange output_plan attribute which makes modestates.chart a mystery #3277

Open MniNEO opened 5 months ago

MniNEO commented 5 months ago

Hello there! Thanks for helping me with my problem: Running successfully, but finding some problems in output plans: In the output_plan.xml. Innovation mode will be found in the link even without this mode. And which will make an influence in the output modestats! Is this an bug or something else? image image the link 1a_1 without rail mode

Janekdererste commented 5 months ago

Assuming, that rail is a public transit mode, synthetic persons may start on regular links, walk to the station and then actually enter a rail vehicle. In your case, it seems like no suitable rail connection was found, and your person walked the entire way instead of entering the train in between. I think the public transit router checks whether walking is faster compared to taking a train connection.

The modestats output considers the routing mode of legs. If you want a more detailed output, you could use trips.csv, which contains the routing mode, as well as the modes of the individual legs of each trip.

MniNEO commented 5 months ago

but sometimes the output result will be like this image The link 1_2 is an express link which only one mode--express. But in the output plan, leg mode is correct, routingMode's attribute demonstrate 'uam' is puzzal

MniNEO commented 5 months ago

there alse a problem about config.xml-scoringParameters-modeParams, image we have to add "pt" modeParams even we don't name any modes with "pt" image deleting pt modeParams will results errors like the following ''' 2024-05-22T10:59:31,716 ERROR MatsimRuntimeModifications:76 Getting uncaught Exception in Thread main com.google.inject.ProvisionException: Unable to provision, see the following errors: ''' [Guice/ErrorInjectingConstructor]: NullPointerException: Cannot invoke "org.matsim.core.config.groups.PlanCalcScoreConfigGroup$ModeParams.getMarginalUtilityOfTraveling()" because the return value of "java.util.Map.get(Object)" is null ''' seems that MATSim still try to find some params of mode 'pt', which is not supposed to be required anymore!

Janekdererste commented 5 months ago

Hm, could you make your setup available, so that I can have a look?

Also, we prefer text to screenshots for code snippets. you can add code blocks like the following one:

I am a code block 
MniNEO commented 5 months ago

thanks for your response! I've come across a couple of snags in my output_plan that have me a bit puzzled: 1.It looks like the plan with the higher score wasn't the one that got chosen, and instead, the one with the lower score was selected. I'm wondering why that might have happened? 2.Additionally, there's a plan that's tagged with a pt_shuttlebus attribute, but when I look at the leg mode, it's showing as 'walk'. That's quite surprising because we've already set up the corresponding pt_shuttlebus routes in the schedule. My config.xml and output_plan.xml example are as follows! Thanks for your time and patients again!

config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config SYSTEM "http://www.matsim.org/files/dtd/config_v2.dtd">
<config>
    <module name="JDEQSim" >
        <param name="carSize" value="7.5" />
        <param name="endTime" value="undefined" />
        <param name="flowCapacityFactor" value="1.0" />
        <param name="gapTravelSpeed" value="15.0" />
        <param name="minimumInFlowCapacity" value="1800.0" />
        <param name="squeezeTime" value="1800.0" />
        <param name="storageCapacityFactor" value="1.0" />
    </module>
    <module name="ReplanningAnnealer" >
        <!-- Activate the scaling of replanning modules using an annealing approach rather than fixed rates. -->
        <param name="activateAnnealingModule" value="false" />
    </module>
    <module name="TimeAllocationMutator" >
        <!-- Default:true; Defines whether time mutation changes an activity's duration. -->
        <param name="mutationAffectsDuration" value="true" />
        <!-- Default:1800.0; Defines how many seconds a time mutation can maximally shift a time. -->
        <param name="mutationRange" value="1800.0" />
    </module>
    <module name="changeMode" >
        <!-- Defines whether car availability is considered be considered or not. An agent has no car only if it has no license, or never access to a car. Default: true -->
        <param name="ignoreCarAvailability" value="true" />
        <!-- Defines the mode switch behavior. Possible values [fromAllModesToSpecifiedModes, fromSpecifiedModesToSpecifiedModes] Default: fromSpecifiedModesToSpecifiedModes. -->
        <param name="modeSwitchBehavior" value="fromSpecifiedModesToSpecifiedModes" />
        <!-- Defines all the modes available, including chain-based modes, seperated by commas -->
        <param name="modes" value="car,pt_rail,pt_metro,pt_express,pt_shuttlebus,pt_ferry,pt_uam" />
    </module>
    <module name="controler" >
        <!-- Defines what should be done with the ITERS directory when a simulation finished successfully -->
        <param name="cleanItersAtEnd" value="keep" />
        <!-- Compression algorithm to use when writing out data to files. Possible values: [none, gzip, lz4, zst] -->
        <param name="compressionType" value="gzip" />
        <!-- Sets whether graphs showing some analyses should automatically be generated during the simulation. The generation of graphs usually takes a small amount of time that does not have any weight in big simulations, but add a significant overhead in smaller runs or in test cases where the graphical output is not even requested. -->
        <param name="createGraphs" value="true" />
        <!-- Defines when the scoring functions for the population are created. Default=IterationStarts. Possible values: [IterationStarts, BeforeMobsim] -->
        <param name="createScoringFunctionType" value="IterationStarts" />
        <!-- true if at the end of a run, plans, network, config etc should be dumped to a file -->
        <param name="dumpDataAtEnd" value="true" />
        <!-- Default=false. If enabled, the router takes travel times needed for turning moves into account. Cannot be used if the (Fast)AStarLandmarks routing or TravelTimeCalculator.separateModes is enabled. -->
        <param name="enableLinkToLinkRouting" value="false" />
        <!-- Default=xml; Specifies the file format for writing events. Currently supported: [xml, pb, json]
        Multiple values can be specified separated by commas (','). -->
        <param name="eventsFileFormat" value="xml" />
        <!-- Default=0. First Iteration of a simulation. -->
        <param name="firstIteration" value="0" />
        <!-- Default=1000. Last Iteration of a simulation. -->
        <param name="lastIteration" value="5" />
        <!-- Defines which mobility simulation will be used. Currently supported: qsim JDEQSim hermes 
        Depending on the chosen mobsim, you'll have to add additional config modules to configure the corresponding mobsim.
        For 'qsim', add a module 'qsim' to the config. -->
        <param name="mobsim" value="qsim" />
        <param name="outputDirectory" value="./scenarios/gdp_uam/test-009/output/TEST0T16tfWM300和aTT1800bike和walk的hr-1.0" />
        <!-- Possible values: failIfDirectoryExists,overwriteExistingFiles,deleteDirectoryIfExists -->
        <param name="overwriteFiles" value="deleteDirectoryIfExists" />
        <!-- The type of routing (least cost path) algorithm used, may have the values: [Dijkstra, AStarLandmarks, FastDijkstra, FastAStarLandmarks, SpeedyALT] -->
        <param name="routingAlgorithmType" value="AStarLandmarks" />
        <!-- An identifier for the current run which is used as prefix for output files and mentioned in output xml files etc. -->
        <param name="runId" value="null" />
        <!-- Comma-separated list of visualizer output file formats. `transims' and `otfvis'. -->
        <param name="snapshotFormat" value="" />
        <!-- iterationNumber % writeEventsInterval == 0 defines in which iterations events are written to a file. `0' disables events writing completely. -->
        <param name="writeEventsInterval" value="5" />
        <!-- iterationNumber % writePlansInterval == 0 defines (hopefully) in which iterations plans are written to a file. `0' disables plans writing completely.  Some plans in early iterations are always written -->
        <param name="writePlansInterval" value="5" />
        <!-- iterationNumber % writeSnapshotsInterval == 0 defines in which iterations snapshots are written to a file. `0' disables snapshots writing completely -->
        <param name="writeSnapshotsInterval" value="5" />
        <!-- iterationNumber % writeEventsInterval == 0 defines in which iterations trips CSV are written to a file. `0' disables trips writing completely. -->
        <param name="writeTripsInterval" value="5" />
    </module>
    <module name="counts" >
        <!-- Transport modes that will be respected for the counts comparison. 'car' is default, which includes also bussed from the pt simulation module. Use this parameter in combination with 'filterModes' = true! -->
        <param name="analyzedModes" value="car" />
        <!-- Specifies over how many iterations the link volumes should be averaged that are used for the counts comparison. Use 1 or 0 to only use the link volumes of a single iteration. This values cannot be larger than the value specified for writeCountsInterval -->
        <param name="averageCountsOverIterations" value="5" />
        <!-- factor by which to re-scale the simulated values.  necessary when simulation runs with something different from 100%.  needs to be adapted manually -->
        <param name="countsScaleFactor" value="1.0" />
        <!-- distance to distanceFilterCenterNode to include counting stations. The unit of distance is the Euclidean distance implied by the coordinate system -->
        <param name="distanceFilter" value="null" />
        <!-- node id for center node of distance filter -->
        <param name="distanceFilterCenterNode" value="null" />
        <!-- If true, link counts from legs performed on modes not included in the 'analyzedModes' parameter are ignored. -->
        <param name="filterModes" value="false" />
        <!-- The Coordinates Reference System in which the coordinates are expressed in the input file. At import, the coordinates will be converted to the coordinate system defined in "global", and willbe converted back at export. If not specified, no conversion happens. -->
        <param name="inputCRS" value="null" />
        <!-- input file name to counts package -->
        <param name="inputCountsFile" value="null" />
        <!-- possible values: `html', `txt', `all' -->
        <param name="outputformat" value="txt" />
        <!-- Specifies how often the counts comparison should be calculated and written. -->
        <param name="writeCountsInterval" value="10" />
    </module>
    <module name="facilities" >
        <!-- This defines how facilities should be created. Possible values: none fromFile setInScenario onePerActivityLinkInPlansFile onePerActivityLinkInPlansFileExceptWhenCoordinatesAreGiven onePerActivityLocationInPlansFile  -->
        <param name="facilitiesSource" value="none" />
        <!-- A prefix to be used for auto-generated IDs. -->
        <param name="idPrefix" value="f_auto_" />
        <!-- The Coordinates Reference System in which the coordinates are expressed in the input file. At import, the coordinates will be converted to the coordinate system defined in "global", and willbe converted back at export. If not specified, no conversion happens. -->
        <param name="inputCRS" value="null" />
        <param name="inputFacilitiesFile" value="null" />
        <param name="inputFacilityAttributesFile" value="null" />
        <param name="insistingOnUsingDeprecatedFacilitiesAttributeFile" value="false" />
    </module>
    <module name="global" >
        <param name="coordinateSystem" value="EPSG:3857" />
        <param name="defaultDelimiter" value=";" />
        <param name="insistingOnDeprecatedConfigVersion" value="true" />
        <!-- "global" number of threads.  This number is used, e.g., for replanning, but NOT in QSim.  This can typically be set to as many cores as you have available, or possibly even slightly more. -->
        <param name="numberOfThreads" value="10" />
        <param name="randomSeed" value="42" />
    </module>
    <module name="hermes" >
        <!-- Simulation End Time -->
        <param name="endTime" value="30:00:00" />
        <param name="flowCapacityFactor" value="1.0" />
        <param name="mainMode" value="car" />
        <param name="storageCapacityFactor" value="1.0" />
        <!-- time in seconds.  Time after which the frontmost vehicle on a link is called `stuck' if it does not move. Set to Integer.MAX_VALUE to disable this behavior -->
        <param name="stuckTime" value="10" />
        <!-- treats PT as deterministic. PT vehicles will run with a steady speed. Should be used with separate network layers for PT and other network modes. -->
        <param name="useDeterministicPt" value="false" />
    </module>
    <module name="households" >
        <param name="inputFile" value="null" />
        <param name="inputHouseholdAttributesFile" value="null" />
        <param name="insistingOnUsingDeprecatedHouseholdsAttributeFile" value="false" />
    </module>
    <module name="linkStats" >
        <!-- Specifies over how many iterations the link volumes should be averaged that are used for the link statistics. Use 1 or 0 to only use the link volumes of a single iteration. This values cannot be larger than the value specified for writeLinkStatsInterval -->
        <param name="averageLinkStatsOverIterations" value="5" />
        <!-- Specifies how often the link stats should be calculated and written. Use 0 to disable the generation of link stats. -->
        <param name="writeLinkStatsInterval" value="50" />
    </module>
    <module name="network" >
        <!-- The Coordinates Reference System in which the coordinates are expressed in the input file. At import, the coordinates will be converted to the coordinate system defined in "global", and willbe converted back at export. If not specified, no conversion happens. -->
        <param name="inputCRS" value="null" />
        <param name="inputChangeEventsFile" value="null" />
        <param name="inputNetworkFile" value="network_road_tp_cleaned_uam_manual.xml" />
        <param name="laneDefinitionsFile" value="null" />
        <param name="timeVariantNetwork" value="false" />
    </module>
    <module name="parallelEventHandling" >
        <!-- Estimated number of events during mobsim run. An optional optimization hint for the framework. -->
        <param name="estimatedNumberOfEvents" value="null" />
        <!-- Size of the events Queue. Increase for very large scenarios -->
        <param name="eventsQueueSize" value="131072" />
        <!-- Number of threads for parallel events handler. _null_ means the framework decides by itself. 0 is currently not possible. -->
        <param name="numberOfThreads" value="null" />
        <!-- If enabled, each event handler is assigned to its own thread. Note that enabling this feature disabled the numberOfThreads option! This feature is still experimental! -->
        <param name="oneThreadPerHandler" value="false" />
        <!-- If enabled, it is ensured that all events that are created during a time step of the mobility simulation are processed before the next time step is simulated. E.g. neccessary when within-day replanning is used. -->
        <param name="synchronizeOnSimSteps" value="true" />
    </module>
    <module name="planCalcScore" >
        <!-- logit model scale parameter. default: 1.  Has name and default value for historical reasons (see Bryan Raney's phd thesis). -->
        <param name="BrainExpBeta" value="2.0" />
        <param name="PathSizeLogitBeta" value="1.0" />
        <!-- fraction of iterations at which MSA score averaging is started. The matsim theory department suggests to use this together with switching off choice set innovation (where a similar switch exists), but it has not been tested yet. -->
        <param name="fractionOfIterationsToStartScoreMSA" value="null" />
        <!-- new_score = (1-learningRate)*old_score + learningRate * score_from_mobsim.  learning rates close to zero emulate score averaging, but slow down initial convergence -->
        <param name="learningRate" value="1.0" />
        <!-- There used to be a plateau between duration=0 and duration=zeroUtilityDuration. This caused durations to evolve to zero once they were below zeroUtilityDuration, causing problems.  Only use this switch if you need to be backwards compatible with some old results.  (changed nov'13) -->
        <param name="usingOldScoringBelowZeroUtilityDuration" value="false" />
        <!-- write a plans file in each iteration directory which contains what each agent actually did, and the score it received. -->
        <param name="writeExperiencedPlans" value="false" />
        <parameterset type="scoringParameters" >
            <param name="earlyDeparture" value="-0.0" />
            <param name="lateArrival" value="0.0" />
            <param name="marginalUtilityOfMoney" value="1.0" />
            <param name="performing" value="20.0" />
            <param name="subpopulation" value="null" />
            <param name="utilityOfLineSwitch" value="-1.0" />
            <param name="waiting" value="-0.0" />
            <param name="waitingPt" value="-0.0" />
            <parameterset type="activityParams" >
                <param name="activityType" value="h" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="true" />
                <!-- typical duration of activity.  needs to be defined and non-zero.  in sec. -->
                <param name="typicalDuration" value="10:00:00" />
                <!-- method to compute score at typical duration.  Options: | uniform | relative | Use uniform for backwards compatibility (all activities same score; higher proba to drop long acts). -->
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="w" />
                <param name="closingTime" value="18:00:00" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="12:00:00" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="10:00:00" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="true" />
                <param name="typicalDuration" value="08:00:00" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="car interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_uam interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_shuttlebus interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_metro interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_express interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_rail interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="pt_ferry interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="walk interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="activityParams" >
                <param name="activityType" value="bike interaction" />
                <param name="closingTime" value="undefined" />
                <param name="earliestEndTime" value="undefined" />
                <param name="latestStartTime" value="undefined" />
                <param name="minimalDuration" value="undefined" />
                <param name="openingTime" value="undefined" />
                <param name="priority" value="1.0" />
                <param name="scoringThisActivityAtAll" value="false" />
                <param name="typicalDuration" value="undefined" />
                <param name="typicalDurationScoreComputation" value="relative" />
            </parameterset>
            <parameterset type="modeParams" >
                <!-- [utils] alternative-specific constant.  Normally per trip, but that is probably buggy for multi-leg trips. -->
                <param name="constant" value="0.0" />
                <!-- [unit_of_money/day] Fixed cost of mode, per day. -->
                <param name="dailyMonetaryConstant" value="0.0" />
                <!-- [utils] daily utility constant. default=0 to be backwards compatible -->
                <param name="dailyUtilityConstant" value="0.0" />
                <!-- [utils/m] utility of traveling (e.g. walking or driving) per m, normally negative.  this is on top of the time (dis)utility. -->
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <!-- [utils/hr] additional marginal utility of traveling.  normally negative.  this comes on top of the opportunity cost of time -->
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="car" />
                <!-- [unit_of_money/m] conversion of distance into money. Normally negative. -->
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_uam" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_express" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_rail" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_ferry" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_shuttlebus" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.0" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-0.0" />
                <param name="mode" value="pt_metro" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.1" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-3.6" />
                <param name="mode" value="bike" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
            <parameterset type="modeParams" >
                <param name="constant" value="0.0" />
                <param name="dailyMonetaryConstant" value="0.0" />
                <param name="dailyUtilityConstant" value="0.0" />
                <param name="marginalUtilityOfDistance_util_m" value="-0.1" />
                <param name="marginalUtilityOfTraveling_util_hr" value="-3.6" />
                <param name="mode" value="walk" />
                <param name="monetaryDistanceRate" value="-0.0" />
            </parameterset>
        </parameterset>
    </module>
    <module name="plans" >
        <!-- String: minOfDurationAndEndTime tryEndTimeThenDuration endTimeOnly. Anything besides minOfDurationAndEndTime will internally use a different (simpler) version of the TimeAllocationMutator. -->
        <param name="activityDurationInterpretation" value="tryEndTimeThenDuration" />
        <!-- Possible values: reject,useMainModeIdentifier -->
        <param name="handlingOfPlansWithoutRoutingMode" value="reject" />
        <!-- The Coordinates Reference System in which the coordinates are expressed in the input file. At import, the coordinates will be converted to the coordinate system defined in "global", and willbe converted back at export. If not specified, no conversion happens. -->
        <param name="inputCRS" value="null" />
        <param name="inputPersonAttributesFile" value="null" />
        <param name="inputPlansFile" value="plan_All.xml" />
        <param name="insistingOnUsingDeprecatedPersonAttributeFile" value="false" />
        <!-- Defines how routes are stored in memory. Currently supported: LinkNetworkRoute, MediumCompressedNetworkRoute, HeavyCompressedNetworkRoute. -->
        <param name="networkRouteType" value="LinkNetworkRoute" />
        <!-- (not tested) will remove plan attributes that are presumably not used, such as activityStartTime. default=false. Use with Caution! -->
        <param name="removingUnnecessaryPlanAttributes" value="false" />
        <!-- Defines how departure times are interpreted in rerouting applications. If set to 'ignoreDelays', the departure time of a trip when routing along a plan will always be the nominal (plan-based) activity end time. If set to 'shiftActivityEndTimes', routing along a plan will accumulate travel times and shift activity end times if necessary -->
        <param name="tripDurationHandling" value="ignoreDelays" />
    </module>
    <module name="planscalcroute" >
        <!-- Defines how access and egress to main mode is simulated. Either of [none, accessEgressModeToLink, walkConstantTimeToLink, accessEgressModeToLinkPlusTimeConstant], Current default=none which means no access or egress trips are simulated. -->
        <param name="accessEgressType" value="none" />
        <!-- Some typical teleportation routing params are set by default, such as for walk and bike.  Setting this switch to "true" will clear them.  Note that this will also clear settings for helper modes such as for non_network_walk -->
        <param name="clearDefaultTeleportedModeParams" value="false" />
        <!-- All the modes for which the router is supposed to generate network routes (like car) -->
        <param name="networkModes" value="car" />
        <!-- strength of the randomness for the utility of money in routing under toll.  Leads to Pareto-optimal route with randomly drawn money-vs-other-attributes tradeoff. Technically the width parameter of a log-normal distribution. 3.0 seems to be a good value.  -->
        <param name="routingRandomness" value="3.0" />
        <parameterset type="teleportedModeParameters" >
            <param name="beelineDistanceFactor" value="1.3" />
            <param name="mode" value="bike" />
            <!-- Free-speed factor for a teleported mode. Travel time = teleportedModeFreespeedFactor * <freespeed car travel time>. Insert a line like this for every such mode. Please do not set teleportedModeFreespeedFactor as well as teleportedModeSpeed for the same mode, but if you do, +teleportedModeFreespeedFactor wins over teleportedModeSpeed. -->
            <param name="teleportedModeFreespeedFactor" value="null" />
            <!-- Speed for a teleported mode. Travel time = (<beeline distance> * beelineDistanceFactor) / teleportedModeSpeed. Insert a line like this for every such mode. -->
            <param name="teleportedModeSpeed" value="2.78" />
        </parameterset>
        <parameterset type="teleportedModeParameters" >
            <param name="beelineDistanceFactor" value="1.3" />
            <param name="mode" value="walk" />
            <param name="teleportedModeFreespeedFactor" value="null" />
            <param name="teleportedModeSpeed" value="1.5278" />
        </parameterset>
        <parameterset type="teleportedModeParameters" >
            <param name="beelineDistanceFactor" value="1.3" />
            <param name="mode" value="non_network_walk" />
            <param name="teleportedModeFreespeedFactor" value="null" />
            <param name="teleportedModeSpeed" value="1.5278" />
        </parameterset>
        <parameterset type="teleportedModeParameters" >
            <param name="beelineDistanceFactor" value="1.3" />
            <param name="mode" value="ride" />
            <param name="teleportedModeFreespeedFactor" value="1.0" />
            <param name="teleportedModeSpeed" value="null" />
        </parameterset>
        <parameterset type="teleportedModeParameters" >
            <param name="beelineDistanceFactor" value="1.3" />
            <param name="mode" value="pt" />
            <param name="teleportedModeFreespeedFactor" value="2.0" />
            <param name="teleportedModeSpeed" value="null" />
        </parameterset>
    </module>
    <module name="ptCounts" >
        <!-- factor by which to re-scale the simulated values.  necessary when simulation runs with something different from 100%.  needs to be adapted manually -->
        <param name="countsScaleFactor" value="1.0" />
        <!-- distance to distanceFilterCenterNode to include counting stations. The unit of distance is the Euclidean distance implied by the coordinate system -->
        <param name="distanceFilter" value="null" />
        <!-- node id for center node of distance filter -->
        <param name="distanceFilterCenterNode" value="null" />
        <!-- input file containing the alighting (getting off) counts for pt -->
        <param name="inputAlightCountsFile" value="null" />
        <!-- input file containing the boarding (getting on) counts for pt -->
        <param name="inputBoardCountsFile" value="null" />
        <!-- input file containing the occupancy counts for pt -->
        <param name="inputOccupancyCountsFile" value="null" />
        <!-- possible values: `html', `txt', `all' -->
        <param name="outputformat" value="null" />
        <!-- every how many iterations (starting with 0) counts comparisons are generated -->
        <param name="ptCountsInterval" value="10" />
    </module>
    <module name="qsim" >
        <param name="endTime" value="30:00:00" />
        <!-- If set to withLinkAttributes snapshots will only be generated for links which include generateSnapshotForLink as attribute key. Default is no filtering. -->
        <param name="filterSnapshots" value="no" />
        <param name="flowCapacityFactor" value="0.1" />
        <!-- decides if waiting vehicles enter the network after or before the already driving vehicles were moved. Default: false -->
        <param name="insertingWaitingVehiclesBeforeDrivingVehicles" value="true" />
        <!-- If link dynamics is set as SeepageQ, set to false if all seep modes should perform seepage. Default is true (better option). -->
        <param name="isRestrictingSeepage" value="true" />
        <!-- If link dynamics is set as SeepageQ, set to true if seep mode do not consumes any space on the link. Default is false. -->
        <param name="isSeepModeStorageFree" value="false" />
        <!-- default: FIFO; options: FIFO PassingQ SeepageQ -->
        <param name="linkDynamics" value="FIFO" />
        <!-- The (initial) width of the links of the network. Use positive floating point values. This is used only for visualisation. -->
        <param name="linkWidth" value="30.0" />
        <!-- [comma-separated list] Defines which modes are congested modes. Technically, these are the modes that the departure handler of the netsimengine handles.  Effective cell size, effective lane width, flow capacity factor, and storage capacity factor need to be set with diligence.  Need to be vehicular modes to make sense. -->
        <param name="mainMode" value="car" />
        <!-- Shortens a link in the visualization, i.e. its start and end point are moved into towards the center. Does not affect traffic flow.  -->
        <param name="nodeOffset" value="0.0" />
        <!-- Number of threads used for the QSim.  Note that this setting is independent from the "global" threads setting.  In contrast to earlier versions, the non-parallel special version is no longer there. -->
        <param name="numberOfThreads" value="9" />
        <!-- Boolean. `true': stuck vehicles are removed, aborting the plan; `false': stuck vehicles are forced into the next link. `false' is probably the better choice. -->
        <param name="removeStuckVehicles" value="false" />
        <!-- If link dynamics is set as SeepageQ, set a seep mode. Default is bike. -->
        <param name="seepMode" value="bike" />
        <!-- Possible values: minOfEndtimeAndMobsimFinished,onlyUseEndtime -->
        <param name="simEndtimeInterpretation" value="null" />
        <!-- Options: maxOfStarttimeAndEarliestActivityEnd onlyUseStarttime  -->
        <param name="simStarttimeInterpretation" value="maxOfStarttimeAndEarliestActivityEnd" />
        <!-- snapshotStyle. One of: equiDist queue withHoles withHolesAndShowHoles kinematicWaves  -->
        <param name="snapshotStyle" value="queue" />
        <param name="snapshotperiod" value="00:00:00" />
        <param name="startTime" value="00:00:00" />
        <param name="storageCapacityFactor" value="0.1" />
        <!-- time in seconds.  Time after which the frontmost vehicle on a link is called `stuck' if it does not move. -->
        <param name="stuckTime" value="10.0" />
        <param name="timeStepSize" value="00:00:01" />
        <!-- options: queue withHoles kinematicWaves  -->
        <param name="trafficDynamics" value="queue" />
        <!-- Set this parameter to true if lanes should be used, false if not. -->
        <param name="useLanes" value="false" />
        <!-- If a route does not reference a vehicle, agents will use the vehicle with the same id as their own. -->
        <param name="usePersonIdForMissingVehicleId" value="true" />
        <!-- If false, the qsim accumulates fractional flows up to one flow unit in every time step.  If true, flows are updated only if an agent wants to enter the link or an agent is added to buffer. Default is true. -->
        <param name="usingFastCapacityUpdate" value="true" />
        <!-- Defines what happens if an agent wants to depart, but the specified vehicle is not available. One of: teleport wait exception  -->
        <param name="vehicleBehavior" value="teleport" />
        <!-- If vehicles should all be the same default vehicle, or come from the vehicles file, or something else.  Possible values:  defaultVehicle modeVehicleTypesFromVehiclesData fromVehiclesData -->
        <param name="vehiclesSource" value="defaultVehicle" />
    </module>
    <module name="strategy" >
        <!-- the external executable will be called with a config file as argument.  This is the pathname to a possible skeleton config, to which additional information will be added.  Can be null. -->
        <param name="ExternalExeConfigTemplate" value="null" />
        <!-- time out value (in seconds) after which matsim will consider the external strategy as failed -->
        <param name="ExternalExeTimeOut" value="3600" />
        <!-- root directory for temporary files generated by the external executable. Provided as a service; I don't think this is used by MATSim. -->
        <param name="ExternalExeTmpFileRootDir" value="null" />
        <!-- fraction of iterations where innovative strategies are switched off.  Something like 0.8 should be good.  E.g. if you run from iteration 400 to iteration 500, innovation is switched off at iteration 480 -->
        <param name="fractionOfIterationsToDisableInnovation" value="Infinity" />
        <!-- maximum number of plans per agent.  ``0'' means ``infinity''.  Currently (2010), ``5'' is a good number -->
        <param name="maxAgentPlanMemorySize" value="3" />
        <!-- strategyName of PlanSelector for plans removal.  Possible defaults: WorstPlanSelector SelectRandom SelectExpBetaForRemoval ChangeExpBetaForRemoval PathSizeLogitSelectorForRemoval . The current default, WorstPlanSelector is not a good choice from a discrete choice theoretical perspective. Alternatives, however, have not been systematically tested. kai, feb'12 -->
        <param name="planSelectorForRemoval" value="WorstPlanSelector" />
        <parameterset type="strategysettings" >
            <!-- iteration after which strategy will be disabled.  most useful for ``innovative'' strategies (new routes, new times, ...). Normally, better use fractionOfIterationsToDisableInnovation -->
            <param name="disableAfterIteration" value="-1" />
            <!-- path to external executable (if applicable) -->
            <param name="executionPath" value="null" />
            <!-- strategyName of strategy.  Possible default names: SelectRandom BestScore KeepLastSelected ChangeExpBeta SelectExpBeta SelectPathSizeLogit      (selectors), ReRouteTimeAllocationMutatorTimeAllocationMutator_ReRouteChangeSingleTripModeChangeTripModeSubtourModeChoice (innovative strategies). -->
            <param name="strategyName" value="BestScore" />
            <!-- subpopulation to which the strategy applies. "null" refers to the default population, that is, the set of persons for which no explicit subpopulation is defined (ie no subpopulation attribute) -->
            <param name="subpopulation" value="null" />
            <!-- weight of a strategy: for each agent, a strategy will be selected with a probability proportional to its weight -->
            <param name="weight" value="1.0" />
        </parameterset>
        <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="ReRoute" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.1" />
        </parameterset>
        <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="TimeAllocationMutator" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.1" />
        </parameterset>
        <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="ChangeTripMode" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.8" />
        </parameterset>
    </module>
    <module name="subtourModeChoice" >
        <!-- Only for backwards compatibility.  Defines if only trips from modes list should change mode, or all trips.  Options: fromAllModesToSpecifiedModes fromSpecifiedModesToSpecifiedModes betweenAllAndFewerConstraints  -->
        <param name="behavior" value="fromSpecifiedModesToSpecifiedModes" />
        <!-- Defines the chain-based modes, seperated by commas -->
        <param name="chainBasedModes" value="car,bike,walk" />
        <!-- Defines whether car availability must be considered or not. A agent has no car only if it has no license, or never access to a car -->
        <param name="considerCarAvailability" value="false" />
        <!-- If greater than 0, subtours will also consider coordinates to be at the same location when smaller than set distance. -->
        <param name="coordDistance" value="0.0" />
        <!-- Defines all the modes available, including chain-based modes, seperated by commas -->
        <param name="modes" value="car,bike,walk" />
        <!-- Defines the probability of changing a single trip for a unchained mode instead of subtour. -->
        <param name="probaForRandomSingleTripMode" value="0.0" />
    </module>
    <module name="swissRailRaptor" >
        <!-- Sets whether intermodal access and egress modes are selected by least cost (default) or randomly chosen out of the available access / egress modes. -->
        <param name="intermodalAccessEgressModeSelection" value="CalcLeastCostModePerStop" />
        <!-- Possible values: Default,Individual -->
        <param name="scoringParameters" value="Default" />
        <param name="transferPenaltyBaseCost" value="0.0" />
        <param name="transferPenaltyCostPerTravelTimeHour" value="0.0" />
        <param name="transferPenaltyMaxCost" value="Infinity" />
        <param name="transferPenaltyMinCost" value="-Infinity" />
        <!-- time deducted from transfer walk leg during transfers between pt legs in order to avoid missing a vehicle by a few seconds due to delays. -->
        <param name="transferWalkMargin" value="300.0" />
        <!-- If true, SwissRailRaptor tries to detect when agents cannot board a vehicle in the previous iteration because it is already full and tries to find an alternative route instead. -->
        <param name="useCapacityConstraints" value="false" />
        <param name="useIntermodalAccessEgress" value="true" />
        <param name="useModeMappingForPassengers" value="true" />
        <param name="useRangeQuery" value="false" />
        <parameterset type="intermodalAccessEgress" >
            <!-- Radius from the origin / destination coord in which transit stops are searched. Only if less than 2 transit stops are found the search radius is increased step-wise until the maximum search radius set in param radius is reached. -->
            <param name="initialSearchRadius" value="1000.0" />
            <!-- If the mode is routed on the network, specify which linkId acts as access link to this stop in the transport modes sub-network. -->
            <param name="linkIdAttribute" value="null" />
            <!-- Radius from the origin / destination coord in which transit stops are accessible by this mode. -->
            <param name="maxRadius" value="5000.0" />
            <param name="mode" value="bike" />
            <!-- Name of the person attribute used to figure out if this access/egress mode is available to the person. -->
            <param name="personFilterAttribute" value="null" />
            <!-- Only persons where the filter attribute has the value specified here can use this mode for access or egress. The attribute should be of type String. -->
            <param name="personFilterValue" value="null" />
            <!-- If less than 2 stops were found in initialSearchRadius take the distance of the closest transit stop and add this extension radius to search again.The search radius will not exceed the maximum search radius set in param radius. Default is 200 meters. -->
            <param name="searchExtensionRadius" value="100.0" />
            <!-- The share of the trip crowfly distance within which the stops for access and egress will be searched for. This is a harder constraint than initial search radius. Default is positive infinity. -->
            <param name="shareTripSearchRadius" value="Infinity" />
            <!-- Name of the transit stop attribute used to filter stops that should be included in the set of potential stops for access and egress. The attribute should be of type String. 'null' disables the filter and all stops within the specified radius will be used. -->
            <param name="stopFilterAttribute" value="null" />
            <!-- Only stops where the filter attribute has the value specified here will be considered as access or egress stops. -->
            <param name="stopFilterValue" value="null" />
        </parameterset>
        <parameterset type="intermodalAccessEgress" >
            <param name="initialSearchRadius" value="1000.0" />
            <param name="linkIdAttribute" value="null" />
            <param name="maxRadius" value="5000.0" />
            <param name="mode" value="walk" />
            <param name="personFilterAttribute" value="null" />
            <param name="personFilterValue" value="null" />
            <param name="searchExtensionRadius" value="100.0" />
            <param name="shareTripSearchRadius" value="Infinity" />
            <param name="stopFilterAttribute" value="null" />
            <param name="stopFilterValue" value="null" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_uam" />
            <param name="routeMode" value="uam" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_metro" />
            <param name="routeMode" value="metro" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_ferry" />
            <param name="routeMode" value="ferry" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_express" />
            <param name="routeMode" value="express" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_rail" />
            <param name="routeMode" value="rail" />
        </parameterset>
        <parameterset type="modeMapping" >
            <param name="passengerMode" value="pt_shuttlebus" />
            <param name="routeMode" value="shuttlebus" />
        </parameterset>
    </module>
    <module name="transit" >
        <!-- The Coordinates Reference System in which the coordinates are expressed in the input file. At import, the coordinates will be converted to the coordinate system defined in "global", and willbe converted back at export. If not specified, no conversion happens. -->
        <param name="inputScheduleCRS" value="null" />
        <param name="insistingOnUsingDeprecatedAttributeFiles" value="false" />
        <!-- The type of transit routing algorithm used, may have the values: [DijkstraBased, SwissRailRaptor] -->
        <param name="routingAlgorithmType" value="SwissRailRaptor" />
        <!-- Optional input file containing additional attributes for transit lines, stored as ObjectAttributes. -->
        <param name="transitLinesAttributesFile" value="null" />
        <!-- Comma-separated list of transportation modes that are handled as transit. Defaults to 'pt'. -->
        <param name="transitModes" value="pt_rail,pt_ferry,pt_shuttlebus,pt_metro,pt_express,pt_uam" />
        <!-- Input file containing the transit schedule to be simulated. -->
        <param name="transitScheduleFile" value="transit_schedule_uam.xml" />
        <!-- Optional input file containing additional attributes for transit stop facilities, stored as ObjectAttributes. -->
        <param name="transitStopsAttributesFile" value="null" />
        <!-- Set this parameter to true if transit should be simulated, false if not. -->
        <param name="useTransit" value="true" />
        <param name="usingTransitInMobsim" value="true" />
        <!-- Input file containing the vehicles used by the departures in the transit schedule. -->
        <param name="vehiclesFile" value="transit_vehicle_uam.xml" />
    </module>
    <module name="transitRouter" >
        <!-- additional time the router allocates when a line switch happens. Can be interpreted as a 'safety' time that agents need to safely transfer from one line to another -->
        <param name="additionalTransferTime" value="1800.0" />
        <!-- Factor with which direct walk generalized cost is multiplied before it is compared to the pt generalized cost.  Set to a very high value to reduce direct walk results. -->
        <param name="directWalkFactor" value="1.0" />
        <!-- step size to increase searchRadius if no stops are found -->
        <param name="extensionRadius" value="200.0" />
        <!-- maximum beeline distance between stops that agents could transfer to by walking -->
        <param name="maxBeelineWalkConnectionDistance" value="300.0" />
        <!-- the radius in which stop locations are searched, given a start or target coordinate -->
        <param name="searchRadius" value="50.0" />
    </module>
    <module name="travelTimeCalculator" >
        <!-- (only for backwards compatibility; only used if separateModes==false && + filterModes==true)  Transport modes that will be respected by the travel time collector. 'car' is default which includes also buses from the pt simulation module. -->
        <param name="analyzedModes" value="car" />
        <param name="calculateLinkToLinkTravelTimes" value="false" />
        <param name="calculateLinkTravelTimes" value="true" />
        <!-- (only for backwards compatiblity; only used if separateModes==false)  Only modes included in analyzedModes are included. -->
        <param name="filterModes" value="false" />
        <!-- The lenght (in sec) of the time period that is splited into time bins; an additional time bin is created to aggregate all travel times collected after maxTime -->
        <param name="maxTime" value="108000" />
        <!-- (only for backwards compatibility) If false, link travel times are measured and aggregated over all vehicles using the link. -->
        <param name="separateModes" value="true" />
        <!-- How to deal with congested time bins that have no link entry events. `optimistic' assumes free speed (too optimistic); 'experimental_LastMile' is experimental and probably too pessimistic. -->
        <param name="travelTimeAggregator" value="optimistic" />
        <!-- The size of the time bin (in sec) into which the link travel times are aggregated for the router -->
        <param name="travelTimeBinSize" value="900" />
        <!-- possible values: TravelTimeCalculatorArray TravelTimeCalculatorHashMap  -->
        <param name="travelTimeCalculator" value="TravelTimeCalculatorArray" />
        <!-- How to deal with link entry times at different positions during the time bin. Currently supported: average, linearinterpolation -->
        <param name="travelTimeGetter" value="average" />
    </module>
    <module name="vehicles" >
        <param name="vehiclesFile" value="null" />
    </module>
    <module name="vspExperimental" >
        <!-- (do not use except of you have to) There was a problem with pt interaction scoring.  Some people solved it by overwriting the parameters of the pt interaction activity type.  Doing this now throws an Exception.  If you still insist on doing this, set the following to true. -->
        <param name="isAbleToOverwritePtInteractionParams" value="false" />
        <param name="isGeneratingBoardingDeniedEvent" value="false" />
        <!-- if an approximation of the opportunity cost of time is included into the radius calculation for location choice.`true' will be faster, but it is an approximation.  Default is `true'; `false' is available for backwards compatibility. -->
        <param name="isUsingOpportunityCostOfTimeForLocationChoice" value="true" />
        <param name="logitScaleParamForPlansRemoval" value="1.0" />
        <!-- Options: | ignore | info | warn | abort | .  When violating VSP defaults, this results in nothing, logfile infos, logfile warnings, or aborts.  Members of VSP should use `abort' or talk to kai. -->
        <param name="vspDefaultsCheckingLevel" value="ignore" />
        <!-- if true then writes output_events in output directory.  default is `false'. Will only work when lastIteration is multiple of events writing interval -->
        <param name="writingOutputEvents" value="true" />
    </module>
</config>

output_plans for example

<person id="4">
        <attributes>
            <attribute name="vehicles" class="org.matsim.vehicles.PersonVehicles">{"car":"4"}</attribute>
        </attributes>
        <plan score="380.676712554721" selected="no">
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" end_time="08:52:00" >
            </activity>
            <leg mode="car" dep_time="08:52:00" trav_time="00:47:26">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">car</attribute>
                </attributes>
                <route type="links" start_link="138467_146809" end_link="114765_239742" trav_time="00:47:26" distance="49395.31467828123" vehicleRefId="4">138467_146809 146809_143177 143177_182711 182711_176053 176053_151900 151900_115223 115223_128219 128219_128220 128220_171373 171373_160431 160431_153816 153816_153817 153817_111679 111679_163208 163208_143608 143608_475958 475958_466869 466869_402949 402949_451233 451233_451234 451234_466903 466903_444377 444377_444376 444376_180262 180262_138849 138849_143470 143470_171509 171509_454736 454736_433716 433716_474530 474530_458196 458196_429417 429417_458039 458039_408659 408659_449216 449216_453969 453969_453970 453970_488699 488699_461207 461207_535382 535382_458614 458614_480686 480686_563215 563215_521607 521607_484179 484179_517822 517822_445196 445196_450664 450664_461630 461630_474101 381471_92027849 144798_362456 362456_336648 336648_213360 213360_108626 108626_129035 129035_115995 115995_219126 219126_268210 268210_290051 290051_295392 295392_360881 360881_381762 381762_361938 361938_288666 288666_324796 324796_324797 324797_283349 283349_283350 283350_289356 289356_377006 377006_58506 58506_69285 69285_88551 88551_84217 84217_80232 80232_94607 94607_94608 94608_102660 102660_93505 93505_54323 54323_68071 68071_100476 100476_83365 83365_83366 83366_101669 101669_71182 71182_100280 100280_103408 103408_87209 87209_87210 87210_88254 88254_86170 86170_86171 86171_74869 74869_53409 53409_101974 101974_100782 100782_105332 105332_316403 316403_310337 310337_310338 310338_298640 298640_298639 298639_45564 45564_24897 24897_30006 30006_14280 14280_20041 20041_4860 4860_37379 37379_29235 29235_22271 22271_27680 27680_11840 11840_43082 43082_32059 32059_44392 44392_11342 11342_28942 28942_43596 43596_19627 19627_27119 27119_29724 29724_22480 22480_13485 13485_27595 27595_14435 14435_14434 14434_17535 17535_22727 22727_7897 7897_19780 19780_45515 45515_208654 208654_49311 49311_114964 114964_217400 217400_246230 246230_244341 244341_219529 219529_168105 168105_145425 145425_145424 145424_205326 205326_245632 245632_240914 240914_240913 240913_158521 158521_119550 119550_211953 211953_170423 170423_136211 136211_136210 136210_149575 149575_113417 113417_113416 113416_114765 114765_239742</route>
            </leg>
            <activity type="w" link="114765_239742" x="1.268910715592743E7" y="2592199.2565229856" max_dur="10:49:00" >
            </activity>
            <leg mode="car" dep_time="20:28:26" trav_time="01:14:57">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">car</attribute>
                </attributes>
                <route type="links" start_link="114765_239742" end_link="138467_146809" trav_time="01:14:57" distance="97931.90712606853" vehicleRefId="4">114765_239742 239742_151613 151613_215033 215033_224446 224446_120710 120710_165424 165424_51658 51658_237358 237358_166303 166303_147277 147277_41449 41449_22016 22016_37232 37232_37233 37233_19815 19815_28692 28692_8090 8090_14101 14101_9364 9364_4787 4787_41429 41429_4368 4368_6700 6700_949987 949987_950957 950957_30193 30193_951282 951282_950277 950277_953594 953594_953595 953595_953602 953602_953611 953611_953606 953606_953612 953612_950242 950242_950243 950243_34539 34539_17767 17767_17766 17766_33405 33405_953413 953413_953414 953414_953402 953402_953403 953403_953408 953408_17996 17996_953409 953409_953406 953406_20645 20645_42554 42554_953673 953673_17356 17356_22766 22766_23400 23400_42252 42252_532737 532737_89022 89022_77774 77774_65170 65170_58514 58514_70038 70038_80946 80946_54704 54704_77058 77058_55677 55677_78554 78554_78555 78555_77615 77615_61262 61262_70595 70595_63007 63007_83502 83502_88707 88707_62656 62656_105116 105116_103818 103818_59857 59857_99133 99133_67753 67753_84855 84855_103287 103287_53727 53727_63988 63988_64396 64396_75815 75815_72134 72134_61868 61868_61867 61867_63479 63479_65888 65888_63947 63947_56569 56569_59274 59274_52886 52886_62922 62922_81271 81271_84421 84421_55952 55952_55951 55951_57348 57348_63050 63050_60378 60378_53589 53589_82146 82146_69207 69207_56201 56201_68961 68961_94624 94624_106352 106352_84521 84521_92255 92255_88140 88140_184240 184240_126265 126265_139932 139932_130320 130320_194657 194657_514662 514662_76196 76196_77420 77420_94595 94595_92296 92296_68043 68043_104752 104752_83967 83967_58051 58051_67519 67519_61643 61643_81367 81367_94172 94172_85941 85941_56852 56852_82940 82940_64991 64991_64990 64990_85461 85461_60181 60181_55857 55857_72419 72419_72420 72420_100650 100650_547764 547764_503445 503445_476044 476044_476043 476043_113376 113376_128220 128220_171373 171373_160431 160431_153816 153816_153817 153817_111679 111679_163208 163208_143608 143608_126665 126665_126664 126664_138467 138467_146809</route>
            </leg>
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" >
            </activity>
        </plan>

        <plan score="-9868.530656403638" selected="no">
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" end_time="08:52:00" >
            </activity>
            <leg mode="walk" dep_time="08:52:00" trav_time="16:49:53">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="138467_146809" end_link="114765_239742" trav_time="16:49:53" distance="92574.80423228737"></route>
            </leg>
            <activity type="w" link="114765_239742" x="1.268910715592743E7" y="2592199.2565229856" max_dur="10:49:00" >
            </activity>
            <leg mode="walk" dep_time="36:30:53" trav_time="16:49:53">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="114765_239742" end_link="138467_146809" trav_time="16:49:53" distance="92574.80423228737"></route>
            </leg>
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" >
            </activity>
        </plan>

        <plan score="380.676712554721" selected="no">
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" end_time="08:52:00" >
            </activity>
            <leg mode="car" dep_time="08:52:00" trav_time="00:48:26">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">car</attribute>
                </attributes>
                <route type="links" start_link="138467_146809" end_link="114765_239742" trav_time="00:48:26" distance="49399.216484179335" vehicleRefId="4">138467_146809 146809_143177 143177_182711 182711_176053 176053_151900 151900_115223 115223_128219 128219_128220 128220_171373 171373_160431 160431_153816 153816_153817 153817_111679 111679_163208 163208_143608 143608_475958 475958_466869 466869_402949 402949_451233 451233_451234 451234_466903 466903_444377 444377_444376 444376_180262 180262_138849 138849_143470 143470_171509 171509_454736 454736_433716 433716_474530 474530_458196 458196_429417 429417_458039 458039_408659 408659_449216 449216_453969 453969_453970 453970_488699 488699_461207 461207_535382 535382_458614 458614_480686 480686_563215 563215_521607 521607_484179 484179_517822 517822_445196 445196_473321 473321_515532 515532_474100 474100_474101 92027849_381471 144798_362456 362456_336648 336648_213360 213360_108626 108626_129035 129035_115995 115995_219126 219126_268210 268210_290051 290051_295392 295392_360881 360881_381762 381762_361938 361938_288666 288666_324796 324796_324797 324797_283349 283349_283350 283350_289356 289356_377006 377006_58506 58506_69285 69285_88551 88551_84217 84217_80232 80232_94607 94607_94608 94608_102660 102660_93505 93505_54323 54323_68071 68071_100476 100476_83365 83365_83366 83366_101669 101669_71182 71182_100280 100280_103408 103408_87209 87209_87210 87210_88254 88254_86170 86170_86171 86171_74869 74869_53409 53409_101974 101974_100782 100782_105332 105332_316403 316403_310337 310337_310338 310338_298640 298640_298639 298639_45564 45564_24897 24897_30006 30006_14280 14280_20041 20041_4860 4860_37379 37379_29235 29235_22271 22271_27680 27680_11840 11840_43082 43082_32059 32059_44392 44392_11342 11342_28942 28942_43596 43596_19627 19627_27119 27119_29724 29724_22480 22480_13485 13485_27595 27595_14435 14435_14434 14434_17535 17535_22727 22727_7897 7897_19780 19780_45515 45515_208654 208654_49311 49311_114964 114964_217400 217400_246230 246230_244341 244341_219529 219529_168105 168105_145425 145425_145424 145424_205326 205326_245632 245632_240914 240914_240913 240913_158521 158521_119550 119550_211953 211953_170423 170423_136211 136211_136210 136210_149575 149575_113417 113417_113416 113416_114765 114765_239742</route>
            </leg>
            <activity type="w" link="114765_239742" x="1.268910715592743E7" y="2592199.2565229856" max_dur="10:49:00" >
            </activity>
            <leg mode="car" dep_time="20:29:26" trav_time="01:15:55">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">car</attribute>
                </attributes>
                <route type="links" start_link="114765_239742" end_link="138467_146809" trav_time="01:15:55" distance="97952.19655390093" vehicleRefId="4">114765_239742 239742_151613 151613_215033 215033_224446 224446_120710 120710_165424 165424_51658 51658_237358 237358_166303 166303_147277 147277_41449 41449_22016 22016_37232 37232_37233 37233_19815 19815_28692 28692_8090 8090_14101 14101_9364 9364_4787 4787_41429 41429_4368 4368_6700 6700_949987 949987_950957 950957_30193 30193_951282 951282_950277 950277_953594 953594_953595 953595_953602 953602_953611 953611_953606 953606_953612 953612_950242 950242_950243 950243_34539 34539_17767 17767_17766 17766_33405 33405_953413 953413_953414 953414_953402 953402_953403 953403_953408 953408_17996 17996_953409 953409_953406 953406_20645 20645_42554 42554_953673 953673_17356 17356_22766 22766_23400 23400_42252 42252_532737 532737_89022 89022_77774 77774_65170 65170_58514 58514_70038 70038_80946 80946_54704 54704_77058 77058_55677 55677_78554 78554_78555 78555_77615 77615_61262 61262_70595 70595_63007 63007_83502 83502_88707 88707_62656 62656_105116 105116_103818 103818_59857 59857_99133 99133_67753 67753_84855 84855_103287 103287_53727 53727_63988 63988_64396 64396_75815 75815_72134 72134_61868 61868_61867 61867_63479 63479_65888 65888_63947 63947_56569 56569_59274 59274_52886 52886_62922 62922_81271 81271_84421 84421_55952 55952_55951 55951_57348 57348_63050 63050_60378 60378_53589 53589_82146 82146_69207 69207_56201 56201_68961 68961_94624 94624_106352 106352_84521 84521_92255 92255_88140 88140_184240 184240_126265 126265_139932 139932_130320 130320_194657 194657_514662 514662_73583 73583_76196 76196_77420 77420_94595 94595_92296 92296_68043 68043_104752 104752_83967 83967_58051 58051_67519 67519_61643 61643_81367 81367_94172 94172_85941 85941_56852 56852_82940 82940_64991 64991_64990 64990_85461 85461_60181 60181_55857 55857_72419 72419_72420 72420_100650 100650_547764 547764_503445 503445_476044 476044_476043 476043_113376 113376_128220 128220_171373 171373_160431 160431_153816 153816_153817 153817_111679 111679_163208 163208_143608 143608_126665 126665_126664 126664_138467 138467_146809</route>
            </leg>
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" >
            </activity>
        </plan>

        <plan score="-9868.530656403638" selected="yes">
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" end_time="08:52:00" >
            </activity>
            <leg mode="walk" dep_time="08:52:00" trav_time="16:49:53">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="138467_146809" end_link="114765_239742" trav_time="16:49:53" distance="92574.80423228737"></route>
            </leg>
            <activity type="w" link="114765_239742" x="1.268910715592743E7" y="2592199.2565229856" max_dur="10:49:00" >
            </activity>
            <leg mode="walk" dep_time="36:30:53" trav_time="16:49:53">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="114765_239742" end_link="138467_146809" trav_time="16:49:53" distance="92574.80423228737"></route>
            </leg>
            <activity type="h" link="138467_146809" x="1.2641434361356229E7" y="2539299.6684311624" >
            </activity>
        </plan>

    </person>
MniNEO commented 5 months ago

I have a couple more questions I'd like to get some clarification on, if you don't mind: 1.We've noticed that if the for "pt" is removed, we encounter errors during the run, even though we haven't specifically configured a mode named "pt" in our config.xml. We do have pt_metro, pt_rail, pt_ferry, pt_shuttlebus, and pt_uam as our public transport modes listed there. Could you please advise why it's necessary to have "pt" configured?

2.I've encountered a bit of a puzzle in one of my other streamlined projects: the output_plan shows 'uam' in the attribute, but none of its legs actually include the 'uam' mode that I've defined. Even the link '1a_1' and '1_2' are not uam links. This discrepancy seems to be causing some statistical errors when it comes to the modestates. Could you shed some light on how this situation might arise? Also, I apologize if my presentation of the output_plan file from another project is a bit jumpy. I hope it doesn't hinder your understanding of my confusion.

<plan score="163.06487693706538" selected="yes">
    <activity type="h" link="1a_1" x="-110.0" y="110.0" end_time="08:00:00" >
    </activity>
    <leg mode="bike" dep_time="08:00:00" trav_time="00:00:06">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="generic" start_link="1a_1" end_link="1_2" trav_time="00:00:06" distance="18.38477631085024"></route>
    </leg>
    <activity type="pt interaction" link="1_2" x="-100.0" y="100.0" max_dur="00:00:00" >
    </activity>
    <leg mode="express" dep_time="08:00:06" trav_time="00:01:44">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="default_pt" start_link="1_2" end_link="1_2" trav_time="00:01:44" distance="0.0">{"transitRouteId":"e1-1","boardingTime":"08:01:00","transitLineId":"e1","accessFacilityId":"e1","egressFacilityId":"e2"}</route>
    </leg>
    <activity type="pt interaction" link="1_2" x="100.0" y="100.0" max_dur="00:00:00" >
    </activity>
    <leg mode="bike" dep_time="08:01:50" trav_time="00:00:06">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="generic" start_link="1_2" end_link="2a_2" trav_time="00:00:06" distance="18.38477631085024"></route>
    </leg>
    <activity type="h" link="2a_2" x="110.0" y="110.0" max_dur="07:50:00" >
    </activity>
    <leg mode="bike" dep_time="15:51:56" trav_time="00:00:06">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="generic" start_link="2a_2" end_link="2_1" trav_time="00:00:06" distance="18.38477631085024"></route>
    </leg>
    <activity type="pt interaction" link="2_1" x="100.0" y="100.0" max_dur="00:00:00" >
    </activity>
    <leg mode="express" dep_time="15:52:02" trav_time="00:08:48">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="default_pt" start_link="2_1" end_link="2_1" trav_time="00:08:48" distance="0.0">{"transitRouteId":"e1-2","boardingTime":"16:00:00","transitLineId":"e2","accessFacilityId":"e3","egressFacilityId":"e4"}</route>
    </leg>
    <activity type="pt interaction" link="2_1" x="-100.0" y="100.0" max_dur="00:00:00" >
    </activity>
    <leg mode="bike" dep_time="16:00:50" trav_time="00:00:06">
        <attributes>
            <attribute name="routingMode" class="java.lang.String">uam</attribute>
        </attributes>
        <route type="generic" start_link="2_1" end_link="1a_1" trav_time="00:00:06" distance="18.38477631085024"></route>
    </leg>
    <activity type="h" link="1a_1" x="-110.0" y="110.0" >
    </activity>
</plan>

Thank you for your time and assistance!

Janekdererste commented 5 months ago

Could you please advise why it's necessary to have "pt" configured?

I think it works like the following: You specify a pt mode, which is part of the changeMode choice set. Then, as you did, the transit module specifies which modes are the transit modes. The routingMode of your trips should then be pt while the legMode should be the actual pt-mode the agent took.

<module name="changeMode" >
...
     <param name="modes" value="car,walk,pt" />
...
</module>
<module name="transit" >
        ...
    <param name="transitModes" value="pt_rail,pt_ferry,pt_shuttlebus,pt_metro,pt_express,pt_uam" />
        ...
</module>

Maybe @vsp-gleich can help here, as he knows this better.

It looks like the plan with the higher score wasn't the one that got chosen, and instead, the one with the lower score was selected. I'm wondering why that might have happened?

Plans are selected using a logit model. Plans with higher scores have a higher chance of being selected, but other plans might be selected too.

Additionally, there's a plan that's tagged with a pt_shuttlebus attribute, but when I look at the leg mode, it's showing as 'walk'.

This sounds similar to the initial issue. Potentially, your agent tried to take a shuttle bus, but walking was faster.

This discrepancy seems to be causing some statistical errors when it comes to the modestates.

This is the same as above. Agents attempt to take some pt-mode, don't find any good connection, and then walk. Yes, this results in problems regarding modestats. However, modestats are not meant to be used as mode analysis in the end, as it is based on legs. In transport planning, the mode of a trip is usually determined by considering all legs of a trip and selecting the highest-ranking mode. For example, in a trip containing: walk to station, train to airport, walk inside airport, fly to airport, walk to train, train to destination, walk to destination, The main mode would be airplane. Modestats would count all the legs individually. For a mode analysis, I would recommend using the trips.csv output, which consolidates legs into trips and determines a main mode.

MniNEO commented 5 months ago

Thanks for your response and latter I found the lowest score plan was selected is a important problem, which will make a significant difference in the modes rate. For example, the pt modes always be selected as the lowest score plan making the pt parameters useless. What can I do to connect with @vsp-gleich? if I email him/her or just @ is enough?

kainagel commented 5 months ago

This is too long for me to read through it in detail, sorry. Some points (mostly confirming Janek, I think):

vsp-gleich commented 5 months ago

Kainagel explained the situation very well.

MniNEO commented 5 months ago

Thank you very much for your response! Your assistance has greatly helped me understand the model and resolve the issues. By the way, I've encountered some new questions: The innovation process of the 'plan' is random but always result in a lack of diversity in pt modes. In the 'config' strategy, I've assigned a higher weight to 'changetripmode' param, . Theoretically, this should lead to a more diverse range of plans when lastiterations with a small number(for example 5?). However, the outcome shows that there is only the initial plan and a few very similar ones for an agent. This situation persists even when the number of iterations is increased to 50. I am curious to know what might be causing this uniformity in the plans. following my strategy config and output_plan. config.xml - strategy module:

<module name="strategy" >
        <param name="ExternalExeConfigTemplate" value="null" />
        <param name="ExternalExeTimeOut" value="3600" /><!---->
        <param name="ExternalExeTmpFileRootDir" value="null" />
        <param name="fractionOfIterationsToDisableInnovation" value="0.8" /> 
        <param name="maxAgentPlanMemorySize" value="5" />
        <param name="planSelectorForRemoval" value="WorstPlanSelector" />
                <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="BestScore" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.5" />
        </parameterset>
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="ReRoute" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.05" />
        </parameterset>
        <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="TimeAllocationMutator" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.05" />
        </parameterset>
        <parameterset type="strategysettings" >
            <param name="disableAfterIteration" value="-1" />
            <param name="executionPath" value="null" />
            <param name="strategyName" value="ChangeTripMode" />
            <param name="subpopulation" value="null" />
            <param name="weight" value="0.4" />
        </parameterset>
    </module>

output_plans:every plan is pt_express plan, but we have many pt_modes like pt_shuttle, pt_rail, pt_uam, pt_ferry, they have even higher score if this agent use one of them. image

    <person id="1069">
        <attributes>
            <attribute name="vehicles" class="org.matsim.vehicles.PersonVehicles">{"car":"1069"}</attribute>
        </attributes>
        <plan score="157.4006402073058" selected="yes">
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" end_time="07:42:48" >
            </activity>
            <leg mode="taxi" dep_time="07:13:40" trav_time="00:03:38">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="391396_835611" end_link="92025996_92025999" trav_time="00:03:38" distance="2183.533756679255"></route>
            </leg>
            <activity type="pt interaction" link="92025996_92025999" x="1.274273376E7" y="2582221.197" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="07:17:18" trav_time="00:09:28">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="92025996_92025999" end_link="92027556_92025998" trav_time="00:09:28" distance="23544.43672693">{"transitRouteId":"(513,)","boardingTime":"07:17:43","transitLineId":"(513,)","accessFacilityId":"92025996_2595","egressFacilityId":"92027556_2598"}</route>
            </leg>
            <activity type="pt interaction" link="92027556_92025998" x="1.272629187E7" y="2597034.871" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:26:46" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="92027556_92025998" end_link="92025525_92025524" trav_time="00:02:00" distance="86.0"></route>
            </leg>
            <activity type="pt interaction" link="92025525_92025524" x="1.272623733E7" y="2597071.315" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_metro" dep_time="07:33:46" trav_time="00:11:30">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="92025525_92025524" end_link="92025521_92025472" trav_time="00:11:30" distance="8690.082758087996">{"transitRouteId":"(380,)","boardingTime":"07:37:26","transitLineId":"(380,)","accessFacilityId":"92025525_1979","egressFacilityId":"92025521_1986"}</route>
            </leg>
            <activity type="pt interaction" link="92025521_92025472" x="1.271686345E7" y="2599655.673" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:45:16" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="92025521_92025472" end_link="144798_474101" trav_time="00:02:00" distance="190.0"></route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2717006491E7" y="2599627.67" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_shuttlebus" dep_time="07:52:16" trav_time="03:07:44">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="144798_474101" end_link="144798_474101" trav_time="03:07:44" distance="0.0">{"transitRouteId":"903","boardingTime":"08:30:00","transitLineId":"903","accessFacilityId":"144798_2812","egressFacilityId":"474101_2813"}</route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2642700843E7" y="2545611.919" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="11:00:00" trav_time="00:17:32">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="144798_474101" end_link="202047_195389" trav_time="00:17:32" distance="10528.835183538671"></route>
            </leg>
            <activity type="w" link="202047_195389" x="1.2637925904964894E7" y="2539070.0956946365" max_dur="07:40:14" >
            </activity>
            <leg mode="taxi" dep_time="18:34:20" trav_time="00:05:31">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="202047_195389" end_link="92041571_92040939" trav_time="00:05:31" distance="3319.2754397844615"></route>
            </leg>
            <activity type="pt interaction" link="92041571_92040939" x="1.264017545E7" y="2537862.275" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="18:39:51" trav_time="00:49:02">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="92041571_92040939" end_link="92041534_92041512" trav_time="00:49:02" distance="97523.52333933">{"transitRouteId":"(444,)","boardingTime":"18:40:00","transitLineId":"(444,)","accessFacilityId":"92041571_2330","egressFacilityId":"92041512_2335"}</route>
            </leg>
            <activity type="pt interaction" link="92041534_92041512" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:28:53" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="92041534_92041512" end_link="92041512_92041513" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92041512_92041513" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="19:35:53" trav_time="00:19:45">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="92041512_92041513" end_link="92027534_92027535" trav_time="00:19:45" distance="32963.79197155">{"transitRouteId":"(398,)","boardingTime":"19:40:00","transitLineId":"(398,)","accessFacilityId":"92041512_2069","egressFacilityId":"92027535_2075"}</route>
            </leg>
            <activity type="pt interaction" link="92027534_92027535" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:55:38" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="92027534_92027535" end_link="92027535_92027789" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92027535_92027789" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="20:02:38" trav_time="00:37:52">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="default_pt" start_link="92027535_92027789" end_link="92041582_92041502" trav_time="00:37:52" distance="90485.93670565997">{"transitRouteId":"(535,)","boardingTime":"20:03:00","transitLineId":"(535,)","accessFacilityId":"92027535_2636","egressFacilityId":"92041502_2652"}</route>
            </leg>
            <activity type="pt interaction" link="92041582_92041502" x="1.269824404E7" y="2574379.265" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="20:40:30" trav_time="01:38:05">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_shuttlebus</attribute>
                </attributes>
                <route type="generic" start_link="92041582_92041502" end_link="391396_835611" trav_time="01:38:05" distance="58856.417163617865"></route>
            </leg>
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" >
            </activity>
        </plan>

        <plan score="157.35670334069624" selected="no">
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" end_time="07:42:48" >
            </activity>
            <leg mode="taxi" dep_time="07:42:48" trav_time="00:03:38">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="391396_835611" end_link="92025996_92025999" trav_time="00:03:38" distance="2183.533756679255"></route>
            </leg>
            <activity type="pt interaction" link="92025996_92025999" x="1.274273376E7" y="2582221.197" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="07:46:26" trav_time="00:10:20">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92025996_92025999" end_link="92027556_92025998" trav_time="00:10:20" distance="23544.43672693">{"transitRouteId":"(513,)","boardingTime":"07:47:43","transitLineId":"(513,)","accessFacilityId":"92025996_2595","egressFacilityId":"92027556_2598"}</route>
            </leg>
            <activity type="pt interaction" link="92027556_92025998" x="1.272629187E7" y="2597034.871" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:56:46" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92027556_92025998" end_link="92025525_92025524" trav_time="00:02:00" distance="86.0"></route>
            </leg>
            <activity type="pt interaction" link="92025525_92025524" x="1.272623733E7" y="2597071.315" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_metro" dep_time="08:03:46" trav_time="00:11:30">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92025525_92025524" end_link="92025521_92025472" trav_time="00:11:30" distance="8690.082758087996">{"transitRouteId":"(380,)","boardingTime":"08:07:26","transitLineId":"(380,)","accessFacilityId":"92025525_1979","egressFacilityId":"92025521_1986"}</route>
            </leg>
            <activity type="pt interaction" link="92025521_92025472" x="1.271686345E7" y="2599655.673" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="08:15:16" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92025521_92025472" end_link="144798_474101" trav_time="00:02:00" distance="190.0"></route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2717006491E7" y="2599627.67" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_shuttlebus" dep_time="08:22:16" trav_time="02:37:44">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="144798_474101" end_link="144798_474101" trav_time="02:37:44" distance="0.0">{"transitRouteId":"903","boardingTime":"08:30:00","transitLineId":"903","accessFacilityId":"144798_2812","egressFacilityId":"474101_2813"}</route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2642700843E7" y="2545611.919" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="11:00:00" trav_time="00:17:32">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="144798_474101" end_link="202047_195389" trav_time="00:17:32" distance="10528.835183538671"></route>
            </leg>
            <activity type="w" link="202047_195389" x="1.2637925904964894E7" y="2539070.0956946365" max_dur="07:40:14" >
            </activity>
            <leg mode="taxi" dep_time="18:47:46" trav_time="00:05:31">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="202047_195389" end_link="92041571_92040939" trav_time="00:05:31" distance="3319.2754397844615"></route>
            </leg>
            <activity type="pt interaction" link="92041571_92040939" x="1.264017545E7" y="2537862.275" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="18:53:17" trav_time="00:50:36">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92041571_92040939" end_link="92041534_92041512" trav_time="00:50:36" distance="97523.52333933">{"transitRouteId":"(444,)","boardingTime":"18:55:00","transitLineId":"(444,)","accessFacilityId":"92041571_2330","egressFacilityId":"92041512_2335"}</route>
            </leg>
            <activity type="pt interaction" link="92041534_92041512" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:43:53" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92041534_92041512" end_link="92041512_92041513" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92041512_92041513" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="19:50:53" trav_time="00:19:45">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92041512_92041513" end_link="92027534_92027535" trav_time="00:19:45" distance="32963.79197155">{"transitRouteId":"(398,)","boardingTime":"19:55:00","transitLineId":"(398,)","accessFacilityId":"92041512_2069","egressFacilityId":"92027535_2075"}</route>
            </leg>
            <activity type="pt interaction" link="92027534_92027535" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="20:10:38" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92027534_92027535" end_link="92027535_92027789" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92027535_92027789" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="20:17:38" trav_time="00:37:52">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92027535_92027789" end_link="92041582_92041502" trav_time="00:37:52" distance="90485.93670565997">{"transitRouteId":"(535,)","boardingTime":"20:18:00","transitLineId":"(535,)","accessFacilityId":"92027535_2636","egressFacilityId":"92041502_2652"}</route>
            </leg>
            <activity type="pt interaction" link="92041582_92041502" x="1.269824404E7" y="2574379.265" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="20:55:30" trav_time="01:38:05">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92041582_92041502" end_link="391396_835611" trav_time="01:38:05" distance="58856.417163617865"></route>
            </leg>
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" >
            </activity>
        </plan>

        <plan score="157.36469089067924" selected="no">
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" end_time="07:42:48" >
            </activity>
            <leg mode="taxi" dep_time="07:42:48" trav_time="00:03:38">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="391396_835611" end_link="92025996_92025999" trav_time="00:03:38" distance="2183.533756679255"></route>
            </leg>
            <activity type="pt interaction" link="92025996_92025999" x="1.274273376E7" y="2582221.197" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="07:46:26" trav_time="00:10:20">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="92025996_92025999" end_link="92027556_92025998" trav_time="00:10:20" distance="23544.43672693">{"transitRouteId":"(513,)","boardingTime":"07:47:43","transitLineId":"(513,)","accessFacilityId":"92025996_2595","egressFacilityId":"92027556_2598"}</route>
            </leg>
            <activity type="pt interaction" link="92027556_92025998" x="1.272629187E7" y="2597034.871" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:56:46" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="92027556_92025998" end_link="92025525_92025524" trav_time="00:02:00" distance="86.0"></route>
            </leg>
            <activity type="pt interaction" link="92025525_92025524" x="1.272623733E7" y="2597071.315" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_metro" dep_time="08:03:46" trav_time="00:11:30">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="92025525_92025524" end_link="92025521_92025472" trav_time="00:11:30" distance="8690.082758087996">{"transitRouteId":"(380,)","boardingTime":"08:07:26","transitLineId":"(380,)","accessFacilityId":"92025525_1979","egressFacilityId":"92025521_1986"}</route>
            </leg>
            <activity type="pt interaction" link="92025521_92025472" x="1.271686345E7" y="2599655.673" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="08:15:16" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="92025521_92025472" end_link="144798_474101" trav_time="00:02:00" distance="190.0"></route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2717006491E7" y="2599627.67" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_shuttlebus" dep_time="08:22:16" trav_time="02:37:44">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="144798_474101" end_link="144798_474101" trav_time="02:37:44" distance="0.0">{"transitRouteId":"903","boardingTime":"08:30:00","transitLineId":"903","accessFacilityId":"144798_2812","egressFacilityId":"474101_2813"}</route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2642700843E7" y="2545611.919" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="11:00:00" trav_time="00:17:32">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="144798_474101" end_link="202047_195389" trav_time="00:17:32" distance="10528.835183538671"></route>
            </leg>
            <activity type="w" link="202047_195389" x="1.2637925904964894E7" y="2539070.0956946365" max_dur="07:40:14" >
            </activity>
            <leg mode="taxi" dep_time="18:47:46" trav_time="00:05:31">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="202047_195389" end_link="92041571_92040939" trav_time="00:05:31" distance="3319.2754397844615"></route>
            </leg>
            <activity type="pt interaction" link="92041571_92040939" x="1.264017545E7" y="2537862.275" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="18:53:17" trav_time="00:50:36">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="92041571_92040939" end_link="92041534_92041512" trav_time="00:50:36" distance="97523.52333933">{"transitRouteId":"(444,)","boardingTime":"18:55:00","transitLineId":"(444,)","accessFacilityId":"92041571_2330","egressFacilityId":"92041512_2335"}</route>
            </leg>
            <activity type="pt interaction" link="92041534_92041512" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:43:53" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="92041534_92041512" end_link="92041512_92041513" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92041512_92041513" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="19:50:53" trav_time="00:19:45">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="92041512_92041513" end_link="92027534_92027535" trav_time="00:19:45" distance="32963.79197155">{"transitRouteId":"(398,)","boardingTime":"19:55:00","transitLineId":"(398,)","accessFacilityId":"92041512_2069","egressFacilityId":"92027535_2075"}</route>
            </leg>
            <activity type="pt interaction" link="92027534_92027535" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="20:10:38" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="92027534_92027535" end_link="92027535_92027789" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92027535_92027789" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="20:17:38" trav_time="00:37:52">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="default_pt" start_link="92027535_92027789" end_link="92041582_92041502" trav_time="00:37:52" distance="90485.93670565997">{"transitRouteId":"(535,)","boardingTime":"20:18:00","transitLineId":"(535,)","accessFacilityId":"92027535_2636","egressFacilityId":"92041502_2652"}</route>
            </leg>
            <activity type="pt interaction" link="92041582_92041502" x="1.269824404E7" y="2574379.265" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="20:55:30" trav_time="01:38:05">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_metro</attribute>
                </attributes>
                <route type="generic" start_link="92041582_92041502" end_link="391396_835611" trav_time="01:38:05" distance="58856.417163617865"></route>
            </leg>
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" >
            </activity>
        </plan>

        <plan score="157.3706783523278" selected="no">
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" end_time="07:42:48" >
            </activity>
            <leg mode="taxi" dep_time="07:42:48" trav_time="00:03:38">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="391396_835611" end_link="92025996_92025999" trav_time="00:03:38" distance="2183.533756679255"></route>
            </leg>
            <activity type="pt interaction" link="92025996_92025999" x="1.274273376E7" y="2582221.197" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="07:46:26" trav_time="00:10:20">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="92025996_92025999" end_link="92027556_92025998" trav_time="00:10:20" distance="23544.43672693">{"transitRouteId":"(513,)","boardingTime":"07:47:43","transitLineId":"(513,)","accessFacilityId":"92025996_2595","egressFacilityId":"92027556_2598"}</route>
            </leg>
            <activity type="pt interaction" link="92027556_92025998" x="1.272629187E7" y="2597034.871" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:56:46" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="92027556_92025998" end_link="92025525_92025524" trav_time="00:02:00" distance="86.0"></route>
            </leg>
            <activity type="pt interaction" link="92025525_92025524" x="1.272623733E7" y="2597071.315" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_metro" dep_time="08:03:46" trav_time="00:11:30">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="92025525_92025524" end_link="92025521_92025472" trav_time="00:11:30" distance="8690.082758087996">{"transitRouteId":"(380,)","boardingTime":"08:07:26","transitLineId":"(380,)","accessFacilityId":"92025525_1979","egressFacilityId":"92025521_1986"}</route>
            </leg>
            <activity type="pt interaction" link="92025521_92025472" x="1.271686345E7" y="2599655.673" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="08:15:16" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="92025521_92025472" end_link="144798_474101" trav_time="00:02:00" distance="190.0"></route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2717006491E7" y="2599627.67" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_shuttlebus" dep_time="08:22:16" trav_time="02:37:44">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="144798_474101" end_link="144798_474101" trav_time="02:37:44" distance="0.0">{"transitRouteId":"903","boardingTime":"08:30:00","transitLineId":"903","accessFacilityId":"144798_2812","egressFacilityId":"474101_2813"}</route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2642700843E7" y="2545611.919" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="11:00:00" trav_time="00:17:32">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="144798_474101" end_link="202047_195389" trav_time="00:17:32" distance="10528.835183538671"></route>
            </leg>
            <activity type="w" link="202047_195389" x="1.2637925904964894E7" y="2539070.0956946365" max_dur="07:40:14" >
            </activity>
            <leg mode="taxi" dep_time="18:47:46" trav_time="00:05:31">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="202047_195389" end_link="92041571_92040939" trav_time="00:05:31" distance="3319.2754397844615"></route>
            </leg>
            <activity type="pt interaction" link="92041571_92040939" x="1.264017545E7" y="2537862.275" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="18:53:17" trav_time="00:50:36">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="92041571_92040939" end_link="92041534_92041512" trav_time="00:50:36" distance="97523.52333933">{"transitRouteId":"(444,)","boardingTime":"18:55:00","transitLineId":"(444,)","accessFacilityId":"92041571_2330","egressFacilityId":"92041512_2335"}</route>
            </leg>
            <activity type="pt interaction" link="92041534_92041512" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:43:53" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="92041534_92041512" end_link="92041512_92041513" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92041512_92041513" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="19:50:53" trav_time="00:19:45">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="92041512_92041513" end_link="92027534_92027535" trav_time="00:19:45" distance="32963.79197155">{"transitRouteId":"(398,)","boardingTime":"19:55:00","transitLineId":"(398,)","accessFacilityId":"92041512_2069","egressFacilityId":"92027535_2075"}</route>
            </leg>
            <activity type="pt interaction" link="92027534_92027535" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="20:10:38" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="92027534_92027535" end_link="92027535_92027789" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92027535_92027789" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="20:17:38" trav_time="00:37:52">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="default_pt" start_link="92027535_92027789" end_link="92041582_92041502" trav_time="00:37:52" distance="90485.93670565997">{"transitRouteId":"(535,)","boardingTime":"20:18:00","transitLineId":"(535,)","accessFacilityId":"92027535_2636","egressFacilityId":"92041502_2652"}</route>
            </leg>
            <activity type="pt interaction" link="92041582_92041502" x="1.269824404E7" y="2574379.265" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="20:55:30" trav_time="01:38:05">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_express</attribute>
                </attributes>
                <route type="generic" start_link="92041582_92041502" end_link="391396_835611" trav_time="01:38:05" distance="58856.417163617865"></route>
            </leg>
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" >
            </activity>
        </plan>

        <plan score="157.37467835232775" selected="no">
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" end_time="07:42:48" >
            </activity>
            <leg mode="taxi" dep_time="07:42:48" trav_time="00:03:38">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="391396_835611" end_link="92025996_92025999" trav_time="00:03:38" distance="2183.533756679255"></route>
            </leg>
            <activity type="pt interaction" link="92025996_92025999" x="1.274273376E7" y="2582221.197" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="07:46:26" trav_time="00:10:20">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92025996_92025999" end_link="92027556_92025998" trav_time="00:10:20" distance="23544.43672693">{"transitRouteId":"(513,)","boardingTime":"07:47:43","transitLineId":"(513,)","accessFacilityId":"92025996_2595","egressFacilityId":"92027556_2598"}</route>
            </leg>
            <activity type="pt interaction" link="92027556_92025998" x="1.272629187E7" y="2597034.871" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="07:56:46" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92027556_92025998" end_link="92025525_92025524" trav_time="00:02:00" distance="86.0"></route>
            </leg>
            <activity type="pt interaction" link="92025525_92025524" x="1.272623733E7" y="2597071.315" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_metro" dep_time="08:03:46" trav_time="00:11:30">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92025525_92025524" end_link="92025521_92025472" trav_time="00:11:30" distance="8690.082758087996">{"transitRouteId":"(380,)","boardingTime":"08:07:26","transitLineId":"(380,)","accessFacilityId":"92025525_1979","egressFacilityId":"92025521_1986"}</route>
            </leg>
            <activity type="pt interaction" link="92025521_92025472" x="1.271686345E7" y="2599655.673" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="08:15:16" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92025521_92025472" end_link="144798_474101" trav_time="00:02:00" distance="190.0"></route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2717006491E7" y="2599627.67" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_shuttlebus" dep_time="08:22:16" trav_time="02:37:44">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="144798_474101" end_link="144798_474101" trav_time="02:37:44" distance="0.0">{"transitRouteId":"903","boardingTime":"08:30:00","transitLineId":"903","accessFacilityId":"144798_2812","egressFacilityId":"474101_2813"}</route>
            </leg>
            <activity type="pt interaction" link="144798_474101" x="1.2642700843E7" y="2545611.919" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="11:00:00" trav_time="00:17:32">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="144798_474101" end_link="202047_195389" trav_time="00:17:32" distance="10528.835183538671"></route>
            </leg>
            <activity type="w" link="202047_195389" x="1.2637925904964894E7" y="2539070.0956946365" max_dur="07:40:14" >
            </activity>
            <leg mode="taxi" dep_time="18:47:46" trav_time="00:05:31">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="202047_195389" end_link="92041571_92040939" trav_time="00:05:31" distance="3319.2754397844615"></route>
            </leg>
            <activity type="pt interaction" link="92041571_92040939" x="1.264017545E7" y="2537862.275" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="18:53:17" trav_time="00:50:36">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92041571_92040939" end_link="92041534_92041512" trav_time="00:50:36" distance="97523.52333933">{"transitRouteId":"(444,)","boardingTime":"18:55:00","transitLineId":"(444,)","accessFacilityId":"92041571_2330","egressFacilityId":"92041512_2335"}</route>
            </leg>
            <activity type="pt interaction" link="92041534_92041512" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="19:43:53" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92041534_92041512" end_link="92041512_92041513" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92041512_92041513" x="1.2608891E7" y="2630934.63" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="19:50:53" trav_time="00:19:45">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92041512_92041513" end_link="92027534_92027535" trav_time="00:19:45" distance="32963.79197155">{"transitRouteId":"(398,)","boardingTime":"19:55:00","transitLineId":"(398,)","accessFacilityId":"92041512_2069","egressFacilityId":"92027535_2075"}</route>
            </leg>
            <activity type="pt interaction" link="92027534_92027535" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="walk" dep_time="20:10:38" trav_time="00:02:00">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92027534_92027535" end_link="92027535_92027789" trav_time="00:02:00" distance="0.0"></route>
            </leg>
            <activity type="pt interaction" link="92027535_92027789" x="1.264813813E7" y="2633404.832" max_dur="00:00:00" >
            </activity>
            <leg mode="pt_express" dep_time="20:17:38" trav_time="00:37:52">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="default_pt" start_link="92027535_92027789" end_link="92041582_92041502" trav_time="00:37:52" distance="90485.93670565997">{"transitRouteId":"(535,)","boardingTime":"20:18:00","transitLineId":"(535,)","accessFacilityId":"92027535_2636","egressFacilityId":"92041502_2652"}</route>
            </leg>
            <activity type="pt interaction" link="92041582_92041502" x="1.269824404E7" y="2574379.265" max_dur="00:00:00" >
            </activity>
            <leg mode="taxi" dep_time="20:55:30" trav_time="01:38:05">
                <attributes>
                    <attribute name="routingMode" class="java.lang.String">pt_rail</attribute>
                </attributes>
                <route type="generic" start_link="92041582_92041502" end_link="391396_835611" trav_time="01:38:05" distance="58856.417163617865"></route>
            </leg>
            <activity type="h" link="391396_835611" x="1.2742508896772813E7" y="2583885.7184321326" >
            </activity>
        </plan>

    </person>
vsp-gleich commented 5 months ago

The pt mode is meant to include all public transit modes. Consequently, the pt router tries to find the cost optimal route using and combining all transit modes available. It seems you would rather want to have mode choice between separate transit modes that cannot be combined. I think that is not implemented in MATSim.

vsp-gleich commented 5 months ago

Have you already implemented @Janekdererste 's advice?

Could you please advise why it's necessary to have "pt" configured?

I think it works like the following: You specify a pt mode, which is part of the changeMode choice set. Then, as you did, the transit module specifies which modes are the transit modes. The routingMode of your trips should then be pt while the legMode should be the actual pt-mode the agent took.

<module name="changeMode" >
...
     <param name="modes" value="car,walk,pt" />
...
</module>
<module name="transit" >
      ...
  <param name="transitModes" value="pt_rail,pt_ferry,pt_shuttlebus,pt_metro,pt_express,pt_uam" />
      ...
</module>