Package-level declarations

Types

Link copied to clipboard

Determines the types and durations of activities an agent conducts on a given day.

Link copied to clipboard
Link copied to clipboard
interface AgentFactory

Creates the population of agents.

Link copied to clipboard
class AgentFactoryDefault(destinationFinder: DestinationFinder, carOwnership: CarOwnership, popStrata: List<PopStratum>, dispatcher: CoroutineDispatcher) : AgentFactory

Creates agents by determining socio-demographic features as well as work and school locations.

Link copied to clipboard
Link copied to clipboard

Destination choice function implementation for the HOME location distribution when census data is given.

Link copied to clipboard
interface CarOwnership

Determines car ownership of an agent.

Link copied to clipboard

Determines car ownership with a fixed probability. The probability is taken from the CarOwnership property of the stratum. The probability is only applied to agent's that have an age higher than the minimum driving age.

Link copied to clipboard
class CarOwnershipMNL(carOwnershipUtility: CarOwnershipUtility, minDrivingAge: Int) : CarOwnership

Determines with an MNL model. The MNL model is only used for agent's above the minimum driving age, younger agent's never have car ownership.

Link copied to clipboard
@Serializable
class CarOwnershipUtility(val homGroupCoeff: Map<HomogeneousGrp, Double>, val mobGroupCoeff: Map<MobilityGrp, Double>, val ageGrpCoeff: Map<AgeGrp, Double>, val intercept: Double)

Utility formula for car ownership MNL.

Link copied to clipboard
@Serializable
@SerialName(value = "CombinedPowerExpon")
data class CombinedDCUtil(val coeffResidentialArea: Double, val coeffCommercialArea: Double, val coeffRetailArea: Double, val coeffIndustrialArea: Double, val coeffOfficeArea: Double, val coeffShopArea: Double, val coeffSchoolArea: Double, val coeffUniversityArea: Double, val coeffOtherArea: Double, val coeffOfficeUnits: Double, val coeffShopUnits: Double, val coeffSchoolUnits: Double, val coeffUniUnits: Double, val coeffPlaceOfWorshipUnits: Double, val coeffCafeUnits: Double, val coeffFastFoodUnits: Double, val coeffKinderGartenUnits: Double, val coeffTourismUnits: Double, val coeffBuildingUnits: Double, val coeffResidentialUnits: Double, val coeffCommercialUnits: Double, val coeffRetailUnits: Double, val coeffIndustrialUnits: Double, coeff0: Double, coeff1: Double) : LocationChoiceDCWeightFun

Destination choice function with power-expon functional form.

Link copied to clipboard

Find the location of activities.

Link copied to clipboard

Gravity model based destination finder.

Link copied to clipboard

Return unique IDs used for the destination choice functions. These IDs are used to cache a location's attraction value, as calculated with the function, inside the location itself.

Link copied to clipboard
@Serializable
sealed class LocationChoiceDCWeightFun

Destination choice model. Parent class.

Link copied to clipboard
@Serializable
@SerialName(value = "LogNorm")
class LogNormDCUtil(val coeffResidentialArea: Double, val coeffCommercialArea: Double, val coeffRetailArea: Double, val coeffIndustrialArea: Double, val coeffOfficeArea: Double, val coeffShopArea: Double, val coeffSchoolArea: Double, val coeffUniversityArea: Double, val coeffOtherArea: Double, val coeffOfficeUnits: Double, val coeffShopUnits: Double, val coeffSchoolUnits: Double, val coeffUniUnits: Double, val coeffPlaceOfWorshipUnits: Double, val coeffCafeUnits: Double, val coeffFastFoodUnits: Double, val coeffKinderGartenUnits: Double, val coeffTourismUnits: Double, val coeffBuildingUnits: Double, val coeffResidentialUnits: Double, val coeffCommercialUnits: Double, val coeffRetailUnits: Double, val coeffIndustrialUnits: Double, coeff0: Double, coeff1: Double) : LocationChoiceDCWeightFun

Destination choice function with log-normal functional form.

Link copied to clipboard
@Serializable
@SerialName(value = "LogNormPower")
class LogNormPowerDCUtil(val coeffResidentialArea: Double, val coeffCommercialArea: Double, val coeffRetailArea: Double, val coeffIndustrialArea: Double, val coeffOfficeArea: Double, val coeffShopArea: Double, val coeffSchoolArea: Double, val coeffUniversityArea: Double, val coeffOtherArea: Double, val coeffOfficeUnits: Double, val coeffShopUnits: Double, val coeffSchoolUnits: Double, val coeffUniUnits: Double, val coeffPlaceOfWorshipUnits: Double, val coeffCafeUnits: Double, val coeffFastFoodUnits: Double, val coeffKinderGartenUnits: Double, val coeffTourismUnits: Double, val coeffBuildingUnits: Double, val coeffResidentialUnits: Double, val coeffCommercialUnits: Double, val coeffRetailUnits: Double, val coeffIndustrialUnits: Double, coeff0: Double, coeff1: Double, coeff2: Double) : LocationChoiceDCWeightFun

