예제 #1
0
        public void Init()
        {
            // relations properties

            SetPersons();
            SetHouseholdDays();
            SetHouseholdTotals();
            SetParcelRelationships();

            FulltimeWorkers    = HouseholdTotals.FulltimeWorkers;
            PartTimeWorkers    = HouseholdTotals.PartTimeWorkers;
            RetiredAdults      = HouseholdTotals.RetiredAdults;
            OtherAdults        = HouseholdTotals.NonworkingAdults;
            CollegeStudents    = HouseholdTotals.UniversityStudents;
            HighSchoolStudents = HouseholdTotals.DrivingAgeStudents;
            KidsBetween5And15  = HouseholdTotals.ChildrenAge5Through15;
            KidsBetween0And4   = HouseholdTotals.ChildrenUnder5;

            // domain model properies

            SetExpansionFactor();

            // flags/choice model/etc. properties

            ResidenceBuffer2Density = (int)Math.Round(ResidenceParcel.EmploymentTotalBuffer2 + ResidenceParcel.HouseholdsBuffer2 + ResidenceParcel.StudentsUniversityBuffer2, 0);
            if (Global.Configuration.WriteResidenceBufferDensityToOwnOrRent)
            {
                OwnOrRent = ResidenceBuffer2Density;
            }
            IsOnePersonHousehold            = Size == 1;
            IsTwoPersonHousehold            = Size == 2;
            Has0To15KIncome                 = Income.IsRightExclusiveBetween(0, 15000);
            Has0To25KIncome                 = Income.IsRightExclusiveBetween(0, 25000);
            Has25To45KIncome                = Income.IsRightExclusiveBetween(25000, 45000);
            Has25To50KIncome                = Income.IsRightExclusiveBetween(25000, 50000);
            Has50To75KIncome                = Income.IsRightExclusiveBetween(50000, 75000);
            Has75To100KIncome               = Income.IsRightExclusiveBetween(75000, 100000);
            Has75KPlusIncome                = Income >= 75000;
            Has100KPlusIncome               = Income >= 100000;
            HasIncomeUnder50K               = Income.IsRightExclusiveBetween(0, 50000);
            HasIncomeOver50K                = Income >= 50000;
            HasValidIncome                  = Income >= 0;
            HasMissingIncome                = Income < 0;
            Has1Driver                      = HouseholdTotals.DrivingAgeMembers == 1;
            Has2Drivers                     = HouseholdTotals.DrivingAgeMembers == 2;
            Has3Drivers                     = HouseholdTotals.DrivingAgeMembers == 3;
            Has4OrMoreDrivers               = HouseholdTotals.DrivingAgeMembers >= 4;
            HasMoreDriversThan1             = HouseholdTotals.DrivingAgeMembers > 1;
            HasMoreDriversThan2             = HouseholdTotals.DrivingAgeMembers > 2;
            HasMoreDriversThan3             = HouseholdTotals.DrivingAgeMembers > 3;
            HasMoreDriversThan4             = HouseholdTotals.DrivingAgeMembers > 4;
            HasNoFullOrPartTimeWorker       = HouseholdTotals.FullAndPartTimeWorkers <= 0;
            Has1OrLessFullOrPartTimeWorkers = HouseholdTotals.FullAndPartTimeWorkers <= 1;
            Has2OrLessFullOrPartTimeWorkers = HouseholdTotals.FullAndPartTimeWorkers <= 2;
            Has3OrLessFullOrPartTimeWorkers = HouseholdTotals.FullAndPartTimeWorkers <= 3;
            Has4OrLessFullOrPartTimeWorkers = HouseholdTotals.FullAndPartTimeWorkers <= 4;
            HasChildrenUnder16              = HouseholdTotals.ChildrenUnder16 > 0;
            HasChildrenUnder5               = HouseholdTotals.ChildrenUnder5 > 0;
            HasChildrenAge5Through15        = HouseholdTotals.ChildrenAge5Through15 > 0;
            HasChildren                     = HouseholdTotals.DrivingAgeStudents > 0 || HouseholdTotals.ChildrenUnder16 > 0;
            HouseholdType                   = 0;

            if (Size == 1 && (HouseholdTotals.AllWorkers > 0 || HouseholdTotals.AllStudents > 0))
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.IndividualWorkerStudent;
            }
            else if (Size == 1)
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.IndividualNonworkerNonstudent;
            }
            else if (HouseholdTotals.Adults == 1)
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.OneAdultWithChildren;
            }
            else if (HouseholdTotals.RetiredAdults == 0 && HouseholdTotals.NonworkingAdults == 0 && (HouseholdTotals.DrivingAgeStudents > 0 || HouseholdTotals.ChildrenUnder16 > 0))
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.TwoPlusWorkerStudentAdultsWithChildren;
            }
            else if (HouseholdTotals.DrivingAgeStudents > 0 || HouseholdTotals.ChildrenUnder16 > 0)
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.TwoPlusAdultsOnePlusWorkersStudentsWithChildren;
            }
            else if (HouseholdTotals.RetiredAdults == 0 && HouseholdTotals.NonworkingAdults == 0)
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.TwoPlusWorkerStudentAdultsWithoutChildren;
            }
            else if (HouseholdTotals.FullAndPartTimeWorkers > 0 || HouseholdTotals.UniversityStudents > 0)
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.OnePlusWorkerStudentAdultsAndOnePlusNonworkerNonstudentAdultsWithoutChildren;
            }
            else
            {
                HouseholdType =
                    Global.Settings.HouseholdTypes.TwoPlusNonworkerNonstudentAdultsWithoutChildren;
            }
        }