verschrottungwahrscheinlich.../demo.py
2020-10-08 12:10:01 +02:00

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)