Destination choice function with log-normal functional form.

Link copied to clipboard
interface ModeChoice

Determine the mode of trips.

Link copied to clipboard
class ModeChoiceCarOnly(hopper: GraphHopper, withPath: Boolean) : ModeChoice

Turn every trip into a char trip.

Link copied to clipboard
class ModeChoiceGTFS(hopper: GraphHopper, ptRouter: PtRouter, ptSimDays: Map<Weekday, LocalDate>, timeZone: TimeZone, withPath: Boolean) : ModeChoice

Do mode choice with the mode options: FOOT, BICYCLE, CAR_DRIVER, CAR_PASSENGER, PUBLIC_TRANSIT Uses a multinomial logit model at its core.

Link copied to clipboard
@Serializable
data class ModeUtility(val mode: Mode, val timeCoeff: Double, val logTimeCoeff: Double, val distanceCoeff: Double, val logDistanceCoeff: Double, val homGroupCoeff: Map<HomogeneousGrp, Double>, val mobGroupCoeff: Map<MobilityGrp, Double>, val ageGrpCoeff: Map<AgeGrp, Double>, val weekdayCoeff: Map<Weekday, Double>, val sexCoeff: Map<Sex, Double>, val carAvailableCoeff: Map<Boolean, Double>, val activityCoeff: Map<ActivityType, Double>, val intercept: Double)

Utility formula for a mode in a mode choice logit model.

Link copied to clipboard
class Omosim(areaFile: File, osmFile: File, routingMode: RoutingMode = RoutingMode.BEELINE, cache: Boolean = true, cacheDir: Path = Paths.get("omosim_cache/"), odFile: File? = null, gridPrecision: Double = 200.0, seed: Long? = null, bufferRadius: Double = 0.0, censusFile: File? = null, populateBufferArea: Boolean = true, val distanceCacheSize: Long = 400e6.toLong(), populationFile: File? = null, activityGroupFile: File? = null, nWorker: Int? = null, gtfsFile: File? = null, overtureRelease: String? = null, carOwnershipOption: CarOwnershipOption = CarOwnershipOption.FIX, modeSpeedUp: Map<Mode, Double> = mapOf())

Open-Street-Maps MObility Demand generator (omosim) Creates daily activity schedules in the form of activity chains and dwell times.

Link copied to clipboard
@Serializable
@SerialName(value = "PureAttraction")
class PureAttraction(val coeffResidentialArea: Double, val coeffCommercialArea: Double, val coeffRetailArea: Double, val coeffIndustrialArea: Double, val coeffOfficeArea: Double, val coeffShopArea: Double, val coeffSchoolArea: Double, val coeffUniversityArea: Double, val coeffOtherArea: Double, val coeffOfficeUnits: Double, val coeffShopUnits: Double, val coeffSchoolUnits: Double, val coeffUniUnits: Double, val coeffPlaceOfWorshipUnits: Double, val coeffCafeUnits: Double, val coeffFastFoodUnits: Double, val coeffKinderGartenUnits: Double, val coeffTourismUnits: Double, val coeffBuildingUnits: Double, val coeffResidentialUnits: Double, val coeffCommercialUnits: Double, val coeffRetailUnits: Double, val coeffIndustrialUnits: Double) : LocationChoiceDCWeightFun

Destination choice function implementation for the HOME location distribution when census data is not given.

Properties

Link copied to clipboard
val logger: Logger

Functions

Link copied to clipboard
fun <T : Clusterable> bisectingKMeans(precision: Double, points: Collection<T>, minCluster: Int = 4): List<CentroidCluster<T>>

Runs the bisecting k-means algorithm

Link copied to clipboard
fun cluster(precision: Double, buildings: List<Building>, geometryFactory: GeometryFactory, transformer: CRSTransformer, startID: Int = 0): List<Cell>

Assign each building a routing cell so that the average distance between a building and its cell is less than the desired precision. Assignment is done with the bisecting k-means algorithm.

Link copied to clipboard
fun makeClusterGrid(focusAreaPrecision: Double, buildings: List<Building>, geometryFactory: GeometryFactory, transformer: CRSTransformer): List<Cell>

Group buildings into routing cells with bisecting-k-Means clustering for faster sampling. The resolution of the routing grid is cut in half with every 10km distance from the focus area.