55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
from calculations import DEFAULT_MORTALITY_DISTRIBUTION, calculate_covid_mortality, calculate_subsidy_mortality, \
|
|
iterate, sanity_check_for_subsidy, \
|
|
steady_state_population
|
|
from visualization import animate, plot_mortality, plot_population, plot_population_development, plot_production
|
|
import numpy as np
|
|
import pandas as pd
|
|
|
|
if __name__ == "__main__":
|
|
sanity_check_for_subsidy()
|
|
|
|
population_distribution = steady_state_population()
|
|
plot_population(population_distribution)
|
|
|
|
subsidy_mortality = calculate_subsidy_mortality(population_distribution, DEFAULT_MORTALITY_DISTRIBUTION, total_cars=1e6)
|
|
covid_mortality = calculate_covid_mortality(population_distribution, DEFAULT_MORTALITY_DISTRIBUTION)
|
|
plot_mortality(DEFAULT_MORTALITY_DISTRIBUTION, subsidy_mortality, covid_mortality)
|
|
|
|
total_pops = list()
|
|
distribs = list()
|
|
production = list()
|
|
duration = 50
|
|
start = 2010
|
|
years = np.arange(start, start+duration)
|
|
|
|
for i in range(duration):
|
|
if i < 10:
|
|
fraction_of_new_cars = 1.0
|
|
mortality_distribution = DEFAULT_MORTALITY_DISTRIBUTION
|
|
elif i == 10:
|
|
fraction_of_new_cars = 1.00
|
|
mortality_distribution = covid_mortality
|
|
elif i == 11:
|
|
fraction_of_new_cars = 1.00
|
|
mortality_distribution = DEFAULT_MORTALITY_DISTRIBUTION# subsidy_mortality
|
|
elif i > 11 and i <= 20:
|
|
fraction_of_new_cars = 1.00
|
|
mortality_distribution = DEFAULT_MORTALITY_DISTRIBUTION
|
|
elif i > 20:
|
|
fraction_of_new_cars = 1.0
|
|
mortality_distribution = DEFAULT_MORTALITY_DISTRIBUTION
|
|
else:
|
|
fraction_of_new_cars = 1.0
|
|
mortality_distribution = DEFAULT_MORTALITY_DISTRIBUTION
|
|
|
|
population_distribution = iterate(mortality_distribution, population_distribution, fraction_of_new_cars)
|
|
distribs.append(population_distribution.copy())
|
|
total_pops.append(sum(population_distribution))
|
|
production.append(population_distribution[0])
|
|
|
|
df = pd.DataFrame(index=years, data=distribs)
|
|
df.to_excel("out.xlsx")
|
|
|
|
plot_population_development(years, total_pops)
|
|
plot_production(years, production)
|
|
animate(years, distribs) |