Add PSRC path type specific changes for SeaCast model
I added a new configuration setting: public int SeaTacAirportZoneIndex { get; set; } = -1; To turn on the airport shuttle in the SeaCast version of the PSRC model, set this equal to the zone index (which is the zone number minus 1 for PSRC) of the airport, so set =0 for the airport in zone 1.
Any value >=0 triggers code in PSRC_PathTypeModel.cs to make sure that any transit paths to or from the airport zone by the PremiumBus (also used for PassengerFerry) path type is only available if the tour purpose is work - a proxy for airport workers. Passing the person's work zone or parcel ID would be more coding work that would affect all the regional customizations.
There is also a buffer area (currently zones 1 to 160) around the shuttle route and airport that prevents trips to or from these zones but NOT going to or from the airport from using the shuttle, since people can only use the shuttle to go to or from the airport, and the CUBE transit path builder seems to create a lot of attractive PremiumBus paths between these zones so that without this code there are thousands of PremiumBus paths to or from these zones. This buffer area should be made as large as possible but so that there are no passenger ferry boarding terminals anywhere near the area, so the code will not prevent actual passenger ferry trips. (It still allows park and ride driving to passenger ferry terminals--it only affects the transit part of the path.) A better way to do this would be to code each shuttle stop in the network as a separate bus line that only goes to the airport with no stops in between. That would make the path builder only include shuttle paths in the skims that include the airport zone. The new code is below. I commented out the old catchment area list, as it was still giving hundreds of shuttle trips to and from the nearby zones not in the list - like zones 10 and 13.
With this code, all the PassengerFerry/PremiumBus trips are outside the buffer area except for 8 trips that go to or from the airport. (It's a 1 in 5 sample, so would be 40 trips.) All of those trips are on work tours There are about 4,000 passenger ferry trips outside the airport buffer area, and about half of those are on work tours. To increase the number of trips on the shuttle, putting a high capacity on the shuttle parking lot and using park and ride shadow pricing should help.
// only run this code if that if the SeaTac Airport zone index is set by user (it = 0 - the zone number is 1 but the internal zone id is 0, if not set by user it is -1) if (Global.Configuration.SeaTacAirportZoneIndex >= 0) {
//if it is to or from the airport and the purpose is not work but the path type is premium bus (airport shuttle), make it a long trip
if (destinationZoneId == Global.Configuration.SeaTacAirportZoneIndex || originZoneId == Global.Configuration.SeaTacAirportZoneIndex) { if (pathType == Global.Settings.PathTypes.PremiumBus && destinationPurpose != Global.Settings.Purposes.Work) { returnInVehicleTime = 9999.0; outboundInVehicleTime = 9999.0; } }
//if either origin or deestination are in the shuttle catchment area but neither the the origin or destination zone is the airport
//disable the path - note catchment zone numbers decrease by one to match zoneid, which is zone number minus 1
///List