24 lines
898 B
Python
24 lines
898 B
Python
from .s32_region_util import calculate_boundary, inflate_boundary
|
|
from .s34_sa_cal import *
|
|
from .s34_sa import get_all_service_area_ids
|
|
from .batch_exe import execute_batch_command
|
|
from .database import ChangeSet
|
|
|
|
def generate_service_area(name: str, inflate_delta: float = 0.5) -> ChangeSet:
|
|
cs = ChangeSet()
|
|
|
|
for id in get_all_service_area_ids(name):
|
|
cs.delete({'type': 'service_area', 'id': id})
|
|
|
|
sass = calculate_service_area(name)
|
|
|
|
time_index = 0
|
|
for sas in sass:
|
|
for source, nodes in sas.items():
|
|
boundary = calculate_boundary(name, nodes)
|
|
boundary = inflate_boundary(name, boundary, inflate_delta)
|
|
cs.add({ 'type': 'service_area', 'id': f"SA_{source}_{time_index}", 'boundary': boundary, 'time_index': time_index, 'source': source, 'nodes': nodes })
|
|
time_index += 1
|
|
|
|
return execute_batch_command(name, cs)
|