コード例 #1
0
def invert_migrations_test():
    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    migration_balances = {
        '2011': 109,
        '2012': 91,
        '2013': 82,
        '2014': 99,
        '2015': -161,
        '2016': 217,
        '2017': 250
    }

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors(custom_migrations=migration_balances)

    simulate(population)
コード例 #2
0
def control_test():
    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #3
0
def main():
    print("Loading natality and mortality data")
    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    # migrations_ages = [0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0]
    migrations_ages = [
        27, 50, 0, 0, 107, 122, 153, 169, 0, 82, 99, 0, 0, 0, 0, 0, 0, 0
    ]

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #4
0
def flatten_mortality_test():
    mortality_data = Parser.get_mortality_data()
    for age in mortality_data:
        mortality_data[age] = 20

    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)  # BEST = "ksone"
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #5
0
def custom_popualation_workplaces_test():
    workers_filepath = "fake-workers-survey.xlsx"
    _ = SurveyGenerator(workplaces_list="workplaces-aldeia-redondos.csv",
                        workers_filepath=workers_filepath)

    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics(workers_survey=workers_filepath)
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #6
0
def custom_popualation_schools_test():
    students_filepath = "fake-students-survey.xlsx"
    _ = SurveyGenerator(schools_list="schools-outeiro-das-galegas.csv",
                        students_filepath=students_filepath)

    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics(student_surveys=students_filepath)
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #7
0
def custom_population_origin_test():

    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    custom_index = 25
    population = PopulationGenerator.init_population_census_2011(
        custom_origin_index=custom_index)
    print("All population initiated on", population.zones[custom_index])

    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors()

    simulate(population)
コード例 #8
0
def double_mortality_test():
    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()
    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    deaths_py = Parser.get_mortality_data_2011_2018()
    deaths_py.pop(2018, None)

    for year in deaths_py:
        deaths_py[year] = deaths_py[year] * 2

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors(custom_mortality=deaths_py)

    simulate(population)
コード例 #9
0
def double_natality_test():
    mortality_data = Parser.get_mortality_data()
    natality_data = Parser.get_natality_data()

    migrations_ages = [
        0, 0, 0, 0, 111, 44, 206, 71, 0, 28, 49, 0, 75, 0, 0, 0, 0, 0
    ]

    natality_data = Parser.get_natality_data_2011_2018()
    natality_data.pop(2018, None)

    for year in natality_data:
        natality_data[year] *= 2

    population = PopulationGenerator.init_population_census_2011()
    population.init_dynamics()
    population.set_mortality(mortality_data)
    population.set_natality(natality_data)
    population.set_migrations(migrations_ages)
    population.train_predictiors(custom_natality=natality_data)
    population.BIRTHS_PER_YEAR = population.BIRTHS_PER_YEAR * 2

    simulate(population)
コード例 #10
0
    def get_population_distribution(self):
        filepath = basepath + "pombal-detailed.csv"
        df = pandas.read_csv(filepath)

        resize_ratio = PopulationGenerator.get_resize_ratio()
        
        for i, row in df.iterrows():
            tot = int(round(row['Total'] * resize_ratio, 0))
            pens_num = int(round(row['Pensionistas'] * resize_ratio, 0))
            stud_num = int(round(row['Estudantes'] * resize_ratio, 0))
            prim_num = int(round(row['Setor primário'] * resize_ratio, 0))
            sec_num = int(round(row['Secundário'] * resize_ratio, 0))
            tert_num = int(round(row['Terciário'] * resize_ratio, 0))
            df.loc[i, 'Total'] = tot
            df.loc[i, 'Pensionistas'] = pens_num
            df.loc[i, 'Estudantes'] = stud_num
            df.loc[i, 'Setor primário'] = prim_num
            df.loc[i, 'Secundário'] = sec_num
            df.loc[i, 'Terciário'] = tert_num

        df = df.drop(df.index[47])
        
        self.population_distibution = df
コード例 #11
0
import PopulationGenerator
import time

population = PopulationGenerator.init_population_census_2011()

dynamics = population.dynamics
dynamics.get_od_matrix()
コード例 #12
0
        os.makedirs(directory)
    if not os.path.exists(directory + '/raw'):
        os.makedirs(directory + '/raw')
    if not os.path.exists(directory + '/image'):
        os.makedirs(directory + '/image')


total_populations = {}
for zone in Zones.get():
    print 'getting age pyramids of', zone
    total_populations[zone] = []
    pyramid = PopulationGenerator.zones_pyramids[str(zone)]
    for year in YEARS:
        directory = './Population/zone_' + str(zone)
        check_directory_exists(directory)
        pyramid = PopulationGenerator.make_pyramid_older(
            pyramid, year - 1, year)
        path = './Population/zone_' + str(zone) + '/raw/pyramid_year_' + str(
            year) + '.csv'
        Printer.pyramid_to_file(pyramid, path)
        Printer.pyramid_to_image(
            pyramid, './Population/zone_' + str(zone) +
            '/image/pyramid_year_' + str(year) + '.png')
        total_populations[zone].append(
            PopulationGenerator.calculate_total_population(pyramid))
    Printer.print_total_population(
        total_populations[zone],
        './Population/zone_' + str(zone) + '/raw/total.csv')
    Printer.line_graph(YEARS, total_populations[zone],
                       './Population/zone_' + str(zone) + '/image/total.png')

penalolen_population = []
コード例 #13
0
ファイル: Main.py プロジェクト: S-M-Ammar/AI
import Fitness
import PopulationGenerator
import PrintFunctions
import ProduceNewGeneration
import Classes

population = PopulationGenerator.GeneratePopulation()


chr = Classes.Chromosome
flag = False
i = 1
gn = 1
while(flag==False):

    print("\n\n\n\n")
    print("Generation # ",gn,"\n")
    population = ProduceNewGeneration.produceGeneration(population)
    PrintFunctions.printPopulation(population)
    population.populationLimit = population.chromosomeList.__len__()
    gn = gn + 1



    for x in population.chromosomeList:

        if(x.fitness>10):

            chr = x
            PrintFunctions.printChromosome(chr)
            flag = True