Beispiel #1
0
        public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int maxFrequency,
                                       Time startTime, Time endTime, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            bool feasibleFreq = false;
            int  freq         = 0;

            while (!feasibleFreq)
            {
                freq = Distribution.GetRandomFrequencyValue(
                    0, maxFrequency, random, Distribution.GetDistributionID(person, activity), householdPD, workPD, generationAdjustments);
                if (freq == 0)
                {
                    break;
                }
                if (!Distribution.GetRandomStartTimeFrequency(
                        Distribution.GetDistributionID(person, activity), freq,
                        Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out Time duration))
                {
                    //a bad thing happens here
                }
                else if (duration != Time.Zero)
                {
                    feasibleFreq = true;
                }
            }

            return(freq);
        }
Beispiel #2
0
        public static int GetFrequency(ITashaHousehold household, Activity activity, Random random, int maxFreq, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            bool feasibleFreq = false;
            int  freq         = maxFreq;

            while (!feasibleFreq)
            {
                freq = Distribution.GetRandomFrequencyValue(
                    0, Distribution.NumberOfFrequencies - 1, random, Distribution.GetDistributionID(household, activity),
                    householdPD, workPD, generationAdjustments);
                if (freq == 0)
                {
                    feasibleFreq = true;
                }
                if (!Distribution.GetRandomStartTimeFrequency(
                        Distribution.GetDistributionID(household, activity), freq,
                        0, Scheduler.StartTimeQuanta - 1, random, out Time startTime))
                {
                    // a bad thing happens here
                }
                else if (startTime != Time.StartOfDay)
                {
                    feasibleFreq = true;
                }
            }

            return(freq);
        }
Beispiel #3
0
        public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int maxFrequency, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            int freq = 0;

            freq = Distribution.GetRandomFrequencyValue(
                0, maxFrequency, random, Distribution.GetDistributionID(person, activity), householdPD, workPD, generationAdjustments);
            return(freq);
        }
Beispiel #4
0
        public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            int freq;
            var distID = Distribution.GetDistributionID(person, activity);

            if (distID < 0)
            {
                throw new XTMFRuntimeException(null, "We were unable to get the distribution ID number for a person doing a '" + activity
                                               + "' episode The person's householdID was " + person.Household.HouseholdId + ", personID was " + person.Id + ", was " + person.Age +
                                               " years old, with employment status '" + person.EmploymentStatus + "' occupation '" + person.Occupation + "' Student Status '"
                                               + person.StudentStatus + "'.  Their work zone is '" + (person.EmploymentZone != null ? person.EmploymentZone.ZoneNumber.ToString() : "None")
                                               + "' and their school zone is '"
                                               + (person.SchoolZone != null ? person.SchoolZone.ZoneNumber.ToString() : "None") + "'.");
            }
            freq = Distribution.GetRandomFrequencyValue(
                0, Distribution.NumberOfFrequencies - 1, random, distID, householdPD, workPD, generationAdjustments);
            return(freq);
        }
Beispiel #5
0
 internal static bool GenerateWorkAtHomesActivity(ITashaPerson person, Random random, int householdPD, GenerationAdjustment[] generationAdjustments)
 {
     return(Distribution.GetRandomFrequencyValue(0, 1, random,
                                                 Distribution.GetDistributionID(person, Activity.WorkAtHomeBusiness), householdPD, householdPD, generationAdjustments)
            > 0);
 }
Beispiel #6
0
 internal static bool GenerateSecondaryWorkTrip(ITashaPerson person, Random random, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
 {
     return(Distribution.GetRandomFrequencyValue(0, 1, random,
                                                 Distribution.GetDistributionID(person, Activity.SecondaryWork), householdPD, workPD, generationAdjustments)
            > 0);
 }
Beispiel #7
0
 internal static bool GenerateIndividualOtherActivity(ITashaPerson person, Random random, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
 {
     return(Distribution.GetRandomFrequencyValue(0, 1, random,
                                                 Distribution.GetDistributionID(person, Activity.IndividualOther), householdPD, workPD, generationAdjustments) > 0);
 }