Saves data required to generate a domain decomposition. For each super area,
we save:
- Population
- Number of workers
- Number of pupils
- Number of commuters
Parameters:
Name |
Type |
Description |
Default |
world
|
World
|
|
required
|
file_path
|
str
|
|
required
|
Source code in june/hdf5_savers/domain_data_saver.py
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 | def save_data_for_domain_decomposition(world: World, file_path: str):
"""Saves data required to generate a domain decomposition. For each super area,
we save:
- Population
- Number of workers
- Number of pupils
- Number of commuters
Args:
world (World):
file_path (str):
"""
super_area_names = []
super_area_population = []
super_area_pupils = []
super_area_workers = []
super_area_commuters = []
commuters_per_super_area = get_commuters_per_super_area(world)
for super_area in world.super_areas:
super_area_names.append(super_area.name.encode("ascii", "ignore"))
super_area_population.append(len(super_area.people))
super_area_workers.append(len(super_area.workers))
super_area_pupils.append(
sum(
[
len(school.people)
for area in super_area.areas
for school in area.schools
]
)
)
super_area_commuters.append(commuters_per_super_area[super_area.name])
super_area_names = np.array(super_area_names, dtype="S20")
super_area_population = np.array(super_area_population, dtype=np.int64)
super_area_workers = np.array(super_area_workers, dtype=np.int64)
super_area_commuters = np.array(super_area_commuters, dtype=np.int64)
super_area_pupils = np.array(super_area_pupils, dtype=np.int64)
with h5py.File(file_path, "a") as f:
group = f.create_group("domain_decomposition_data")
group.create_dataset("super_area_names", data=super_area_names)
group.create_dataset("super_area_population", data=super_area_population)
group.create_dataset("super_area_workers", data=super_area_workers)
group.create_dataset("super_area_pupils", data=super_area_pupils)
group.create_dataset("super_area_commuters", data=super_area_commuters)
|