Service types provision assessment
[1]:
import os
import pandas as pd
import geopandas as gpd
local_crs = 32636
example_data_path = "./data"
[2]:
from blocksnet.models import City
city_model = City.from_pickle(os.path.join(example_data_path, 'city_model.pickle'))
/home/vasilstar/masterplanning/venv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
[3]:
city_model.service_types
[3]:
[ServiceType(name='kindergartens', accessibility=10, demand=61, buffer=15),
ServiceType(name='schools', accessibility=15, demand=120, buffer=0),
ServiceType(name='recreational_areas', accessibility=15, demand=6000, buffer=0),
ServiceType(name='hospitals', accessibility=60, demand=9, buffer=0),
ServiceType(name='pharmacies', accessibility=10, demand=50, buffer=0),
ServiceType(name='policlinics', accessibility=15, demand=27, buffer=0)]
[4]:
from blocksnet.method import Provision
prov = Provision(city_model=city_model)
[5]:
calc_before = prov.calculate('schools')
prov.plot(calc_before)
[6]:
import pandas as pd
update = {
148: {
'population': 1000,
}
}
update_df = pd.DataFrame.from_dict(update, orient='index')
[7]:
calc_after = prov.calculate('schools', update_df)
prov.plot(calc_after)
[8]:
prov.plot_delta(calc_before, calc_after)
[9]:
Provision.stat_provision(calc_before)
[9]:
{'mean': 0.6210905224140981, 'median': 1.0, 'min': 0.0, 'max': 1.0}
[10]:
Provision.stat_provision(calc_after)
[10]:
{'mean': 0.6175410956261255, 'median': 1.0, 'min': 0.0, 'max': 1.0}
[18]:
scenario = {'schools': 0.5, 'kindergartens': 0.5}
gdf, total = prov.calculate_scenario(scenario)
print(total)
0.4687404518908245
[19]:
gdf, total = prov.calculate_scenario(scenario, update_df)
print(total)
0.46716329072882357